...
/استخراج البيانات المنظمة في LlamaIndex
استخراج البيانات المنظمة في LlamaIndex
تعلم كيفية استخراج البيانات المنظمة من نص غير منظم باستخدام LlamaIndex ومخططات Pydantic والتحليل المدعوم من LLM.
سنغطي ما يلي...
نصادف نصوصًا غير منظمة يوميًا، سواءً في رسائل البريد الإلكتروني أو التقارير أو المقالات الإخبارية أو السير الذاتية. وبينما نستطيع نحن البشر فهم هذه النصوص وتفسيرها بسهولة، تحتاج الآلات إلى هيكلية لفهمها. على سبيل المثال، قد تتضمن السيرة الذاتية اسم الشخص وتاريخه المهني ومهاراته ومؤهلاته العلمية، كل ذلك في فقرة مترابطة أو متناثرة في أقسام مختلفة.
تخيل الآن أنك تُطوّر مساعدًا ذكيًا لمساعدة مدير التوظيف في فحص مئات السير الذاتية. ستستغرق قراءة كل وثيقة يدويًا ساعات. ولكن ماذا لو استطعنا تعليم نظامنا استخراج معلومات مُهيكلة - مثل الاسم والبريد الإلكتروني والخبرة - من كل سيرة ذاتية؟
وهنا يأتي دور استخراج البيانات المنظمة. وباستخدام LlamaIndex، يمكننا القيام بذلك باستخدام نماذج اللغة الكبيرة (LLMs)، جنبًا إلى جنب مع أدوات لتوجيه تنسيق إخراج باستخدام المخططات.
في هذا الدرس، سنبدأ بمخطط أساسي لاستخراج الحقول البسيطة، ثم تحسينه باستخدام أوصاف الحقول، وأخيرًا، التوسع إلى بنية متداخلة أكثر واقعية لسجلات الوظائف والتعليم.
الخطوة 1: البدء بمخطط أساسي
لنبدأ بالنسخة الأبسط. سنستخرج بعض الحقول الأساسية من السيرة الذاتية، مثل الاسم، والبريد الإلكتروني، ورقم الهاتف، والمهارات.
تحديد المخطط
سنستخدم Pydantic ، وهي مكتبة Python تُمكّننا من تعريف نماذج بيانات باستخدام فئات Python عادية. تُخبر هذه النماذج طالب الماجستير في القانون (LLM) بنوع البيانات المُهيكلة التي نريدها بالمقابل.
from pydantic import BaseModelfrom typing import Listclass ResumeData(BaseModel):name: stremail: strphone: strskills: List[str]
BaseModel
هي فئة من Pydantic تُستخدم لتعريف نماذج البيانات المنظمة. تتيح لنا تحديد الحقول التي نريد أن يستخرجها برنامج LLM، بالإضافة إلى أنواعها المتوقعة.في مخطط
ResumeData
الخاص بنا، نُعرّف أربعة حقول لاستخراجها من السيرة الذاتية:name
،email
،phone
، وقائمةskills
. حاليًا، نُبقي الهيكل بسيطًا للتركيز على كيفية استخراج البيانات.
الخطوة 2: تحميل مستند السيرة الذاتية
في هذا الدرس، سنفترض أن لدينا ملف سيرة ذاتية (بصيغة PDF) نريد استخراج المعلومات منه. يوفر LlamaIndex أدوات مدمجة لتحميل هذه الملفات وتحليلها.
from llama_index.readers.file import PDFReaderpdf_reader = PDFReader()documents = pdf_reader.load_data("/path/to/resume.pdf")text = documents[0].text
هنا، نستخدم PDFReader
، وهو أداة تحميل المستندات من LlamaIndex، لقراءة السيرة الذاتية واستخراج نصها الكامل.
الخطوة 3: استخراج البيانات المنظمة باستخدام LLM
سنتصل الآن بـ LLM باستخدام LlamaIndex. يمكنك استخدام أي واجهة خلفية مدعومة، مثل OpenAI أو Groq.
from llama_index.llms.groq import Groqllm = Groq(model="llama3-70b-8192", api_key="YOUR_GROQ_API_KEY")sllm = llm.as_structured_llm(ResumeData)response = sllm.complete(text)print(response)
دعونا نكسر ذلك:
يقوم
Groq(...)
بتهيئة نموذج اللغة..as_struct
...