配置
概述¶
RAG Worker 的运行时和检索相关配置已集中到 tools/rag-worker/src/config/settings.ts(项目路径)中。
这个文件是“单一配置源”,包含:
- 全量默认配置:
DEFAULT_RAG_CONFIG - 检索与 rerank 配置:
DEFAULT_RETRIEVAL_CONFIG、DEFAULT_RERANK_CONFIG - 上下文配置:
DEFAULT_CONTEXT_CONFIG。 - 预设(Presets):
PRESET_FAST、PRESET_ACCURATE、PRESET_BALANCED、PRESET_CONVERSATIONAL(集合为PRESETS) - 合并/生成工具:
mergeConfig()、createConfig()、getPreset()。 - 查询扩展模板、个人简介回退与个人查询关键词常量:
QUERY_EXPANSION_TEMPLATES、ABOUT_FALLBACKS、PERSONAL_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替换为cohere或jina并在环境中提供对应 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-upload、make rag-deploy、make rag-reindex等)以及脚本(scripts/fast-ingest.ts)会读取或遵循settings.ts中的默认值与预设。 - 在修改了
settings.ts后,建议执行make rag-upload-config或make rag-deploy(若配置影响部署)以确保一致性。
变更与扩展¶
- 若需新增默认配置、预设或扩展 rerank provider,请在
settings.ts中添加相应的类型,并在 RAG 的实现(如MultiRouteRetriever、ContextManager)中读取。 - 所有新增配置项应配合
getPreset()/createConfig()做默认值合并,以避免运行时断言错误。
如果你希望,我可以把该文档添加到 MKDocs 的左侧导航(mkdocs.yml)中,并在相关页面引用这一统一配置文档以帮助读者定位。