feat: 添加 list_projects 意图处理
This commit is contained in:
parent
0098a3c705
commit
39416cb1c0
@ -395,8 +395,9 @@ INTENT_PROMPT = """你是一个开发产线意图分类器。分析用户输入
|
|||||||
- start_agent: 启动Agent自动执行任务
|
- start_agent: 启动Agent自动执行任务
|
||||||
- agent_status: 查看Agent状态和交付件
|
- agent_status: 查看Agent状态和交付件
|
||||||
- query: 查询当前状态
|
- query: 查询当前状态
|
||||||
- show_tasks: 查看当前项目的任务列表(如\"显示任务\"\"任务列表\"\"有哪些任务\")
|
- show_tasks: 查看当前项目的任务列表(如"显示任务""任务列表""有哪些任务")
|
||||||
- show_bugs: 查看当前项目/迭代的Bug列表(如\"显示Bug\"\"Bug列表\"\"有哪些Bug\")
|
- show_bugs: 查看当前项目/迭代的Bug列表(如"显示Bug""Bug列表""有哪些Bug")
|
||||||
|
- list_projects: 列出所有项目(如"显示所有项目""有哪些项目""项目列表")
|
||||||
- skill_list: 列出已导入的企业开发技能(如"查看技能""有哪些skills")
|
- skill_list: 列出已导入的企业开发技能(如"查看技能""有哪些skills")
|
||||||
- skill_import: 导入本地技能文件(如"导入技能 /path/to/skill",注意:只限本地路径,不包含 git@ 或 .git URL)
|
- skill_import: 导入本地技能文件(如"导入技能 /path/to/skill",注意:只限本地路径,不包含 git@ 或 .git URL)
|
||||||
- devops: git/Shell 操作(如 git clone, git pull, 克隆仓库, 执行命令,注意:任何包含 git@ 或 .git 的请求都属于 devops)
|
- devops: git/Shell 操作(如 git clone, git pull, 克隆仓库, 执行命令,注意:任何包含 git@ 或 .git 的请求都属于 devops)
|
||||||
@ -555,10 +556,11 @@ def _security_scan(text):
|
|||||||
|
|
||||||
|
|
||||||
SCOPE_GUIDE = """我可以帮你:
|
SCOPE_GUIDE = """我可以帮你:
|
||||||
📁 项目管理 — "创建电商平台项目" / "切换到XXX项目"
|
📁 项目管理 — "创建电商平台项目" / "切换到XXX项目" / "显示所有项目"
|
||||||
🔄 迭代管理 — "创建Sprint3" / "查看迭代进度"
|
🔄 迭代管理 — "创建Sprint3" / "查看迭代进度"
|
||||||
📝 提交任务 — "设计用户表结构" / "实现登录API"
|
📝 提交任务 — "设计用户表结构" / "实现登录API"
|
||||||
🐛 Bug管理 — "登录页报500" / "我的Bug列表"
|
📋 任务查看 — "显示任务列表" / "项目任务"
|
||||||
|
🐛 Bug管理 — "登录页报500" / "显示Bug"
|
||||||
📊 查询 — "当前项目进度" / "有哪些迭代"
|
📊 查询 — "当前项目进度" / "有哪些迭代"
|
||||||
📚 技能管理 — "导入技能 /path/to/skill" / "查看技能列表"
|
📚 技能管理 — "导入技能 /path/to/skill" / "查看技能列表"
|
||||||
请描述你的需求。"""
|
请描述你的需求。"""
|
||||||
@ -829,6 +831,24 @@ if action == 'send_message':
|
|||||||
sev_emoji = sev_map.get(severity, '\u25cf')
|
sev_emoji = sev_map.get(severity, '\u25cf')
|
||||||
lines.append(f"{sev_emoji} {title} [{severity}] {status} ({str(bid)[:8]})")
|
lines.append(f"{sev_emoji} {title} [{severity}] {status} ({str(bid)[:8]})")
|
||||||
agent_reply = '\n'.join(lines)
|
agent_reply = '\n'.join(lines)
|
||||||
|
elif intent_type == 'list_projects':
|
||||||
|
projects = await sor.sqlExe(
|
||||||
|
"SELECT id, name, status, project_type, created_at FROM sd_projects ORDER BY created_at DESC LIMIT 20",
|
||||||
|
{})
|
||||||
|
if not projects:
|
||||||
|
agent_reply = "暂无项目。输入「创建XXX项目」来创建第一个项目。"
|
||||||
|
else:
|
||||||
|
lines = ["所有项目:"]
|
||||||
|
for p in projects:
|
||||||
|
name = getattr(p, 'name', '') or ''
|
||||||
|
status = getattr(p, 'status', '') or ''
|
||||||
|
ptype = getattr(p, 'project_type', '') or ''
|
||||||
|
pid = getattr(p, 'id', '') or ''
|
||||||
|
emoji = '📁'
|
||||||
|
if status == 'active': emoji = '🟢'
|
||||||
|
elif status == 'completed': emoji = '✅'
|
||||||
|
lines.append(f"{emoji} {name} [{ptype}] {status}")
|
||||||
|
agent_reply = '\n'.join(lines)
|
||||||
elif intent_type == 'start_agent':
|
elif intent_type == 'start_agent':
|
||||||
pid = ctx['project_id']
|
pid = ctx['project_id']
|
||||||
if not pid:
|
if not pid:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user