Langgraph Tools_condition предварительно созданный метод маршрутизации к другим узлам вместо конечного узлаPython

Программы на Python
Ответить
Anonymous
 Langgraph Tools_condition предварительно созданный метод маршрутизации к другим узлам вместо конечного узла

Сообщение Anonymous »

Я строил довольно простой график с помощью Langgraph. Я решил использовать встроенную функцию Tools_condition из langgraph. Поэтому я импортировал его и использовал следующим образом:

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

graph_builder = StateGraph(State)
graph_builder.add_node("chatbot", assistant)
graph_builder.add_node("tools", lambda state: run_tool(state, tools={"athena_query":athena_query}))
graph_builder.add_node("report_checker", report_check)

graph_builder.add_edge(START, "chatbot")
graph_builder.add_conditional_edges(
"chatbot",
tools_condition
)
# graph_builder.add_edge("chatbot", "tools")
graph_builder.add_edge("tools", "chatbot")
graph_builder.add_edge("chatbot", "report_checker")

graph = graph_builder.compile(checkpointer=memory)
Результирующий график выглядит следующим образом:
Изображение

Не имеет смысла существование условного ребра, указывающего от помощника к report_checker, когда я указываю, что это обычное ребро. Почему по умолчаниюtools_condition создает условные ребра для всего остального, если это не вызов инструмента, а не просто переход к END?
Я знаю это, потому что если я передаю аргументы маршрутизации, указывающие, куда они должны идти, дополнительные условные ребра исчезают:

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

graph_builder = StateGraph(State)
graph_builder.add_node("chatbot", assistant)
graph_builder.add_node("tools", lambda state: run_tool(state, tools={"athena_query":athena_query}))
graph_builder.add_node("report_checker", report_check)

graph_builder.add_edge(START, "chatbot")
graph_builder.add_conditional_edges(
"chatbot",
tools_condition,
{
"END": END,
"tools": "tools",
}
)
graph_builder.add_edge("tools", "chatbot")
graph_builder.add_edge("chatbot", "report_checker")

graph = graph_builder.compile(checkpointer=memory)
Нежелательное условное ребро теперь исчезло:
Изображение

Почему по умолчаниюtools_condition маршрутизирует основной узел куда-то, кроме узла END?>

Подробнее здесь: https://stackoverflow.com/questions/790 ... ead-of-end
Ответить

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

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

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

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

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