Skip to main content

Strukturētu Datu Iegūšana ar LangSmith, Pydantic, LangChain un Claude 3.7 Sonnet: Praktiskais Kodēšanas Piemērs

Strukturētu datu iegūšana ar mūsdienīgiem rīkiem

Atklājiet strukturētu datu iegūšanas iespējas, izmantojot LangChain un Claude 3.7 Sonnet, pārveidojot neapstrādātu tekstu par rīcībā izmantojamiem ieguldījumiem. Šis pamācība koncentrējas uz LLM rīku izsaukumu izsekošanu, izmantojot LangSmith, ļaujot reāllaika atkļūdošanu un sistēmas veiktspējas uzraudzību. Mēs izmantojam Pydantic shēmas precīzai datu formatēšanai un LangChain elastīgo uzvedņu veidošanu, lai vadītu Claude darbību.

!pip install --upgrade langchain-core 
!pip install langchain_anthropic

Lai konfigurētu LangSmith izsekošanu un atkļūdošanu, varat iestatīt vides mainīgos:

LANGSMITH_TRACING=True 
LANGSMITH_ENDPOINT="https://api.smith.langchain.com" 
LANGSMITH_API_KEY="Jūsu API atslēga" 
LANGSMITH_PROJECT="extraction_api"

Datu shēmas definēšana

Nākamais solis ir definēt shēmu informācijai, kuru vēlamies iegūt. Izmantosim Pydantic modeļus, lai izveidotu strukturētu personas attēlojumu:

from typing import Optional 
from pydantic import BaseModel, Field 
 

class Person(BaseModel):
"""Informācija par personu."""

name: Optional[str] = Field(default=None, description="Personas vārds") 
hair_color: Optional[str] = Field( 
    default=None, description="Personas matu krāsa, ja zināma" 
) 
height_in_meters: Optional[str] = Field( 
    default=None, description="Augums metros" 
)</code></pre></div></div>

Uzvednes veidnes konfigurēšana

Tagad definēsim uzvednes veidni, kas norāda Claude, kā veikt datu iegūšanas uzdevumu:

from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder 
 

prompt_template = ChatPromptTemplate.from_messages(
[
(
"system",
"Jūs esat eksperta datu iegūšanas algoritms. "
"Iegūstiet tikai atbilstošu informāciju no teksta. "
"Ja nezināt pieprasītā atribūta vērtību, "
"atgrieziet null šim atribūtam.",
),
("human", "{text}"),
]
)

Modeļa inicializēšana

Inicializēsim Claude modeli, kas veiks mūsu informācijas iegūšanu:

import getpass 
import os 
 

if not os.environ.get("ANTHROPIC_API_KEY"):
os.environ["ANTHROPIC_API_KEY"] = getpass.getpass("Ievadiet Anthropic API atslēgu: ")

from langchain.chat_models import init_chat_model

llm = init_chat_model("claude-3-7-sonnet-20250219", model_provider="anthropic")

Konfigurēsim modeli, lai tas atgrieztu strukturētu izvadi atbilstoši mūsu shēmai:

structured_llm = llm.with_structured_output(schema=Person)

Sistēmas testēšana

Pārbaudīsim mūsu datu iegūšanas sistēmu ar vienkāršu piemēru:

text = "Alans Smitss ir 6 pēdu garš un viņam ir blondi mati." 
prompt = prompt_template.invoke({"text": text}) 
result = structured_llm.invoke(prompt) 
print(result)

Tagad izmēģināsim sarežģītāku piemēru:

from typing import List 
 

class Data(BaseModel):
"""Konteineris iegūtai informācijai par personām."""
people: List[Person] = Field(default_factory=list, description="Personu saraksts, kas minēts tekstā")

structured_llm = llm.with_structured_output(schema=Data)

text = "Mani sauc Džefs, man ir melni mati un es esmu 6 pēdu garš. Annai ir tāda pati matu krāsa kā man."
prompt = prompt_template.invoke({"text": text})
result = structured_llm.invoke(prompt)
print(result)

Šis pamācība parāda, kā izveidet strukturētu informācijas iegūšanas sistēmu, kas pārveido nestrukturētu tekstu par organizētiem datiem par personām. Pieeja izmanto Pydantic shēmas, pielāgotas uzvednes un piemēru virzītu uzlabošanos, neprasot specializētas apmācības pipelīnes.


Atrast Colab piezīmju grāmatu. Neaizmirstiet sekot mums Twitter un pievienoties mūsu Telegram kanālam un LinkedIn grupai. Pievienojieties arī mūsu 85k+ ML SubReddit.

https://www.marktechpost.com/

Atbildēt

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti kā *

© 2025 AI LATVIA