Descriere & Utilizare
Când integrezi un LLM într-un backend software sau o bază de date, nu ai nevoie de explicații politicoase în limbaj natural, ci de date riguros structurate (JSON / obiecte tipizate).
Metoda .with_structured_output(Schema) este cea mai fiabilă modalitate din LangChain de a extrage informații structurate. Îi transmiți o clasă Pydantic BaseModel (sau un TypedDict), iar modelul îți returnează o instanță validată a acelei clase.
Sub capotă, LangChain utilizează capabilitățile native de Structured Outputs / Tool Calling ale furnizorului pentru a garanta că tipurile de date (int, list[str], bool, Enum) sunt respectate 100%.
Cum să o reții ușor
💡 Ca diferența dintre a primi o scrisoare lungă scrisă de mână și a primi un tabel Excel cu coloane blocate și validare strictă pe fiecare celulă.
Opțiuni și parametri tehnici
- Convertește clasa Pydantic într-o specificație standard JSON Schema.
- Trimite schema către parametrul dedicat de response_format / tools al API-ului LLM.
- De-serializează răspunsul JSON primit direct într-un obiect Pydantic și rulează validările de tip.
Exemple practice și cazuri de utilizare
- Extragere entități:
class Factura(BaseModel): furnizor: str; total_ron: float; produse: list[str] - Integrare în lanț LCEL:
extractor = prompt | llm.with_structured_output(Factura) - Accesare atribute:
factura = extractor.invoke(text_pdf); print(factura.total_ron)
Sfaturi de configurare & capcane
Scrie întotdeauna explicații clare în parametrul Field(description='...') al fiecărui atribut Pydantic. Modelul LLM citește aceste descrieri pentru a înțelege exact ce valoare trebuie să extragă în câmpul respectiv!
Comenzi și ghiduri înrudite
tool-decorator-bind: Resursă asociată din acest modul.lcel-pipe-runnable: Resursă asociată din acest modul.chat-models-invoke: Resursă asociată din acest modul.