knowledge-service(知识库)
定位
knowledge-service 提供“知识的存储、索引与检索”能力:
- 文档与切片(Document/Chunk)管理
- 原子检索(keyword/vector/hybrid)
- GraphRAG(GraphStore + 原子检索融合)
- 结构化知识:诉讼要素/非诉 checklist/案由画像
- 搜索索引运维:reindex(best-effort)
该服务以 Postgres 为真源,并支持可选依赖(Elasticsearch/Neo4j)实现更强检索。
技术栈
- Java 21 + Spring Boot
- Postgres + Flyway(必选)
- Elasticsearch(可选)
- Neo4j(可选)
对外 API(/api/v1)
对外 API 面向前端/业务侧使用,主要包括:
- 知识库管理:
KnowledgeBaseController - 文件/知识文件管理:
KnowledgeFileController - 查询接口:
KnowledgeQueryController - 任务/作业:
KnowledgeJobController
具体接口路径与入参以 OpenAPI 为准(见
api/openapi.md)。
对内 API(/internal)
内部接口供 ai-engine、collector-service 等调用:
1) Atomic Search(检索原语)
POST /api/v1/internal/atomic/keyword-searchPOST /api/v1/internal/atomic/vector-searchPOST /api/v1/internal/atomic/hybrid-searchPOST /api/v1/internal/atomic/documentPOST /api/v1/internal/atomic/section
2) GraphRAG
POST /api/v1/internal/atomic/graph-queryPOST /api/v1/internal/atomic/graph-rag-search
3) Seed 导入
POST /api/v1/internal/seed/structured/importPOST /api/v1/internal/seed/system-kb-documents/importPOST /api/v1/internal/seed/cause-of-action-profiles/import
4) 索引运维
POST /api/v1/internal/search/reindex-by-filePOST /api/v1/internal/search/reindex-batch
搜索与降级策略(重要)
knowledge-service 的检索遵循“可用性优先”:
- Elasticsearch 启用时优先用 ES(keyword/vector/hybrid)
- ES 不可用或调用失败时,自动降级为 SQL keyword 候选召回 + 简单打分
启用 ES:
KNOWLEDGE_SEARCH_BACKEND=elasticsearchELASTICSEARCH_URL=...
Neo4j(GraphStore)默认 fail-open:未配置时 GraphRAG 会降级为纯原子检索。
详细机制参见:implementation/knowledge-rag.md。
与其它服务的关系
- ai-engine:主要 consumer(atomic/graph-rag-search/element 工具)
- collector-service:seed 包分发(结构化 seeds/系统 KB 文档清单)
- files-service:知识文件与对象存储关联(文件元信息/权限校验)
- user-service:用户信息(用于归属/审计等)