fix(copilot): harden provider configuration flow
This commit is contained in:
@@ -97,9 +97,12 @@ Provider 预设只负责填充默认 Endpoint,不锁死模型:
|
||||
|
||||
| Provider | 默认 Base URL | 协议实现 |
|
||||
|---|---|---|
|
||||
| OpenAI | `https://api.openai.com/v1` | Eino OpenAI |
|
||||
| Anthropic | `https://api.anthropic.com` | Anthropic Messages API |
|
||||
| OpenAI Compatible | 用户填写 | Eino OpenAI;适用于 DeepSeek、通义千问、豆包及自建网关 |
|
||||
| OpenAI | `https://api.openai.com/v1` | `llm.OpenAIProvider`,OpenAI Chat Completions API |
|
||||
| Anthropic | `https://api.anthropic.com` | `llm.AnthropicProvider`,Anthropic Messages API |
|
||||
| OpenAI Compatible | 用户填写 | `llm.OpenAIProvider` + 自定义 Base URL;适用于 DeepSeek、通义千问、豆包及自建网关 |
|
||||
|
||||
`EinoProvider` 适配器仍保留给显式构造的 Eino ChatModel/Embedder 使用;数据库驱动的
|
||||
`ProviderManager` 运行时配置链路不经过该适配器,而是按协议直接创建上述 Provider。
|
||||
|
||||
首期不单独增加 DeepSeek/Qwen/Doubao 枚举,避免把供应商宣传名称与真实协议实现绑死。
|
||||
|
||||
@@ -313,13 +316,18 @@ Embedding 维度由迁移 `000056_make_article_embedding_dimension_dynamic` 改
|
||||
- `go test ./...` 通过。
|
||||
- 覆盖明文存储、掩码/不回显、保留/替换/清除、候选测试不落库、Provider 热切换、
|
||||
OpenAI/OpenAI-compatible/Anthropic、超时/重试、统一安全错误、动态 Embedding 维度和重建状态。
|
||||
- Service → `ProviderManager` → Fake HTTP Provider 集成测试证明 editor、copilot、assistant、
|
||||
label suggestion 分别使用账户配置的功能模型,未配置时由 Manager 回退平台默认模型。
|
||||
- Assistant 显式配置的 Temperature(包括 `0`)优先于平台默认值;未显式配置时继续使用平台值。
|
||||
- OpenAI-compatible 的错误响应与 malformed SSE chunk 不进入日志或健康检查响应;对外只返回稳定错误类别。
|
||||
- SuperAdmin 平台权限、Administrator 账户权限和 Agent 禁止访问均有 Handler/Middleware 回归测试。
|
||||
- 配置变更写入 `audits`,只记录 Provider、模型、维度、配置状态和是否变更 Key,不记录 Key 或掩码。
|
||||
|
||||
### 前端自动化
|
||||
|
||||
- Vitest 覆盖菜单/路由、Pinia 平台与账户请求、SuperAdmin 识别、Provider 条件字段、
|
||||
API Key 不回填/清除确认、Anthropic 非法组合、维度确认、回复行为和自动回复确认。
|
||||
API Key 不回填/清除确认、清除 Key 时允许保存但禁止连接测试、Anthropic 非法组合、
|
||||
维度确认、回复行为和自动回复确认。
|
||||
- `pnpm build` 通过。
|
||||
|
||||
### 真实运行验证
|
||||
|
||||
Reference in New Issue
Block a user