feat: 添加后端部署和API基本检索的Docker Compose配置

- 引入新的`docker-compose.yml`文件,便于后端和MQTT代理(EMQX)的部署。
- 更新多个组件中的API基本检索,使用函数进行动态解析。
- 加强了多个组件中API调用的错误处理和日志记录。
- 优化了AI聊天面板离线场景的回退响应。
- 更新DataScreen和MediaScreen组件中的数据显示和统计,以反映准确的指标。
- 重构MQTT连接逻辑,以支持动态凭证和客户端ID。
This commit is contained in:
Pine
2026-08-18 06:50:50 +08:00
parent fbf2eccad2
commit 18d28be943
23 changed files with 621 additions and 142 deletions
+15 -3
View File
@@ -21,8 +21,10 @@ _SSL_CTX = ssl.create_default_context(cafile=certifi.where())
SYSTEM_PROMPT = (
"你是「昆明市大学生创业园 · OPC 智能园区」的 AI 智能助手,运行在大屏展播系统上。"
"园区提供空间、孵化、融资、政策、资源、AI 赋能、综合服务七位一体服务"
"在园项目 158 家,累计带动就业 2,186 人,累计营收 2.08 亿元。"
"园区提供空间、孵化、融资、政策、资源、AI 赋能、综合服务七位一体服务"
"回答园区相关问题时,必须严格依据【园区知识库】中的标准资料口径回答,"
"不得使用资料外的数字;涉及运营数据时请区分口径(官方统计/省级绩效累计/AI平台指标),"
"并在需要时调用 get_park_overview 工具获取实时准确数据。"
"当用户要求「切换页面 / 控制播放 / 展示卡片 / 弹出通知」时,必须调用对应工具;"
"其余园区相关问题用简洁、专业的中文回答,可适当使用列表。"
)
@@ -146,7 +148,17 @@ def run_chat(messages):
log.warning("未配置 DASHSCOPE_API_KEY,使用本地规则引擎")
return _fallback(messages)
msgs = [{"role": "system", "content": SYSTEM_PROMPT}] + [
# 注入园区知识库摘要(标准资料口径),确保回答准确
system = SYSTEM_PROMPT
try:
from .rag import brief
kb = brief()
if kb:
system += f"\n\n【园区知识库】\n{kb}"
except Exception as e: # noqa: BLE001
log.warning("llm: 知识库注入失败(仅用基础提示词): %s", e)
msgs = [{"role": "system", "content": system}] + [
{"role": m.get("role") == "me" and "user" or m.get("role", "user"), "content": m.get("content", "")}
for m in (messages or [])
]