← 返回首页
多 AI 连接、模型路由与隐私配置
# 多 AI 连接、模型路由与隐私配置
## 目标
anenreo 的 AI 配置不是单一 API Key 开关,而是一套持久化、可审计、可回滚的多连接编排系统。PC Web 管理配置;移动端只读取运行状态,不接触密钥。
## 连接维度
协议与网络位置分开保存:
- 协议:Mock、OpenAI Responses、Chat Completions、OpenAI Compatible、Anthropic Messages、Ollama Native。
- 网络位置:公网云、API 服务本机、局域网、VPN、HTTPS 隧道、自建反向代理。
例如,同一个 OpenAI Compatible 适配器可以连接公网网关、本机 LM Studio、局域网 Ollama 或通过 HTTPS 隧道暴露的自建 vLLM。
## 持久化与秘密
普通配置写入 `ai_provider_connection`,认证秘密写入独立 `ai_provider_secret`,使用服务端根密钥执行 AES-256-GCM 加密。客户端只能得到 `hasSecret` 和不可恢复掩码,永不回显密钥明文。
`SETTINGS_ENCRYPTION_KEY` 必须由服务端环境或 Secret Manager 显式注入,至少 32 个 UTF-8 字节,并由密码学安全随机源生成。开发、测试和生产均不提供公开默认回退;缺失、空白、过短或使用公开占位值时 API 失败关闭。源码候选包不携带任何 `.env*`、运行备份或 Provider 密文,根密钥必须与数据库备份分离保存。
## 默认本地 Mock 身份与初始化
系统默认连接由 `ownerId + 本地 Mock AI + MOCK + mock://local` 共同识别,默认模型再由该连接与 `anenreo-mock-v1` 共同识别。`ensureDefaults` 不得无序选取任意现有连接,也不得把默认模型挂到用户新建、编辑或测试用 Provider。连接、模型、Prompt、脱敏档案、模型档案、路由和隐私偏好在同一事务内按各自唯一业务键执行冲突忽略,随后必须精确回读 winner 的真实持久化编号;PC 首屏七个并发配置读取只能收敛到一套完整默认图,loser 不得沿用自己未落库的 ULID。
旧版本若留下“自动生成的 `anenreo-mock-v1` 被挂到用户 Provider”污染,系统只在模型和保留名档案均为 `revision=1` 且其他系统默认字段、Prompt 引用完全一致时,把档案的 `primaryModelId` 改回 canonical 模型。迁移不删除旧用户连接或旧模型,也不改写 Prompt 内容、路由参数或脱敏内容;保留名档案/路由的 revision 较新或关键引用不兼容,以及保留名 Prompt 的工作负载身份不兼容时失败关闭,要求用户先重命名自定义配置,禁止凭名称猜测并覆盖。
配置中心浏览器验收删除临时 Provider 时,必须在点击前监听精确的 DELETE 地址,等待响应完整结束,再独立回读 Provider 列表。只有 DELETE 成功且回读无目标编号时才清空清理句柄;失败时由 `finally` 再次删除,并把残留记录为 `absent`、`present` 或 `unknown`,不得用固定延时或盲轮询推断成功。
## 工作负载路由
模型不会直接绑定数据库表或表单字段。字段只声明工作负载,例如:
- 隐私分类
- 实体路由
- 结构化提取
- 标题与摘要
- 图片理解、OCR、语音转写
- 关系推断、个人模型推断、决策分析
- 助手对话、代理规划和工具执行规划
`ai_model_profile` 定义主模型、回退链、温度、结构化输出、Prompt、重试和超时;`ai_route_policy` 再按照工作负载、模块、字段、隐私等级、能力与网络位置选择模型档案。
## 隐私路由
系统硬规则优先级最高:
1. `PUBLIC`:可以使用本地或云端。
2. `SHARED`:默认允许脱敏云端,可由用户关闭。
3. `PRIVATE`:默认禁止云端;用户可以在 PC 打开全局开关,也可以对单次请求明确授权脱敏云端。
4. `SECRET`:强制禁止云端与公网隧道。
5. `LEGACY_ONLY`:强制本地,并且需要合法数字遗产权限上下文。
即使 PRIVATE 开关开启,字段的 `NEVER_SEND_TO_CLOUD`、工作负载禁令和系统硬规则仍然不能被覆盖。
## SSRF 与网络安全
Provider Base URL 由 NestJS 服务端访问。服务端必须:
- 仅允许 HTTP/HTTPS;
- 禁止云元数据、文件协议和危险重定向;
- 对私网、明文 HTTP 和关闭 TLS 校验进行显式风险确认;
- 限制响应体、超时、并发和允许主机;
- 记录安全错误码,不记录请求正文与秘密。
## 审计
每次 AI 调用至少记录工作负载、实体、隐私等级、连接、模型、路由、脱敏档案、发送字段路径、输入摘要哈希、Token、延迟、结果和远端请求编号。默认不保存完整请求正文。
## PC 页签交互约束
AI 连接和任务路由中会改变安全、隐私或模型选择逻辑的字段,统一提供标签帮助入口。鼠标悬浮可查看完整业务说明,并可复制说明;短标签不再承担全部解释责任。
AI 配置中心的连接、模型、任务路由、隐私、Prompt 与审计六个页签采用独立显隐区域。切换页签时必须同时更新选中状态和业务内容,不能只改变高亮而保留上一页签内容。配置中心共享页签、卡片、表格、开关列表与双栏表单样式由 Web 全局设计系统统一维护。