跳转到正文

配置参考 ​

配置文件位于 backend/.env,完整字段和默认值以 backend/.env.example 为准。修改 .env 后必须 完全重启后端;uvicorn --reload 不会因环境文件变化重新加载 Settings。

本页说明首次配置的关键决策。全部字段的默认值、作用和联动规则见 后端配置与环境变量。

必填配置 ​

类别字段说明
自己SELF_NAME, SELF_UID当前用户名称和一个或多个平台 UID
目标人物FRIEND_NAME, FRIEND_UID需要模仿的人及其一个或多个 UID
聊天模型OPENAI_BASE_URL, OPENAI_API_KEY, CHAT_MODEL, CHAT_API_PROTOCOLOpenAI 兼容 Chat Completions 或 Responses 接口
EmbeddingEMBEDDING_API_URL, EMBEDDING_API_KEY, EMBEDDING_MODEL, EMBEDDING_DIM历史记录向量化与检索
API 鉴权XUWEN_API_KEY客户端访问后端时使用的 Bearer token

同一个人的多个账号使用逗号分隔,例如:

dotenv
SELF_UID=u_qq_me,wxid_me
FRIEND_UID=u_qq_friend,wxid_friend

不要把不同人物的 UID 合并到同一份 FRIEND_UID。

模型角色 ​

角色必需用途主要配置
主聊天模型是生成最终回复OPENAI_*, CHAT_MODEL, CHAT_API_PROTOCOL
Embedding是向量化历史与查询EMBEDDING_*
打标模型否mood/topic/importance 标签LABELING_ENABLED, LABEL_*
生活状态模型否生活时间线和网页意图判断LIFE_*
互动决策模型否在规则层后微调当前回复策略RESPONSE_POLICY_*
Reranker否对混合召回结果重新排序CROSS_RERANK_*
视觉模型否生成历史图片摘要VISION_*
联网搜索否获取公开实时信息WEB_ACCESS_ENABLED, WEB_SEARCH_*

模型推荐会随服务价格和能力变化,项目不把某个供应商设为硬依赖。确认接口协议、维度、并发限制、 数据留存和训练政策后再配置真实聊天数据。

英文向导只给未配置服务填充 Google 聊天、OpenAI 向量/辅助模型,不覆盖已有值,也不改变后端默认值。基础地址应包含供应商要求的完整路径:OpenAI 为 https://api.openai.com/v1,Google 为 https://generativelanguage.googleapis.com/v1beta/openai。后端只追加业务端点,不自动补 /v1,不要重复填写 /chat/completions、/responses 或 /embeddings。

后端输出语言为 XUWEN_LANGUAGE=en|zh-CN,默认英文;向导“关系”步骤可独立保存,不随页面语言变化。修改后重启。CLI --language 与 HTTP Accept-Language 只覆盖各自作用域,主动消息始终用后端语言。

Embedding 限流 ​

dotenv
EMBEDDING_BATCH_SIZE=25
EMBEDDING_MAX_CONCURRENCY=20
EMBEDDING_MAX_REQUESTS_PER_MINUTE=0

遇到 429 时先降低并发,再设置每分钟请求数。更换 Embedding 模型或维度后,需要重建对应向量表, 不能继续复用旧向量。

API 鉴权 ​

只要 XUWEN_API_KEY 非空,后端就会验证 Bearer token。API_AUTH_REQUIRED=false 不会让一个已配置的 key 失效;若要完全关闭鉴权,必须同时清空 key。生产或局域网环境不建议关闭。

AI 回复是否进入长期记忆 ​

AI_GENERATED_LONG_TERM_ENABLED=false 是默认值:长期模仿证据只来自真人历史,AI 回复不会跨会话 成为长期素材。设为 true 后,AI 回复会以低权重进入长期检索,系统可能逐渐形成偏离原始人物的新习惯。 开启前请阅读负责任使用与数据隐私。

完全离线 ​

把主聊天、Embedding,以及所有已启用的可选模型都指向 Ollama、vLLM 等本地兼容服务。可选模型包括 LABEL_*、LIFE_*、VISION_*、RESPONSE_POLICY_*、QUERY_REWRITE_*、RERANK_*、CROSS_RERANK_*、ADAPTIVE_CHUNK_*、ANALYSIS_*、ANALYSIS_FINAL_* 和 SCHEDULE_*;不使用的功能应保持关闭。同时关闭:

dotenv
WEB_ACCESS_ENABLED=false
WEB_FETCH_ENABLED=false
UPDATE_CHECK_ENABLED=false

只有所有模型与工具都在本机运行时,聊天文本才不会发送给外部 provider。

更新检查是独立外发请求,不包含聊天文本,可通过上述开关关闭。

AGPL-3.0-or-later