架构变更:
- 新增 app/services/agent/ 模块(state/prompts/graph/tools)
- 7 个工具从 _tool_xxx 方法提取为 @tool 装饰器函数
- 构建 assistant + ToolNode 的 ReAct 图
- agent_dispatcher.py 改为薄壳入口,支持 USE_LANGGRAPH 开关
- MemorySaver checkpoint 持久化对话(thread_id=wechat-{user_id})
- 新增依赖:langchain-core, langchain-openai, langgraph
向后兼容:
- USE_LANGGRAPH=false 可切回旧版 FC 循环
- LangGraph 初始化失败自动降级到 Legacy 模式
- 企微图片处理/VLM分析逻辑不变
22 lines
565 B
Python
22 lines
565 B
Python
"""
|
||
摄像头查询工具
|
||
"""
|
||
|
||
import json
|
||
from langchain_core.tools import tool
|
||
|
||
from .alarm_query import _get_camera_display_name
|
||
|
||
|
||
@tool
|
||
def query_camera(camera_id: str) -> str:
|
||
"""查询摄像头信息(名称、位置、状态等)
|
||
|
||
Args:
|
||
camera_id: 摄像头ID(device_id)
|
||
"""
|
||
name = _get_camera_display_name(camera_id)
|
||
if name and name != camera_id:
|
||
return json.dumps({"camera_id": camera_id, "name": name}, ensure_ascii=False)
|
||
return json.dumps({"error": f"未找到摄像头: {camera_id}"}, ensure_ascii=False)
|