RAGSpine
参考

配置

ServiceConfig 环境变量、检索选择器、工作流执行闸门、公开 API 凭据,以及 CompanyProfile。

ServiceConfig.from_env() 把 dataclass 字段 name 映射到 RAGSPINE_NAME。仍然支持 三个旧式别名:RAGSPINE_PROVIDERprovider_typeRAGSPINE_COMPANY_PROFILEcompany_profile_path,以及 RAGSPINE_FAQ_SOURCEfaq_source。规范化的字段名变量 优先于其别名。

核心与存储

变量默认值用途
RAGSPINE_DB_PATHdata/fact_metric.db结构化事实 SQLite 存储
RAGSPINE_CHUNK_DB_PATH未设置叙事 chunk 存储;未设置时诚实降级
RAGSPINE_MAPPING_DB_PATH未设置映射存储
RAGSPINE_QUEUE_DB_PATH未设置SME 审核队列,不是 RQ 作业队列
RAGSPINE_MANIFEST_DB_PATH未设置结构化摄取清单
RAGSPINE_REDIS_URLredis://localhost:6379/0RQ/Redis 连接
RAGSPINE_ALLOWED_UPLOAD_ROOT未设置解析后的摄取路径白名单
RAGSPINE_FAQ_SOURCE未设置经审定的 FAQ JSON;未设置意味着空缓存
RAGSPINE_REFERENCE_DATE未设置用于相对期间解析的 ISO 日期

Provider 与检索

变量默认值取值 / 用途
RAGSPINE_PROVIDERmockmockanthropic
RAGSPINE_MODELprovider 默认值服务端模型 ID
RAGSPINE_BASE_URL未设置服务端 provider 网关 URL
RAGSPINE_TOKENS_PER_MINUTE0corespine 滑动窗口 provider 限流;0 表示关闭
RAGSPINE_RETRIEVAL_MODEautoauto/hybrid/vector,或零 embedding 的 economy/bm25/lexical
RAGSPINE_EMBEDDINGautononeautoonnxdeterministicopenai
RAGSPINE_RERANKERnonecross_encodercolbertspladeauto 或不启用
RAGSPINE_POSTPROCESSORnone逗号分隔的链,例如 mmr,lost_in_middle
RAGSPINE_QUERY_DECOMPOSEnone可选的 LLM 查询分解
RAGSPINE_CORRECTIVEnone可选的 crag 包装器
RAGSPINE_QUERY_TRANSFORMnonehyderag_fusionstep_back
RAGSPINE_ADAPTIVEnone可选的启发式/LLM 复杂度路由
RAGSPINE_CHUNKERnone默认、父子/small-to-big、版面、法律、QA、书籍、句子窗口或语义
RAGSPINE_VECTOR_STOREnone不启用、进程内,或配置的持久化适配器
RAGSPINE_PERSISTENCE_POLICYdefault隔离优先的默认策略,或 persist_everything

经济模式比设置一个便宜的 embedding 更彻底:它根本不会构造 embedding 后端或向量存储。

工作流与公开兼容 API

变量默认值用途
RAGSPINE_WORKFLOW_MATCHERauto工作流匹配器选择;auto 可回退到词法匹配
RAGSPINE_DIFY_RUN_ENABLEDfalseDify/n8n 兼容执行的总闸门
RAGSPINE_DIFY_RUN_TIMEOUT_S10.0执行超时(秒)
RAGSPINE_DIFY_RUN_ISOLATIONinprocessinprocess 或 Linux 增强的 subprocess
RAGSPINE_STUDIO_DIR挂载到 /studio 的已存在静态目录
RAGSPINE_DIFY_PUBLIC_APPSkey=/path/workflow.yml;...;为空则禁用公开 Dify API
RAGSPINE_N8N_API_KEY未设置期望的 X-N8N-API-KEY;未设置则禁用 /api/v1/*
RAGSPINE_N8N_STORE_PATHdata/n8n_storen8n 兼容文件存储的根目录

启用执行是一个信任边界决策,不是认证。内部运行路由仍然 需要反向代理/网络层保护。公开的 Dify 与 n8n API 有各自的密钥;webhook 有意不做认证。

CompanyProfile

公司档案控制本公司身份、实体别名、标签/地理、竞争对手作用域,以及 敏感级别分类。引擎使用的加载器读取 RAGSPINE_COMPANY_CONFIG 或 显式路径:

RAGSPINE_COMPANY_CONFIG=config/company.toml \
  .venv/bin/python scripts/run_server.py

ServiceConfig.company_profile_path 由规范化的 RAGSPINE_COMPANY_PROFILE_PATH 或旧式的 RAGSPINE_COMPANY_PROFILE 填充,但当前的公司档案 加载走的是另一个 RAGSPINE_COMPANY_CONFIG 路径。在这些组装面统一之前, 请优先使用后者。

[home]
company_name = "YourCo"
entity_code = "YOURCO_GROUP"

[home.synonyms]
"yourco" = "YOURCO_GROUP"

[external_entities]
"globex" = "Globex"

[sensitivity]
default_level = "INTERNAL"
restricted_keywords = ["board_minutes", "绩效"]

任何生产环境的公司身份都不应硬编码在引擎中。竞争对手/拒答决策与 受限内容分类均派生自该档案。

Provider 测试说明

确定性的 mock 路径是经过完整验证的离线基线。项目作者身在 中国,无法访问 Anthropic API,因此 Anthropic 特有的行为没有获得 同等程度的直接集成测试。使用该适配器的用户应在自己的环境中验证模型 ID、凭据、 网关行为与速率限制。

本页目录