2026-02-26 19:00:57,073 - INFO - Anonymized telemetry enabled. See https://docs.trychroma.com/telemetry for more information. 2026-02-26 19:00:57,211 - INFO - 成功找到节点定义JSON代码块 2026-02-26 19:00:57,211 - INFO - 成功解析出动作节点: ['approach_target', 'deliver_payload', 'fly_sequence', 'fly_to_waypoint', 'land', 'loiter', 'manual_confirmation', 'move_direction', 'object_detect', 'return_emergency', 'rotate', 'rotate_search', 'search_pattern', 'system_checks', 'take_photos', 'takeoff', 'track_object'] 2026-02-26 19:00:57,211 - INFO - 成功解析出条件节点: ['at_waypoint', 'object_detected'] INFO: Started server process [26111] INFO: Waiting for application startup. 2026-02-26 19:00:57,217 - INFO - WebSocket event loop configured. INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) INFO: 127.0.0.1:46065 - "GET /docs HTTP/1.1" 200 OK 2026-02-26 19:01:05,074 - INFO - ========== [Stage 1] Task Understanding ========== 2026-02-26 19:01:05,881 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK" 2026-02-26 19:01:05,886 - INFO - Task Understanding Results: mode=scene1, state=in_air, intent=generic_mission, risks=[] INFO: 127.0.0.1:46071 - "POST /debug_stage HTTP/1.1" 200 OK 2026-02-26 19:01:23,412 - INFO - ========== [Stage 1] Task Understanding ========== 2026-02-26 19:01:23,780 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK" 2026-02-26 19:01:23,780 - INFO - Task Understanding Results: mode=scene1, state=in_air, intent=generic_mission, risks=[] INFO: 127.0.0.1:44329 - "POST /debug_stage HTTP/1.1" 200 OK 2026-02-26 19:01:36,748 - INFO - ========== [Stage 1] Task Understanding ========== 2026-02-26 19:01:37,168 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK" 2026-02-26 19:01:37,169 - INFO - Task Understanding Results: mode=scene1, state=in_air, intent=generic_mission, risks=[] INFO: 127.0.0.1:44483 - "POST /debug_stage HTTP/1.1" 200 OK 2026-02-26 19:15:34,050 - INFO - ========== [Stage 1] Task Understanding ========== 2026-02-26 19:15:34,569 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK" 2026-02-26 19:15:34,570 - INFO - Task Understanding Results: mode=scene1, state=in_air, intent=generic_mission, risks=[] 2026-02-26 19:15:34,570 - INFO - ========== [Stage 2] Context Binding ========== 2026-02-26 19:15:34,799 - INFO - Context Binding Results: Required Actions=['Selector', 'Sequence', 'fly_to_waypoint', 'land', 'move_direction', 'object_detect', 'object_detected', 'rotate_search', 'take_photos', 'takeoff'], RAG Scopes=['location', 'pattern'] INFO: 127.0.0.1:47143 - "POST /debug_stage HTTP/1.1" 200 OK 2026-02-26 19:18:26,812 - INFO - ========== [Stage 1] Task Understanding ========== 2026-02-26 19:18:27,220 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK" 2026-02-26 19:18:27,220 - INFO - Task Understanding Results: mode=scene1, state=in_air, intent=generic_mission, risks=[] 2026-02-26 19:18:27,220 - INFO - ========== [Stage 2] Context Binding ========== 2026-02-26 19:18:27,276 - INFO - Context Binding Results: Required Actions=['Selector', 'Sequence', 'fly_to_waypoint', 'land', 'move_direction', 'object_detect', 'object_detected', 'rotate_search', 'take_photos', 'takeoff'], RAG Scopes=['location', 'pattern'] 2026-02-26 19:18:27,276 - INFO - ========== [Stage 3] Macro Planning (Round 1) ========== 2026-02-26 19:18:27,278 - INFO - [Round 1] System Prompt Preview (first 500 chars): 任务:根据用户的自然语言指令,规划无人机的宏观执行流程结构,并提取执行该流程所需的外部参数。 你现在是第一阶段“宏观规划与意图提取”AI。你只需要做两件事: 1. 分析意图并排出正确的骨架树(不需要填充任何 parameters/params)。 2. 从用户指令中提取出需要查询确切位置或目标属性的实体清单(如地标、方向、距离、识别目标)。 **严格约束**:仅输出符合以下 JSON 格式的数据,**禁止**包含任何外部分析、Markdown 标记外的纯文本,或者多余的字段。 输出格式约定: ```json { "macro_tree": { ... 纯结构树 ... }, "parameter_requests": [ { "node": "节点名称", "intent": "对该节点意图的简短描述", "extracted_entities": { "实体key": "实体value" } } ] } ``` ## 一、核心节点定义(裁剪后) #### 1. 可用节点定义 (必须遵守... 2026-02-26 19:18:27,278 - INFO - [Round 1] User Prompt: 飞到广场东边50米 --- 参考知识: 【地点知识】 {"property": "location", "information": {"name": "广场", "coordinates": {"x": 100, "y": 260, "z": 0}}} {"property": "location", "information": {"name": "飞行场地", "coordinates": {"x": 0, "y": 0, "z": 0}}} {"property": "location", "information": {"name": "大楼外围四个点东南天坐标系坐标", "coordinates": {"A": {"x": -24.0, "y": 241.8, "z": 0}, "B": {"x": -108.5, "y": 241.8, "z": 0}, "C": {"x": -108.5, "y": 289.8, "z": 0}, "D": {"x": -24.0, "y": 292.8, "z": 0}}}} 【任务模式】 无人机当前在空中,往广场西边飞200米,持续监控5分钟,发现人就拍照告诉我,到时间可以返航。 无人机当前在地面,去研究所正大门,搜索扎辫子女子,找到后拍照。 地面起飞后到面前大楼约12米高度,沿外围巡查打开窗户;如发现窗户则拍照回传。 --- 2026-02-26 19:18:36,039 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK" 2026-02-26 19:18:36,039 - INFO - [Round 1] Output Macro Tree: { "root": { "type": "Sequence", "name": "FlyToSquareEast50", "children": [ { "type": "action", "name": "fly_to_waypoint" } ] } } 2026-02-26 19:18:36,039 - INFO - [Round 1] Output Parameter Requests: [ { "node": "fly_to_waypoint", "intent": "前往广场东边50米", "extracted_entities": { "landmark": "广场", "direction": "东", "distance": 50.0 } } ] INFO: 127.0.0.1:46185 - "POST /debug_stage HTTP/1.1" 200 OK