第 13 期:知识库原理与创建方法

Updated on 4/6/2026

[Translation Pending]\n\n## RAG 原理全景

graph TB
    subgraph "离线阶段 - 知识入库"
        Doc[原始文档 PDF/TXT/Notion] --> Chunk[文本分段 Chunking]
        Chunk --> Embed[Embedding 向量化]
        Embed --> Store[(向量数据库)]
    end
    
    subgraph "在线阶段 - 检索增强"
        Query[用户提问] --> QEmbed[Query Embedding]
        QEmbed --> Search[向量相似度搜索]
        Store --> Search
        Search --> Context[Top-K 相关段落]
        Context --> LLM[LLM + 上下文回答]
    end

创建知识库

支持的文档格式

格式 说明
TXT 纯文本
PDF 自动 OCR 提取
DOCX/DOC Word 文档
XLSX/CSV 表格数据
MD Markdown
HTML 网页内容
Notion 直接同步

通过 API 创建知识库

# 创建知识库
curl -X POST 'http://localhost/console/api/datasets' \
  -H 'Authorization: Bearer CONSOLE_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "产品文档知识库",
    "description": "包含所有产品的技术文档和FAQ",
    "indexing_technique": "high_quality",
    "permission": "only_me"
  }'

分段策略

graph LR
    subgraph "自动分段"
        A1[按段落分割]
        A2[智能边界检测]
    end
    
    subgraph "自定义分段"
        B1[指定分隔符]
        B2[最大段落长度]
        B3[重叠窗口]
    end

分段参数详解

# 分段配置示例
chunking_config = {
    "mode": "custom",                  # automatic | custom
    "rules": {
        "separator": "\n\n",           # 分段分隔符
        "max_chunk_length": 500,       # 每段最大字符数
        "chunk_overlap": 50,           # 段落重叠字符数
        "pre_processing_rules": [
            {
                "id": "remove_extra_spaces",
                "enabled": True
            },
            {
                "id": "remove_urls_emails",
                "enabled": False
            }
        ]
    }
}

分段质量黄金法则

参数 推荐值 说明
max_chunk_length 300-800 太短丢失上下文,太长噪声多
chunk_overlap 50-100 确保跨段信息不丢失
separator \n\n 按双换行分段最自然

Embedding 模型选型

模型 维度 性能 成本
OpenAI text-embedding-3-large 3072 ⭐⭐⭐⭐⭐ $$
OpenAI text-embedding-3-small 1536 ⭐⭐⭐⭐ $
Cohere embed-multilingual-v3.0 1024 ⭐⭐⭐⭐ $
BGE-large-zh (本地) 1024 ⭐⭐⭐⭐ 免费
Ollama nomic-embed-text 768 ⭐⭐⭐ 免费