Agent.invoke() с Gemini дает противоречивые типы выводаPython

Программы на Python
Ответить
Anonymous
 Agent.invoke() с Gemini дает противоречивые типы вывода

Сообщение Anonymous »

Я использую метод нового агента LangChain 1.0 = create_agent() для создания агента, но получаю противоречивые типы выходных ответов.
Случай 1: str как выходные данные
Когда пользовательский запрос простой, например «Что такое банан», свойство content возвращает строковый тип:

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

response3 = agent.invoke(
{"messages": [{"role": "user", "content": "What is a banana?"}]},
{"configurable": {"thread_id": "2"}}
)

print(response3["messages"][-1].content)
Выход:

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

A banana is an elongated, edible fruit botanically a berry, produced by several kinds of large herbaceous flowering plants in the genus Musa.
Случай 2: список в качестве вывода
Но если пользовательский запрос сбивает с толку, например «Как его зовут», свойство content возвращает тип списка:

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

response3 = agent.invoke(
{"messages": [{"role": "user", "content": "What's its name?"}]},
{"configurable": {"thread_id": "2"}}
)

print(response3["messages"][-1].content)
Вывод:

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

[{'type': 'text', 'text': 'I\'m sorry, I don\'t understand what "it" refers to. Could you please provide more context?', 'extras': {'signature': 'CscCAdHtim+SJIpPCDrUbhw9W'}}]
Это происходит только тогда, когда я использую Gemini-2.5.-flash. С моделями openai этого не происходит.
Эта несогласованность может привести к неожиданным ошибкам. Есть ли правильный способ справиться с этим, не выполняя проверки типов с условными выражениями?
Изменить: Кажется, это происходит только с Gemini-2.5-flash. Я попробовал Gemini-2.0-flash и получил согласованные типы строк.

Подробнее здесь: https://stackoverflow.com/questions/798 ... tput-types
Ответить

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

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

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

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

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