# 神识模型网关 > 状态:rewrite/1.0 M4 已落地(2026-08-27)——数据面/路由/故障切换/BYOK/配额三段式/计量落库/Anthropic+Gemini 适配器/用户面(灵台 /me/* 代理 + 前端神识阁);官方云计费(P2)与生产 PG 档联调随标准档部署复核 > 参考项目只借设计不复制源码:octopus(IR 双向转换、首字超时切道)、new-api(计费不变量、渠道 adaptor 分层)、lens(模型组与冷却粒度)、metapi(路由可解释)、axonhub(协议集成测试矩阵)。 ## 1. 定位与边界 神识是魂镜唯一的模型出口(Go 1.25+ 单服务): **拥有**:Provider/Endpoint 目录、模型能力槽位、协议转换(内部 IR ↔ 各厂商方言)、路由与故障切换、流式转发、BYOK 密钥保管、配额与成本计量、用量日志。 **不拥有**:人物身份解释、道体、记忆、关系、缘契、长期状态、工具授权决策。神识不因模型差异产生"人格变化"语义;模型与人格的解耦由灵台保证。 ## 2. 模块划分 ```mermaid flowchart LR IG[ingress
入站协议] --> TF[transform
IR 双向转换] TF --> RT[route
候选生成+健康+冷却] RT --> RL[relay
流式转发] RL --> MT[metering
用量与成本] MT --> QT[quota
配额三段式] RG[registry
目录管理] KV[keyvault
密钥与 BYOK] RT --> KV IG --> QT ``` - `transform` 做成独立 Go module(内无业务依赖,可独立构建与测试); - 其余模块按包组织在单服务内,不拆进程。 ## 3. 数据模型(神识自有库) | 表 | 要点 | | --- | --- | | `providers` | 厂商协议类型(openai/anthropic/gemini/local 等) | | `endpoints` | 多 BaseUrl + 多凭证 + 权重/优先级 + 健康状态;`type=local` 的 Endpoint 指向元炁 | | `model_slots` | 能力槽位:chat/vision/asr/tts/image/embedding/rerank/safety;逻辑模型 → 槽位声明 | | `routes` | 逻辑模型名 → 候选 Endpoint×上游模型 绑定列表 + 路由策略(优先级/加权/故障切换) | | `byok_keys` | 用户自带密钥:归属 `user_id`,加密存储,API 永远脱敏返回;使用范围与用途受限 | | `usage_logs` | 每次尝试一条:请求级终态 + 尝试链 + 流时序(首字/总时长)+ token 三段(输入/输出/缓存)+ 成本明细 | 逻辑模型与物理模型解耦:灵台只请求逻辑模型名与槽位,神识负责落到具体 Endpoint。 ## 4. 路由与故障切换 1. **候选迭代器**:按策略(优先级排序 / 加权随机)生成候选序列,逐个尝试; 2. **首字超时**:流式请求在首 token 超时内无响应即切下一候选;已写出字节后不换道(`Written` 判断),失败如实上报; 3. **冷却粒度**(避免整渠道误杀):401/403 只冷却凭证;404/429/5xx/超时只冷却"该渠道上的具体模型绑定",同渠道其他模型不受影响; 4. **熔断**:滑动窗口健康评分作轮询权重; 5. **粘性会话**:同一 Run 的连续请求优先成功通道(模型输出风格稳定); 6. **路由可解释**:每次选择记录决策摘要(候选、健康、冷却状态),可审计; 7. **配对保护**:tool_call 与 tool_result 在转换、重试、压缩中永不拆散。 ## 5. 协议与流式 - **入站(灵台 → 神识)**:单一内部 IR(版本化 Schema);灵台 `shenshi_client` 是唯一调用方; - **出站(神识 → Provider)**:各厂商 adaptor(每 Provider 一个包:adaptor + dto + relay),SSE 逐事件转换透传; - 流式响应统一 SSE;`X-Accel-Buffering: no`;校验上游 Content-Type 防"假流"; - **DTO 细节纪律**:可选标量一律指针 + `omitempty`,防显式零值被静默丢弃; - 响应回传 `X-Request-Id`、用量头,与灵台 `run_id`/`trace_id` 关联(usage_logs 双向可查)。 ## 6. BYOK 与密钥 - 密钥分层:平台密钥(神识 keyvault)与用户 BYOK(`byok_keys`,用户级加密); - 配置继承顺序(产品 PRD §9.2):平台硬边界 → 平台目录 → 用户偏好/BYOK → 人物覆写 → 镜树临时选择;该层叠在灵台 Profile 计算,神识只接收最终解析结果中的密钥引用; - 神识对 BYOK 的使用范围(可用槽位、地区限制)受平台硬边界约束;高敏数据可配置"仅本地 Endpoint"。 ## 7. 配额与计量 计费不变量(借鉴 new-api 教训): 1. 任何计费乘数(图片张数、时长、max_tokens)在请求校验期设上限; 2. 配额换算集中单一函数,饱和截断(防溢出变负); 3. 钳位与截断事件写审计日志; 4. 三段式:预扣(按上限)→ 结算(实际-预扣差额)→ 退款(失败幂等退款); 5. 透传字段与 multipart 是校验绕过高危路径,adaptor 层显式白名单。 1.0 官方云计费属 P2;P0/P1 只做计量(usage_logs 完整)与用户级软配额(预算提醒与熔断)。 ## 8. API 形态 | 面 | 端点 | 说明 | | --- | --- | --- | | 数据面 | `POST /v1/chat/completions`(IR 入站 + SSE) | 灵台唯一推理入口;附 embeddings/rerank/images/audio 端点按槽位启用 | | 健康面 | `GET /healthz`、`GET /readyz` | 供 Compose 与天门探活 | | 管理面 | `/admin/providers` `/admin/endpoints` `/admin/routes` `/admin/slots` | 目录 CRUD、健康探测、定价表(平台管理员) | | 计量面 | `/admin/usage`、`/me/usage` | 用量查询(按用户/模型/时间) | 错误码段与事件名见[契约词典](../contracts/contract-glossary.md);服务间鉴权:灵台 ↔ 神识用服务令牌 + 请求签名,管理面走 RBAC。 ## 9. 与元炁的关系 元炁是 `type=local` 的 Endpoint:神识按普通候选路由到它(本地零成本、隐私友好)。embedding/rerank 槽位默认路由元炁(BGE-M3),无本地模型时回退云厂商。天目 OCR 不经神识(非生成模型),由灵台直接调用。 ## 10. 迁移与退役 1. 神识上线并接入元炁 + 至少一个云 Provider(OpenAI 兼容); 2. 灵台 `shenshi_client` 切换流量,双写用量对比一个验证周期; 3. 删除 Python `ai_provider` 模块及其配置(`config/models.yaml`、`config/providers.yaml`、`config/pricing.yaml` 移交神识目录); 4. 能力矩阵更新"神识网关"行证据。 **禁止**:把玄关改名冒充神识;灵台领域模块直接 import 任何 Provider SDK;神识读写灵台库表。 ## 11. 测试策略 - adaptor 单元测试:IR ↔ 方言的往返(round-trip)一致性;可选标量零值用例; - 集成测试矩阵:入站协议 × Provider 面板(最小集合:OpenAI 兼容、Anthropic、本地元炁); - 故障注入:首字超时切道、凭证冷却粒度、熔断恢复、流中断如实上报; - 计量一致性:预扣-结算-退款幂等;usage_logs 与 Provider 用量对账抽样。