Solidway v0.1.0 已以 AGPL-3.0 发布,源码与 Releases 在 GitHub 上。文档正在按发布版本重写:除「快速开始」与「参考」外,其余页面仍在描述计划中的行为。当前权威说明见仓库内的 docs/getting-started.md 与 docs/architecture.md。
核心概念
路由、Provider 凭据、限额域、API Key、故障记录——后面所有页面都用这套词。
六个词构成了整个产品的心智模型,这里一次讲清,后面不再重复。
路由(Route)
脚本访问的入口。路由有归属人、名称(同一归属人内唯一)、启用标记与归档标记。客户端不是按 URL 路径找路由:它用 API Key 认证,Key 直接解析到唯一的一条路由。
路由同时也是池子:它持有为它服务的 Provider 凭据。路由与其凭据都是私有的——admin 也只能看到自己创建的路由。
Provider 凭据
一个上游账号:Provider 预设(base URL、鉴权方式、可入站格式)、凭据本身、模型清单(客户端名 → 上游 id)、 选号优先级档位,以及当前健康状态。
给同一路由添加多条凭据就组成了池子。扩容 = 再加一个账号,没有额外的「池」对象要配置。
限额域(Quota domain)
池化的单位。上游账号的额度属于一个域,API Key 只是该域的凭据。因此同一个账号的额度可以被多条路由共享, 计费仍按实际调用归因。
API Key
调用方的凭据,绑定唯一一条路由。明文只在创建时显示一次,之后只可见前缀与掩码。可以单独停用或设置有效期, 不影响路由本身。
故障记录(Incident)
说明「凭据本身有问题」的失败会落成故障记录:原因、路由、Provider、开始与结束时间、尝试次数、级别。 故障记录一直未解决,直到凭据恢复或管理员手动关闭;已退役的凭据需要人工恢复。
会话粘性(Affinity)
把 (路由, 模型, 会话标识) 粘到某条凭据上的映射,带滑动 TTL。会话需要就近时,它让同一段对话留在同一账号上。
健康优先:即使粘性指向某条凭据,只要它在冷却或已退役,就会被跳过。
它们如何串起来
API Key ──► 路由 ──► 凭据池 ──► 选号 ──► 尝试
│
可标记? ─────┴──► 下一个候选