Files
my-v0-server/app/processor/state.py
T
2026-09-30 08:57:39 -07:00

63 lines
3.3 KiB
Python

from typing import Literal, NotRequired, TypedDict
from app.schemas.action_repair import ActionRepairPlan
from app.schemas.action_validation import ActionValidationError
from app.schemas.actions import Action
from app.schemas.base import JsonObject
from app.schemas.change_scope import ChangeScope
from app.schemas.clarification import Clarification
from app.schemas.clarification_reply import ClarificationReply
from app.schemas.component_resource import ComponentResult
from app.schemas.decision import DecisionResponse
from app.schemas.input_context import InputContext
from app.schemas.requirement import Intent, Requirement
from app.schemas.screen import Screen
from app.schemas.screen_plan import ScreenPlan
class QueryState(TypedDict):
conversation_id: NotRequired[str] # 当前聊天会话 ID
thread_id: NotRequired[str] # 当前任务 ID
message_id: NotRequired[str] # 本次触发执行的用户消息 ID,澄清恢复时更新
request: JsonObject # 原始请求,保留提交时的内容
input_context: NotRequired[InputContext] # 校验后的上下文,包含最新大屏和澄清历史
intent_decision: NotRequired[DecisionResponse | None] # Jev 原始意图判断及分数
intent: NotRequired[Intent | None] # 经过置信度门控的最终意图
requirement: NotRequired[Requirement | None] # 结构化需求及信息完整性判断
requirement_outcome: NotRequired[
Literal["execute", "clarify", "inform"] | None
] # 落地策略决定的本轮去向,见 outcome_policy
notice: NotRequired[str | None] # 无法执行时交给回答节点的事实说明
offer: NotRequired[str | None] # 本轮助手提出、等待用户确认的修改指令
accepted_offer: NotRequired[str | None] # 用户本轮同意执行的上一轮提议
change_scope: NotRequired[ChangeScope | None] # 修改范围、规划和资源需求
screen_plan: NotRequired[
ScreenPlan | None
] # 大屏设计规划,尚未获取业务数据或生成动作
component_resources: NotRequired[
ComponentResult | None
] # 已查询的前端物料能力及目录版本
actions: NotRequired[
list[Action] | None
] # 生成的动作列表,是否可模拟执行由校验结果标记
validation_passed: NotRequired[
bool | None
] # 整批模拟执行是否通过,None 表示尚未校验
validation_errors: NotRequired[
list[ActionValidationError]
] # 动作下标、错误类型和原因
simulated_screen: NotRequired[
Screen | None
] # 整批通过后的模拟快照,不覆盖原始上下文
clarification: NotRequired[Clarification | None] # 当前澄清问题及选项
repair_plan: NotRequired[ActionRepairPlan | None] # 最近一次动作修正建议
retry_count: NotRequired[int] # 已启动的自动修正次数,不含首次生成
failure_reason: NotRequired[str | None] # 停止自动修正后的失败原因
clarification_reply: NotRequired[
ClarificationReply | None
] # 待合并的用户回答或取消指令
answer: NotRequired[str | None] # 问答节点生成的回答或建议
status: NotRequired[
Literal["running", "waiting_for_input", "completed", "cancelled", "failed"]
] # 后端处理、等待补充、处理完成、用户取消或失败,完成不代表前端已执行