Commit Graph

10 Commits

Author SHA1 Message Date
Abner
f897ae5212 feat: 优化 AI 智能回复工作流的请求逻辑与 JSON 格式处理
- 移除冗余的 `tools` 和 `tool_choice` 参数,简化请求结构,提升代码可维护性
- 统一使用 `response_format: {"type": "json_object"}` 确保所有请求返回标准 JSON 格式
- 在用户提示末尾明确添加禁止输出 `json` 代码块标记的说明,避免解析错误
- 简化重试逻辑,移除基于模式的条件判断,统一处理消息内容追加
- 将测试用例名称从 `chat_tools`/`chat_json` 调整为更语义化的 `chat_json`/`chat_plain`
2026-05-05 11:45:03 +08:00
Abner
5087ad5e64 feat: 优化 AI 智能回复工作流中的文件内容读取逻辑
- 将单个文件最大读取字符数从 3000 提升至 8000,以获取更完整的上下文信息
- 引入关键词定位机制,自动识别 search_queries、keywords 和 components 中的有效搜索词
- 实现上下文窗口提取功能,对关键词命中行前后各取 40 行内容,提高相关代码片段的完整性
- 添加重叠区间合并逻辑,避免重复内容并保持上下文连贯性
- 在无关键词匹配时保留原始截断策略作为回退方案,确保兼容性
2026-05-02 12:28:20 +08:00
Abner
bf090f9ce2 feat: 升级 AI Issue 智能回复工作流,支持更精确的解决方案输出和新评论模式
- 重构 LLM 调用方式,移除 `chat_tools` 模式,统一使用 `chat_json` 和 `chat_plain` 模式,并增强 JSON 提取逻辑(支持从 markdown 代码块中提取)
- 在响应 schema 中新增 `workaround` 字段,用于提供用户可立即执行的临时解决方案(不依赖代码修改或重新部署)
- 强化 `solution` 和 `actionable_steps` 字段的内容要求,必须包含具体文件路径、函数名、行号及可执行修改步骤,提升对 AI 编程助手的可用性
- 将输出标记从 v3 升级至 v4,并改为始终创建新评论(不再编辑旧评论),保留历史分析记录,提升可追溯性
- 优化错误处理和日志输出,在网络请求失败时打印 HTTP 错误码和响应体前 500 字符,便于调试
2026-04-29 23:22:44 +08:00
Abner
d7c4f5f6e3 ♻️ refactor: 重构 AI Issue 智能回复工作流,移除索引检索并增强上下文分析
- 移除独立的 AI 索引构建工作流(ai-build-index.yml)及相关脚本,简化架构
- 删除 ai/ 目录下所有索引文件(index.jsonl、embeddings.jsonl、index_manifest.json)
- 将 retrieve_ai_context.py 脚本替换为内联的仓库扫描逻辑,直接在工作流中实现上下文检索
- 新增富化上下文(enriched context)收集功能,自动提取 Issue 中的错误堆栈、代码块、相关文件内容和 Git 历史
- 增强 triage 阶段输出结构,新增 error_pattern_summary、related_files 和 actionable_steps 字段
- 优化触发条件,支持 issue_comment 事件并通过 `/ai-analyze` 命令触发重新分析
- 改进 LLM 调用验证逻辑,增加字段完整性检查和自动重试机制
- 重构输出展示模板,提供更结构化的 AI 分析结果和用户操作指引
2026-04-29 22:50:56 +08:00
Abner
01b81eaa5e 🔧 chore: 移除旧版 Issue 模板并重构 AI 工单处理工作流
- 删除 `.github/ISSUE_TEMPLATE/bug_report.yml` 和 `.github/ISSUE_TEMPLATE/config_question.yml` 两个旧版 Issue 模板文件
- 重构 `ai-issue-smart-reply.yml` 工作流,将 LLM 调用从 `appleboy/llm-action` 改为原生 Python 脚本实现
- 在工作流中添加对 Node 24 的强制使用设置 `FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true`
- 优化 LLM 接口调用逻辑,支持多种响应格式(function calling 和 JSON object)并具备自动降级机制
- 将系统提示词和输入提示词分离为独立文件,提升可维护性和可读性
2026-04-23 17:32:47 +08:00
Abner
4a652270f1 🔧 chore: 新增 GitHub 问题模板和优化 AI 索引构建流程
- 新增 .github/FUNDING.yml 文件,配置 Ko-fi 赞助链接
- 创建 bug_report.yml 问题模板,规范问题提交流程,包含版本、部署方式、环境信息等必填字段
- 创建 config_question.yml 问题模板,用于处理配置和部署相关疑问
- 重构 build_ai_index.py 脚本,改进错误处理、添加 User-Agent 参数、支持批量嵌入大小配置
- 更新 ai-build-index.yml 工作流,添加 API 端点探测步骤,支持嵌入批次大小和用户代理配置变量
- 优化 ai-issue-smart-reply.yml 工作流,简化 LLM 调用参数,增强嵌入检索逻辑以支持混合索引查询
2026-04-18 00:16:29 +08:00
Abner
4bd373ffa2 🔧 chore: 移除冗余的上下文准备步骤
- 删除 `.ai_runtime/index_context.txt` 和 `.ai_runtime/fallback_context.txt` 的处理逻辑
- 移除 `Prepare final retrieved context` 工作流步骤,简化执行流程
- 清理 `.ai_runtime/final_context.txt` 文件相关操作,减少不必要的文件处理
2026-04-13 20:31:03 +08:00
Abner
6c20b62670 feat: 升级 AI 索引构建与检索系统,支持向量嵌入和混合搜索
- 重构 `build_ai_index.py`,新增向量嵌入支持,包括批量嵌入处理、API 响应校验和超时优化,提升索引生成稳定性
- 引入 `retrieve_ai_context.py` 的向量检索能力,支持基于余弦相似度的混合关键词+语义搜索,显著提高相关性匹配精度
- 更新索引清单格式至 version 2,增加生成时间、扫描文件数、启用嵌入等元数据字段,便于调试与监控
- 优化工作流 `ai-build-index.yml`,添加并发控制、步骤摘要输出和嵌入开关逻辑,增强可观测性与资源管理
- 改进 `ai-issue-smart-reply.yml` 的上下文获取流程,统一最终上下文与候选信息处理路径,确保数据一致性和容错能力
2026-04-13 20:21:11 +08:00
Abner
142c484783 Update ai-issue-smart-reply.yml 2026-04-13 20:02:51 +08:00
Abner
73e62d76ab feat: 添加 AI 知识库索引构建与智能 Issue 回复功能
- 新增 `build_ai_index.py` 脚本,用于扫描仓库文件并生成带权重的文本分块索引,支持关键词提取与摘要生成
- 新增 `retrieve_ai_context.py` 脚本,支持基于嵌入索引或仓库扫描的上下文检索,用于为 Issue 分析提供相关文档片段
- 新增 `ai-build-index.yml` 工作流,定期或在指定文件变更时自动构建轻量级索引和可选的真实嵌入向量,并支持提交更新到仓库
- 新增 `ai-issue-smart-reply.yml` 工作流,在新 Issue 创建时自动进行类型识别、重复检查、上下文检索,并由 LLM 生成维护者级别的回复和标签建议
- 支持通过环境变量灵活控制功能开关(如是否使用嵌入索引、是否自动打标签),并集成 GitHub 原生操作实现幂等评论更新与标签管理
2026-04-13 19:56:23 +08:00