Lock-in với API LLM thực sự trông thế nào
Lock-in khi tích hợp LLM hiếm khi hiện thành điều khoản hợp đồng — nó hiện thành code. Dựng trực tiếp trên SDK một nhà thì hình dạng request, format stream, schema tool-call, và mã lỗi xuyên suốt app. Chuyển sang nhà thứ hai sau nghĩa là viết lại hết, không chỉ đổi một giá trị config.
Lớp routing có thể làm tệ hơn hoặc tốt hơn tùy nó đứng trên gì. Nếu lớp đó bịa format request độc quyền, bạn vừa đẩy lock-in lên một tầng — giờ bạn phụ thuộc dialect của router thay vì của nhà. Nếu nó implement *các dialect chuẩn*, code bạn viết portable theo thiết kế.
Đứng trên chuẩn, không phải lớp độc quyền
AnyRouter implement các hình dạng request đã tồn tại thay vì bịa cái mới: Chat Completions của OpenAI, Messages của Anthropic, và Responses API mới hơn của OpenAI, tất cả trên một endpoint. SDK nào codebase bạn đã nói vẫn chạy không đổi.
| Dialect | Endpoint | Dùng cho |
|---|---|---|
| OpenAI chat | /api/v1/chat/completions | Drop-in cho chat SDK của OpenAI |
| Anthropic messages | /api/v1/messages | Drop-in cho client Claude |
| OpenAI Responses | /api/v1/responses | Bề mặt Responses mới hơn của OpenAI |
| Embeddings | /api/v1/embeddings | Vector embedding kiểu OpenAI |
Vì đây là chuẩn công khai chứ không phải format nhà, cùng client code nói chuyện với AnyRouter cũng nói chuyện với API gốc — không gì trong tích hợp của bạn đặc thù AnyRouter.
Đổi hai dòng, và đổi hai dòng ngược lại
Trỏ client OpenAI sẵn có vào AnyRouter chỉ đổi base URL và key — không gì khác:
from openai import OpenAI
client = OpenAI(
base_url="https://anyrouter.dev/api/v1", # was https://api.openai.com/v1
api_key="sk-ar-v1-...",
)
resp = client.chat.completions.create(
model="openai/gpt-5.5",
messages=[{"role": "user", "content": "Hello"}],
)Đảo ngược là cùng hai dòng chiều kia. Đối xứng đó mới là bài kiểm lock-in thật: nếu rời đi tốn cùng diff hai dòng như lúc đến, bạn chưa từng bị khóa.
Chọn mô hình thành giá trị config
Id mô hình là chuỗi provider/model trên 170+ mô hình từ 28+ nhà, nên đổi mô hình là sửa chuỗi, không phải tích hợp lại SDK mới, scheme auth mới, và đường xử lý lỗi mới. anthropic/claude-opus-4-8 hôm nay, google/gemini-2.5-pro ngày mai — cùng client, cùng key, cùng endpoint.

Giữ key của bạn cũng giữ cửa thoát mở
Hình lock-in sâu nhất là quan hệ billing bạn không rời được. BYOK markup $0 tránh điều đó: gắn key nhà cung cấp của bạn và AnyRouter không cộng gì trên — không phí mỗi request, không surcharge, bạn chỉ trả nhà cung cấp. Nghĩa là quan hệ nhà cung cấp bên dưới vẫn là của bạn, không bị xen giữa.
- Chỉ dialect chuẩn — Chat Completions, Messages, Responses, Embeddings — không format request độc quyền để phụ thuộc.
- Id mô hình là giá trị config (
provider/model), không phải tích hợp SDK. - BYOK markup $0 giữ quan hệ billing nhà cung cấp là của bạn.
- Cùng client code chạy khi trỏ vào nhà gốc — swap ra rẻ như swap vào.
Route trên bề mặt API chuẩn — không dialect độc quyền, không lock-in.
Lấy key miễn phíGửi request đầu trong hai phút
Bắt đầu miễn phí với key của bạn, hoặc nạp rồi trả theo token. Go: $4 credit/tháng — $2/tháng, hoặc miễn phí khi góp một provider key.
Bắt đầu miễn phí