Langchain with_structured_output Анализ словаря списков пользовательских классовPython

Программы на Python
Ответить
Anonymous
 Langchain with_structured_output Анализ словаря списков пользовательских классов

Сообщение Anonymous »

Я пытаюсь использовать Langchain для извлечения структурированного вывода из неструктурированного текста с помощью вызова инструментов LLM.
У меня есть работающий код:

Код: Выделить всё

  import os
from pydantic import BaseModel, Field
from langchain_openai import ChatOpenAI

model = ChatOpenAI(model="gpt-4o-mini-2024-07-18", temperature=0.0)

class A(BaseModel):
a_1: str
a_2: str
r: str

class B(BaseModel):
a: str
b_1: str
b_2: str
r: str

class C(BaseModel):
ccc:List[A]
ppp: List[B]

structured_llm = model.with_structured_output(C)

response = structured_llm.invoke(prompt)
Я хочу получить «a» в качестве ключа в ppp , но приведенный ниже код (с использованием Dict) не работает:

Код: Выделить всё

  import os
from pydantic import BaseModel, Field
from langchain_openai import ChatOpenAI

model = ChatOpenAI(model="gpt-4o-mini-2024-07-18", temperature=0.0)

class A(BaseModel):
a_1: str
a_2: str
r: str

class B(BaseModel):
b_1: str
b_2: str
r: str

class C(BaseModel):
ccc:List[A]
ppp: Dict[str, List[B]]

structured_llm = model.with_structured_output(C)

response = structured_llm.invoke(prompt)

Ошибка:

Код: Выделить всё

ValidationError: 1 validation error for C
ppp
Field required [type=missing, input_value={'ccc': [{'a_1': 'Price',...tant to Battery Life'}]}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.9/v/missing
Есть идеи, как отформатировать его как Dict?

Подробнее здесь: https://stackoverflow.com/questions/791 ... om-classes
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»