跳转至

配置

概述

RAG Worker 的运行时和检索相关配置已集中到 tools/rag-worker/src/config/settings.ts(项目路径)中。

这个文件是“单一配置源”,包含:

  • 全量默认配置:DEFAULT_RAG_CONFIG
  • 检索与 rerank 配置:DEFAULT_RETRIEVAL_CONFIGDEFAULT_RERANK_CONFIG
  • 上下文配置:DEFAULT_CONTEXT_CONFIG
  • 预设(Presets):PRESET_FASTPRESET_ACCURATEPRESET_BALANCEDPRESET_CONVERSATIONAL(集合为 PRESETS
  • 合并/生成工具:mergeConfig()createConfig()getPreset()
  • 查询扩展模板、个人简介回退与个人查询关键词常量:QUERY_EXPANSION_TEMPLATESABOUT_FALLBACKSPERSONAL_QUERY_KEYWORDS
  • 向量 manifest 存储路径:STORAGE_PATHS.vectorManifest(默认 config/vector-manifest.json)。

为什么统一配置

集中式配置带来的优点:

  • 单一维护点,修改配置只需编辑 settings.ts
  • 通过 PRESETS 快速切换运行场景(性能、精度、对话优化等)。
  • 工具链(Makefile、脚本、Worker)会读取这些默认值并基于环境变量运行。

基本使用示例(在 Worker / 脚本中)

import { createRAGPipeline } from './rag/pipeline';
import { PRESETS, createConfig, DEFAULT_RAG_CONFIG } from '../config/settings';

// 使用默认配置
const pipeline = createRAGPipeline(env);

// 使用预设 (fast / balanced / accurate / conversational)
const fastPipeline = createRAGPipeline(env, PRESETS.fast as any);

// 基于预设覆盖部分配置
const customConfig = createConfig({ retrieval: { topK: 12 } }, 'balanced');
const pipelineCustom = createRAGPipeline(env, { retrieval: customConfig.retrieval, context: customConfig.context });

Rerank 配置说明

  • 默认 DEFAULT_RERANK_CONFIG 使用 provider: 'local'(内置算法),无需 Cohere 或 Jina API Key。
  • 如需更高精度,可将 rerank.provider 替换为 coherejina 并在环境中提供对应 API Key(COHERE_API_KEY / JINA_API_KEY)。

例如切换到 Cohere:

import { createConfig } from '../config/settings';

const cfg = createConfig({ retrieval: { rerank: { enabled: true, provider: 'cohere', model: 'rerank-multilingual-v3.0' } } });

并在运行环境中设置:

export COHERE_API_KEY=sk-xxxx

向量 manifest 与外部配置

  • 向量 manifest 路径在 STORAGE_PATHS.vectorManifest 中定义,默认是 config/vector-manifest.json
  • 外部配置存储(如 title-dictionary)同样在 settings.ts 的常量或 ExternalConfigOptions 中定义。

与站点工具集成

  • Makefile(make rag-uploadmake rag-deploymake rag-reindex 等)以及脚本(scripts/fast-ingest.ts)会读取或遵循 settings.ts 中的默认值与预设。
  • 在修改了 settings.ts 后,建议执行 make rag-upload-configmake rag-deploy(若配置影响部署)以确保一致性。

变更与扩展

  • 若需新增默认配置、预设或扩展 rerank provider,请在 settings.ts 中添加相应的类型,并在 RAG 的实现(如 MultiRouteRetrieverContextManager)中读取。
  • 所有新增配置项应配合 getPreset() / createConfig() 做默认值合并,以避免运行时断言错误。

如果你希望,我可以把该文档添加到 MKDocs 的左侧导航(mkdocs.yml)中,并在相关页面引用这一统一配置文档以帮助读者定位。