Extragere Date Structurate: structured_predict & Pydantic în LlamaIndex & Data RAG

Extrage obiecte Pydantic validate direct din documente sau din răspunsurile unui QueryEngine, transformând textul nestructurat în date gata de introdus în baza de date.

Sintaxă & invocare Python
from pydantic import BaseModel
from llama_index.core.prompts import PromptTemplate

class ContractInfo(BaseModel):
    client: str
    valoare_eur: float
    data_expirare: str

info = Settings.llm.structured_predict(ContractInfo, PromptTemplate('Extrage datele din: {text}'), text=continut_contract)

Descriere & Utilizare

LlamaIndex oferă suport de primă clasă pentru ieșiri structurate în două moduri principale:

1. Direct pe LLM prin llm.structured_predict(ClasaPydantic, prompt, **kwargs) sau prin convertirea modelului cu sllm = llm.as_structured_llm(ClasaPydantic).

2. Direct pe un QueryEngine RAG prin setarea parametrul output_cls=ClasaPydantic în index.as_query_engine(output_cls=ContractInfo).

Această a doua opțiune este extraordinară: poți căuta prin sute de pagini PDF cu RAG și să primești rezultatul final direct ca instanță Pydantic validată în Python!

Cum să o reții ușor

💡 Ca un asistent juridic care citește un contract stufos de 40 de pagini și îți completează direct fișa rezumativă cu Nume Client, Valoare și Scadență, gata de importat în contabilitate.

Opțiuni și parametri tehnici

  • Utilizează FunctionCallingProgram sau OpenAIPydanticProgram sub capotă.
  • Validează schema returnată prin Pydantic v2 și reîncearcă parsarea dacă lipsește vreun câmp obligatoriu.

Exemple practice și cazuri de utilizare

  • QueryEngine cu ieșire Pydantic: qe = index.as_query_engine(output_cls=ContractInfo); rez = qe.query('Extrage datele contractului'); print(rez.response.valoare_eur)
  • Conversie LLM structurat: sllm = Settings.llm.as_structured_llm(ContractInfo); raspuns = sllm.complete(text_brut)

Sfaturi de configurare & capcane

Folosește tipuri Optional[str] = None în modelul tău Pydantic pentru câmpurile care s-ar putea să nu apară în toate documentele, astfel încât LLM-ul să nu fie forțat să inventeze valori.

Comenzi și ghiduri înrudite