智能体大模型接口全面切换 + 新增视觉智能体

- 全部 AI Worker 切换到 deepseek/deepseek-v4-flash(api.deepseek.com,实测757ms/次,成本降40倍)
- 团队模板默认 provider/model 同步改为 deepseek/deepseek-v4-flash
- 新增视觉智能体「视觉分析师」:autodl/qwen3.6-plus 多模态
- llm_gateway: chat_vision 多模态调用(URL/base64) + 空content自动重试 + 聚合后端路由容错
- engine: 任务描述支持 ![图](url) 图片注入(视觉任务直接派活)
- API: POST /api/workers/<id>/vision_test;前端 Worker 页新增🖼️视觉测试按钮
- 实测: 截图结构化分析  雪羊图片识别  辩论模式DeepSeek 55秒完成
This commit is contained in:
2026-08-12 13:22:56 +08:00
parent 8bae953d7d
commit dc49864af4
6 changed files with 138 additions and 10 deletions
+17 -2
View File
@@ -123,7 +123,9 @@ def _budget_alert(project_id):
def _build_messages(task, worker):
"""构造提示词:任务指令 + RAG 知识库上下文"""
"""构造提示词:任务指令 + RAG 知识库上下文
支持图片注入:任务描述中的 ![说明](图片URL) 或 图片:URL 会转成多模态消息(视觉 Worker)。"""
import re as _re
messages = []
if worker['system_prompt']:
messages.append({'role': 'system', 'content': worker['system_prompt']})
@@ -132,7 +134,20 @@ def _build_messages(task, worker):
if ctx:
user_text = f'{ctx}\n\n----\n\n任务指令:{user_text}'
_log(task['id'], 'info', f'📚 RAG 知识库命中 {len(refs)} 个片段:' + ''.join(refs[:5]))
messages.append({'role': 'user', 'content': user_text})
# 提取图片 URL![alt](url) 或 图片:url 或 image:url
img_urls = []
for m in _re.finditer(r'!\[[^\]]*\]\(([^)\s]+)\)', user_text):
img_urls.append(m.group(1))
for m in _re.finditer(r'(?:图片|image)\s*[:]\s*(https?://\S+)', user_text, _re.I):
img_urls.append(m.group(1))
if img_urls:
content = [{'type': 'text', 'text': user_text}]
for u in img_urls:
content.append({'type': 'image_url', 'image_url': {'url': u}})
messages.append({'role': 'user', 'content': content})
_log(task['id'], 'info', f'🖼️ 检测到 {len(img_urls)} 张图片,已注入多模态消息')
else:
messages.append({'role': 'user', 'content': user_text})
return messages