API endpoint tương thích với OpenAI là gì?
Một API endpoint tương thích OpenAI là một API endpoint sử dụng chính xác các định dạng yêu cầu (request) và phản hồi (response) của OpenAI API — cùng schema /v1/chat/completions, cùng định dạng streaming, cùng các trường tool-call — để SDK chính thức của OpenAI có thể hoạt động với nó chỉ bằng cách thay đổi base URL và key. UberLLM tương thích OpenAI (và tương thích Anthropic tại /v1/messages), đó là lý do tại sao việc chuyển sang sử dụng nó chỉ là một thay đổi một dòng code.
Định nghĩa ngắn gọn
Một endpoint được coi là "tương thích với OpenAI" khi nó chấp nhận các yêu cầu HTTP giống hệt và trả về các cấu trúc phản hồi giống hệt như OpenAI API. Trong thực tế, điều đó có nghĩa là:
- request body
POST /v1/chat/completions(model,messages,temperature,tools,stream, …) được chấp nhận nguyên trạng; - phản hồi là cùng một object
choices[].message, với cùng số lượng tokenusage; - streaming sử dụng các chunk server-sent-events
data:giống nhau kết thúc bằng[DONE]; - tool / function calling sử dụng các trường
tool_callsgiống nhau.
Bởi vì hợp đồng khớp, SDK chính thức của OpenAI — bằng Python, JavaScript hoặc bất kỳ ngôn ngữ nào — hoạt động với endpoint khi bạn chỉ thay đổi base URL và API key. Mã ứng dụng của bạn không nhận ra sự khác biệt.
Tại sao điều này quan trọng
Khả năng tương thích với OpenAI đã biến API của một nhà cung cấp thành một tiêu chuẩn thực tế. Một endpoint tương thích cho phép bạn giữ lại SDK, công cụ và các tích hợp framework mà bạn đã sử dụng (LangChain, Vercel AI SDK, LlamaIndex, hàng chục framework agent) trong khi thay đổi những gì nằm phía sau chúng.
Đó là toàn bộ quá trình chuyển đổi sang UberLLM:
from openai import OpenAI
client = OpenAI(
base_url="https://api.uberllm.dev/v1", # the only line that changes
api_key="ull_your_key_here",
)
resp = client.chat.completions.create(
model="deepseek/deepseek-v4-flash",
messages=[{"role": "user", "content": "Hello!"}],
stream=True,
)
Xem tài liệu SDK của OpenAI để biết đầy đủ các tham số được hỗ trợ.
Tương thích so với một giải pháp thay thế hoàn hảo
"Tương thích" là một khái niệm rộng. Hãy cẩn thận với các endpoint chấp nhận định dạng yêu cầu nhưng lại bỏ qua streaming, bỏ qua các lệnh gọi công cụ (tool calls), hoặc trả về usage không theo tiêu chuẩn. UberLLM triển khai hợp đồng chat-completions bao gồm streaming, tool calls và token usage, đồng thời cung cấp một endpoint tương thích với Anthropic tại /v1/messages để các Anthropic SDK và Claude Code cũng hoạt động mà không cần thay đổi gì — tài liệu Anthropic SDK.
UberLLM mang lại gì đằng sau endpoint tiêu chuẩn
Endpoint là tiêu chuẩn; nhưng việc định tuyến đằng sau thì không. Mọi yêu cầu được gửi đến nhà cung cấp khỏe mạnh rẻ nhất cho mô hình bạn đã chỉ định, các lỗi trước khi xuất kết quả được thử lại trên nhà cung cấp tiếp theo, và giá bạn thấy (không có phí bổ sung) là giá bạn phải trả. Xem các mô hình tại /models và giá trực tiếp tại /llm-api-pricing.