Source: https://aiprimetech.io/vi/learn/use-claude-api-with-vercel-ai-sdk/ [Trang chủ](/vi/) / [Tìm hiểu](/vi/learn/) / Claude với Vercel AI SDK: baseURL của createAnthropic, truyền luồng và cách khắc phục # 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 cửa sổ dòng lệnhSao chép ``` npm i ai @ai-sdk/anthropic ``` ## Tạo nhà cung cấp lib/anthropic.tsSao ché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 }); ``` Không có biến môi trường cho URL cơ sở trong @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 generate.tsSao chép ``` 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); ``` stream.tsSao chép ``` 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: thinking.tsSao chép ``` 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. cache.tsSao chép ``` 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. lib/gateway.tsSao chép ``` 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 ID ``` ## Khắ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ì? https://api.anthropic.com/v1. Cổng thay thế toàn bộ tiền tố, vì vậy URL phải kết thúc bằng /v1, ví dụ https://aiprimetech.io/v1. Có biến môi trường cho URL cơ sở Anthropic của AI SDK không? Không. Nhà cung cấp đọc ANTHROPIC_API_KEY (hoặc ANTHROPIC_AUTH_TOKEN) từ môi trường, nhưng URL cơ sở được đặt bằng createAnthropic({ baseURL }). Tại sao AI SDK gặp lỗi phân tích cú pháp khi gọi Claude? Thông thường, baseURL thiếu /v1, nên yêu cầu đến một trang web và nhận lại HTML thay vì JSON. Tôi nên dùng @ai-sdk/anthropic hay @ai-sdk/openai-compatible cho Claude? @ai-sdk/anthropic: gói này giao tiếp bằng Messages API gốc, nên khả năng suy nghĩ và lưu lời nhắc vào bộ nhớ đệm hoạt động. Sử dụng nhà cung cấp tương thích OpenAI cho các mô hình GPT. Bắt đầu sử dụng Claude chỉ trong vài phút 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ạn](/register) AI 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. ## Các hướng dẫn khác về Claude API [Cách lấy khóa Claude API](/vi/learn/how-to-get-a-claude-api-key/)[Giải thích giá API Claude](/vi/learn/claude-api-pricing-explained/)[Cách tiết kiệm nhất để sử dụng Claude API](/vi/learn/cheapest-way-to-use-claude-api/)[Cursor không giới hạn với Claude API](/learn/use-claude-api-with-cursor/)[Truy cập Claude Code không giới hạn](/vi/learn/use-claude-api-with-claude-code/)[Cổng Claude API so với truy cập trực tiếp Anthropic](/vi/learn/claude-api-vs-anthropic-direct/)[Sử dụng Claude qua API tương thích với OpenAI](/vi/learn/openai-compatible-claude-api/)[Giải thích các mô hình Claude: so sánh Claude Opus, Sonnet, Haiku và Fable — tất cả mô hình API Claude, tên mô hình Anthropic và giá (2026)](/vi/learn/claude-api-models-compared/)[Thanh toán Claude API bằng tiền mã hóa](/vi/learn/claude-api-with-crypto-payment/)[Truy cập Claude API không cần vào danh sách chờ](/vi/learn/claude-api-without-waitlist/)[Cách giảm lượng token sử dụng với Claude](/vi/learn/how-to-reduce-claude-token-usage/)[Cline không giới hạn với Claude API](/vi/learn/use-claude-api-with-cline/)[Roo Code không giới hạn với Claude API](/vi/learn/use-claude-api-with-roo-code/)[Claude không giới hạn trong các IDE JetBrains](/vi/learn/use-claude-api-with-jetbrains/)[Sử dụng Aider không giới hạn với Claude API](/vi/learn/use-claude-api-with-aider/)[Claude không giới hạn trong VS Code](/vi/learn/use-claude-api-with-vscode/)[Cấu hình OpenCode cho Claude: thiết lập opencode.json, mô hình và các lỗi thường gặp](/vi/learn/use-claude-api-with-opencode/)[Chạy tác nhân Hermes không giới hạn trên Claude](/vi/learn/run-hermes-agent-with-claude-api/)[Chạy OpenClaw không giới hạn trên Claude](/vi/learn/run-openclaw-with-claude-api/)[API tương thích với Anthropic có nghĩa là gì](/vi/learn/anthropic-compatible-api/)[Khóa API Claude Code — ANTHROPIC_API_KEY: cách lấy, thiết lập và khi nào nên dùng claude setup-token thay thế](/vi/learn/claude-code-api-key-setup/)[Chi phí API Claude Code — Giá và cách cắt giảm](/vi/learn/claude-code-api-costs/)[Giải thích các lỗi API Claude: lỗi máy chủ 500, quá tải 529, giới hạn tốc độ 429, yêu cầu không hợp lệ 400 — và cách khắc phục từng lỗi](/vi/learn/claude-api-errors-troubleshooting/)[Cách mua tín dụng Claude API — và vì sao tín dụng Claude tốt hơn mọi lời chào mời "mua tài khoản Claude"](/vi/learn/buy-claude-api-credits/)[API Claude miễn phí: có khóa API Claude miễn phí không, và điều gì thực sự miễn phí trong 2026?](/vi/learn/claude-api-free-trial/)[Claude API so với gói thuê bao Claude Pro/Max — Nên chọn loại nào](/vi/learn/claude-api-vs-subscription/)[Chạy Codex CLI trên Claude](/vi/learn/use-claude-api-with-codex/)[Kết nối Claude với n8n](/vi/learn/use-claude-api-with-n8n/)[Định tuyến LiteLLM tới Claude](/vi/learn/use-claude-api-with-litellm/)[Sử dụng Claude trong Kilo Code](/vi/learn/use-claude-api-with-kilo-code/)[Tích hợp Claude vào GitHub Copilot](/vi/learn/use-claude-api-with-github-copilot/)[Kết nối Zed với Claude qua cổng API](/vi/learn/use-claude-api-with-zed/)[Kết nối Cherry Studio với Claude](/vi/learn/use-claude-api-with-cherry-studio/)[ChatAnthropic trong LangChain: nhập, base_url, truyền dữ liệu dạng luồng, công cụ và lỗi](/vi/learn/use-claude-api-with-langchain/)[SDK Python của Anthropic: cài đặt, thiết lập base_url, truyền dữ liệu dạng luồng và xử lý lỗi](/vi/learn/anthropic-python-sdk/)[Chạy Factory Droid với Claude](/vi/learn/use-claude-api-with-factory-droid/)[Giải thích API của Claude Code](/vi/learn/claude-code-api/)[Tích hợp API Claude vào ứng dụng của bạn](/vi/learn/claude-api-integration/)[Cách sử dụng Claude không giới hạn — và vì sao không có "Claude Code bẻ khóa"](/vi/learn/get-unlimited-claude-usage/)