# 让 AI SDK 明确走 Chat Provider

锁定 ai 7.0.130 与兼容 Provider 3.0.65，在真实本地模型上执行 generateText，并保存最终请求路径、正文、结束原因和 usage。

## 实测范围

Vercel AI SDK 原生 generateText → OpenAI Compatible Chat Provider → 本地 Ollama。

## 运行环境

- node v24.14.0
- ollama 0.40.9
- openai 7.43.0
- ai 7.0.130
- @ai-sdk/openai-compatible 3.0.65

## 操作步骤

### 1. 按同一锁文件安装依赖

练习包记录实际运行的 ai 7.0.130 和 @ai-sdk/openai-compatible 3.0.65；不要混用不同Provider代际。

```bash
cd sdk && npm ci
```

### 2. 明确创建兼容 Chat 模型

createOpenAICompatible 的baseURL指向本机/v1；本地占位Key不会写入网页。使用 provider.chatModel，不依赖其他Provider默认协议。

### 3. 执行短任务且关闭重试

本次问题8+9，要求仅数字；把完整输出、结束状态和usage保存，不只打印第一段文字。

```bash
node run.mjs ai-sdk ../vercel-ai-sdk-tokenba-api/new-result.json
```

### 4. 按真实结果验收

最终路径为/v1/chat/completions，真实输出“8 + 9 = 17”并完整stop；仅数字断言未通过。修复Provider弃用配置后，连接验收仅检查非空正文与完整结束，不宣称格式问题已修复。

### 5. 接回网关前检查本平台配置

更换为对应服务签发的Key与准确模型ID；OpenRouter专用Provider另按官方说明安装，不能把本地演练当其接入成功。

## 实际观察

- 运行结果：{"text": "8 + 9 = 17", "finishReason": "stop", "usage": {"inputTokens": 25, "inputTokenDetails": {"noCacheTokens": 24, "cacheReadTokens": 1}, "outputTokens": 13, "outputTokenDetails": {"textTokens": 13, "reasoningTokens": 0}, "totalTokens": 38, "raw": {"prompt_tokens": 25, "completion_tokens": 13, "total_tokens": 38, "prompt_tokens_details": {"cached_tokens": 1}}}, "warnings": [], "response": {"id": "chatcmpl-474", "timestamp": "2026-10-23T15:05:57.000Z", "modelId": "tutorial-qwen3-proof:latest", "headers": {"content-length": "356", "content-type": "application/json", "date": "Fri, 23 Oct 2026 15:05:57 GMT"}, "messages": [{"role": "assistant", "content": [{"type": "text", "text": "8 + 9 = 17"}]}]}}
- 最终请求：[{"method": "POST", "path": "/v1/chat/completions", "status": 200, "elapsedMs": 1951}]
- 本API组真实发出2次非流式Chat探针，分别gemini-2.5-flash与gemini-2.5-flash-lite，均HTTP429（当前测试Key分组上游饱和）。以下共享该组探针，绝非本页另发调用；随后SSE、Vercel、n8n、图片请求均未发送。
- 首轮严格整数格式失败并有Provider弃用警告；最终按官方camelCase providerOptions修复警告，仍保留“8 + 9 = 17”，仅连接范围验收通过。

## 未验证与限制

- 本批获授权使用既有测试Key，OpenAI SDK两次最小探针均HTTP429：当前测试Key分组上游饱和，随后停止。不能据此声称全站不可用；本地成功不能当作apizt上游或实扣成功。
- 本次只执行generateText非流式；未验证该Provider的图片、语音、OpenRouter或浏览器前端流式部署。

## 官方来源

- [AI SDK 官方：兼容Provider与generateText](https://ai-sdk.dev/providers/openai-compatible-providers)
- [Ollama 官方：本地兼容API](https://docs.ollama.com/api/openai-compatibility)

截图若展示本页执行记录，是结果日志视图，不是产品原生界面。
