Skip to content

配置项 ​

配置来源 ​

当前配置分为三类:

  1. 代码默认值;
  2. 项目根目录 .env;
  3. Web UI 保存的本地设置和运行时任务参数。

实际优先级以对应模块读取方式为准,不要把所有配置都复制到 .env。

基础配置 ​

变量默认/示例作用
APP_HOST127.0.0.1主服务绑定地址
APP_PORT18000FastAPI 端口
DB_PATHdata/charactoid.dbSQLite 控制面
MILVUS_DB_URI./data/milvus_local.dbMilvus Lite 数据文件
COLLECTION_NAMEcharactoid_knowledge_v1向量集合名称

RAG 配置 ​

变量示例作用
RAG_PIPELINEdefaultAdaptive/Corrective RAG 流程
MAX_REWRITE_COUNT1查询改写次数上限
MAX_GENERATION_RETRY1生成质量重试上限
DEFAULT_CONFIDENCE_THRESHOLD0.75置信度门限
MAX_UPLOAD_MB50单文件上传上限

语音与资源 ​

变量示例作用
CHARACTOID_RVC_DEVICEautoRVC 使用 GPU/CPU 策略
CHARACTOID_RVC_HF_ENDPOINT空可选下载镜像/代理

安全 ​

.env 已被 Git 忽略。不要提交 API Key、Token、Cookie、模型下载凭据或真实外部服务地址。默认绑定回环地址;公网部署必须另行配置认证、HTTPS、访问控制和数据隔离。

更换向量模型 ​

Embedding 维度改变时,不要复用旧集合。修改集合名称、重新摄取文档并确认检索结果后再切换角色。

配置优先级 ​

CHARACTOID 并不存在一条对所有模块都完全相同的全局覆盖链。按当前实现可用以下顺序理解,并以具体模块的读取逻辑为准:

text
代码默认值
→ .env(基础设施和启动参数)
→ data/local_settings.json / Web UI(Provider、Embedding、联网搜索等本地设置)
→ 单次 API 或任务参数(只影响本次调用)

.env.example 已明确说明:LLM、Embedding 和联网搜索主要由 Web 工作台保存到 data/local_settings.json,不要为了“集中管理”而重复写入多个位置。

配置项详表 ​

变量名默认值必填作用修改时机安全注意事项
APP_HOST127.0.0.1否FastAPI 监听地址需要局域网访问时未配置认证前不要绑定公网地址
APP_PORT18000否Web/API 端口端口冲突时同步修改反向代理和客户端地址
DB_PATHdata/charactoid.db否SQLite 控制面文件调整数据目录时迁移前备份;不要提交数据库
MILVUS_DB_URI./data/milvus_local.db否Milvus Lite 或远程 Milvus 地址更换向量数据面时远程地址和凭据不要提交
MILVUS_USER空远程模式可能需要远程 Milvus 用户名启用远程鉴权时视为敏感信息
MILVUS_PASSWORD空远程模式可能需要远程 Milvus 密码启用远程鉴权时禁止提交 Git
COLLECTION_NAMEcharactoid_knowledge_v1否向量集合名Embedding 维度或索引版本变化时新旧维度不要复用同一集合
RAG_PIPELINEdefault否Adaptive/Corrective RAG 流程调试检索策略时adaptive 是兼容别名
MAX_REWRITE_COUNT1否查询改写上限调整纠错成本时次数越高延迟和模型成本越高
MAX_GENERATION_RETRY1否质量门生成重试上限调整质量/延迟平衡时不应无限重试
DEFAULT_CONFIDENCE_THRESHOLD0.75否证据置信度阈值评测后校准过低会增加无依据回答
MAX_UPLOAD_MB50否单文件上传上限处理大文档时同时考虑磁盘、内存和网关限制
CHARACTOID_RVC_DEVICEauto否RVC GPU/CPU 选择设备探测错误或显存不足时cuda 并不保证环境实际可用
CHARACTOID_RVC_HF_ENDPOINT空否RVC 下载镜像/代理官方源不可达时不要嵌入带凭据的 URL

Web UI 管理的配置 ​

以下内容主要由设置 API 和本地设置文件管理,而不是 .env.example:

  • LLM Provider、模型、Base URL 和 API Key;
  • Embedding Provider、来源、设备和模型;
  • Reranker 模型与设备;
  • 联网搜索 Provider;
  • B站、OneBot11、MCP 等外部接入配置;
  • GPT-SoVITS、ASR/STT、RVC 等运行时路径或服务状态。

调用 POST /api/settings/reveal-key 会触及敏感配置,只应在受信任的本机 UI 中使用。

数据、缓存和临时目录 ​

  • data/:SQLite、Milvus Lite、Live2D 资源和本地设置;
  • runtime/:受管理的 ASR、Embedding、Reranker、RVC、GPT-SoVITS 等运行时;
  • 临时音视频文件:由具体任务管理器创建和清理,不应作为永久引用返回给前端;
  • 永久结果:应登记为资产并通过 asset_id 或任务文件 ID 使用。

settings.py 快照里还有这些 ​

Settings 是 frozen dataclass。进程启动时拍一次快照;改文件后要重新加载才生效。

不是 .env 的项 ​

项实际来源当前默认说明
workspace_id代码写死local-default改 .env 不会换工作区
chunk_sizelocal_settings.json1000文档切分
chunk_overlaplocal_settings.json150切分重叠
embedding_providerlocal_settings.json空则按 Base URL 推断:DashScope→qwen,有 URL→custom,否则 managed_local只接受 qwen / managed_local / custom
embedding_dimensionslocal_settings.jsonmanaged_local 为 1024,否则 512与集合维度必须一致
embedding_send_dimensionslocal_settings.jsontrue是否把维度发给上游
embedding_model_sourcelocal_settings.jsonmodelscope只接受 modelscope / huggingface
embedding_devicelocal_settings.jsonauto只接受 auto / cuda / cpu
LLM / STT / TTS / Reranker 凭据local_settings.json空is_real_api_key() 会把 your-api-key、sk-...、<api-key> 等占位值当成未配置

local_settings.json 读失败(缺文件、不是 JSON、IO 错误)时回退 {},设置页仍可启动。

仍由 .env 读取的项 ​

变量默认说明
MCP_ALLOW_ARBITRARY_STDIOfalse为真才允许任意 stdio MCP;1/true/yes/on 才算真
MILVUS_USER / MILVUS_PASSWORD空远程 Milvus 才用;Lite 文件模式通常为空
RAG_PIPELINEdefault读入后会 lower()

布尔解析走 setting_bool:字符串 "false" 不会被当成 True。API Key 走 configured_api_key,模板值在快照里就是空字符串。

冻结的桌面包(sys.frozen)把 project_root 指到可执行文件所在目录,而不是源码树。路径类配置都相对这个根。