نمای کلی از مصرف مبتنی بر قوانین در پایگاه داده

قوانین قوانین قوانین LLM ها در تغییر محتوا و استخراج اطلاعات مربوطه فوق العاده خوب هستند و آنها را برای پردازش اسناد قوی ، بلوک های ساختمانی ایده آل می کند. با این حال ، بدون قوانین روشن ، حتی پیشرفته ترین LLM ها می توانند برای ارائه نتایج مداوم و دقیق تلاش کنند. Databridge از قدرت LLM ها استفاده می کند ، با هدایت قوانین تعریف شده توسط کاربر ، نیاز به توسعه دهندگان برای ایجاد خطوط لوله سفارشی پیچیده را از بین می برد. با استفاده از قوانینی که به عنوان دستورالعمل های ساده عمل می کنند ، ما پردازش اسناد قابل اعتماد و قابل تکرار را فعال می کنیم تا پتانسیل کامل داده های بدون ساختار شما را باز کند.
قبل از پرش ، در اینجا یادداشتی در مورد Databridge برای کسانی که جدید هستند وجود دارد:
Databridge یک پایگاه داده کاملاً باز (مجوز MIT) برای داده های بدون ساختار است. Databridge که توسط Encel AI ساخته شده است ، روند کار با اسناد پیچیده را با استفاده از یک رویکرد مبتنی بر قوانین ساده می کند که LLM ها را برای انجام پردازش اسناد سازگار و قابل اعتماد راهنمایی می کند.
مخزن: https://github.com/databridge-org/databridge-core
اکنون به قوانین برگردید. این توضیح دهنده قابلیت های مصرف مستند مبتنی بر قوانین را در پایگاه داده ، با تمرکز بر موارد استفاده عملی مانند استخراج ابرداده و تحول محتوا ، تشریح می کند.
مفاهیم اصلی
سیستم قوانین Databridge در حال حاضر امکان دو عملیات اصلی را در هنگام مصرف مستند فراهم می کند:
- استخراج ابرداده: اطلاعات ساختار یافته را از اسناد به ابرداده قابل جستجو بکشید.
- تحول محتوا: محتوای سند را در هنگام مصرف (اصلاح ، خلاصه و غیره) اصلاح کنید.
قوانین به صورت توالی پردازش می شوند و به شما امکان می دهند عملیات زنجیره ای را انجام دهید (به عنوان مثال ، ابرداده را از یک سند استخراج کنید ، سپس اطلاعات حساس را تغییر دهید).
نمای کلی معماری
موتور قوانین توسط:
- پذیرش تعاریف قوانین در هنگام مصرف مستند
- تبدیل هر قانون به کلاس مدل مناسب
- به طور متوالی با استفاده از قوانین برای مستند کردن محتوای
- با استفاده از LLM برای انجام استخراج یا تحولات
- ذخیره ابرداده استخراج شده و محتوای اصلاح شده
انواع قانون
فوق العاده
این نوع قانون داده های ساختاری را از محتوای سند مطابق با یک طرحواره استخراج می کند. این برای تبدیل اسناد بدون ساختار به داده های ساخت یافته و پرس و جو مناسب است.
from databridge import DataBridge
from databridge.rules import MetadataExtractionRule
from pydantic import BaseModel
# Define a schema for the metadata you want to extract
class ResumeInfo(BaseModel):
name: str
email: str
phone: str
skills: list[str]
education: list[dict]
experience: list[dict]
# Connect to DataBridge
db = DataBridge()
# Ingest a resume with metadata extraction
doc = db.ingest_file(
"resume.pdf",
metadata={"type": "resume"},
rules=[
MetadataExtractionRule(schema=ResumeInfo)
]
)
# The extracted metadata is now available
print(f"Candidate: {doc.metadata['name']}")
print(f"Skills: {', '.join(doc.metadata['skills'])}")
print(f"Education: {len(doc.metadata['education'])} entries")
نابسامان
این نوع قانون محتوای سند را مطابق دستورالعمل زبان طبیعی تبدیل می کند. این مناسب برای کاهش ، خلاصه شدن ، قالب بندی تغییرات و غیره است.
from databridge import DataBridge
from databridge.rules import NaturalLanguageRule
# Connect to DataBridge
db = DataBridge()
# Ingest a document with PII redaction
doc = db.ingest_file(
"medical_record.pdf",
rules=[
NaturalLanguageRule(
prompt="Remove all personally identifiable information (PII) including patient names, "
"addresses, phone numbers, and any other identifying details. Replace with [REDACTED]."
)
]
)
# The document is stored with PII removed
اجرای فنی
در زیر کاپوت ، سیستم پردازش قوانین مدل های زبان (LLMS) را برای انجام هر دو استخراج ابرداده و تغییر محتوا اعمال می کند. این سیستم به گونه ای طراحی شده است که مدولار و قابل تنظیم باشد.
ادغام LLM
Databridge از چندین ارائه دهنده LLM پشتیبانی می کند:
- Openai: برای نتایج با کیفیت بالا با پردازش مبتنی بر ابر
- اولاما: برای استقرار LLM شخصی ، خصوصی
ارائه دهنده LLM در شما پیکربندی شده است databridge.toml
پرونده:
[rules]
provider = "openai" # or "ollama" for self-hosted
model = "gpt-4o" # or your preferred model
batch_size = 4096 # Size of content to process at once
منطق پردازش قوانین
وقتی سندی با قوانین مصرف می شود:
- این سند تجزیه شده و متن استخراج می شود
- قوانین معتبر و به کلاسهای مدل تبدیل می شوند
- برای هر قانون:
- سریع سریع بر اساس نوع قانون ساخته می شود
- محتوای سریع و مستند به LLM ارسال می شود
- پاسخ LLM تجزیه شده است (JSON برای ابرداده ، متن ساده برای محتوای تبدیل شده)
- نتایج با توجه به نوع قانون ذخیره می شوند
برای استخراج ابرداده ، به LLM دستور داده می شود JSON ساختاری را که با طرح شما مطابقت دارد ، برگرداند. برای تحول محتوا ، LLM متن را بر اساس دستورالعمل های زبان طبیعی شما اصلاح می کند.
ملاحظات عملکرد
برای اسناد بزرگ ، Databridge به طور خودکار محتوا و قوانین را در دسته ها انجام می دهد. این کار با استفاده از اسناد و مدارک با هر اندازه را تضمین می کند. در batch_size
پیکربندی در databridge.toml
تعیین می کند که چگونه محتوا قبل از عبور از LLM تقسیم می شود.
اندازه دسته بزرگتر ممکن است توان را بهبود بخشد اما به حافظه بیشتری نیاز دارد و با اندازه دسته ای عظیم ، می توانیم به نتایج غیرقابل اعتماد بپردازیم. برای قوانین پیچیده یا اسناد بزرگتر ، ممکن است لازم باشد این تنظیمات را بر اساس قابلیت های سخت افزاری خود و الزامات تأخیر برنامه خود تنظیم کنید.
مثال استفاده از موارد
سیستم پردازش رزومه
بیایید یک مثال کامل برای پردازش رزومه ها را کشف کنیم.
from databridge import DataBridge
from databridge.rules import MetadataExtractionRule, NaturalLanguageRule
from pydantic import BaseModel
# Define resume schema
class ResumeInfo(BaseModel):
name: str
email: str
phone: str
location: str
skills: list[str]
years_experience: int
education: list[dict]
work_history: list[dict]
certifications: list[str] = []
# Create DataBridge client
db = DataBridge()
# Process resume with multiple rules
doc = db.ingest_file(
"example_resume.pdf",
metadata={"type": "resume", "source": "careers_page"},
rules=[
# First extract structured metadata
MetadataExtractionRule(schema=ResumeInfo),
# Then anonymize the content
NaturalLanguageRule(
prompt="Remove all personal contact information (name, email, phone, address) "
"but keep skills, experience, and qualifications."
)
]
)
# Retrieve candidates in specific locations
candidates = db.retrieve_docs(
"python machine learning",
filters={"type": "resume", "location": "San Francisco"}
)
for candidate in candidates:
print(f"Candidate: {candidate.metadata['name']}")
print(f"Experience: {candidate.metadata['years_experience']} years")
print(f"Skills: {', '.join(candidate.metadata['skills'])}")
print(f"Education: {candidate.metadata['education'][0]['degree']} from {candidate.metadata['education'][0]['institution']}")
print("---")
پردازش سند پزشکی با کاهش PII
اسناد پزشکی غالباً حاوی اطلاعات حساس هستند که ضمن حفظ ارزش بالینی ، نیاز به اصلاح مجدد دارند.
from databridge import DataBridge
from databridge.rules import MetadataExtractionRule, NaturalLanguageRule
from pydantic import BaseModel
# Define medical record schema
class MedicalRecord(BaseModel):
patient_id: str # De-identified ID
date_of_visit: str
diagnosis: list[str]
medications: list[str]
procedures: list[str]
lab_results: dict
doctor_notes: str
# Create DataBridge client
db = DataBridge()
# Process medical document
doc = db.ingest_file(
"patient_record.pdf",
metadata={"type": "medical_record", "department": "cardiology"},
rules=[
# First extract structured metadata
MetadataExtractionRule(schema=MedicalRecord),
# Then redact PII from the content
NaturalLanguageRule(
prompt="Redact all patient personally identifiable information (PII) including: "
"1. Patient name (replace with 'PATIENT') "
"2. Exact dates of birth (keep only year) "
"3. Addresses (replace with '[ADDRESS]') "
"4. Phone numbers (replace with '[PHONE]') "
"5. SSN and other ID numbers (replace with '[ID]') "
"6. Names of patient family members "
"Preserve all clinical information, symptoms, diagnoses, and treatments."
)
]
)
# The document is now stored with structured metadata and redacted content
records = db.retrieve_docs(
"myocardial infarction treatment",
filters={"type": "medical_record", "department": "cardiology"}
)
for record in records:
print(f"Record ID: {record.metadata['patient_id']}")
print(f"Diagnosis: {', '.join(record.metadata['diagnosis'])}")
print(f"Medications: {', '.join(record.metadata['medications'])}")
print(f"Procedures: {', '.join(record.metadata['procedures'])}")
print("---")
# Or retrieve specific chunks of content
chunks = db.retrieve_chunks(
"myocardial infarction symptoms",
filters={"type": "medical_record", "department": "cardiology"}
)
for chunk in chunks:
print(f"Content: {chunk.content[:100]}...") # First 100 chars
print(f"Document ID: {chunk.document_id}")
print(f"Relevance Score: {chunk.score}")
print("---")
بهینه سازی عملکرد قانون
مهندسی سریع
اثربخشی قوانین شما به میزان قابل توجهی به کیفیت اعلان ها و طرحواره ها بستگی دارد:
- خاص بودن: آنچه را که می خواهید استخراج یا دگرگون کنید به وضوح تعریف کنید
- نمونه هایی را ارائه دهید: برای طرحواره های پیچیده ، نمونه هایی را در سریع قرار دهید
- دامنه محدود: هر قاعده را به جای تلاش برای انجام بیش از حد یکباره بر روی یک کار خاص متمرکز کنید
توالی قاعده
قوانین به صورت توالی پردازش می شوند ، بنابراین سفارش موارد:
- ابتدا استخراج کنید ، بعداً تغییر دهید: به طور کلی ، ابرداده را قبل از تغییر محتوا استخراج کنید
- آگاهی chunking: برای اسناد بسیار بزرگ ، توجه داشته باشید که قوانین به طور جداگانه برای هر تکه اعمال می شود
- پیچیدگی حاکمیت: عملیات پیچیده را به چندین قانون ساده تر تقسیم کنید
انتخاب LLM
کارهای مختلف ممکن است از LLM های مختلف بهره مند شود:
- استخراج ابرداده: از مدل هایی با قابلیت های قوی JSON بهره می برد (مانند GPT-4)
- تغییر شکل: می تواند به خوبی با مدل های کوچکتر و سریعتر کار کند. برای کاهش مجدد ، ممکن است بخواهید داده ها را از طریق شبکه ارسال کنید ، بنابراین ممکن است مدل های محلی مناسب تر باشند.
- تحول پیچیده: ممکن است به مدل های پیشرفته تری نیاز داشته باشد.
پایان
مصرف مبتنی بر قوانین دیتابریج یک سیستم قدرتمند و انعطاف پذیر برای استخراج داده های ساختاری از اسناد بدون ساختار و تبدیل محتوا در هنگام مصرف فراهم می کند. این توانایی را می توان در مورد موارد استفاده بیش از حد از پردازش رزومه گرفته تا مدیریت ضبط پزشکی تا تجزیه و تحلیل اسناد قانونی اعمال کرد.
معماری سیستم انعطاف پذیری ، عملکرد و سهولت استفاده را متعادل می کند:
- سادگی طرف مشتری: قوانین را با استفاده از طرحواره های ساده و زبان طبیعی تعریف کنید
- قدرت سمت سرور: LLMS را برای رسیدگی به استخراج و تحول پیچیده اعمال می کند
- قابل تنظیم: با سناریوهای مختلف استقرار و الزامات عملکرد سازگار شوید
با جدا کردن تعریف قوانین از کد مصرف ، می توانید به راحتی خط لوله پردازش سند خود را با انواع و الزامات مختلف اسناد و بدون تغییر کد برنامه خود تطبیق دهید.