
英中对照表(代码中的节点名)
表格
| 步骤 | 节点英文名(add_node 用) |
中文名 | 功能 |
|---|---|---|---|
| 1 | classify |
分类 | 判断工单类型(售前/售后/技术/其他) |
| 2 | retrieve |
检索 | 多源搜索知识库,结果累加(operator.add) |
| 3 | draft |
草稿 | 生成回复草稿 |
| 4 | check_quality |
质量打分 | 评估草稿质量,输出分数 |
| 5 | revise |
重写 | 重写次数+1,清空docs(Overwrite([])) |
| 6 | escalate |
转人工 | 降级给人工客服处理 |
| 7 | human_review |
人工审核 | 暂停等待审批(interrupt) |
| 8 | send |
发送回复 | 执行最终操作(幂等) |
# ticket_workflow.py - 综合示例:Multi Schema + 循环 + 中断 + 幂等
from typing import Annotated, Literal
from operator import add
from typing_extensions import TypedDict
from langgraph.graph import StateGraph, START, END, MessagesState
from langgraph.graph.message import add_messages
from langgraph.managed import RemainingSteps
from langgraph.types import interrupt, Command, Overwrite
from langgraph.checkpoint.memory import InMemorySaver
# ===== 1. 状态定义(Multi Schema) =====
class InputState(TypedDict):
ticket_id: str
question: str
class OutputState(TypedDict):
final_answer: str
escalated: bool
class OverallState(TypedDict):
ticket_id: str
question: str
category: str
docs: Annotated[list, add] # 多源检索累加
draft: str
score: float
revisions: int
final_answer: str
escalated: bool
remaining_steps: RemainingSteps # 步数收敛
class PrivateState(TypedDict):
prompt_debug: str # 仅内部调试用
# ===== 2. 节点实现 =====
def classify(state: InputState) -> OverallState:
"""分类(模拟)"""
q = state["question"]
if "退款" in q:
category = "售后"
elif "技术" in q:
category = "技术"
else:
category = "其他"
return {"category": category, "revisions": 0, "escalated": False}
def retrieve

357

被折叠的 条评论
为什么被折叠?



