# 模型供应商多模态能力矩阵

> 基于当前代码实现与已核对的官方资料整理。原则：**实现对应能力接口 = 支持；未实现 = 不支持（或暂未接入）**。
>
> 统计范围：`NewLife.AI/Clients` 下主客户端实现；测试范围对应 `XUnitTest/Clients`、`XUnitTest/Gateway`。

## 1. 统一抽象约定

- `IChatClient` 只保留对话能力（非流式/流式）
- 多模态通过能力接口按需实现：
  - `IImageClient`：文生图、图像编辑
  - `IVideoClient`：视频任务提交、任务状态查询
  - `ISpeechClient`：TTS 语音合成
  - `ITranscriptionClient`：ASR/STT 语音识别
  - `IRerankClient`：重排序
  - `IModelListClient`：模型列表

## 2. 供应商能力矩阵（当前实现）

| 供应商客户端 | 文本对话 | 思考/推理 | 视觉理解 | 文生图 | 图像编辑 | 视频生成 | ASR/STT | TTS | Rerank | 模型列表 |
|---|---|---|---|---|---|---|---|---|---|---|
| `OpenAIChatClient` | ✅ | ✅（模型推断） | ✅ | ✅ | ✅ | ✅（任务制） | ✅ | ✅ | ❌ | ✅ |
| `DashScopeChatClient` | ✅ | ✅ | ✅ | ✅（wan2.x / qwen-image） | ✅（兼容模式专用实现） | ✅（wan2.7 t2v/i2v） | ✅（继承 OpenAI） | ✅（继承 OpenAI） | ✅ | ✅ |
| `DeepSeekChatClient` | ✅ | ✅（`thinking`） | ⚠️（取决于模型） | ❌（显式禁用） | ❌（显式禁用） | ❌（显式禁用） | ❌（显式禁用） | ❌（显式禁用） | ❌ | ✅（继承 OpenAI） |
| `AzureAIChatClient` | ✅ | ⚠️（取决于部署模型） | ⚠️（取决于部署模型） | ✅（继承 OpenAI） | ✅（继承 OpenAI） | ❌（显式禁用） | ✅（继承 OpenAI） | ✅（继承 OpenAI） | ❌ | ✅（继承 OpenAI） |
| `NewLifeAIChatClient` | ✅ | ✅（取决于网关路由模型） | ✅（取决于网关路由模型） | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅（继承 OpenAI） |
| `GeminiChatClient` | ✅ | ✅ | ✅ | ✅（Imagen4） | ❌（官方不支持编辑端点） | ❌（当前客户端未实现独立视频接口） | ❌（走多模态理解，不是独立 STT 接口） | ❌（未实现独立 TTS 接口） | ❌ | ✅（`/v1beta/models`） |
| `AnthropicChatClient` | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| `BedrockChatClient` | ✅ | ✅（取决于底座模型） | ✅（取决于底座模型） | ❌ | ❌ | ❌（当前未实现独立视频接口） | ❌ | ❌ | ❌ | ❌ |
| `OllamaChatClient` | ✅ | ✅（部分模型） | ✅（部分模型） | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅（Ollama 原生 tags） |

说明：
- ✅：代码中已实现对应能力接口或等价公开方法。
- ⚠️：能力由具体模型/部署决定，客户端层仅提供协议通道。
- ❌：当前客户端未实现对应能力接口。

## 3. 关键实现位置（代码依据）

- `Clients/IChatClient.cs`
- `Clients/Capabilities/IImageClient.cs`
- `Clients/Capabilities/IVideoClient.cs`
- `Clients/Capabilities/ISpeechClient.cs`
- `Clients/Capabilities/ITranscriptionClient.cs`
- `Clients/Capabilities/IRerankClient.cs`
- `Clients/Capabilities/IModelListClient.cs`
- `Clients/OpenAI/OpenAIChatClient.cs`
- `Clients/OpenAI/OpenAIChatClient.Capabilities.cs`
- `Clients/DashScope/DashScopeChatClient.cs`
- `Clients/OpenAI/DeepSeekChatClient.cs`
- `Clients/OpenAI/AzureAIChatClient.cs`
- `Clients/OpenAI/NewLifeAiChatClient.cs`
- `Clients/Gemini/GeminiChatClient.cs`
- `Clients/Anthropic/AnthropicChatClient.cs`
- `Clients/Bedrock/BedrockChatClient.cs`
- `Clients/Ollama/OllamaChatClient.cs`

## 4. 官方资料核对状态

- 已可直接抓取并核对：Gemini（文本/图像/视频/TTS/音频理解）、DashScope（文本/多模态/工具调用参数）、Ollama（原生 API）
- 当前环境受限（403/区域限制）而未直接抓取：OpenAI、Anthropic、AWS Bedrock
  - 对上述三者本轮采用“代码实现 + 现有协议注释”作为次级依据，后续可在网络可达时补齐一级官方证据

### 4.1 可直接引用的官方证据链接

- Gemini Models（`models.list` / `models.predict`）：
  - https://ai.google.dev/api/models
  - 证据：`GET /v1beta/models`、`POST /v1beta/{model=models/*}:predict`
- Gemini Imagen（Imagen 4 能力与参数）：
  - https://ai.google.dev/gemini-api/docs/imagen
  - 证据：`imagen-4.0-generate-001`、`numberOfImages`/`aspectRatio` 等参数说明
- Gemini All Methods（全量方法总览）：
  - https://ai.google.dev/api/all-methods
  - 证据：`models.list`、`models.predict`、`generateContent`
- DeepSeek Quick Start（OpenAI 兼容协议说明）：
  - https://api-docs.deepseek.com/
  - 证据：`/chat/completions`、`base_url=https://api.deepseek.com` 与 OpenAI 兼容格式说明
- DeepSeek Models & Pricing（模型与能力表）：
  - https://api-docs.deepseek.com/quick_start/pricing
  - 证据：`deepseek-chat`/`deepseek-reasoner`、128K 上下文、工具调用能力
- Azure OpenAI REST Reference（数据面能力）：
  - https://learn.microsoft.com/en-us/azure/foundry/openai/reference
  - 证据：`chat/completions`、`audio/transcriptions`、`images/generations`、`api-key` 认证

### 4.2 当前无法直连的官方文档（待补）

- Anthropic Messages API：
  - 目标链接：https://docs.anthropic.com/en/api/messages
  - 当前结果：区域限制重定向到 `app-unavailable-in-region`
- AWS Bedrock Converse API：
  - 目标链接：https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_Converse.html
  - 当前结果：HTTP 403

## 5. 本轮更新（2026-04-19）

- `GeminiChatClient` 已实现 `IImageClient`（Imagen4 文生图）和 `IModelListClient`（`GET /v1beta/models`）。
- `GeminiChatClient` 移除 `imagen-3.0-generate-001` 模型声明，统一以 Imagen4 为主。
- `AzureAIChatClient` 显式覆盖视频接口并抛出 `NotSupportedException`，与 `IVideoClient` 约定保持一致。
- `DeepSeekChatClient` 已显式禁用文生图/图像编辑/TTS/STT/视频能力，仅保留对话与模型列表。

## 6. 当前落地策略

1. 不扩展 `IChatClient` 主接口，保持兼容稳定。
2. 按能力接口进行实现与判定：
   - 支持能力：实现对应接口并补测试。
   - 不支持能力：不实现接口，并在注释/文档中明确标注。
3. 集成测试按能力分组推进：文本 → 工具调用 → 视觉/音频 → 图像/视频长任务。
