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
|
075cc36270
|
feat(phase1): 支持按类别过滤的文档检索
功能增强:
- VectorIndexService 自动提取文档类别
- 文件索引:从路径提取(如 aiops-docs/api/ → "api")
- 上传文档:默认类别 "upload"
- metadata.category 字段存储类别信息
- VectorSearchService 支持类别过滤
- searchSimilarDocuments(query, topK): 原方法,不过滤
- searchSimilarDocuments(query, topK, category): 新方法,按类别过滤
- 使用 Milvus expr 过滤:metadata["category"] == "xxx"
使用场景:
- 目录结构:
aiops-docs/
├── api/ → category="api"
├── domain/ → category="domain"
└── troubleshoot/ → category="troubleshoot"
- 检索示例:
// 只检索 API 文档
searchSimilarDocuments("Redis接口", 5, "api")
// 只检索领域知识
searchSimilarDocuments("缓存原理", 5, "domain")
// 全量检索
searchSimilarDocuments("问题诊断", 5, null)
编译验证:BUILD SUCCESS
|
2026-06-23 16:33:52 +08:00 |
|
zhuyongxin
|
4ef8d87961
|
feat(phase1): 实现文档分块向量化索引
Task 5.6: 向量化索引实现
- VectorIndexService 新增方法:
- indexDocumentChunks(docId, chunks): 索引文档分块到 Milvus
- deleteDocumentChunks(docId): 删除文档的所有向量
- buildDocumentMetadata(): 构建文档元数据(区分文件索引)
核心流程:
1. 上传时:文本提取 → 分块 → 向量化 → 存入 Milvus + MySQL
2. 检索时:问题向量化 → Milvus 语义检索 → 返回相似文档
3. 删除时:删除元数据 + 删除向量索引
实现细节:
- 复用 indexSingleFile 的向量化逻辑
- metadata.docId 标识文档来源(区分 upload: 和 file:)
- 删除表达式:metadata["docId"] == "xxx"
- 自动去重:上传前删除旧向量数据
DocumentManagementService 完整实现:
- uploadDocument: 完整向量化流程(移除 TODO)
- deleteDocument: 同步删除向量索引(移除 TODO)
编译验证:BUILD SUCCESS
Progress: 32/34 tasks completed (94%)
|
2026-06-23 16:08:50 +08:00 |
|