Почему мое состояние не передается правильно в рабочем процессе LangGraph?Python

Программы на Python
Ответить
Anonymous
 Почему мое состояние не передается правильно в рабочем процессе LangGraph?

Сообщение Anonymous »

У меня есть простая серия узлов, связанных между собой условными ребрами. Первые два показаны здесь:

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

def email_router(state: TypedDict) -> None:
node_results, state = get_emails(state)
if node_results == "New Email":
state["internal_state"] = "topics_router"
else:
state["errors"] = "No New Mail"
state["internal_state"] = "return_final_status"

def check_internal_state(state: TypedDict) -> str:
logging.debug(f"Internal State: {state["internal_state"]}")
return state["internal_state"]
В маршрутизаторе электронной почты я устанавливаю значение состояния «internal_state» либо на «topics_router», либо на «return_final_status», которые являются двумя другими узлами. Check_internal_state предназначен просто для включения условного края, который выглядит следующим образом:

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

workflow.add_conditional_edges(
"email_router",
check_internal_state,
{
"topics_router": "topics_router",
"return_final_status": "return_final_status",
},
)
Инструкция отладки журнала в check_internal_state продолжает возвращать пустую строку, что означает, что я неправильно передаю информацию о состоянии и не могу понять, что делаю неправильно.
Код устанавливается в классах. единственная функция, компилирующая код и сохраняющая выходные данные как:

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

global mailman
mailman = workflow.compile()
У меня есть еще одна функция в том же файле Python, которая затем вызывает mailman и вызывает функции, которые находятся в другом файле Python, но импортируются. Я поднимаю этот вопрос только потому, что, возможно, проблема связана с разделением вещей на несколько функций? Вот общий рабочий процесс:

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

workflow = StateGraph(GraphState)
workflow.add_node("email_router", email_router)
workflow.add_node("topics_router", topics_router)
workflow.add_node("status_router", status_router)
workflow.add_node("actions_router", actions_router)
workflow.add_node("return_final_status", return_final_status_node)

workflow.set_entry_point("email_router")

workflow.add_conditional_edges(
"email_router",
check_internal_state,
{
"topics_router": "topics_router",
"return_final_status": "return_final_status",
},
)

workflow.add_conditional_edges(
"topics_router",
check_internal_state,
{
"status_router": "status_router",
"return_final_status": "return_final_status",
},
)

workflow.add_conditional_edges(
"status_router",
check_internal_state,
{
"actions_router": "actions_router",
"return_final_status": "return_final_status",
},
)

workflow.add_edge("actions_router", "return_final_status")
workflow.add_edge("return_final_status", END)
Кто-нибудь знает, что я делаю неправильно? Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/785 ... h-workflow
Ответить

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

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

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

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

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