
Claude với Vercel AI SDK: baseURL của createAnthropic, truyền dữ liệu dạng luồng và cách khắc phục lỗi
Nhà cung cấp Anthropic của AI SDK, @ai-sdk/anthropic, giao tiếp với Messages API. Giá trị baseURL mặc định là https://api.anthropic.com/v1, vì vậy khi sử dụng cổng, bạn thay thế toàn bộ tiền tố đó, bao gồm /v1. OpenCode, Kilo Code và nhiều framework tác nhân sử dụng cùng nhà cung cấp này bên dưới, nên quy tắc tương tự cũng xuất hiện trong cấu hình của chúng.
Cài đặt
npm i ai @ai-sdk/anthropicTạo nhà cung cấp
import { createAnthropic } from '@ai-sdk/anthropic';
export const anthropic = createAnthropic({
baseURL: 'https://aiprimetech.io/v1', // replaces https://api.anthropic.com/v1
apiKey: process.env.AIPRIME_API_KEY, // sent as x-api-key; defaults to ANTHROPIC_API_KEY
});@ai-sdk/anthropic: truyền baseURL trong mã. Lệnh import anthropic thông thường luôn trỏ đến endpoint riêng của Anthropic.generateText và streamText
import { generateText } from 'ai';
import { anthropic } from './lib/anthropic';
const { text, usage } = await generateText({
model: anthropic('claude-sonnet-5'),
prompt: 'Explain idempotency keys in two sentences.',
});
console.log(text, usage);import { streamText } from 'ai';
import { anthropic } from './lib/anthropic';
const result = streamText({
model: anthropic('claude-sonnet-5'),
prompt: 'Write a haiku about load balancers.',
});
for await (const chunk of result.textStream) process.stdout.write(chunk);Cả hai lệnh gọi đều chấp nhận maxRetries (mặc định là 2) cho các lỗi tạm thời như 429 và 5xx.
Suy nghĩ và lưu lời nhắc vào bộ nhớ đệm
Các tùy chọn dành riêng cho Anthropic được đặt trong providerOptions.anthropic. Các mô hình hiện hành sử dụng cơ chế suy nghĩ thích ứng:
const { text } = await generateText({
model: anthropic('claude-sonnet-5'),
providerOptions: { anthropic: { thinking: { type: 'adaptive' } } },
prompt: 'Plan a zero-downtime database migration in five steps.',
});Lưu một lời nhắc hệ thống dài, ổn định vào bộ nhớ đệm bằng cacheControl; sau đó, các lần đọc bộ nhớ đệm sẽ xuất hiện trong usage.inputTokenDetails.cacheReadTokens. Những lời nhắc ngắn hơn độ dài tối thiểu của mô hình sẽ không được lưu vào bộ nhớ đệm.
const result = await generateText({
model: anthropic('claude-sonnet-5'),
messages: [
{
role: 'system',
content: longStableInstructions,
providerOptions: { anthropic: { cacheControl: { type: 'ephemeral' } } },
},
{ role: 'user', content: question },
],
});Phương án thay thế tương thích OpenAI
Cổng cũng hỗ trợ định dạng OpenAI Chat Completions, vì vậy @ai-sdk/openai-compatible hoạt động với cùng URL cơ sở /v1 . Đây là phương thức kết nối cho các mô hình GPT dùng cùng khóa; với Claude, nhà cung cấp gốc ở trên giữ lại khả năng suy nghĩ và kiểm soát bộ nhớ đệm.
import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
const gateway = createOpenAICompatible({
name: 'aiprime',
baseURL: 'https://aiprimetech.io/v1',
apiKey: process.env.AIPRIME_API_KEY,
});
// gateway('claude-sonnet-5') or a GPT model IDKhắc phục sự cố
| Những gì bạn thấy | Nguyên nhân | Cách khắc phục |
|---|---|---|
Lỗi phân tích cú pháp JSON, phản hồi bắt đầu bằng < | baseURL không có /v1: yêu cầu đã đến trang web | baseURL: 'https://aiprimetech.io/v1' |
404 page not found | /v1 hai lần | Chính xác một /v1 |
Invalid API key | process.env có giá trị undefined trong môi trường thực thi đó (các hàm serverless và edge có môi trường riêng), nên SDK đã dùng giá trị dự phòng ANTHROPIC_API_KEY | Đặt biến trong môi trường triển khai |
| Mô hình không được hỗ trợ | Mã định danh mô hình cũ hoặc viết sai | Sử dụng ID trong bảng bên dưới |
Concurrency limit exceeded for user | Promise.all trên một mảng lớn | Giới hạn các lệnh gọi song song, ví dụ bằng p-limit |
No available accounts / 503 | Năng lực xử lý tạm thời của hệ thống phía trên | Được tự động thử lại; tăng maxRetries |
| ID mô hình | Dùng cho |
|---|---|
claude-sonnet-5 | Lựa chọn mặc định cho lập trình và tác vụ của tác nhân: nhanh, mạnh, giá tầm trung. |
claude-opus-5-5 | Suy luận khó hơn, tái cấu trúc mã quy mô lớn, tác nhân chạy trong thời gian dài. |
claude-fable-5-1 | Năng lực cao nhất và đắt nhất; dành cho các tác vụ khó nhất. |
claude-haiku-4-5 | Rẻ và nhanh: tiêu đề, tóm tắt, phân loại, các bước nhỏ. |
Câu hỏi thường gặp
baseURL mặc định của @ai-sdk/anthropic là gì?
Có biến môi trường cho URL cơ sở Anthropic của AI SDK không?
Tại sao AI SDK gặp lỗi phân tích cú pháp khi gọi Claude?
Tôi nên dùng @ai-sdk/anthropic hay @ai-sdk/openai-compatible cho Claude?
Lấy khóa API — không cần tài khoản Anthropic hay đăng ký danh sách chờ.
Lấy khóa API của bạnAI Prime Tech là một cổng API độc lập. AI Prime Tech không liên kết với, không được Anthropic chứng thực và không phải là đại lý bán lại của Anthropic. Claude và các tên mô hình liên quan là nhãn hiệu của chủ sở hữu tương ứng.