添加 multi-llm 路由智能体(LangGraph),支持多 LLM 分发能力;在 Gateway 中注册 /api/multi-llm 路由,并豁免其 CSRF 和认证校验;同时新增 asyncmy 依赖和聊天流格式文档。 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
52 lines
1.3 KiB
Python
52 lines
1.3 KiB
Python
"""Multi-LLM routing graph.
|
|
|
|
Systems: fast, bigmodel, hxchat, moreModes, rag, taskChat
|
|
|
|
Graph layout:
|
|
START → router → (conditional) → fast / bigmodel / hxchat / more_modes / rag / task_chat → END
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from langgraph.graph import END, START, StateGraph
|
|
|
|
from deerflow.agents.multi_llm.nodes.router import route_by_system, router_node
|
|
from deerflow.agents.multi_llm.nodes.systems import (
|
|
bigmodel_node,
|
|
fast_node,
|
|
hxchat_node,
|
|
more_modes_node,
|
|
rag_node,
|
|
task_chat_node,
|
|
)
|
|
from deerflow.agents.multi_llm.state import MultiLLMState
|
|
|
|
# LangGraph node name → node function
|
|
_SYSTEM_NODES = {
|
|
"fast": fast_node,
|
|
"bigmodel": bigmodel_node,
|
|
"hxchat": hxchat_node,
|
|
"more_modes": more_modes_node,
|
|
"rag": rag_node,
|
|
"task_chat": task_chat_node,
|
|
}
|
|
|
|
|
|
def build_multi_llm_graph(checkpointer=None):
|
|
g = StateGraph(MultiLLMState)
|
|
|
|
g.add_node("router", router_node)
|
|
for name, fn in _SYSTEM_NODES.items():
|
|
g.add_node(name, fn)
|
|
|
|
g.add_edge(START, "router")
|
|
g.add_conditional_edges(
|
|
"router",
|
|
route_by_system,
|
|
{name: name for name in _SYSTEM_NODES},
|
|
)
|
|
for name in _SYSTEM_NODES:
|
|
g.add_edge(name, END)
|
|
|
|
return g.compile(checkpointer=checkpointer)
|