nav_copilot.py 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. from __future__ import annotations
  2. from plugins_func.register import Action, ActionResponse, ToolType, register_function
  3. from plugins_func.nav_copilot.service import get_service
  4. DISABLED_TEXT = "原来的语音风险点和路线录制功能已停用,请在手机 App 地图页管理风险线。"
  5. def _disabled_response() -> ActionResponse:
  6. return ActionResponse(action=Action.RESPONSE, response=DISABLED_TEXT)
  7. def _disabled_desc(name: str) -> dict:
  8. return {
  9. "type": "function",
  10. "function": {
  11. "name": name,
  12. "description": DISABLED_TEXT,
  13. "parameters": {"type": "object", "properties": {}, "required": []},
  14. },
  15. }
  16. @register_function("nav_start_record", _disabled_desc("nav_start_record"), ToolType.SYSTEM_CTL)
  17. async def nav_start_record(conn, route_name: str | None = None, sample_hz: int = 10, mode: str = "gps"):
  18. return _disabled_response()
  19. @register_function("nav_stop_record", _disabled_desc("nav_stop_record"), ToolType.SYSTEM_CTL)
  20. async def nav_stop_record(conn):
  21. return _disabled_response()
  22. @register_function("nav_mark_hazard", _disabled_desc("nav_mark_hazard"), ToolType.SYSTEM_CTL)
  23. async def nav_mark_hazard(conn, hazard_type: str, note: str | None = None):
  24. return _disabled_response()
  25. @register_function("nav_mark_hazard_reject", _disabled_desc("nav_mark_hazard_reject"), ToolType.SYSTEM_CTL)
  26. async def nav_mark_hazard_reject(conn):
  27. return _disabled_response()
  28. @register_function("nav_start_run", _disabled_desc("nav_start_run"), ToolType.SYSTEM_CTL)
  29. async def nav_start_run(conn, route_id: int | None = None, tick_hz: int = 10, mode: str = "auto"):
  30. return _disabled_response()
  31. @register_function("nav_stop_run", _disabled_desc("nav_stop_run"), ToolType.SYSTEM_CTL)
  32. async def nav_stop_run(conn):
  33. return _disabled_response()
  34. nav_status_desc = {
  35. "type": "function",
  36. "function": {
  37. "name": "nav_status",
  38. "description": "查询当前手机 App 风险线预警状态。",
  39. "parameters": {"type": "object", "properties": {}, "required": []},
  40. },
  41. }
  42. @register_function("nav_status", nav_status_desc, ToolType.SYSTEM_CTL)
  43. async def nav_status(conn):
  44. svc = get_service(conn)
  45. return ActionResponse(action=Action.RESPONSE, response=svc.status_text())
  46. @register_function("nav_list_routes", _disabled_desc("nav_list_routes"), ToolType.SYSTEM_CTL)
  47. async def nav_list_routes(conn, limit: int = 10):
  48. return _disabled_response()
  49. @register_function("nav_set_active_route", _disabled_desc("nav_set_active_route"), ToolType.SYSTEM_CTL)
  50. async def nav_set_active_route(conn, route_id: int):
  51. return _disabled_response()