39 lines
1.7 KiB
Python
39 lines
1.7 KiB
Python
|
|
from __future__ import annotations
|
||
|
|
|
||
|
|
from app.services.scenes.gate_rules import GateRule, SceneRoute
|
||
|
|
from app.services.scenes.scene_descriptor import SceneDescriptor
|
||
|
|
from app.services.scenes.scene_registry import register_scene
|
||
|
|
|
||
|
|
|
||
|
|
def register() -> None:
|
||
|
|
register_scene(
|
||
|
|
SceneDescriptor(
|
||
|
|
scene_id="expense_application",
|
||
|
|
label="费用申请",
|
||
|
|
assigned_agent="application_assistant",
|
||
|
|
signal_keywords=(
|
||
|
|
"申请", "出差", "差旅", "费用", "交通", "住宿", "采购", "会务", "会议",
|
||
|
|
"客户现场", "项目", "拜访", "调研", "驻场", "上线", "验收",
|
||
|
|
),
|
||
|
|
ontology_fields=(), # 沿用全局 BUSINESS_CANONICAL_FIELDS,运行时 fallback
|
||
|
|
gate=GateRule.MODEL_ONLY,
|
||
|
|
route=SceneRoute.MODEL_INTENT,
|
||
|
|
handler=None,
|
||
|
|
action_steps_builder=None, # 运行时从 StewardActionPlanBuilder 取
|
||
|
|
can_resume=True,
|
||
|
|
flow_id="travel_application",
|
||
|
|
side_effect_actions=("save_application_draft", "submit_application", "run_duplicate_precheck"),
|
||
|
|
noop_actions=(
|
||
|
|
"fill_application_fields",
|
||
|
|
"build_application_preview",
|
||
|
|
"validate_required_fields",
|
||
|
|
),
|
||
|
|
executor=None, # 运行时从 StewardActionExecutor 取
|
||
|
|
prompt_fragment=(
|
||
|
|
"用户描述未来出差、差旅计划、去某地几天、部署、支撑、拜访或会议安排时,"
|
||
|
|
"即使没有出现“申请”两个字,也必须优先识别为 expense_application。"
|
||
|
|
),
|
||
|
|
priority=100,
|
||
|
|
)
|
||
|
|
)
|