2765 lines
148 KiB
Plaintext
2765 lines
148 KiB
Plaintext
2025-12-08 16:08:28,649 - INFO - Anonymized telemetry enabled. See https://docs.trychroma.com/telemetry for more information.
|
||
2025-12-08 16:08:28,735 - ERROR - 在系统提示词中未找到'可用节点定义'部分的JSON代码块。
|
||
2025-12-08 16:08:28,736 - WARNING - 使用备用方案解析节点定义...
|
||
2025-12-08 16:08:28,736 - INFO - 从第1个JSON块中成功解析出节点定义
|
||
2025-12-08 16:08:28,736 - INFO - 动作节点: ['battle_damage_assessment', 'deliver_payload', 'emergency_return', 'fly_to_waypoint', 'land', 'loiter', 'move_direction', 'object_detect', 'orbit_around_point', 'orbit_around_target', 'preflight_checks', 'search_pattern', 'strike_target', 'takeoff', 'track_object']
|
||
2025-12-08 16:08:28,736 - INFO - 条件节点: ['at_waypoint', 'battery_above', 'gps_status', 'object_detected', 'target_destroyed', 'time_elapsed']
|
||
INFO: Started server process [4171895]
|
||
INFO: Waiting for application startup.
|
||
2025-12-08 16:08:28,743 - 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:60176 - "GET /docs HTTP/1.1" 200 OK
|
||
2025-12-08 16:08:41,090 - INFO - 接收到用户请求: 起飞
|
||
2025-12-08 16:08:41,229 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:08:41,256 - INFO - 分类结果: simple
|
||
2025-12-08 16:08:41,256 - INFO - --- 开始从向量数据库检索上下文 ---
|
||
2025-12-08 16:08:41,281 - INFO - --- 成功检索到上下文信息 ---
|
||
2025-12-08 16:08:41,281 - INFO - 📚 检索到的上下文内容:
|
||
在地图上有一个名为 '跷跷板' 的地点或区域,它的leisure是'playground',其中心位置坐标大约在 (x:15, y:-8.5, z:1.2)。
|
||
|
||
在地图上有一个名为 'A地' 的地点或区域,它的building是'commercial',其中心位置坐标大约在 (x:10, y:-10, z:2)。
|
||
|
||
在地图上有一个名为 '学生宿舍' 的地点或区域,它的building是'dormitory',其中心位置坐标大约在 (x:5, y:3, z:2)。
|
||
2025-12-08 16:08:41,281 - INFO - --- 第 1/3 次尝试生成Pytree ---
|
||
2025-12-08 16:08:41,407 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:08:41,408 - INFO - ✅ 简单模式JSON Schema验证成功
|
||
2025-12-08 16:08:41,434 - INFO - ✅ 任务树可视化成功
|
||
2025-12-08 16:08:41,434 - INFO - 图形已保存到: /home/iscas/WorkSpace/code/DronePlanning/backend_service/generated_visualizations/py_tree.png
|
||
2025-12-08 16:08:41,434 - INFO - 未在模型输出中发现 <think> 推理链片段。若需捕获,请设置 ENABLE_REASONING_CAPTURE=true 以放宽JSON强制格式。
|
||
INFO: 127.0.0.1:59924 - "POST /generate_plan HTTP/1.1" 200 OK
|
||
2025-12-08 16:08:42,439 - INFO - 接收到用户请求: 起飞后移动到学生宿舍上方降落
|
||
2025-12-08 16:08:42,489 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:08:42,489 - INFO - 分类结果: simple
|
||
2025-12-08 16:08:42,489 - INFO - --- 开始从向量数据库检索上下文 ---
|
||
2025-12-08 16:08:42,526 - INFO - --- 成功检索到上下文信息 ---
|
||
2025-12-08 16:08:42,526 - INFO - 📚 检索到的上下文内容:
|
||
在地图上有一个名为 '学生宿舍' 的地点或区域,它的building是'dormitory',其中心位置坐标大约在 (x:5, y:3, z:2)。
|
||
|
||
在地图上有一个名为 '跷跷板' 的地点或区域,它的leisure是'playground',其中心位置坐标大约在 (x:15, y:-8.5, z:1.2)。
|
||
|
||
在地图上有一个名为 'A地' 的地点或区域,它的building是'commercial',其中心位置坐标大约在 (x:10, y:-10, z:2)。
|
||
2025-12-08 16:08:42,526 - INFO - --- 第 1/3 次尝试生成Pytree ---
|
||
2025-12-08 16:08:42,593 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:08:42,594 - INFO - ✅ 简单模式JSON Schema验证成功
|
||
2025-12-08 16:08:42,617 - INFO - ✅ 任务树可视化成功
|
||
2025-12-08 16:08:42,617 - INFO - 图形已保存到: /home/iscas/WorkSpace/code/DronePlanning/backend_service/generated_visualizations/py_tree.png
|
||
2025-12-08 16:08:42,617 - INFO - 未在模型输出中发现 <think> 推理链片段。若需捕获,请设置 ENABLE_REASONING_CAPTURE=true 以放宽JSON强制格式。
|
||
INFO: 127.0.0.1:59926 - "POST /generate_plan HTTP/1.1" 200 OK
|
||
2025-12-08 16:08:43,623 - INFO - 接收到用户请求: 起飞后移动到学生宿舍上方查找蓝色的车
|
||
2025-12-08 16:08:43,662 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:08:43,663 - INFO - 分类结果: simple
|
||
2025-12-08 16:08:43,663 - INFO - --- 开始从向量数据库检索上下文 ---
|
||
2025-12-08 16:08:43,686 - INFO - --- 成功检索到上下文信息 ---
|
||
2025-12-08 16:08:43,686 - INFO - 📚 检索到的上下文内容:
|
||
在地图上有一个名为 '学生宿舍' 的地点或区域,它的building是'dormitory',其中心位置坐标大约在 (x:5, y:3, z:2)。
|
||
|
||
在地图上有一个名为 '跷跷板' 的地点或区域,它的leisure是'playground',其中心位置坐标大约在 (x:15, y:-8.5, z:1.2)。
|
||
|
||
在地图上有一个名为 'A地' 的地点或区域,它的building是'commercial',其中心位置坐标大约在 (x:10, y:-10, z:2)。
|
||
2025-12-08 16:08:43,686 - INFO - --- 第 1/3 次尝试生成Pytree ---
|
||
2025-12-08 16:08:43,843 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:08:43,844 - INFO - ✅ 简单模式JSON Schema验证成功
|
||
2025-12-08 16:08:43,866 - INFO - ✅ 任务树可视化成功
|
||
2025-12-08 16:08:43,866 - INFO - 图形已保存到: /home/iscas/WorkSpace/code/DronePlanning/backend_service/generated_visualizations/py_tree.png
|
||
2025-12-08 16:08:43,866 - INFO - 未在模型输出中发现 <think> 推理链片段。若需捕获,请设置 ENABLE_REASONING_CAPTURE=true 以放宽JSON强制格式。
|
||
INFO: 127.0.0.1:59942 - "POST /generate_plan HTTP/1.1" 200 OK
|
||
2025-12-08 16:08:44,871 - INFO - 接收到用户请求: 起飞后移动到学生宿舍上方寻找蓝色的车
|
||
2025-12-08 16:08:44,907 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:08:44,907 - INFO - 分类结果: simple
|
||
2025-12-08 16:08:44,907 - INFO - --- 开始从向量数据库检索上下文 ---
|
||
2025-12-08 16:08:44,930 - INFO - --- 成功检索到上下文信息 ---
|
||
2025-12-08 16:08:44,930 - INFO - 📚 检索到的上下文内容:
|
||
在地图上有一个名为 '学生宿舍' 的地点或区域,它的building是'dormitory',其中心位置坐标大约在 (x:5, y:3, z:2)。
|
||
|
||
在地图上有一个名为 '跷跷板' 的地点或区域,它的leisure是'playground',其中心位置坐标大约在 (x:15, y:-8.5, z:1.2)。
|
||
|
||
在地图上有一个名为 'A地' 的地点或区域,它的building是'commercial',其中心位置坐标大约在 (x:10, y:-10, z:2)。
|
||
2025-12-08 16:08:44,930 - INFO - --- 第 1/3 次尝试生成Pytree ---
|
||
2025-12-08 16:08:45,075 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:08:45,076 - INFO - ✅ 简单模式JSON Schema验证成功
|
||
2025-12-08 16:08:45,106 - INFO - ✅ 任务树可视化成功
|
||
2025-12-08 16:08:45,106 - INFO - 图形已保存到: /home/iscas/WorkSpace/code/DronePlanning/backend_service/generated_visualizations/py_tree.png
|
||
2025-12-08 16:08:45,106 - INFO - 未在模型输出中发现 <think> 推理链片段。若需捕获,请设置 ENABLE_REASONING_CAPTURE=true 以放宽JSON强制格式。
|
||
INFO: 127.0.0.1:59946 - "POST /generate_plan HTTP/1.1" 200 OK
|
||
2025-12-08 16:08:46,111 - INFO - 接收到用户请求: 起飞后移动到学生宿舍上方检测蓝色的车
|
||
2025-12-08 16:08:46,148 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:08:46,149 - INFO - 分类结果: complex
|
||
2025-12-08 16:08:46,149 - INFO - --- 开始从向量数据库检索上下文 ---
|
||
2025-12-08 16:08:46,173 - INFO - --- 成功检索到上下文信息 ---
|
||
2025-12-08 16:08:46,173 - INFO - 📚 检索到的上下文内容:
|
||
在地图上有一个名为 '学生宿舍' 的地点或区域,它的building是'dormitory',其中心位置坐标大约在 (x:5, y:3, z:2)。
|
||
|
||
在地图上有一个名为 '跷跷板' 的地点或区域,它的leisure是'playground',其中心位置坐标大约在 (x:15, y:-8.5, z:1.2)。
|
||
|
||
在地图上有一个名为 'A地' 的地点或区域,它的building是'commercial',其中心位置坐标大约在 (x:10, y:-10, z:2)。
|
||
2025-12-08 16:08:46,173 - INFO - --- 第 1/3 次尝试生成Pytree ---
|
||
2025-12-08 16:08:47,251 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:08:47,255 - WARNING - ❌ Pytree验证失败
|
||
2025-12-08 16:08:47,255 - WARNING - 错误信息: 1 is not of type 'object'
|
||
2025-12-08 16:08:47,255 - WARNING - 错误路径: root -> children -> 0 -> children -> 3
|
||
2025-12-08 16:08:47,255 - WARNING - ❌ 未通过验证的Pytree(第 1/3 次尝试):
|
||
{
|
||
"root": {
|
||
"type": "Parallel",
|
||
"name": "MissionWithSafety",
|
||
"params": {
|
||
"policy": "all_success"
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "Sequence",
|
||
"name": "MainTask",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "preflight_checks",
|
||
"params": {
|
||
"check_level": "comprehensive"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "takeoff",
|
||
"params": {
|
||
"altitude": 10.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "fly_to_waypoint",
|
||
"params": {
|
||
"x": 200.0,
|
||
"y": 150.0,
|
||
"z": 10.0
|
||
}
|
||
},
|
||
1,
|
||
{
|
||
"type": "action",
|
||
"name": "object_detect",
|
||
"params": {
|
||
"target_class": "car",
|
||
"description": "蓝色",
|
||
"count": "默认1"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "land",
|
||
"params": {
|
||
"mode": "home"
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"type": "Selector",
|
||
"name": "SafetyMonitor",
|
||
"params": {
|
||
"memory": true
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "condition",
|
||
"name": "battery_above",
|
||
"params": {
|
||
"threshold": 0.3
|
||
}
|
||
},
|
||
{
|
||
"type": "condition",
|
||
"name": "gps_status",
|
||
"params": {
|
||
"min_satellites": 8
|
||
}
|
||
},
|
||
{
|
||
"type": "Sequence",
|
||
"name": "EmergencyHandler",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "emergency_return",
|
||
"params": {
|
||
"reason": "safety_breach"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "land",
|
||
"params": {
|
||
"mode": "home"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
}
|
||
2025-12-08 16:08:47,255 - WARNING - 生成的Pytree验证失败,正在重试...
|
||
2025-12-08 16:08:47,255 - INFO - --- 第 2/3 次尝试生成Pytree ---
|
||
2025-12-08 16:08:48,550 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:08:48,553 - WARNING - ❌ Pytree验证失败
|
||
2025-12-08 16:08:48,553 - WARNING - 错误信息: 1 is not of type 'object'
|
||
2025-12-08 16:08:48,553 - WARNING - 错误路径: root -> children -> 0 -> children -> 3
|
||
2025-12-08 16:08:48,553 - WARNING - ❌ 未通过验证的Pytree(第 2/3 次尝试):
|
||
{
|
||
"root": {
|
||
"type": "Parallel",
|
||
"name": "MissionWithSafety",
|
||
"params": {
|
||
"policy": "all_success"
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "Sequence",
|
||
"name": "MainTask",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "preflight_checks",
|
||
"params": {
|
||
"check_level": "comprehensive"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "takeoff",
|
||
"params": {
|
||
"altitude": 10.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "fly_to_waypoint",
|
||
"params": {
|
||
"x": 200.0,
|
||
"y": 150.0,
|
||
"z": 10.0
|
||
}
|
||
},
|
||
1,
|
||
{
|
||
"type": "action",
|
||
"name": "search_pattern",
|
||
"params": {
|
||
"pattern_type": "grid",
|
||
"center_x": 200,
|
||
"center_y": 150,
|
||
"center_z": 10,
|
||
"radius": 50,
|
||
"target_class": "car",
|
||
"description": "蓝色"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "track_object",
|
||
"params": {
|
||
"target_class": "car",
|
||
"description": "蓝色",
|
||
"track_time": 30.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "land",
|
||
"params": {
|
||
"mode": "home"
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"type": "Selector",
|
||
"name": "SafetyMonitor",
|
||
"params": {
|
||
"memory": true
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "condition",
|
||
"name": "battery_above",
|
||
"params": {
|
||
"threshold": 0.3
|
||
}
|
||
},
|
||
{
|
||
"type": "condition",
|
||
"name": "gps_status",
|
||
"params": {
|
||
"min_satellites": 8
|
||
}
|
||
},
|
||
{
|
||
"type": "Sequence",
|
||
"name": "EmergencyHandler",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "emergency_return",
|
||
"params": {
|
||
"reason": "safety_breach"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "land",
|
||
"params": {
|
||
"mode": "home"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
"target_class": "car",
|
||
"description": "蓝色"
|
||
}
|
||
2025-12-08 16:08:48,553 - WARNING - 生成的Pytree验证失败,正在重试...
|
||
2025-12-08 16:08:48,553 - INFO - --- 第 3/3 次尝试生成Pytree ---
|
||
2025-12-08 16:08:49,586 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:08:49,589 - INFO - ✅ JSON Schema验证成功
|
||
2025-12-08 16:08:49,589 - INFO - ✅ 安全监控验证通过
|
||
2025-12-08 16:08:49,590 - INFO - ✅ 成功生成并验证了Pytree
|
||
2025-12-08 16:08:49,651 - INFO - ✅ 任务树可视化成功
|
||
2025-12-08 16:08:49,651 - INFO - 图形已保存到: /home/iscas/WorkSpace/code/DronePlanning/backend_service/generated_visualizations/py_tree.png
|
||
2025-12-08 16:08:49,651 - INFO - 未在模型输出中发现 <think> 推理链片段。若需捕获,请设置 ENABLE_REASONING_CAPTURE=true 以放宽JSON强制格式。
|
||
INFO: 127.0.0.1:59952 - "POST /generate_plan HTTP/1.1" 200 OK
|
||
2025-12-08 16:08:50,654 - INFO - 接收到用户请求: 飞到学生宿舍上方查找蓝色的车
|
||
2025-12-08 16:08:50,681 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:08:50,681 - INFO - 分类结果: complex
|
||
2025-12-08 16:08:50,682 - INFO - --- 开始从向量数据库检索上下文 ---
|
||
2025-12-08 16:08:50,753 - INFO - --- 成功检索到上下文信息 ---
|
||
2025-12-08 16:08:50,753 - INFO - 📚 检索到的上下文内容:
|
||
在地图上有一个名为 '学生宿舍' 的地点或区域,它的building是'dormitory',其中心位置坐标大约在 (x:5, y:3, z:2)。
|
||
|
||
在地图上有一个名为 '跷跷板' 的地点或区域,它的leisure是'playground',其中心位置坐标大约在 (x:15, y:-8.5, z:1.2)。
|
||
|
||
在地图上有一个名为 'A地' 的地点或区域,它的building是'commercial',其中心位置坐标大约在 (x:10, y:-10, z:2)。
|
||
2025-12-08 16:08:50,753 - INFO - --- 第 1/3 次尝试生成Pytree ---
|
||
2025-12-08 16:08:51,722 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:08:51,725 - WARNING - ❌ Pytree验证失败
|
||
2025-12-08 16:08:51,725 - WARNING - 错误信息: 1 is not of type 'object'
|
||
2025-12-08 16:08:51,725 - WARNING - 错误路径: root -> children -> 0 -> children -> 3
|
||
2025-12-08 16:08:51,725 - WARNING - ❌ 未通过验证的Pytree(第 1/3 次尝试):
|
||
{
|
||
"root": {
|
||
"type": "Parallel",
|
||
"name": "MissionWithSafety",
|
||
"params": {
|
||
"policy": "all_success"
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "Sequence",
|
||
"name": "MainTask",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "preflight_checks",
|
||
"params": {
|
||
"check_level": "comprehensive"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "takeoff",
|
||
"params": {
|
||
"altitude": 10.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "fly_to_waypoint",
|
||
"params": {
|
||
"x": 200.0,
|
||
"y": 150.0,
|
||
"z": 10.0
|
||
}
|
||
},
|
||
1,
|
||
{
|
||
"type": "action",
|
||
"name": "search_pattern",
|
||
"params": {
|
||
"pattern_type": "grid",
|
||
"center_x": 200.0,
|
||
"center_y": 150.0,
|
||
"center_z": 10.0,
|
||
"radius": 50.0,
|
||
"target_class": "car",
|
||
"description": "蓝色"
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"type": "Selector",
|
||
"name": "SafetyMonitor",
|
||
"params": {
|
||
"memory": true
|
||
}
|
||
},
|
||
{
|
||
"type": "Sequence",
|
||
"name": "EmergencyHandler",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "emergency_return",
|
||
"params": {
|
||
"reason": "safety_breach"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
}
|
||
2025-12-08 16:08:51,725 - WARNING - 生成的Pytree验证失败,正在重试...
|
||
2025-12-08 16:08:51,725 - INFO - --- 第 2/3 次尝试生成Pytree ---
|
||
2025-12-08 16:08:52,756 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:08:52,758 - WARNING - ❌ Pytree验证失败
|
||
2025-12-08 16:08:52,759 - WARNING - 错误信息: 1 is not of type 'object'
|
||
2025-12-08 16:08:52,759 - WARNING - 错误路径: root -> children -> 0 -> children -> 3
|
||
2025-12-08 16:08:52,759 - WARNING - ❌ 未通过验证的Pytree(第 2/3 次尝试):
|
||
{
|
||
"root": {
|
||
"type": "Parallel",
|
||
"name": "MissionWithSafety",
|
||
"params": {
|
||
"policy": "all_success"
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "Sequence",
|
||
"name": "MainTask",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "preflight_checks",
|
||
"params": {
|
||
"check_level": "comprehensive"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "takeoff",
|
||
"params": {
|
||
"altitude": 10.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "fly_to_waypoint",
|
||
"params": {
|
||
"x": 200.0,
|
||
"y": 150.0,
|
||
"z": 10.0
|
||
}
|
||
},
|
||
1,
|
||
{
|
||
"type": "action",
|
||
"name": "search_pattern",
|
||
"params": {
|
||
"pattern_type": "grid",
|
||
"center_x": 200.0,
|
||
"center_y": 150.0,
|
||
"center_z": 10.0,
|
||
"radius": 50.0,
|
||
"target_class": "car",
|
||
"description": "蓝色"
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"type": "Selector",
|
||
"name": "SafetyMonitor",
|
||
"params": {
|
||
"memory": true
|
||
}
|
||
},
|
||
{
|
||
"type": "Sequence",
|
||
"name": "EmergencyHandler",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "emergency_return",
|
||
"params": {
|
||
"reason": "safety_breach"
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "land",
|
||
"params": {
|
||
"mode": "home"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
}
|
||
2025-12-08 16:08:52,759 - WARNING - 生成的Pytree验证失败,正在重试...
|
||
2025-12-08 16:08:52,759 - INFO - --- 第 3/3 次尝试生成Pytree ---
|
||
2025-12-08 16:08:54,100 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:08:54,104 - WARNING - ❌ Pytree验证失败
|
||
2025-12-08 16:08:54,104 - WARNING - 错误信息: 1 is not of type 'object'
|
||
2025-12-08 16:08:54,104 - WARNING - 错误路径: root -> children -> 0 -> children -> 3
|
||
2025-12-08 16:08:54,104 - WARNING - ❌ 未通过验证的Pytree(第 3/3 次尝试):
|
||
{
|
||
"root": {
|
||
"type": "Parallel",
|
||
"name": "MissionWithSafety",
|
||
"params": {
|
||
"policy": "all_success"
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "Sequence",
|
||
"name": "MainTask",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "preflight_checks",
|
||
"params": {
|
||
"check_level": "comprehensive"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "takeoff",
|
||
"params": {
|
||
"altitude": 10.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "fly_to_waypoint",
|
||
"params": {
|
||
"x": 200.0,
|
||
"y": 150.0,
|
||
"z": 10.0
|
||
}
|
||
},
|
||
1,
|
||
{
|
||
"type": "action",
|
||
"name": "search_pattern",
|
||
"params": {
|
||
"pattern_type": "grid",
|
||
"center_x": 200,
|
||
"center_y": 150,
|
||
"center_z": 10,
|
||
"radius": 50,
|
||
"target_class": "car",
|
||
"description": "蓝色"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "track_object",
|
||
"params": {
|
||
"target_class": "car",
|
||
"description": "蓝色",
|
||
"track_time": 30.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "strike_target",
|
||
"params": {
|
||
"target_class": "car",
|
||
"description": "蓝色"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "land",
|
||
"params": {
|
||
"mode": "home"
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"type": "Selector",
|
||
"name": "SafetyMonitor",
|
||
"params": {
|
||
"memory": true
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "condition",
|
||
"name": "battery_above",
|
||
"params": {
|
||
"threshold": 0.3
|
||
}
|
||
},
|
||
{
|
||
"type": "condition",
|
||
"name": "gps_status",
|
||
"params": {
|
||
"min_satellites": 8
|
||
}
|
||
},
|
||
{
|
||
"type": "Sequence",
|
||
"name": "EmergencyHandler",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "emergency_return",
|
||
"params": {
|
||
"reason": "safety_breach"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "land",
|
||
"params": {
|
||
"mode": "home"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
]
|
||
},
|
||
"target_class": "car",
|
||
"description": "蓝色"
|
||
}
|
||
2025-12-08 16:08:54,104 - WARNING - 生成的Pytree验证失败,正在重试...
|
||
INFO: 127.0.0.1:59968 - "POST /generate_plan HTTP/1.1" 200 OK
|
||
2025-12-08 16:08:55,109 - INFO - 接收到用户请求: 飞到学生宿舍上方查找蓝色车辆并进行打击
|
||
2025-12-08 16:08:55,147 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:08:55,147 - INFO - 分类结果: complex
|
||
2025-12-08 16:08:55,147 - INFO - --- 开始从向量数据库检索上下文 ---
|
||
2025-12-08 16:08:55,169 - INFO - --- 成功检索到上下文信息 ---
|
||
2025-12-08 16:08:55,169 - INFO - 📚 检索到的上下文内容:
|
||
在地图上有一个名为 '学生宿舍' 的地点或区域,它的building是'dormitory',其中心位置坐标大约在 (x:5, y:3, z:2)。
|
||
|
||
在地图上有一个名为 '跷跷板' 的地点或区域,它的leisure是'playground',其中心位置坐标大约在 (x:15, y:-8.5, z:1.2)。
|
||
|
||
在地图上有一个名为 'A地' 的地点或区域,它的building是'commercial',其中心位置坐标大约在 (x:10, y:-10, z:2)。
|
||
2025-12-08 16:08:55,170 - INFO - --- 第 1/3 次尝试生成Pytree ---
|
||
2025-12-08 16:08:56,358 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:08:56,361 - WARNING - ❌ Pytree验证失败
|
||
2025-12-08 16:08:56,361 - WARNING - 错误信息: 1 is not of type 'object'
|
||
2025-12-08 16:08:56,361 - WARNING - 错误路径: root -> children -> 0 -> children -> 3
|
||
2025-12-08 16:08:56,361 - WARNING - ❌ 未通过验证的Pytree(第 1/3 次尝试):
|
||
{
|
||
"root": {
|
||
"type": "Parallel",
|
||
"name": "MissionWithSafety",
|
||
"params": {
|
||
"policy": "all_success"
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "Sequence",
|
||
"name": "MainTask",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "preflight_checks",
|
||
"params": {
|
||
"check_level": "comprehensive"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "takeoff",
|
||
"params": {
|
||
"altitude": 10.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "fly_to_waypoint",
|
||
"params": {
|
||
"x": 200.0,
|
||
"y": 150.0,
|
||
"z": 10.0
|
||
}
|
||
},
|
||
1,
|
||
{
|
||
"type": "action",
|
||
"name": "search_pattern",
|
||
"params": {
|
||
"pattern_type": "grid",
|
||
"center_x": 200,
|
||
"center_y": 150,
|
||
"center_z": 10,
|
||
"radius": 50,
|
||
"target_class": "blue_vehicle",
|
||
"description": "蓝色车辆"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "object_detected",
|
||
"params": {
|
||
"target_class": "blue_vehicle",
|
||
"description": "蓝色车辆"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "strike_target",
|
||
"params": {
|
||
"target_class": "blue_vehicle",
|
||
"description": "蓝色车辆"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "land",
|
||
"params": {
|
||
"mode": "home"
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"type": "Selector",
|
||
"name": "SafetyMonitor",
|
||
"params": {
|
||
"memory": true
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "condition",
|
||
"name": "battery_above",
|
||
"params": {
|
||
"threshold": 0.3
|
||
}
|
||
},
|
||
{
|
||
"type": "condition",
|
||
"name": "gps_status",
|
||
"params": {
|
||
"min_satellites": 8
|
||
}
|
||
},
|
||
{
|
||
"type": "Sequence",
|
||
"name": "EmergencyHandler",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "emergency_return",
|
||
"params": {
|
||
"reason": "safety_breach"
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "land",
|
||
"params": {
|
||
"mode": "home"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
}
|
||
2025-12-08 16:08:56,361 - WARNING - 生成的Pytree验证失败,正在重试...
|
||
2025-12-08 16:08:56,361 - INFO - --- 第 2/3 次尝试生成Pytree ---
|
||
2025-12-08 16:08:57,513 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:08:57,516 - WARNING - ❌ Pytree验证失败
|
||
2025-12-08 16:08:57,516 - WARNING - 错误信息: 1 is not of type 'object'
|
||
2025-12-08 16:08:57,516 - WARNING - 错误路径: root -> children -> 0 -> children -> 3
|
||
2025-12-08 16:08:57,516 - WARNING - ❌ 未通过验证的Pytree(第 2/3 次尝试):
|
||
{
|
||
"root": {
|
||
"type": "Parallel",
|
||
"name": "MissionWithSafety",
|
||
"params": {
|
||
"policy": "all_success"
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "Sequence",
|
||
"name": "MainTask",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "preflight_checks",
|
||
"params": {
|
||
"check_level": "comprehensive"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "takeoff",
|
||
"params": {
|
||
"altitude": 10.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "fly_to_waypoint",
|
||
"params": {
|
||
"x": 200.0,
|
||
"y": 150.0,
|
||
"z": 10.0
|
||
}
|
||
},
|
||
1,
|
||
{
|
||
"type": "action",
|
||
"name": "search_pattern",
|
||
"params": {
|
||
"pattern_type": "grid",
|
||
"center_x": 200,
|
||
"center_y": 150,
|
||
"center_z": 10,
|
||
"radius": 50,
|
||
"target_class": "blue_vehicle",
|
||
"description": "蓝色车辆"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "object_detected",
|
||
"params": {
|
||
"target_class": "blue_vehicle",
|
||
"description": "蓝色车辆"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "strike_target",
|
||
"params": {
|
||
"target_class": "blue_vehicle",
|
||
"description": "蓝色车辆"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "land",
|
||
"params": {
|
||
"mode": "home"
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"type": "Selector",
|
||
"name": "SafetyMonitor",
|
||
"params": {
|
||
"memory": true
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "condition",
|
||
"name": "battery_above",
|
||
"params": {
|
||
"threshold": 0.3
|
||
}
|
||
},
|
||
{
|
||
"type": "condition",
|
||
"name": "gps_status",
|
||
"params": {
|
||
"min_satellites": 8
|
||
}
|
||
},
|
||
{
|
||
"type": "Sequence",
|
||
"name": "EmergencyHandler",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "emergency_return",
|
||
"params": {
|
||
"reason": "safety_breach"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
}
|
||
2025-12-08 16:08:57,516 - WARNING - 生成的Pytree验证失败,正在重试...
|
||
2025-12-08 16:08:57,516 - INFO - --- 第 3/3 次尝试生成Pytree ---
|
||
2025-12-08 16:08:58,424 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:08:58,427 - WARNING - ❌ Pytree验证失败
|
||
2025-12-08 16:08:58,427 - WARNING - 错误信息: '(红>蓝>绿)' is not of type 'object'
|
||
2025-12-08 16:08:58,427 - WARNING - 错误路径: root -> children -> 0 -> children -> 5
|
||
2025-12-08 16:08:58,427 - WARNING - ❌ 未通过验证的Pytree(第 3/3 次尝试):
|
||
{
|
||
"root": {
|
||
"type": "Parallel",
|
||
"name": "MissionWithSafety",
|
||
"params": {
|
||
"policy": "all_success"
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "Sequence",
|
||
"name": "MainTask",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "preflight_checks",
|
||
"params": {
|
||
"check_level": "comprehensive"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "takeoff",
|
||
"params": {
|
||
"altitude": 10.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "fly_to_waypoint",
|
||
"params": {
|
||
"x": 200.0,
|
||
"y": 150.0,
|
||
"z": 10.0
|
||
}
|
||
},
|
||
1.0,
|
||
"description",
|
||
"(红>蓝>绿)"
|
||
]
|
||
},
|
||
{
|
||
"type": "Selector",
|
||
"name": "SafetyMonitor",
|
||
"params": {
|
||
"memory": true
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "condition",
|
||
"name": "battery_above",
|
||
"params": {
|
||
"threshold": 0.3
|
||
}
|
||
},
|
||
{
|
||
"type": "condition",
|
||
"name": "gps_status",
|
||
"params": {
|
||
"min_satellites": 8
|
||
}
|
||
},
|
||
{
|
||
"type": "Sequence",
|
||
"name": "EmergencyHandler",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "emergency_return",
|
||
"params": {
|
||
"reason": "safety_breach"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "land",
|
||
"params": {
|
||
"mode": "home"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
}
|
||
2025-12-08 16:08:58,427 - WARNING - 生成的Pytree验证失败,正在重试...
|
||
INFO: 127.0.0.1:34030 - "POST /generate_plan HTTP/1.1" 200 OK
|
||
2025-12-08 16:08:59,432 - INFO - 接收到用户请求: 起飞后移动到学生宿舍上方搜索蓝色车辆,并进行打击
|
||
2025-12-08 16:08:59,477 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:08:59,478 - INFO - 分类结果: complex
|
||
2025-12-08 16:08:59,478 - INFO - --- 开始从向量数据库检索上下文 ---
|
||
2025-12-08 16:08:59,511 - INFO - --- 成功检索到上下文信息 ---
|
||
2025-12-08 16:08:59,512 - INFO - 📚 检索到的上下文内容:
|
||
在地图上有一个名为 '学生宿舍' 的地点或区域,它的building是'dormitory',其中心位置坐标大约在 (x:5, y:3, z:2)。
|
||
|
||
在地图上有一个名为 '跷跷板' 的地点或区域,它的leisure是'playground',其中心位置坐标大约在 (x:15, y:-8.5, z:1.2)。
|
||
|
||
在地图上有一个名为 'A地' 的地点或区域,它的building是'commercial',其中心位置坐标大约在 (x:10, y:-10, z:2)。
|
||
2025-12-08 16:08:59,512 - INFO - --- 第 1/3 次尝试生成Pytree ---
|
||
2025-12-08 16:09:00,291 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:09:00,294 - WARNING - ❌ Pytree验证失败
|
||
2025-12-08 16:09:00,294 - WARNING - 错误信息: 1 is not of type 'object'
|
||
2025-12-08 16:09:00,294 - WARNING - 错误路径: root -> children -> 0 -> children -> 3
|
||
2025-12-08 16:09:00,294 - WARNING - ❌ 未通过验证的Pytree(第 1/3 次尝试):
|
||
{
|
||
"root": {
|
||
"type": "Parallel",
|
||
"name": "MissionWithSafety",
|
||
"params": {
|
||
"policy": "all_success"
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "Sequence",
|
||
"name": "MainTask",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "preflight_checks",
|
||
"params": {
|
||
"check_level": "comprehensive"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "takeoff",
|
||
"params": {
|
||
"altitude": 10.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "fly_to_waypoint",
|
||
"params": {
|
||
"x": 200.0,
|
||
"y": 150.0,
|
||
"z": 10.0
|
||
}
|
||
},
|
||
1,
|
||
{
|
||
"type": "action",
|
||
"name": "search_pattern",
|
||
"params": {
|
||
"pattern_type": "grid",
|
||
"center_x": 200,
|
||
"center_y": 150,
|
||
"center_z": 10,
|
||
"radius": 50,
|
||
"target_class": "blue_vehicle",
|
||
"description": "蓝色车辆"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "strike_target",
|
||
"params": {
|
||
"target_class": "blue_vehicle",
|
||
"description": "蓝色车辆"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "land",
|
||
"params": {
|
||
"mode": "home"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
}
|
||
2025-12-08 16:09:00,294 - WARNING - 生成的Pytree验证失败,正在重试...
|
||
2025-12-08 16:09:00,294 - INFO - --- 第 2/3 次尝试生成Pytree ---
|
||
2025-12-08 16:09:16,768 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:09:16,769 - ERROR - ❌ JSON解析失败(第 2/3 次)。
|
||
—— 完整原始文本(含<think>) ——
|
||
{
|
||
"root": {
|
||
"type": "Parallel",
|
||
"name": "MissionWithSafety",
|
||
"params": {"policy": "all_success"},
|
||
"children": [
|
||
{
|
||
"type": "Sequence",
|
||
"name": "MainTask",
|
||
"params": {},
|
||
"children": [
|
||
{"type":"action","name":"preflight_checks","params":{"check_level":"comprehensive"}},
|
||
{"type":"action","name":"takeoff","params":{"altitude":10.0}},
|
||
{"type":"action","name":"fly_to_waypoint","params":{"x":200.0,"y":150.0,"z":10.0}}, 1
|
||
,{"type":"action","name":"search_pattern","params":{"pattern_type":"grid","center_x":200,"center_y":150,"center_z":10,"radius":50,"target_class":"blue_vehicle","description":"蓝色车辆"}}
|
||
,{"type":"action","name":"strike_target","params":{"target_class":"blue_vehicle","description":"蓝色车辆"}}
|
||
,{"type":"action","name":"land","params":{"mode":"home"}}
|
||
]
|
||
},
|
||
{"type": "Selector", "name": "SafetyMonitor", "params": {"memory": true}, "children": [
|
||
{"type": "condition", "name": "battery_above", "params": {"threshold": 0.3}},
|
||
{"type": "condition", "name": "gps_status", "params": {"min_satellites": 8}},
|
||
{
|
||
"type": "Sequence",
|
||
"name": "EmergencyHandler",
|
||
"params": {},
|
||
"children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]
|
||
}
|
||
]},
|
||
{"type": "Sequence", "name": "SafetyMonitor", "params": {}, "children": [
|
||
{"type": "condition", "name": "battery_above", "params": {"threshold": 0.3}},
|
||
{"type": "condition", "name": "gps_status", "params": {"min_satellites": 8}},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
{"type": "action", "name": "land", "params": {"mode": "home"}}
|
||
]},
|
||
{"type": "Sequence", "name": "EmergencyHandler", "params": {}, "children": [
|
||
{"type": "action", "name": "emergency_return", "params": {"reason": "safety_breach"}},
|
||
|
||
2025-12-08 16:09:16,769 - ERROR - —— 完整响应对象 ——
|
||
{
|
||
"id": "chatcmpl-QiSitwzqJQEwMck7x4yel916gHe1XtGd",
|
||
"choices": [
|
||
{
|
||
"finish_reason": "length",
|
||
"index": 0,
|
||
"logprobs": null,
|
||
"message": {
|
||
"content": "{\n \"root\": {\n \"type\": \"Parallel\",\n \"name\": \"MissionWithSafety\",\n \"params\": {\"policy\": \"all_success\"},\n \"children\": [\n {\n \"type\": \"Sequence\",\n \"name\": \"MainTask\",\n \"params\": {},\n \"children\": [\n {\"type\":\"action\",\"name\":\"preflight_checks\",\"params\":{\"check_level\":\"comprehensive\"}},\n {\"type\":\"action\",\"name\":\"takeoff\",\"params\":{\"altitude\":10.0}},\n {\"type\":\"action\",\"name\":\"fly_to_waypoint\",\"params\":{\"x\":200.0,\"y\":150.0,\"z\":10.0}}, 1\n ,{\"type\":\"action\",\"name\":\"search_pattern\",\"params\":{\"pattern_type\":\"grid\",\"center_x\":200,\"center_y\":150,\"center_z\":10,\"radius\":50,\"target_class\":\"blue_vehicle\",\"description\":\"蓝色车辆\"}}\n ,{\"type\":\"action\",\"name\":\"strike_target\",\"params\":{\"target_class\":\"blue_vehicle\",\"description\":\"蓝色车辆\"}}\n ,{\"type\":\"action\",\"name\":\"land\",\"params\":{\"mode\":\"home\"}}\n ]\n },\n {\"type\": \"Selector\", \"name\": \"SafetyMonitor\", \"params\": {\"memory\": true}, \"children\": [\n {\"type\": \"condition\", \"name\": \"battery_above\", \"params\": {\"threshold\": 0.3}},\n {\"type\": \"condition\", \"name\": \"gps_status\", \"params\": {\"min_satellites\": 8}},\n {\n \"type\": \"Sequence\",\n \"name\": \"EmergencyHandler\",\n \"params\": {},\n \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]\n }\n ]},\n {\"type\": \"Sequence\", \"name\": \"SafetyMonitor\", \"params\": {}, \"children\": [\n {\"type\": \"condition\", \"name\": \"battery_above\", \"params\": {\"threshold\": 0.3}},\n {\"type\": \"condition\", \"name\": \"gps_status\", \"params\": {\"min_satellites\": 8}},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n {\"type\": \"action\", \"name\": \"land\", \"params\": {\"mode\": \"home\"}}\n ]},\n {\"type\": \"Sequence\", \"name\": \"EmergencyHandler\", \"params\": {}, \"children\": [\n {\"type\": \"action\", \"name\": \"emergency_return\", \"params\": {\"reason\": \"safety_breach\"}},\n ",
|
||
"refusal": null,
|
||
"role": "assistant",
|
||
"annotations": null,
|
||
"audio": null,
|
||
"function_call": null,
|
||
"tool_calls": null
|
||
}
|
||
}
|
||
],
|
||
"created": 1765181356,
|
||
"model": "local-model",
|
||
"object": "chat.completion",
|
||
"service_tier": null,
|
||
"system_fingerprint": "b7212-ff90508d6",
|
||
"usage": {
|
||
"completion_tokens": 5417,
|
||
"prompt_tokens": 2775,
|
||
"total_tokens": 8192,
|
||
"completion_tokens_details": null,
|
||
"prompt_tokens_details": null
|
||
},
|
||
"timings": {
|
||
"cache_n": 2774,
|
||
"prompt_n": 1,
|
||
"prompt_ms": 11.809,
|
||
"prompt_per_token_ms": 11.809,
|
||
"prompt_per_second": 84.6811753747142,
|
||
"predicted_n": 5417,
|
||
"predicted_ms": 16454.847,
|
||
"predicted_per_token_ms": 3.037630976555289,
|
||
"predicted_per_second": 329.2039117714069
|
||
}
|
||
}
|
||
2025-12-08 16:09:16,769 - INFO - --- 第 3/3 次尝试生成Pytree ---
|
||
2025-12-08 16:09:17,978 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:09:17,981 - WARNING - ❌ Pytree验证失败
|
||
2025-12-08 16:09:17,981 - WARNING - 错误信息: 'blue_vehicle' is not one of ['person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', 'truck', 'boat', 'traffic_light', 'fire_hydrant', 'stop_sign', 'parking_meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep', 'cow', 'elephant', 'bear', 'zebra', 'giraffe', 'backpack', 'umbrella', 'handbag', 'tie', 'suitcase', 'frisbee', 'skis', 'snowboard', 'sports_ball', 'kite', 'baseball_bat', 'baseball_glove', 'skateboard', 'surfboard', 'tennis_racket', 'bottle', 'wine_glass', 'cup', 'fork', 'knife', 'spoon', 'bowl', 'banana', 'apple', 'sandwich', 'orange', 'broccoli', 'carrot', 'hot_dog', 'pizza', 'donut', 'cake', 'chair', 'couch', 'potted_plant', 'bed', 'dining_table', 'toilet', 'tv', 'laptop', 'mouse', 'remote', 'keyboard', 'cell_phone', 'microwave', 'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock', 'vase', 'scissors', 'teddy_bear', 'hair_drier', 'toothbrush', 'balloon']
|
||
2025-12-08 16:09:17,981 - WARNING - 错误路径: root -> children -> 0 -> children -> 3 -> params -> target_class
|
||
2025-12-08 16:09:17,981 - WARNING - ❌ 未通过验证的Pytree(第 3/3 次尝试):
|
||
{
|
||
"root": {
|
||
"type": "Parallel",
|
||
"name": "MissionWithSafety",
|
||
"params": {
|
||
"policy": "all_success"
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "Sequence",
|
||
"name": "MainTask",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "preflight_checks",
|
||
"params": {
|
||
"check_level": "comprehensive"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "takeoff",
|
||
"params": {
|
||
"altitude": 10.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "fly_to_waypoint",
|
||
"params": {
|
||
"x": 200.0,
|
||
"y": 150.0,
|
||
"z": 10.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "object_detect",
|
||
"params": {
|
||
"target_class": "blue_vehicle",
|
||
"description": "蓝色车辆",
|
||
"count": 1
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "strike_target",
|
||
"params": {
|
||
"target_class": "blue_vehicle",
|
||
"description": "蓝色车辆",
|
||
"count": 1
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "land",
|
||
"params": {
|
||
"mode": "home"
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"type": "Selector",
|
||
"name": "SafetyMonitor",
|
||
"params": {
|
||
"memory": true
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "condition",
|
||
"name": "battery_above",
|
||
"params": {
|
||
"threshold": 0.3
|
||
}
|
||
},
|
||
{
|
||
"type": "condition",
|
||
"name": "gps_status",
|
||
"params": {
|
||
"min_satellites": 8
|
||
}
|
||
},
|
||
{
|
||
"type": "Sequence",
|
||
"name": "EmergencyHandler",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "emergency_return",
|
||
"params": {
|
||
"reason": "safety_breach"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
}
|
||
2025-12-08 16:09:17,981 - WARNING - 生成的Pytree验证失败,正在重试...
|
||
INFO: 127.0.0.1:34044 - "POST /generate_plan HTTP/1.1" 200 OK
|
||
2025-12-08 16:09:18,986 - INFO - 接收到用户请求: 起飞到学生宿舍上方搜索被困人员,并为被困人员投递救援物资
|
||
2025-12-08 16:09:19,036 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:09:19,037 - INFO - 分类结果: complex
|
||
2025-12-08 16:09:19,037 - INFO - --- 开始从向量数据库检索上下文 ---
|
||
2025-12-08 16:09:19,087 - INFO - --- 成功检索到上下文信息 ---
|
||
2025-12-08 16:09:19,087 - INFO - 📚 检索到的上下文内容:
|
||
在地图上有一个名为 '学生宿舍' 的地点或区域,它的building是'dormitory',其中心位置坐标大约在 (x:5, y:3, z:2)。
|
||
|
||
在地图上有一个名为 '跷跷板' 的地点或区域,它的leisure是'playground',其中心位置坐标大约在 (x:15, y:-8.5, z:1.2)。
|
||
|
||
在地图上有一个名为 'A地' 的地点或区域,它的building是'commercial',其中心位置坐标大约在 (x:10, y:-10, z:2)。
|
||
2025-12-08 16:09:19,087 - INFO - --- 第 1/3 次尝试生成Pytree ---
|
||
2025-12-08 16:09:20,503 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:09:20,507 - INFO - ✅ JSON Schema验证成功
|
||
2025-12-08 16:09:20,507 - INFO - ✅ 安全监控验证通过
|
||
2025-12-08 16:09:20,507 - INFO - ✅ 成功生成并验证了Pytree
|
||
2025-12-08 16:09:20,575 - INFO - ✅ 任务树可视化成功
|
||
2025-12-08 16:09:20,575 - INFO - 图形已保存到: /home/iscas/WorkSpace/code/DronePlanning/backend_service/generated_visualizations/py_tree.png
|
||
2025-12-08 16:09:20,575 - INFO - 未在模型输出中发现 <think> 推理链片段。若需捕获,请设置 ENABLE_REASONING_CAPTURE=true 以放宽JSON强制格式。
|
||
INFO: 127.0.0.1:43040 - "POST /generate_plan HTTP/1.1" 200 OK
|
||
2025-12-08 16:09:21,580 - INFO - 接收到用户请求: 飞到学生宿舍上方搜索方圆10米范围内的蓝色车辆
|
||
2025-12-08 16:09:21,620 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:09:21,621 - INFO - 分类结果: complex
|
||
2025-12-08 16:09:21,621 - INFO - --- 开始从向量数据库检索上下文 ---
|
||
2025-12-08 16:09:21,654 - INFO - --- 成功检索到上下文信息 ---
|
||
2025-12-08 16:09:21,654 - INFO - 📚 检索到的上下文内容:
|
||
在地图上有一个名为 '学生宿舍' 的地点或区域,它的building是'dormitory',其中心位置坐标大约在 (x:5, y:3, z:2)。
|
||
|
||
在地图上有一个名为 '跷跷板' 的地点或区域,它的leisure是'playground',其中心位置坐标大约在 (x:15, y:-8.5, z:1.2)。
|
||
|
||
在地图上有一个名为 'A地' 的地点或区域,它的building是'commercial',其中心位置坐标大约在 (x:10, y:-10, z:2)。
|
||
2025-12-08 16:09:21,654 - INFO - --- 第 1/3 次尝试生成Pytree ---
|
||
2025-12-08 16:09:22,657 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:09:22,660 - WARNING - ❌ Pytree验证失败
|
||
2025-12-08 16:09:22,660 - WARNING - 错误信息: 1 is not of type 'object'
|
||
2025-12-08 16:09:22,660 - WARNING - 错误路径: root -> children -> 0 -> children -> 3
|
||
2025-12-08 16:09:22,660 - WARNING - ❌ 未通过验证的Pytree(第 1/3 次尝试):
|
||
{
|
||
"root": {
|
||
"type": "Parallel",
|
||
"name": "MissionWithSafety",
|
||
"params": {
|
||
"policy": "all_success"
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "Sequence",
|
||
"name": "MainTask",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "preflight_checks",
|
||
"params": {
|
||
"check_level": "comprehensive"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "takeoff",
|
||
"params": {
|
||
"altitude": 10.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "fly_to_waypoint",
|
||
"params": {
|
||
"x": 200.0,
|
||
"y": 150.0,
|
||
"z": 10.0
|
||
}
|
||
},
|
||
1,
|
||
{
|
||
"type": "action",
|
||
"name": "search_pattern",
|
||
"params": {
|
||
"pattern_type": "grid",
|
||
"center_x": 200,
|
||
"center_y": 150,
|
||
"center_z": 10,
|
||
"radius": 50,
|
||
"target_class": "blue_vehicle",
|
||
"description": "蓝色车辆"
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"type": "Selector",
|
||
"name": "SafetyMonitor",
|
||
"params": {
|
||
"memory": true
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "condition",
|
||
"name": "battery_above",
|
||
"params": {
|
||
"threshold": 0.3
|
||
}
|
||
},
|
||
{
|
||
"type": "condition",
|
||
"name": "gps_status",
|
||
"params": {
|
||
"min_satellites": 8
|
||
}
|
||
},
|
||
{
|
||
"type": "Sequence",
|
||
"name": "EmergencyHandler",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "emergency_return",
|
||
"params": {
|
||
"reason": "safety_breach"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "land",
|
||
"params": {
|
||
"mode": "home"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
}
|
||
2025-12-08 16:09:22,660 - WARNING - 生成的Pytree验证失败,正在重试...
|
||
2025-12-08 16:09:22,660 - INFO - --- 第 2/3 次尝试生成Pytree ---
|
||
2025-12-08 16:09:23,665 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:09:23,668 - WARNING - ❌ Pytree验证失败
|
||
2025-12-08 16:09:23,668 - WARNING - 错误信息: 1 is not of type 'object'
|
||
2025-12-08 16:09:23,668 - WARNING - 错误路径: root -> children -> 0 -> children -> 3
|
||
2025-12-08 16:09:23,669 - WARNING - ❌ 未通过验证的Pytree(第 2/3 次尝试):
|
||
{
|
||
"root": {
|
||
"type": "Parallel",
|
||
"name": "MissionWithSafety",
|
||
"params": {
|
||
"policy": "all_success"
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "Sequence",
|
||
"name": "MainTask",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "preflight_checks",
|
||
"params": {
|
||
"check_level": "comprehensive"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "takeoff",
|
||
"params": {
|
||
"altitude": 10.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "fly_to_waypoint",
|
||
"params": {
|
||
"x": 200.0,
|
||
"y": 150.0,
|
||
"z": 10.0
|
||
}
|
||
},
|
||
1,
|
||
{
|
||
"type": "action",
|
||
"name": "search_pattern",
|
||
"params": {
|
||
"pattern_type": "grid",
|
||
"center_x": 200,
|
||
"center_y": 150,
|
||
"center_z": 10,
|
||
"radius": 50,
|
||
"target_class": "blue_vehicle",
|
||
"description": "蓝色车辆"
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"type": "Selector",
|
||
"name": "SafetyMonitor",
|
||
"params": {
|
||
"memory": true
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "condition",
|
||
"name": "battery_above",
|
||
"params": {
|
||
"threshold": 0.3
|
||
}
|
||
},
|
||
{
|
||
"type": "condition",
|
||
"name": "gps_status",
|
||
"params": {
|
||
"min_satellites": 8
|
||
}
|
||
},
|
||
{
|
||
"type": "Sequence",
|
||
"name": "EmergencyHandler",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "emergency_return",
|
||
"params": {
|
||
"reason": "safety_breach"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "land",
|
||
"params": {
|
||
"mode": "home"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
}
|
||
2025-12-08 16:09:23,669 - WARNING - 生成的Pytree验证失败,正在重试...
|
||
2025-12-08 16:09:23,669 - INFO - --- 第 3/3 次尝试生成Pytree ---
|
||
2025-12-08 16:09:38,978 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:09:38,979 - ERROR - ❌ JSON解析失败(第 3/3 次)。
|
||
—— 完整原始文本(含<think>) ——
|
||
{
|
||
"root": {
|
||
"type": "Parallel",
|
||
"name": "MissionWithSafety",
|
||
"params": {"policy": "all_success"},
|
||
"children": [
|
||
{
|
||
"type": "Sequence",
|
||
"name": "MainTask",
|
||
"params": {},
|
||
"children": [
|
||
{"type": "action", "name": "preflight_checks", "params": {"check_level": "comprehensive"}},
|
||
{"type": "action", "name": "takeoff", "params": {"altitude": 10.0}},
|
||
{"type": "action", "name": "fly_to_waypoint", "params": {"x": 200.0, "y": 150.0, "z": 10.0}}, 100.0, "y", "z", "10.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "100.0", "10
|
||
2025-12-08 16:09:38,979 - ERROR - —— 完整响应对象 ——
|
||
{
|
||
"id": "chatcmpl-t2lvReipW8PtZlUn0PHuInNO1KyU9Xst",
|
||
"choices": [
|
||
{
|
||
"finish_reason": "length",
|
||
"index": 0,
|
||
"logprobs": null,
|
||
"message": {
|
||
"content": "{\n \"root\": {\n \"type\": \"Parallel\",\n \"name\": \"MissionWithSafety\",\n \"params\": {\"policy\": \"all_success\"},\n \"children\": [\n {\n \"type\": \"Sequence\",\n \"name\": \"MainTask\",\n \"params\": {},\n \"children\": [\n {\"type\": \"action\", \"name\": \"preflight_checks\", \"params\": {\"check_level\": \"comprehensive\"}},\n {\"type\": \"action\", \"name\": \"takeoff\", \"params\": {\"altitude\": 10.0}},\n {\"type\": \"action\", \"name\": \"fly_to_waypoint\", \"params\": {\"x\": 200.0, \"y\": 150.0, \"z\": 10.0}}, 100.0, \"y\", \"z\", \"10.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"100.0\", \"10",
|
||
"refusal": null,
|
||
"role": "assistant",
|
||
"annotations": null,
|
||
"audio": null,
|
||
"function_call": null,
|
||
"tool_calls": null
|
||
}
|
||
}
|
||
],
|
||
"created": 1765181378,
|
||
"model": "local-model",
|
||
"object": "chat.completion",
|
||
"service_tier": null,
|
||
"system_fingerprint": "b7212-ff90508d6",
|
||
"usage": {
|
||
"completion_tokens": 5416,
|
||
"prompt_tokens": 2776,
|
||
"total_tokens": 8192,
|
||
"completion_tokens_details": null,
|
||
"prompt_tokens_details": null
|
||
},
|
||
"timings": {
|
||
"cache_n": 2775,
|
||
"prompt_n": 1,
|
||
"prompt_ms": 11.545,
|
||
"prompt_per_token_ms": 11.545,
|
||
"prompt_per_second": 86.617583369424,
|
||
"predicted_n": 5416,
|
||
"predicted_ms": 15291.224,
|
||
"predicted_per_token_ms": 2.8233426883308717,
|
||
"predicted_per_second": 354.1900896880459
|
||
}
|
||
}
|
||
INFO: 127.0.0.1:44218 - "POST /generate_plan HTTP/1.1" 200 OK
|
||
2025-12-08 16:09:39,984 - INFO - 接收到用户请求: 飞到学生宿舍上方搜索半径为10米区域范围内的蓝色车辆
|
||
2025-12-08 16:09:40,024 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:09:40,024 - INFO - 分类结果: complex
|
||
2025-12-08 16:09:40,024 - INFO - --- 开始从向量数据库检索上下文 ---
|
||
2025-12-08 16:09:40,067 - INFO - --- 成功检索到上下文信息 ---
|
||
2025-12-08 16:09:40,067 - INFO - 📚 检索到的上下文内容:
|
||
在地图上有一个名为 '学生宿舍' 的地点或区域,它的building是'dormitory',其中心位置坐标大约在 (x:5, y:3, z:2)。
|
||
|
||
在地图上有一个名为 '跷跷板' 的地点或区域,它的leisure是'playground',其中心位置坐标大约在 (x:15, y:-8.5, z:1.2)。
|
||
|
||
在地图上有一个名为 'A地' 的地点或区域,它的building是'commercial',其中心位置坐标大约在 (x:10, y:-10, z:2)。
|
||
2025-12-08 16:09:40,067 - INFO - --- 第 1/3 次尝试生成Pytree ---
|
||
2025-12-08 16:09:41,190 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:09:41,193 - INFO - ✅ JSON Schema验证成功
|
||
2025-12-08 16:09:41,193 - INFO - ✅ 安全监控验证通过
|
||
2025-12-08 16:09:41,193 - INFO - ✅ 成功生成并验证了Pytree
|
||
2025-12-08 16:09:41,249 - INFO - ✅ 任务树可视化成功
|
||
2025-12-08 16:09:41,249 - INFO - 图形已保存到: /home/iscas/WorkSpace/code/DronePlanning/backend_service/generated_visualizations/py_tree.png
|
||
2025-12-08 16:09:41,249 - INFO - 未在模型输出中发现 <think> 推理链片段。若需捕获,请设置 ENABLE_REASONING_CAPTURE=true 以放宽JSON强制格式。
|
||
INFO: 127.0.0.1:56664 - "POST /generate_plan HTTP/1.1" 200 OK
|
||
2025-12-08 16:09:42,255 - INFO - 接收到用户请求: 起飞到学生宿舍搜索有没有被困人员,然后抛洒救援物资
|
||
2025-12-08 16:09:42,290 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:09:42,291 - INFO - 分类结果: complex
|
||
2025-12-08 16:09:42,291 - INFO - --- 开始从向量数据库检索上下文 ---
|
||
2025-12-08 16:09:42,323 - INFO - --- 成功检索到上下文信息 ---
|
||
2025-12-08 16:09:42,323 - INFO - 📚 检索到的上下文内容:
|
||
在地图上有一个名为 '学生宿舍' 的地点或区域,它的building是'dormitory',其中心位置坐标大约在 (x:5, y:3, z:2)。
|
||
|
||
在地图上有一个名为 '跷跷板' 的地点或区域,它的leisure是'playground',其中心位置坐标大约在 (x:15, y:-8.5, z:1.2)。
|
||
|
||
在地图上有一个名为 'A地' 的地点或区域,它的building是'commercial',其中心位置坐标大约在 (x:10, y:-10, z:2)。
|
||
2025-12-08 16:09:42,323 - INFO - --- 第 1/3 次尝试生成Pytree ---
|
||
2025-12-08 16:09:43,484 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:09:43,487 - WARNING - ❌ Pytree验证失败
|
||
2025-12-08 16:09:43,487 - WARNING - 错误信息: 'object_detected' is not one of ['battle_damage_assessment', 'deliver_payload', 'emergency_return', 'fly_to_waypoint', 'land', 'loiter', 'move_direction', 'object_detect', 'orbit_around_point', 'orbit_around_target', 'preflight_checks', 'search_pattern', 'strike_target', 'takeoff', 'track_object']
|
||
2025-12-08 16:09:43,487 - WARNING - 错误路径: root -> children -> 0 -> children -> 4 -> name
|
||
2025-12-08 16:09:43,487 - WARNING - 💡 提示: 请确保目标类别是预定义列表中的有效值
|
||
2025-12-08 16:09:43,488 - WARNING - ❌ 未通过验证的Pytree(第 1/3 次尝试):
|
||
{
|
||
"root": {
|
||
"type": "Parallel",
|
||
"name": "MissionWithSafety",
|
||
"params": {
|
||
"policy": "all_success"
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "Sequence",
|
||
"name": "MainTask",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "preflight_checks",
|
||
"params": {
|
||
"check_level": "comprehensive"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "takeoff",
|
||
"params": {
|
||
"altitude": 10.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "fly_to_waypoint",
|
||
"params": {
|
||
"x": 200.0,
|
||
"y": 150.0,
|
||
"z": 10.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "object_detect",
|
||
"params": {
|
||
"target_class": "person",
|
||
"description": "学生宿舍"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "object_detected",
|
||
"params": {
|
||
"target_class": "person",
|
||
"description": "学生宿舍",
|
||
"count": 1
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "strike_target",
|
||
"params": {
|
||
"target_class": "person",
|
||
"description": "学生宿舍",
|
||
"count": 1
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "land",
|
||
"params": {
|
||
"mode": "home"
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"type": "Selector",
|
||
"name": "SafetyMonitor",
|
||
"params": {
|
||
"memory": true
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "condition",
|
||
"name": "battery_above",
|
||
"params": {
|
||
"threshold": 0.3
|
||
}
|
||
},
|
||
{
|
||
"type": "condition",
|
||
"name": "gps_status",
|
||
"params": {
|
||
"min_satellites": 8
|
||
}
|
||
},
|
||
{
|
||
"type": "Sequence",
|
||
"name": "EmergencyHandler",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "emergency_return",
|
||
"params": {
|
||
"reason": "safety_breach"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
}
|
||
2025-12-08 16:09:43,488 - WARNING - 生成的Pytree验证失败,正在重试...
|
||
2025-12-08 16:09:43,488 - INFO - --- 第 2/3 次尝试生成Pytree ---
|
||
2025-12-08 16:09:44,712 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:09:44,715 - WARNING - ❌ Pytree验证失败
|
||
2025-12-08 16:09:44,715 - WARNING - 错误信息: 2 is not of type 'object'
|
||
2025-12-08 16:09:44,715 - WARNING - 错误路径: root -> children -> 0 -> children -> 6
|
||
2025-12-08 16:09:44,715 - WARNING - ❌ 未通过验证的Pytree(第 2/3 次尝试):
|
||
{
|
||
"root": {
|
||
"type": "Parallel",
|
||
"name": "MissionWithSafety",
|
||
"params": {
|
||
"policy": "all_success"
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "Sequence",
|
||
"name": "MainTask",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "preflight_checks",
|
||
"params": {
|
||
"check_level": "comprehensive"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "takeoff",
|
||
"params": {
|
||
"altitude": 10.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "fly_to_waypoint",
|
||
"params": {
|
||
"x": 200.0,
|
||
"y": 150.0,
|
||
"z": 10.0
|
||
}
|
||
},
|
||
1,
|
||
{
|
||
"type": "action",
|
||
"name": "search_pattern",
|
||
"params": {
|
||
"pattern_type": "grid",
|
||
"center_x": 200,
|
||
"center_y": 150,
|
||
"center_z": 10,
|
||
"radius": 50,
|
||
"target_class": "balloon",
|
||
"description": "红色"
|
||
}
|
||
},
|
||
{
|
||
"type": "condition",
|
||
"name": "object_detected",
|
||
"params": {
|
||
"target_class": "balloon",
|
||
"description": "红色"
|
||
}
|
||
},
|
||
2,
|
||
{
|
||
"type": "action",
|
||
"name": "track_object",
|
||
"params": {
|
||
"target_class": "balloon",
|
||
"description": "红色",
|
||
"track_time": 30.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "strike_target",
|
||
"params": {
|
||
"target_class": "balloon",
|
||
"description": "红色"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "land",
|
||
"params": {
|
||
"mode": "home"
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"type": "Selector",
|
||
"name": "SafetyMonitor",
|
||
"params": {
|
||
"memory": true
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "condition",
|
||
"name": "battery_above",
|
||
"params": {
|
||
"threshold": 0.3
|
||
}
|
||
},
|
||
{
|
||
"type": "condition",
|
||
"name": "gps_status",
|
||
"params": {
|
||
"min_satellites": 8
|
||
}
|
||
},
|
||
{
|
||
"type": "Sequence",
|
||
"name": "EmergencyHandler",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "emergency_return",
|
||
"params": {
|
||
"reason": "safety_breach"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "land",
|
||
"params": {
|
||
"mode": "home"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
}
|
||
2025-12-08 16:09:44,715 - WARNING - 生成的Pytree验证失败,正在重试...
|
||
2025-12-08 16:09:44,715 - INFO - --- 第 3/3 次尝试生成Pytree ---
|
||
2025-12-08 16:09:46,057 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:09:46,060 - INFO - ✅ JSON Schema验证成功
|
||
2025-12-08 16:09:46,060 - INFO - ✅ 安全监控验证通过
|
||
2025-12-08 16:09:46,060 - INFO - ✅ 成功生成并验证了Pytree
|
||
2025-12-08 16:09:46,137 - INFO - ✅ 任务树可视化成功
|
||
2025-12-08 16:09:46,137 - INFO - 图形已保存到: /home/iscas/WorkSpace/code/DronePlanning/backend_service/generated_visualizations/py_tree.png
|
||
2025-12-08 16:09:46,137 - INFO - 未在模型输出中发现 <think> 推理链片段。若需捕获,请设置 ENABLE_REASONING_CAPTURE=true 以放宽JSON强制格式。
|
||
INFO: 127.0.0.1:56798 - "POST /generate_plan HTTP/1.1" 200 OK
|
||
2025-12-08 16:09:47,142 - INFO - 接收到用户请求: 无人机起飞到一米高度后,先移动至搜索区,搜索并锁定任一穿黑色衣服的人,在对其进行跟踪30秒后进行打击操作
|
||
2025-12-08 16:09:47,181 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:09:47,182 - INFO - 分类结果: complex
|
||
2025-12-08 16:09:47,182 - INFO - --- 开始从向量数据库检索上下文 ---
|
||
2025-12-08 16:09:47,227 - INFO - --- 成功检索到上下文信息 ---
|
||
2025-12-08 16:09:47,227 - INFO - 📚 检索到的上下文内容:
|
||
在地图上有一个名为 '学生宿舍' 的地点或区域,它的building是'dormitory',其中心位置坐标大约在 (x:5, y:3, z:2)。
|
||
|
||
在地图上有一个名为 '跷跷板' 的地点或区域,它的leisure是'playground',其中心位置坐标大约在 (x:15, y:-8.5, z:1.2)。
|
||
|
||
在地图上有一个名为 'A地' 的地点或区域,它的building是'commercial',其中心位置坐标大约在 (x:10, y:-10, z:2)。
|
||
2025-12-08 16:09:47,227 - INFO - --- 第 1/3 次尝试生成Pytree ---
|
||
2025-12-08 16:10:02,409 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:10:02,410 - ERROR - ❌ JSON解析失败(第 1/3 次)。
|
||
—— 完整原始文本(含<think>) ——
|
||
{
|
||
"root": {
|
||
"type": "Parallel",
|
||
"name": "MissionWithSafety",
|
||
"params": {"policy": "all_success"},
|
||
"children": [
|
||
{
|
||
"type": "Sequence",
|
||
"name": "MainTask",
|
||
"params": {},
|
||
"children": [
|
||
{"type":"action","name":"preflight_checks","params":{"check_level":"comprehensive"}},
|
||
{"type":"action","name":"takeoff","params":{"altitude":1.0}},
|
||
{"type":"action","name":"fly_to_waypoint","params":{"x":5.0,"y":3.0,"z":2.0}}, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 37.0, 38.0, 39.0, 40.0, 41.0, 42.0, 43.0, 44.0, 45.0, 46.0, 47.0, 48.0, 49.0, 50.0, 51.0, 52.0, 53.0, 54.0, 55.0, 56.0, 57.0, 58.0, 59.0, 60.0, 61.0, 62.0, 63.0, 64.0, 65.0, 66.0, 67.0, 68.0, 69.0, 70.0, 71.0, 72.0, 73.0, 74.0, 75.0, 76.0, 77.0, 78.0, 79.0, 80.0, 81.0, 82.0, 83.0, 84.0, 85.0, 86.0, 87.0, 88.0, 89.0, 90.0, 91.0, 92.0, 93.0, 94.0, 95.0, 96.0, 97.0, 98.0, 99.0, 100.0, 101.0, 102.0, 103.0, 104.0, 105.0, 106.0, 107.0, 108.0, 109.0, 110.0, 111.0, 112.0, 113.0, 114.0, 115.0, 116.0, 117.0, 118.0, 119.0, 120.0, 121.0, 122.0, 123.0, 124.0, 125.0, 126.0, 127.0, 128.0, 129.0, 130.0, 131.0, 132.0, 133.0, 134.0, 135.0, 136.0, 137.0, 138.0, 139.0, 140.0, 141.0, 142.0, 143.0, 144.0, 145.0, 146.0, 147.0, 148.0, 149.0, 150.0, 151.0, 152.0, 153.0, 154.0, 155.0, 156.0, 157.0, 158.0, 159.0, 160.0, 161.0, 162.0, 163.0, 164.0, 165.0, 166.0, 167.0, 168.0, 169.0, 170.0, 171.0, 172.0, 173.0, 174.0, 175.0, 176.0, 177.0, 178.0, 179.0, 180.0, 181.0, 182.0, 183.0, 184.0, 185.0, 186.0, 187.0, 188.0, 189.0, 190.0, 191.0, 192.0, 193.0, 194.0, 195.0, 196.0, 197.0, 198.0, 199.0, 200.0, 201.0, 202.0, 203.0, 204.0, 205.0, 206.0, 207.0, 208.0, 209.0, 210.0, 211.0, 212.0, 213.0, 214.0, 215.0, 216.0, 217.0, 218.0, 219.0, 220.0, 221.0, 222.0, 223.0, 224.0, 225.0, 226.0, 227.0, 228.0, 229.0, 230.0, 231.0, 232.0, 233.0, 234.0, 235.0, 236.0, 237.0, 238.0, 239.0, 240.0, 241.0, 242.0, 243.0, 244.0, 245.0, 246.0, 247.0, 248.0, 249.0, 250.0, 251.0, 252.0, 253.0, 254.0, 255.0, 256.0, 257.0, 258.0, 259.0, 260.0, 261.0, 262.0, 263.0, 264.0, 265.0, 266.0, 267.0, 268.0, 269.0, 270.0, 271.0, 272.0, 273.0, 274.0, 275.0, 276.0, 277.0, 278.0, 279.0, 280.0, 281.0, 282.0, 283.0, 284.0, 285.0, 286.0, 287.0, 288.0, 289.0, 290.0, 291.0, 292.0, 293.0, 294.0, 295.0, 296.0, 297.0, 298.0, 299.0, 300.0, 301.0, 302.0, 303.0, 304.0, 305.0, 306.0, 307.0, 308.0, 309.0, 310.0, 311.0, 312.0, 313.0, 314.0, 315.0, 316.0, 317.0, 318.0, 319.0, 320.0, 321.0, 322.0, 323.0, 324.0, 325.0, 326.0, 327.0, 328.0, 329.0, 330.0, 331.0, 332.0, 333.0, 334.0, 335.0, 336.0, 337.0, 338.0, 339.0, 340.0, 341.0, 342.0, 343.0, 344.0, 345.0, 346.0, 347.0, 348.0, 349.0, 350.0, 351.0, 352.0, 353.0, 354.0, 355.0, 356.0, 357.0, 358.0, 359.0, 360.0, 361.0, 362.0, 363.0, 364.0, 365.0, 366.0, 367.0, 368.0, 369.0, 370.0, 371.0, 372.0, 373.0, 374.0, 375.0, 376.0, 377.0, 378.0, 379.0, 380.0, 381.0, 382.0, 383.0, 384.0, 385.0, 386.0, 387.0, 388.0, 389.0, 390.0, 391.0, 392.0, 393.0, 394.0, 395.0, 396.0, 397.0, 398.0, 399.0, 400.0, 401.0, 402.0, 403.0, 404.0, 405.0, 406.0, 407.0, 408.0, 409.0, 410.0, 411.0, 412.0, 413.0, 414.0, 415.0, 416.0, 417.0, 418.0, 419.0, 420.0, 421.0, 422.0, 423.0, 424.0, 425.0, 426.0, 427.0, 428.0, 429.0, 430.0, 431.0, 432.0, 433.0, 434.0, 435.0, 436.0, 437.0, 438.0, 439.0, 440.0, 441.0, 442.0, 443.0, 444.0, 445.0, 446.0, 447.0, 448.0, 449.0, 450.0, 451.0, 452.0, 453.0, 454.0, 455.0, 456.0, 457.0, 458.0, 459.0, 460.0, 461.0, 462.0, 463.0, 464.0, 465.0, 466.0, 467.0, 468.0, 469.0, 470.0, 471.0, 472.0, 473.0, 474.0, 475.0, 476.0, 477.0, 478.0, 479.0, 480.0, 481.0, 482.0, 483.0, 484.0, 485.0, 486.0, 487.0, 488.0, 489.0, 490.0, 491.0, 492.0, 493.0, 494.0, 495.0, 496.0, 497.0, 498.0, 499.0, 500.0, 501.0, 502.0, 503.0, 504.0, 505.0, 506.0, 507.0, 508.0, 509.0, 510.0, 511.0, 512.0, 513.0, 514.0, 515.0, 516.0, 517.0, 518.0, 519.0, 520.0, 521.0, 522.0, 523.0, 524.0, 525.0, 526.0, 527.0, 528.0, 529.0, 530.0, 531.0, 532.0, 533.0, 534.0, 535.0, 536.0, 537.0, 538.0, 539.0, 540.0, 541.0, 542.0, 543.0, 544.0, 545.0, 546.0, 547.0, 548.0, 549.0, 550.0, 551.0, 552.0, 553.0, 554.0, 555.0, 556.0, 557.0, 558.0, 559.0, 560.0, 561.0, 562.0, 563.0, 564.0, 565.0, 566.0, 567.0, 568.0, 569.0, 570.0, 571.0, 572.0, 573.0, 574.0, 575.0, 576.0, 577.0, 578.0, 579.0, 580.0, 581.0, 582.0, 583.0, 584.0, 585.0, 586.0, 587.0, 588.0, 589.0, 590.0, 591.0, 592.0, 593.0, 594.0, 595.0, 596.0, 597.0, 598.0, 599.0, 600.0, 601.0, 602.0, 603.0, 604.0, 605.0, 606.0, 607.0, 608.0, 609.0, 610.0, 611.0, 612.0, 613.0, 614.0, 615.0, 616.0, 617.0, 618.0, 619.0, 620.0, 621.0, 622.0, 623.0, 624.0, 625.0, 626.0, 627.0, 628.0, 629.0, 630.0, 631.0, 632.0, 633.0, 634.0, 635.0, 636.0, 637.0, 638.0, 639.0, 640.0, 641.0, 642.0, 643.0, 644.0, 645.0, 646.0, 647.0, 648.0, 649.0, 650.0, 651.0, 652.0, 653.0, 654.0, 655.0, 656.0, 657.0, 658.0, 659.0, 660.0, 661.0, 662.0, 663.0, 664.0, 665.0, 666.0, 667.0, 668.0, 669.0, 670.0, 671.0, 672.0, 673.0, 674.0, 675.0, 676.0, 677.0, 678.0, 679.0, 680.0, 681.0, 682.0, 683.0, 684.0, 685.0, 686.0, 687.0, 688.0, 689.0, 690.0, 691.0, 692.0, 693.0, 694.0, 695.0, 696.0, 697.0, 698.0, 699.0, 700.0, 701.0, 702.0, 703.0, 704.0, 705.0, 706.0, 707.0, 708.0, 709.0, 710.0, 711.0, 712.0, 713.0, 714.0, 715.0, 716.0, 717.0, 718.0, 719.0, 720.0, 721.0, 722.0, 723.0, 724.0, 725.0, 726.0, 727.0, 728.0, 729.0, 730.0, 731.0, 732.0, 733.0, 734.0, 735.0, 736.0, 737.0, 738.0, 739.0, 740.0, 741.0, 742.0, 743.0, 744.0, 745.0, 746.0, 747.0, 748.0, 749.0, 750.0, 751.0, 752.0, 753.0, 754.0, 755.0, 756.0, 757.0, 758.0, 759.0, 760.0, 761.0, 762.0, 763.0, 764.0, 765.0, 766.0, 767.0
|
||
2025-12-08 16:10:02,410 - ERROR - —— 完整响应对象 ——
|
||
{
|
||
"id": "chatcmpl-EVJ5ZFwaa4IAZBiPx4iO8PF14xJPlOTr",
|
||
"choices": [
|
||
{
|
||
"finish_reason": "length",
|
||
"index": 0,
|
||
"logprobs": null,
|
||
"message": {
|
||
"content": "{\n \"root\": {\n \"type\": \"Parallel\",\n \"name\": \"MissionWithSafety\",\n \"params\": {\"policy\": \"all_success\"},\n \"children\": [\n {\n \"type\": \"Sequence\",\n \"name\": \"MainTask\",\n \"params\": {},\n \"children\": [\n {\"type\":\"action\",\"name\":\"preflight_checks\",\"params\":{\"check_level\":\"comprehensive\"}},\n {\"type\":\"action\",\"name\":\"takeoff\",\"params\":{\"altitude\":1.0}},\n {\"type\":\"action\",\"name\":\"fly_to_waypoint\",\"params\":{\"x\":5.0,\"y\":3.0,\"z\":2.0}}, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 37.0, 38.0, 39.0, 40.0, 41.0, 42.0, 43.0, 44.0, 45.0, 46.0, 47.0, 48.0, 49.0, 50.0, 51.0, 52.0, 53.0, 54.0, 55.0, 56.0, 57.0, 58.0, 59.0, 60.0, 61.0, 62.0, 63.0, 64.0, 65.0, 66.0, 67.0, 68.0, 69.0, 70.0, 71.0, 72.0, 73.0, 74.0, 75.0, 76.0, 77.0, 78.0, 79.0, 80.0, 81.0, 82.0, 83.0, 84.0, 85.0, 86.0, 87.0, 88.0, 89.0, 90.0, 91.0, 92.0, 93.0, 94.0, 95.0, 96.0, 97.0, 98.0, 99.0, 100.0, 101.0, 102.0, 103.0, 104.0, 105.0, 106.0, 107.0, 108.0, 109.0, 110.0, 111.0, 112.0, 113.0, 114.0, 115.0, 116.0, 117.0, 118.0, 119.0, 120.0, 121.0, 122.0, 123.0, 124.0, 125.0, 126.0, 127.0, 128.0, 129.0, 130.0, 131.0, 132.0, 133.0, 134.0, 135.0, 136.0, 137.0, 138.0, 139.0, 140.0, 141.0, 142.0, 143.0, 144.0, 145.0, 146.0, 147.0, 148.0, 149.0, 150.0, 151.0, 152.0, 153.0, 154.0, 155.0, 156.0, 157.0, 158.0, 159.0, 160.0, 161.0, 162.0, 163.0, 164.0, 165.0, 166.0, 167.0, 168.0, 169.0, 170.0, 171.0, 172.0, 173.0, 174.0, 175.0, 176.0, 177.0, 178.0, 179.0, 180.0, 181.0, 182.0, 183.0, 184.0, 185.0, 186.0, 187.0, 188.0, 189.0, 190.0, 191.0, 192.0, 193.0, 194.0, 195.0, 196.0, 197.0, 198.0, 199.0, 200.0, 201.0, 202.0, 203.0, 204.0, 205.0, 206.0, 207.0, 208.0, 209.0, 210.0, 211.0, 212.0, 213.0, 214.0, 215.0, 216.0, 217.0, 218.0, 219.0, 220.0, 221.0, 222.0, 223.0, 224.0, 225.0, 226.0, 227.0, 228.0, 229.0, 230.0, 231.0, 232.0, 233.0, 234.0, 235.0, 236.0, 237.0, 238.0, 239.0, 240.0, 241.0, 242.0, 243.0, 244.0, 245.0, 246.0, 247.0, 248.0, 249.0, 250.0, 251.0, 252.0, 253.0, 254.0, 255.0, 256.0, 257.0, 258.0, 259.0, 260.0, 261.0, 262.0, 263.0, 264.0, 265.0, 266.0, 267.0, 268.0, 269.0, 270.0, 271.0, 272.0, 273.0, 274.0, 275.0, 276.0, 277.0, 278.0, 279.0, 280.0, 281.0, 282.0, 283.0, 284.0, 285.0, 286.0, 287.0, 288.0, 289.0, 290.0, 291.0, 292.0, 293.0, 294.0, 295.0, 296.0, 297.0, 298.0, 299.0, 300.0, 301.0, 302.0, 303.0, 304.0, 305.0, 306.0, 307.0, 308.0, 309.0, 310.0, 311.0, 312.0, 313.0, 314.0, 315.0, 316.0, 317.0, 318.0, 319.0, 320.0, 321.0, 322.0, 323.0, 324.0, 325.0, 326.0, 327.0, 328.0, 329.0, 330.0, 331.0, 332.0, 333.0, 334.0, 335.0, 336.0, 337.0, 338.0, 339.0, 340.0, 341.0, 342.0, 343.0, 344.0, 345.0, 346.0, 347.0, 348.0, 349.0, 350.0, 351.0, 352.0, 353.0, 354.0, 355.0, 356.0, 357.0, 358.0, 359.0, 360.0, 361.0, 362.0, 363.0, 364.0, 365.0, 366.0, 367.0, 368.0, 369.0, 370.0, 371.0, 372.0, 373.0, 374.0, 375.0, 376.0, 377.0, 378.0, 379.0, 380.0, 381.0, 382.0, 383.0, 384.0, 385.0, 386.0, 387.0, 388.0, 389.0, 390.0, 391.0, 392.0, 393.0, 394.0, 395.0, 396.0, 397.0, 398.0, 399.0, 400.0, 401.0, 402.0, 403.0, 404.0, 405.0, 406.0, 407.0, 408.0, 409.0, 410.0, 411.0, 412.0, 413.0, 414.0, 415.0, 416.0, 417.0, 418.0, 419.0, 420.0, 421.0, 422.0, 423.0, 424.0, 425.0, 426.0, 427.0, 428.0, 429.0, 430.0, 431.0, 432.0, 433.0, 434.0, 435.0, 436.0, 437.0, 438.0, 439.0, 440.0, 441.0, 442.0, 443.0, 444.0, 445.0, 446.0, 447.0, 448.0, 449.0, 450.0, 451.0, 452.0, 453.0, 454.0, 455.0, 456.0, 457.0, 458.0, 459.0, 460.0, 461.0, 462.0, 463.0, 464.0, 465.0, 466.0, 467.0, 468.0, 469.0, 470.0, 471.0, 472.0, 473.0, 474.0, 475.0, 476.0, 477.0, 478.0, 479.0, 480.0, 481.0, 482.0, 483.0, 484.0, 485.0, 486.0, 487.0, 488.0, 489.0, 490.0, 491.0, 492.0, 493.0, 494.0, 495.0, 496.0, 497.0, 498.0, 499.0, 500.0, 501.0, 502.0, 503.0, 504.0, 505.0, 506.0, 507.0, 508.0, 509.0, 510.0, 511.0, 512.0, 513.0, 514.0, 515.0, 516.0, 517.0, 518.0, 519.0, 520.0, 521.0, 522.0, 523.0, 524.0, 525.0, 526.0, 527.0, 528.0, 529.0, 530.0, 531.0, 532.0, 533.0, 534.0, 535.0, 536.0, 537.0, 538.0, 539.0, 540.0, 541.0, 542.0, 543.0, 544.0, 545.0, 546.0, 547.0, 548.0, 549.0, 550.0, 551.0, 552.0, 553.0, 554.0, 555.0, 556.0, 557.0, 558.0, 559.0, 560.0, 561.0, 562.0, 563.0, 564.0, 565.0, 566.0, 567.0, 568.0, 569.0, 570.0, 571.0, 572.0, 573.0, 574.0, 575.0, 576.0, 577.0, 578.0, 579.0, 580.0, 581.0, 582.0, 583.0, 584.0, 585.0, 586.0, 587.0, 588.0, 589.0, 590.0, 591.0, 592.0, 593.0, 594.0, 595.0, 596.0, 597.0, 598.0, 599.0, 600.0, 601.0, 602.0, 603.0, 604.0, 605.0, 606.0, 607.0, 608.0, 609.0, 610.0, 611.0, 612.0, 613.0, 614.0, 615.0, 616.0, 617.0, 618.0, 619.0, 620.0, 621.0, 622.0, 623.0, 624.0, 625.0, 626.0, 627.0, 628.0, 629.0, 630.0, 631.0, 632.0, 633.0, 634.0, 635.0, 636.0, 637.0, 638.0, 639.0, 640.0, 641.0, 642.0, 643.0, 644.0, 645.0, 646.0, 647.0, 648.0, 649.0, 650.0, 651.0, 652.0, 653.0, 654.0, 655.0, 656.0, 657.0, 658.0, 659.0, 660.0, 661.0, 662.0, 663.0, 664.0, 665.0, 666.0, 667.0, 668.0, 669.0, 670.0, 671.0, 672.0, 673.0, 674.0, 675.0, 676.0, 677.0, 678.0, 679.0, 680.0, 681.0, 682.0, 683.0, 684.0, 685.0, 686.0, 687.0, 688.0, 689.0, 690.0, 691.0, 692.0, 693.0, 694.0, 695.0, 696.0, 697.0, 698.0, 699.0, 700.0, 701.0, 702.0, 703.0, 704.0, 705.0, 706.0, 707.0, 708.0, 709.0, 710.0, 711.0, 712.0, 713.0, 714.0, 715.0, 716.0, 717.0, 718.0, 719.0, 720.0, 721.0, 722.0, 723.0, 724.0, 725.0, 726.0, 727.0, 728.0, 729.0, 730.0, 731.0, 732.0, 733.0, 734.0, 735.0, 736.0, 737.0, 738.0, 739.0, 740.0, 741.0, 742.0, 743.0, 744.0, 745.0, 746.0, 747.0, 748.0, 749.0, 750.0, 751.0, 752.0, 753.0, 754.0, 755.0, 756.0, 757.0, 758.0, 759.0, 760.0, 761.0, 762.0, 763.0, 764.0, 765.0, 766.0, 767.0",
|
||
"refusal": null,
|
||
"role": "assistant",
|
||
"annotations": null,
|
||
"audio": null,
|
||
"function_call": null,
|
||
"tool_calls": null
|
||
}
|
||
}
|
||
],
|
||
"created": 1765181402,
|
||
"model": "local-model",
|
||
"object": "chat.completion",
|
||
"service_tier": null,
|
||
"system_fingerprint": "b7212-ff90508d6",
|
||
"usage": {
|
||
"completion_tokens": 5397,
|
||
"prompt_tokens": 2795,
|
||
"total_tokens": 8192,
|
||
"completion_tokens_details": null,
|
||
"prompt_tokens_details": null
|
||
},
|
||
"timings": {
|
||
"cache_n": 2593,
|
||
"prompt_n": 202,
|
||
"prompt_ms": 20.431,
|
||
"prompt_per_token_ms": 0.10114356435643565,
|
||
"prompt_per_second": 9886.936518036317,
|
||
"predicted_n": 5397,
|
||
"predicted_ms": 15154.56,
|
||
"predicted_per_token_ms": 2.807959977765425,
|
||
"predicted_per_second": 356.13043202837963
|
||
}
|
||
}
|
||
2025-12-08 16:10:02,410 - INFO - --- 第 2/3 次尝试生成Pytree ---
|
||
2025-12-08 16:10:03,254 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:10:03,256 - INFO - ✅ JSON Schema验证成功
|
||
2025-12-08 16:10:03,256 - WARNING - ⚠️ 安全警告: 行为树中没有发现电池监控节点或安全监控器
|
||
2025-12-08 16:10:03,256 - WARNING - ❌ 未通过验证的Pytree(第 2/3 次尝试):
|
||
{
|
||
"root": {
|
||
"type": "Parallel",
|
||
"name": "MissionWithSafety",
|
||
"params": {
|
||
"policy": "all_success"
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "Sequence",
|
||
"name": "MainTask",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "preflight_checks",
|
||
"params": {
|
||
"check_level": "comprehensive"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "takeoff",
|
||
"params": {
|
||
"altitude": 1.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "fly_to_waypoint",
|
||
"params": {
|
||
"x": 10.0,
|
||
"y": -10.0,
|
||
"z": 2.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "object_detect",
|
||
"params": {
|
||
"target_class": "person",
|
||
"description": "穿黑色衣服的人",
|
||
"count": 1
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "track_object",
|
||
"params": {
|
||
"target_class": "person",
|
||
"description": "穿黑色衣服的人",
|
||
"track_time": 30.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "strike_target",
|
||
"params": {
|
||
"target_class": "person",
|
||
"description": "穿黑色衣服的人",
|
||
"count": 1
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
}
|
||
2025-12-08 16:10:03,256 - WARNING - 生成的Pytree验证失败,正在重试...
|
||
2025-12-08 16:10:03,256 - INFO - --- 第 3/3 次尝试生成Pytree ---
|
||
2025-12-08 16:10:04,024 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:10:04,027 - INFO - ✅ JSON Schema验证成功
|
||
2025-12-08 16:10:04,027 - WARNING - ⚠️ 安全警告: 行为树中没有发现电池监控节点或安全监控器
|
||
2025-12-08 16:10:04,027 - WARNING - ❌ 未通过验证的Pytree(第 3/3 次尝试):
|
||
{
|
||
"root": {
|
||
"type": "Parallel",
|
||
"name": "MissionWithSafety",
|
||
"params": {
|
||
"policy": "all_success"
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "Sequence",
|
||
"name": "MainTask",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "preflight_checks",
|
||
"params": {
|
||
"check_level": "comprehensive"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "takeoff",
|
||
"params": {
|
||
"altitude": 1.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "fly_to_waypoint",
|
||
"params": {
|
||
"x": 5.0,
|
||
"y": 3.0,
|
||
"z": 2.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "object_detect",
|
||
"params": {
|
||
"target_class": "person",
|
||
"description": "穿黑色衣服的人",
|
||
"count": 1
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "track_object",
|
||
"params": {
|
||
"target_class": "person",
|
||
"description": "穿黑色衣服的人",
|
||
"track_time": 30.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "strike_target",
|
||
"params": {
|
||
"target_class": "person",
|
||
"description": "穿黑色衣服的人",
|
||
"count": 1
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
}
|
||
2025-12-08 16:10:04,027 - WARNING - 生成的Pytree验证失败,正在重试...
|
||
INFO: 127.0.0.1:56802 - "POST /generate_plan HTTP/1.1" 200 OK
|
||
2025-12-08 16:10:05,032 - INFO - 接收到用户请求: 已知目标检测红色气球危险性高于蓝色气球高于绿色气球,飞往搜索区搜索并锁定危险性最高的气球,对其跟踪30秒
|
||
2025-12-08 16:10:05,084 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:10:05,085 - INFO - 分类结果: complex
|
||
2025-12-08 16:10:05,085 - INFO - --- 开始从向量数据库检索上下文 ---
|
||
2025-12-08 16:10:05,136 - INFO - --- 成功检索到上下文信息 ---
|
||
2025-12-08 16:10:05,136 - INFO - 📚 检索到的上下文内容:
|
||
在地图上有一个名为 '学生宿舍' 的地点或区域,它的building是'dormitory',其中心位置坐标大约在 (x:5, y:3, z:2)。
|
||
|
||
在地图上有一个名为 '跷跷板' 的地点或区域,它的leisure是'playground',其中心位置坐标大约在 (x:15, y:-8.5, z:1.2)。
|
||
|
||
在地图上有一个名为 'A地' 的地点或区域,它的building是'commercial',其中心位置坐标大约在 (x:10, y:-10, z:2)。
|
||
2025-12-08 16:10:05,136 - INFO - --- 第 1/3 次尝试生成Pytree ---
|
||
2025-12-08 16:10:06,355 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:10:06,359 - WARNING - ❌ Pytree验证失败
|
||
2025-12-08 16:10:06,359 - WARNING - 错误信息: 1 is not of type 'object'
|
||
2025-12-08 16:10:06,359 - WARNING - 错误路径: root -> children -> 0 -> children -> 3
|
||
2025-12-08 16:10:06,359 - WARNING - ❌ 未通过验证的Pytree(第 1/3 次尝试):
|
||
{
|
||
"root": {
|
||
"type": "Parallel",
|
||
"name": "MissionWithSafety",
|
||
"params": {
|
||
"policy": "all_success"
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "Sequence",
|
||
"name": "MainTask",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "preflight_checks",
|
||
"params": {
|
||
"check_level": "comprehensive"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "takeoff",
|
||
"params": {
|
||
"altitude": 10.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "fly_to_waypoint",
|
||
"params": {
|
||
"x": 200.0,
|
||
"y": 150.0,
|
||
"z": 10.0
|
||
}
|
||
},
|
||
1,
|
||
{
|
||
"type": "action",
|
||
"name": "search_pattern",
|
||
"params": {
|
||
"pattern_type": "grid",
|
||
"center_x": 200,
|
||
"center_y": 150,
|
||
"center_z": 10,
|
||
"radius": 50,
|
||
"target_class": "balloon",
|
||
"description": "红色"
|
||
}
|
||
},
|
||
{
|
||
"type": "condition",
|
||
"name": "object_detected",
|
||
"params": {
|
||
"target_class": "balloon",
|
||
"description": "红色"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "track_object",
|
||
"params": {
|
||
"target_class": "balloon",
|
||
"description": "红色",
|
||
"track_time": 30.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "strike_target",
|
||
"params": {
|
||
"target_class": "balloon",
|
||
"description": "红色"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "land",
|
||
"params": {
|
||
"mode": "home"
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"type": "Selector",
|
||
"name": "SafetyMonitor",
|
||
"params": {
|
||
"memory": true
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "condition",
|
||
"name": "battery_above",
|
||
"params": {
|
||
"threshold": 0.3
|
||
}
|
||
},
|
||
{
|
||
"type": "condition",
|
||
"name": "gps_status",
|
||
"params": {
|
||
"min_satellites": 8
|
||
}
|
||
},
|
||
{
|
||
"type": "Sequence",
|
||
"name": "EmergencyHandler",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "emergency_return",
|
||
"params": {
|
||
"reason": "safety_breach"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "land",
|
||
"params": {
|
||
"mode": "home"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
}
|
||
2025-12-08 16:10:06,359 - WARNING - 生成的Pytree验证失败,正在重试...
|
||
2025-12-08 16:10:06,359 - INFO - --- 第 2/3 次尝试生成Pytree ---
|
||
2025-12-08 16:10:07,816 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:10:07,819 - WARNING - ❌ Pytree验证失败
|
||
2025-12-08 16:10:07,819 - WARNING - 错误信息: 1 is not of type 'object'
|
||
2025-12-08 16:10:07,819 - WARNING - 错误路径: root -> children -> 0 -> children -> 3
|
||
2025-12-08 16:10:07,819 - WARNING - ❌ 未通过验证的Pytree(第 2/3 次尝试):
|
||
{
|
||
"root": {
|
||
"type": "Parallel",
|
||
"name": "MissionWithSafety",
|
||
"params": {
|
||
"policy": "all_success"
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "Sequence",
|
||
"name": "MainTask",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "preflight_checks",
|
||
"params": {
|
||
"check_level": "comprehensive"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "takeoff",
|
||
"params": {
|
||
"altitude": 10.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "fly_to_waypoint",
|
||
"params": {
|
||
"x": 200.0,
|
||
"y": 150.0,
|
||
"z": 10.0
|
||
}
|
||
},
|
||
1,
|
||
{
|
||
"type": "action",
|
||
"name": "search_pattern",
|
||
"params": {
|
||
"pattern_type": "grid",
|
||
"center_x": 200.0,
|
||
"center_y": 150.0,
|
||
"center_z": 10.0,
|
||
"radius": 50.0,
|
||
"target_class": "balloon",
|
||
"description": "红色"
|
||
}
|
||
},
|
||
{
|
||
"type": "condition",
|
||
"name": "object_detected",
|
||
"params": {
|
||
"target_class": "balloon",
|
||
"description": "红色"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "track_object",
|
||
"params": {
|
||
"target_class": "balloon",
|
||
"description": "红色",
|
||
"track_time": 30.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "strike_target",
|
||
"params": {
|
||
"target_class": "balloon",
|
||
"description": "红色"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "land",
|
||
"params": {
|
||
"mode": "home"
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"type": "Selector",
|
||
"name": "SafetyMonitor",
|
||
"params": {
|
||
"memory": true
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "condition",
|
||
"name": "battery_above",
|
||
"params": {
|
||
"threshold": 0.3
|
||
}
|
||
},
|
||
{
|
||
"type": "condition",
|
||
"name": "gps_status",
|
||
"params": {
|
||
"min_satellites": 8
|
||
}
|
||
},
|
||
{
|
||
"type": "Sequence",
|
||
"name": "EmergencyHandler",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "emergency_return",
|
||
"params": {
|
||
"reason": "safety_breach"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "land",
|
||
"params": {
|
||
"mode": "home"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
}
|
||
2025-12-08 16:10:07,819 - WARNING - 生成的Pytree验证失败,正在重试...
|
||
2025-12-08 16:10:07,819 - INFO - --- 第 3/3 次尝试生成Pytree ---
|
||
2025-12-08 16:10:08,620 - INFO - HTTP Request: POST http://localhost:8081/v1/chat/completions "HTTP/1.1 200 OK"
|
||
2025-12-08 16:10:08,623 - WARNING - ❌ Pytree验证失败
|
||
2025-12-08 16:10:08,623 - WARNING - 错误信息: '(红>蓝>绿)' is not of type 'object'
|
||
2025-12-08 16:10:08,623 - WARNING - 错误路径: root -> children -> 0 -> children -> 5
|
||
2025-12-08 16:10:08,623 - WARNING - ❌ 未通过验证的Pytree(第 3/3 次尝试):
|
||
{
|
||
"root": {
|
||
"type": "Parallel",
|
||
"name": "MissionWithSafety",
|
||
"params": {
|
||
"policy": "all_success"
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "Sequence",
|
||
"name": "MainTask",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "preflight_checks",
|
||
"params": {
|
||
"check_level": "comprehensive"
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "takeoff",
|
||
"params": {
|
||
"altitude": 10.0
|
||
}
|
||
},
|
||
{
|
||
"type": "action",
|
||
"name": "fly_to_waypoint",
|
||
"params": {
|
||
"x": 200.0,
|
||
"y": 150.0,
|
||
"z": 10.0
|
||
}
|
||
},
|
||
1.0,
|
||
"description",
|
||
"(红>蓝>绿)"
|
||
]
|
||
},
|
||
{
|
||
"type": "Selector",
|
||
"name": "SafetyMonitor",
|
||
"params": {
|
||
"memory": true
|
||
},
|
||
"children": [
|
||
{
|
||
"type": "condition",
|
||
"name": "battery_above",
|
||
"params": {
|
||
"threshold": 0.3
|
||
}
|
||
},
|
||
{
|
||
"type": "condition",
|
||
"name": "gps_status",
|
||
"params": {
|
||
"min_satellites": 8
|
||
}
|
||
},
|
||
{
|
||
"type": "Sequence",
|
||
"name": "EmergencyHandler",
|
||
"params": {},
|
||
"children": [
|
||
{
|
||
"type": "action",
|
||
"name": "emergency_return",
|
||
"params": {
|
||
"reason": "safety_breach"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
}
|
||
2025-12-08 16:10:08,623 - WARNING - 生成的Pytree验证失败,正在重试...
|
||
INFO: 127.0.0.1:42244 - "POST /generate_plan HTTP/1.1" 200 OK
|