zhuyongxin
|
cf3333d607
|
feat(rag): modularize knowledge retrieval pipeline
|
2026-07-06 17:06:05 +08:00 |
|
aruo
|
ed267d753d
|
feat: add aiops lightweight verifier
|
2026-07-05 13:44:30 +08:00 |
|
aruo
|
b9ec07de57
|
feat: add spring ai retrieval sidecar
|
2026-07-05 03:22:03 +08:00 |
|
aruo
|
5197712719
|
feat: add rag evidence postprocess blocks
|
2026-07-05 03:03:18 +08:00 |
|
aruo
|
23ee05c7c3
|
feat: add traceable scoped AIOps diagnosis
|
2026-07-04 22:57:28 +08:00 |
|
zhuyongxin
|
6919092b83
|
feat: archive mvp demo trace acceptance
|
2026-07-03 16:25:00 +08:00 |
|
zhuyongxin
|
e438df4355
|
feat(knowledge): Executor 行动记忆 + 归一化质量等级解决 ISS-002 重复检索
- RetrievedDocTracker 升级为域级+文档级双层记录(Map<sessionId, Map<domain, Set<filePath>>>)
- LookupKnowledgeTool 新增 Min-Max 归一化层(BGE-M3 L2 距离→[0,1] similarity)
- 三等级 relevanceLevel:PRECISE / HIGHLY_RELEVANT / REFERENCE + completenessHint 兜底信号
- LookupResult 新增 relevanceLevel、completenessHint、retrievedDomainsThisSession
- Executor prompt 重写:4 条检索约束 + 合法出口不查全不追责,重复检索才惩罚
- 入库可观测性:V010 迁移 + retrieval_details JSON 扩展
- 归档 executor-action-memory-relevance change
|
2026-07-01 18:24:41 +08:00 |
|
zhuyongxin
|
354ffc1947
|
feat(feedback): 补提交 feedback 相关源码(漏提交的新建文件)
|
2026-07-01 10:57:49 +08:00 |
|
zhuyongxin
|
bb44140901
|
feat(knowledge): 会话级去重 + 知识域地图注入 Planner 解决 ISS-001 重复检索
- RetrievedDocTracker: sessionId → Set<filePath> 会话级去重,LookupKnowledgeTool Step 5 过滤已检索文档
- KnowledgeDomainService: 域级聚合,LLM 生成 when_to_retrieve,构建 knowledge map YAML
- DocumentFieldEnricher: 上传时 LLM 补全 covers + whenToRetrieve(含同域文档排除上下文)
- KnowledgeDomain entity + V009 迁移: 域级元数据持久化,避免重启重复 LLM 调用
- ChatService: 注入 knowledge map 到 Planner prompt,会话结束时清理去重状态
- KnowledgeIndexService: 手写 JSON 解析替换为 Jackson ObjectMapper,启动时补建缺失域记录
- chat-planner-prompt: 新增知识库检索规则(按域 when_to_retrieve 判断,每域最多一次检索)
- doc-field-enricher-prompt / domain-summary-prompt: 外部化 LLM 提示词
|
2026-07-01 10:47:46 +08:00 |
|
zhuyongxin
|
a74ccea5be
|
feat(knowledge): breadcrumb分块上下文 & LookupKnowledgeTool日志优化
- DocumentChunk新增breadcrumb字段,分块时构建完整标题层级路径
- DocumentChunkService splitByHeadings维护标题层级栈算法
- VectorIndexService 将breadcrumb写入Milvus metadata
- LookupKnowledgeTool日志替换为结构化摘要,替代原始MD预览
- L0返回策略:唯一匹配用正文摘要,多匹配+L1有结果仅元数据(不读文件)
- 新增buildCompactSummary / buildMetadataOnlySummary方法
- 安装frontend-design skill
- 创建mvp/文档目录(架构设计+会话存储方案)
- 更新测试适配新逻辑
|
2026-06-26 13:56:10 +08:00 |
|
zhuyongxin
|
d6229f3385
|
feat(knowledge): 完成 L0+L1 混合检索集成
核心功能:
- 新增 FrontmatterParser 解析 YAML frontmatter
- 新增 KnowledgeIndexService L0 内存索引
- 新增 LookupKnowledgeTool 混合检索工具
- 增强 DocumentManagementService 文件保存和索引同步
技术实现:
- 数据库迁移 V004: api_document.metadata (TEXT)
- 依赖新增: snakeyaml 2.0
- 配置新增: knowledge.base-path
- 可观测性: requestId 追踪 + 性能日志
质量保证:
- 单元测试: 31/31 通过
- 测试覆盖: FrontmatterParser(11), KnowledgeIndexService(13), LookupKnowledgeTool(7)
- 启动验证: L0 索引正常加载
归档文档:
- OpenSpec: openspec/changes/lookup-knowledge-integration/
- devflow 档案: devflow/projects/2026-06-24-lookup-knowledge-integration/
- handoff: handoff/2026-06-24-lookup-knowledge-integration.md
|
2026-06-24 16:07:10 +08:00 |
|
zhuyongxin
|
24101a8d66
|
feat(phase1): 支持上传时指定文档类别
功能增强:
- DocumentController 新增 category 参数
POST /api/documents/upload?category=api
- DocumentUploadRequest 新增 category 字段
- 支持用户指定:api、domain、troubleshoot 等
- 默认值:upload(未指定时)
- VectorIndexService.indexDocumentChunks 接收 category
- 将用户指定的类别存入 Milvus metadata
- metadata.category = 用户指定值 或 "upload"
使用示例:
```bash
# 上传 API 文档
curl -X POST /api/documents/upload \
-F "file=@redis-api.md" \
-F "category=api"
# 上传领域知识文档
curl -X POST /api/documents/upload \
-F "file=@cache-theory.md" \
-F "category=domain"
# 检索时按类别过滤
searchSimilarDocuments("Redis接口", 5, "api")
```
完整流程:
1. 文件索引:自动从路径提取(aiops-docs/api/ → "api")
2. 用户上传:从接口参数获取(category=api)
3. 检索时:可按类别过滤(category 参数)
编译验证:BUILD SUCCESS
|
2026-06-23 16:43:47 +08:00 |
|
zhuyongxin
|
ea77518880
|
feat(phase1): 完成文本提取和文档分块服务
Task 5.1: TextExtractor 服务
- 创建 TextExtractorService(仅支持 .md 和 .txt)
- 其他格式(.docx、.pdf)需通过外部转换服务先转为 Markdown
- 支持 UTF-8 编码的纯文本提取
- 提供文件格式验证方法
Task 5.2: 文档分块服务适配
- 修改 DocumentChunk DTO:添加 @Builder 支持
- 字段重命名:startIndex/endIndex → startOffset/endOffset
- 修复 DocumentChunkService 中的三处构造调用
- 使用 builder 模式替代构造函数
技术决策:
- 简化文本提取,只支持 Markdown 和纯文本
- 复杂格式转换由外部服务处理(分离关注点)
- 统一使用 Lombok @Builder 简化对象构建
编译验证:BUILD SUCCESS
Progress: 25/33 tasks completed (76%)
|
2026-06-23 15:15:10 +08:00 |
|
zhuyongxin
|
360e4febae
|
feat(phase1): 完成分层结构优化和 DTO 创建
Task 4.2: 分层结构优化
- 创建 exception 包
- SessionNotFoundException: 会话未找到异常
- DocumentProcessException: 文档处理异常
- 已有分层结构验证
- controller: 控制器层 ✅
- service: 业务逻辑层 ✅
- repository: 数据访问层 ✅
- domain: 领域模型层 (entity/model/enums) ✅
- config: 配置层 ✅
- tool: 工具类 ✅
Task 4.3: 创建 DTO 类
- DiagnosisRequest: 诊断请求 DTO (10 个字段)
- DiagnosisResponse: 诊断响应 DTO (12 个字段 + 内部类)
- DocumentUploadRequest: 文档上传请求 DTO (7 个字段)
- DocumentQueryResponse: 文档查询响应 DTO (11 个字段 + 内部类)
- Result<T>: 统一响应结果 DTO (泛型包装)
功能特性:
- 异常类支持自定义错误信息和原因链
- DTO 使用 Lombok 简化代码
- Result 提供静态工厂方法(success/error)
- DocumentUploadRequest 支持 MultipartFile
- Response DTO 支持嵌套数据结构
编译验证:BUILD SUCCESS
Progress: 23/33 tasks completed (70%)
|
2026-06-23 15:02:38 +08:00 |
|
zhuyongxin
|
c3a232540a
|
refactor(phase1): 完成包名重构 (org.example → com.superbiz.agent)
Task 4.1: 包名统一重构
- 重命名 41 个 Java 文件的包名
- 更新所有 import 语句
- 恢复枚举类(FaultCategory、DiagnosisStatus、SourceType)
- 更新测试类的 import
重构范围:
- domain/entity: 3 个实体类
- domain/model: 2 个数据类
- domain/enums: 3 个枚举类
- repository: 3 个接口
- service/session: 2 个类(接口 + 实现)
- config: 9 个配置类
- controller: 2 个控制器
- agent/tool: 4 个工具类
- client: 1 个客户端
- Main.java: 主类
验证结果:
- 编译成功,无错误
- 所有测试通过 (27/27)
- ApiDocumentRepositoryTest: 7/7 ✅
- CaseLibraryRepositoryTest: 6/6 ✅
- DiagnosisRecordRepositoryTest: 6/6 ✅
- RedisSessionManagerTest: 8/8 ✅
Progress: 21/33 tasks completed (64%)
|
2026-06-23 14:56:04 +08:00 |
|