Source: https://aiprimetech.io/vi/learn/openai-compatible-claude-api/ [Trang chủ](/vi/) / [Tìm hiểu](/vi/learn/) / Sử dụng Claude với OpenAI SDK: endpoint tương thích OpenAI, truyền luồng, công cụ và giới hạn # Dùng Claude với SDK OpenAI: điểm cuối tương thích OpenAI, truyền luồng, công cụ và giới hạn Mã được viết cho OpenAI SDK có thể gọi Claude mà không cần viết lại: trỏ base_url đến /v1của gateway, sử dụng khóa gateway và ID mô hình Claude. Endpoint chấp nhận yêu cầu Chat Completions, truyền luồng theo cùng định dạng và hỗ trợ gọi hàm. Một số tính năng Claude chỉ có trong định dạng gốc của Anthropic; phần cuối trình bày khi nào nên chuyển đổi. ## Thông tin về endpoint | Mục | Giá trị | URL cơ sở | https://aiprimetech.io/v1 | Endpoint trò chuyện | POST https://aiprimetech.io/v1/chat/completions | Danh sách mô hình | GET https://aiprimetech.io/v1/models | Xác thực | Authorization: Bearer ; x-api-key cũng được chấp nhận | Mô hình | Các ID Claude như claude-sonnet-5; các ID GPT với khóa thuộc nhóm Codex ## Python cửa sổ dòng lệnhSao chép ``` pip install openai ``` app.pySao chép ``` import os from openai import OpenAI client = OpenAI(base_url="https://aiprimetech.io/v1", api_key=os.environ["AIPRIME_API_KEY"]) resp = client.chat.completions.create( model="claude-sonnet-5", max_tokens=1024, messages=[ {"role": "system", "content": "You are a concise assistant."}, {"role": "user", "content": "Explain idempotency keys in two sentences."}, ], ) print(resp.choices[0].message.content) print(resp.usage) ``` base_url phải kết thúc bằng /v1: SDK thêm /chat/completions vào đó. Nếu không có /v1 yêu cầu được gửi đến trang web và trả về HTML; khi có /v1 hai lần, nó trả về 404 page not found. ## Node.js app.mjsSao chép ``` import OpenAI from "openai"; const client = new OpenAI({ baseURL: "https://aiprimetech.io/v1", apiKey: process.env.AIPRIME_API_KEY }); const resp = await client.chat.completions.create({ model: "claude-sonnet-5", max_tokens: 1024, messages: [{ role: "user", content: "Write a haiku about retries." }], }); console.log(resp.choices[0].message.content); ``` ## Truyền dữ liệu theo luồng stream.pySao chép ``` stream = client.chat.completions.create( model="claude-sonnet-5", max_tokens=2048, stream=True, stream_options={"include_usage": True}, messages=[{"role": "user", "content": "Outline a zero-downtime migration."}], ) for chunk in stream: if chunk.choices and chunk.choices[0].delta.content: print(chunk.choices[0].delta.content, end="", flush=True) if chunk.usage: print("\n", chunk.usage) ``` Dùng luồng cho câu trả lời dài: yêu cầu không dùng luồng phải hoàn tất trong thời gian chờ của ứng dụng khách, còn luồng thì không. include_usage thêm một đoạn cuối chứa số lượng token. Tìm hiểu thêm về lý do điều này quan trọng trong [truyền phản hồi LLM theo luồng](/vi/blog/streaming-api-guide/). ## Gọi hàm tools.pySao chép ``` tools = [{ "type": "function", "function": { "name": "get_weather", "description": "Current weather for a city", "parameters": { "type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"], }, }, }] resp = client.chat.completions.create( model="claude-sonnet-5", max_tokens=512, tools=tools, messages=[{"role": "user", "content": "What is the weather in Paris?"}], ) call = resp.choices[0].message.tool_calls[0] print(call.function.name, call.function.arguments) # get_weather {"city": "Paris"} ``` Phản hồi trả về có finish_reason: "tool_calls" và theo kiểu OpenAI tool_calls. Chạy hàm, thêm một tool thông điệp chứa kết quả và giá trị tương ứng của tool_call_id, rồi gọi lại, giống hệt như với các mô hình OpenAI. ## Suy luận và tư duy reasoning_effort ánh xạ tới thiết lập mức độ nỗ lực của Claude và chấp nhận low, medium, high, xhigh hoặc max. Giá trị none bị từ chối. Khi mô hình tư duy, nội dung suy luận được trả về trong một trường riêng reasoning_content bên cạnh content, nên mã đọc message.content vẫn hoạt động mà không cần thay đổi. reasoning.pySao chép ``` resp = client.chat.completions.create( model="claude-opus-5-5", max_tokens=4096, reasoning_effort="high", messages=[{"role": "user", "content": "Find the bug in this function: ..."}], ) ``` ## Mô hình | 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ỏ. Dùng chính xác các ID này. Các ID cũ có ngày tháng như claude-3-5-sonnet-20241022 vẫn xuất hiện trong một số danh sách mô hình nhưng không được phục vụ và trả về lỗi mô hình không được hỗ trợ. ## Khi nào nên dùng API gốc của Anthropic Định dạng OpenAI hỗ trợ trò chuyện, truyền theo luồng, công cụ và hình ảnh. Dùng định dạng Messages của Anthropic trên cùng cổng kết nối khi bạn cần chỉ định rõ các điểm ngắt bộ nhớ đệm prompt, các khối tư duy để truyền lại giữa các lượt, tài liệu PDF hoặc trích dẫn. Các [hướng dẫn về Anthropic Python SDK](/vi/learn/anthropic-python-sdk/) và thiết lập [hướng dẫn Vercel AI SDK](/vi/learn/use-claude-api-with-vercel-ai-sdk/) trình bày cách sử dụng này. ## 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 < | base_url không có /v1 | https://aiprimetech.io/v1 | 404 page not found | /v1 hai lần | Chính xác một /v1 | 401 Invalid API key | Thiếu khóa hoặc khóa không đúng trong tiến trình | Kiểm tra biến; mỗi khóa thuộc về một cổng kết nối | Mô hình không được hỗ trợ | ID mô hình cũ có ngày tháng hoặc bị viết sai | Dùng một ID trong bảng phía trên | 'none' is not supported | reasoning_effort="none" | Sử dụng low hoặc cao hơn, hoặc bỏ qua | 429 Concurrency limit exceeded for user | Quá nhiều yêu cầu đang được xử lý đồng thời | Giới hạn số yêu cầu song song; xem [giới hạn tốc độ và thử lại](/vi/blog/rate-limits-and-retries/) | Hết thời gian chờ với câu trả lời dài | Yêu cầu dài không dùng luồng | Dùng luồng hoặc tăng thời gian chờ của ứng dụng khách ## Câu hỏi thường gặp Tôi có thể dùng Claude với OpenAI SDK không? Có, thông qua một điểm cuối tương thích với OpenAI: đặt base_url thành /v1 của cổng kết nối, dùng khóa API của cổng kết nối và ID mô hình Claude như claude-sonnet-5. Truyền theo luồng và gọi hàm hoạt động theo định dạng OpenAI. Tôi dùng URL cơ sở nào cho Claude trong OpenAI SDK? URL của cổng kết nối kết thúc bằng /v1, ví dụ: https://aiprimetech.io/v1. SDK sẽ thêm /chat/completions. Gọi hàm có hoạt động với Claude thông qua định dạng OpenAI không? Có. Truyền tools theo định dạng OpenAI; Claude trả về tool_calls với finish_reason là tool_calls, và bạn phản hồi bằng thông điệp tool như bình thường. Khi nào tôi nên dùng API gốc của Anthropic? Khi bạn cần chỉ định rõ bộ nhớ đệm prompt, các khối tư duy giữa các lượt, đầu vào PDF hoặc trích dẫn. Những tính năng này thuộc định dạng Messages của Anthropic. 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/)[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/)[Aider với Claude qua cổng API: ANTHROPIC_API_BASE, tệp cấu hình, chế độ architect và cách khắc phục lỗi](/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/)[Hermes Agent với Claude qua cổng API: thiết lập nhà cung cấp tùy chỉnh, kiểm soát chi phí và cách khắc phục lỗi](/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/)[Codex CLI với nhà cung cấp tùy chỉnh: config.toml, mô hình GPT và Claude, tiện ích mở rộng IDE và cách khắc phục lỗi](/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/)[GitHub Copilot Chat với Claude qua cổng API: thiết lập Custom Endpoint, chế độ tác tử và cách khắc phục lỗi](/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/)[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](/vi/learn/use-claude-api-with-vercel-ai-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/)