外观
知识库与 RAG 表
RAG 持久化结构与普通业务表分开记录。当前检索主路径以 knowledge_chunks 为 canonical 表;rag_knowledge_items 和 rag_vector_index 保留在 schema 中,但不承载当前主检索链路。
持久化边界
| 对象 | 当前角色 | 生产规模 | 说明 |
|---|---|---|---|
knowledge_chunks | canonical RAG 主表 | 约 1038 行 | 存储知识切片、向量、来源文件和谱系 metadata。 |
rag_knowledge_items | legacy 表 | 0 行 | 旧知识条目表,保留用于历史兼容。 |
rag_vector_index | legacy 表 | 0 行 | 旧 TF-IDF 向量索引表,保留用于历史兼容。 |
knowledge/*.xlsx | 原始知识文件 | 文件级来源 | 肿瘤、运动禁忌、治疗阶段、功能障碍、指南等知识来源。 |
knowledge_chunks
当前 RAG 2.0 知识切片与向量主表。
| Field | Type | Nullable | Description |
|---|---|---|---|
id | integer | no | 主键。 |
source_filename | varchar(255) | no | 来源文件名。 |
chunk_index | integer | yes | 切片在原始文件中的序号。 |
title | varchar(512) | yes | 标题或章节名。 |
content | text | no | 切片正文。 |
embedding | vector | yes | DashScope text-embedding-v1 语义向量,模型层定义维度为 1536。 |
meta_data | jsonb | yes | 扩展 metadata,承载 rag_schema、record_type 等谱系信息。 |
created_at、updated_at | timestamptz | yes | 创建与更新时间。 |
Indexes:
| Index | Type / Expression | Purpose |
|---|---|---|
knowledge_chunks_pkey | btree(id) | 主键。 |
ix_knowledge_chunks_embedding_hnsw_cosine | hnsw(embedding vector_cosine_ops) where embedding IS NOT NULL | DB-native 向量检索。 |
ix_knowledge_chunks_source_filename | btree(source_filename) | 来源文件过滤。 |
ix_knowledge_source_file | btree(source_filename) | 兼容来源文件索引。 |
ix_knowledge_chunks_rag_schema | btree(coalesce(meta_data ->> 'rag_schema', '')) | pipeline schema scope。 |
ix_knowledge_chunks_record_type | btree(coalesce(meta_data ->> 'record_type', '')) | 记录类型过滤。 |
Read / Write:
| Path | Read | Write |
|---|---|---|
KnowledgeChunkSearchService.search_knowledge_chunks | 按 query embedding + pipeline scope 查询相似切片 | 不写 |
| RAG hybrid chain | 读取 evidence、sources、knowledge context | 不写 |
| 知识导入/重建流程 | 读取源文件与已有切片 | 写入/重建切片与 embedding |
rag_knowledge_items
旧 RAG 知识条目表。当前生产行数为 0,保留用于历史 schema 兼容。
| Field | Type | Nullable | Description |
|---|---|---|---|
id | integer | no | 主键。 |
source_file | varchar(255) | no | 来源文件名。 |
title | text | yes | 标题。 |
content | text | no | 内容。 |
category | varchar(100) | yes | 分类。 |
meta_info | json | yes | 旧 metadata。 |
row_index | integer | yes | 原始文件行索引。 |
created_at | timestamp | yes | 创建时间。 |
rag_vector_index
旧 TF-IDF 向量索引表。当前生产行数为 0,保留用于历史 schema 兼容。
| Field | Type | Nullable | Description |
|---|---|---|---|
id | integer | no | 主键。 |
version | varchar(50) | no | 索引版本。 |
vectorizer_pickle | bytea | no | 序列化 vectorizer。 |
vectors_pickle | bytea | no | 序列化向量矩阵。 |
knowledge_ids | json | no | 知识条目 ID 列表。 |
knowledge_count | integer | no | 知识条目数量。 |
vector_dim | integer | yes | 向量维度。 |
is_active | bool | yes | 是否为活跃索引。 |
created_at | timestamp | yes | 创建时间。 |
config | json | yes | 向量化配置。 |
知识库文件来源
| 文件 | 领域 |
|---|---|
knowledge/肿瘤知识库_风险评估.xlsx | 肿瘤风险评估 |
knowledge/肿瘤知识库_运动禁忌.xlsx、knowledge/运动禁忌知识库.xlsx | 运动禁忌 |
knowledge/肿瘤知识库_基于治疗阶段的运动推荐.xlsx | 治疗阶段运动推荐 |
knowledge/肿瘤知识库_基于功能障碍的运动推荐.xlsx | 功能障碍运动推荐 |
knowledge/肿瘤知识库_相关文献.xlsx | 相关文献 |
knowledge/指南知识库_指标版.xlsx | 指南指标 |
knowledge/体重指导管理知识库.xlsx、knowledge/肥胖界定知识库.xlsx | 体重管理 |
knowledge/乳腺癌1.xlsx | 乳腺癌知识补充 |
检索数据流
原始知识knowledge/*.xlsx
切片与向量化chunking / embedding
知识主表knowledge_chunks
↴
用户问题query embedding
召回与过滤HNSW / schema / record_type
证据上下文sources / evidence
来源锚点
- ORM:
apps/backend_service/app/models/rag_knowledge.py - Legacy ORM:
apps/backend_service/app/models/rag_vector_index.py - Topology:
apps/backend_service/app/core/rag/persistence_topology.py - Search:
apps/backend_service/app/core/rag/knowledge_chunk_search.py - RAG engine:
apps/backend_service/app/core/rag_engine.py - Migration:
apps/backend_service/alembic/versions/5ecfc371ca9f_add_knowledge_chunks_vector.py、f0179a3c1b2d_add_rag_persistence_indexes.py - Production catalog: RDS
core_baseinformation_schema、pg_indexes - Knowledge files:
knowledge/*.xlsx