Cổng LLM
Cổng LLM có sẵn lớp dữ liệu
Ba URL gốc, một khóa, một số dư. Chat, ảnh, video và mô hình quyết định bằng SDK bạn đang dùng; tìm kiếm, tài liệu và slide trên cùng số tín dụng — từ một phần mười giá chính thức của nhà cung cấp.
10%
Giá khởi điểm, so với giá API chính thức của nhà cung cấp
5,000+
API trong cùng danh mục
Một cổng thường chỉ có một bề mặt. Cổng này có ba.
Chúng dùng chung tài khoản, khóa và số dư, nhưng trả lời những câu hỏi khác nhau và nằm ở URL gốc khác nhau. Biết mình đang gọi cái nào chính là mấu chốt.
| Bề mặt | URL gốc | Dùng để làm gì |
|---|---|---|
| API mô hình | openapi.felo.ai/api/v1 · openapi.felo.ai/api | Gọi thẳng mô hình ngôn ngữ, ảnh, video hoặc quyết định |
| API dữ liệu | openapi.felo.ai/v1/beta | Gọi một nhà cung cấp dữ liệu hoặc tìm kiếm bên thứ ba theo tên |
| Felo APIs | openapi.felo.ai/v2 | Quy trình riêng của Felo: tìm kiếm, văn phòng, trích xuất, tri thức |
Một khóa dùng cho cả ba. Một lần nạp mua tín dụng dịch vụ bằng USD, và lệnh gọi mô hình, lệnh gọi API dữ liệu, quy trình Felo đều trừ từ cùng số dư — không có tài khoản riêng cho từng nhà cung cấp.
Đọc tài liệuSáu endpoint, không phải một
Mọi thứ dưới /api/v1 đều là lệnh gọi mô hình, nhưng loại mô hình quyết định endpoint nào có thể trả lời — và mỗi endpoint trả về định dạng riêng.
| Endpoint | Giao thức | Trả về |
|---|---|---|
POST /api/v1/chat/completions | OpenAI Chat Completions | Stream hoặc một phản hồi |
POST /api/v1/responses | OpenAI Responses | Stream hoặc một phản hồi |
POST /api/v1/messages | Anthropic Messages | Stream hoặc một phản hồi |
POST /api/v1/images/generations | Vỏ bọc ảnh của OpenAI | Một task_id để hỏi trạng thái |
POST /api/v1/videos/generations | Vỏ bọc video của OpenAI | Một task_id để hỏi trạng thái |
POST /api/v1/decisions | Lược đồ quyết định của Felo | Phản hồi có kiểu, không stream |
Ba bề mặt chat là triển khai gốc, không phải lớp dịch: mỗi bề mặt phát sự kiện theo giao thức của riêng nó, nên bạn phân tích stream y hệt như hiện nay.
Chọn endpoint theo loại mô hình, đừng đoán
Mỗi mô hình trong danh mục mang một model_kind, và loại đó quyết định endpoint nào có thể gọi nó. Việc tra cứu miễn phí: nó đọc danh mục cục bộ.
# discover before you call — free, reads the catalog
GET /api/v1/models # every kind, with channels and rates
GET /api/v1/models/{model_id} # one model, in detail
GET /api/v1/videos/models # video_generation only
GET /api/v1/decisions/models # decisions only| model_kind | Endpoint |
|---|---|
chat | Responses, Chat Completions hoặc Messages, tùy mô hình hỗ trợ gì |
image_generation | POST /api/v1/images/generations |
video_generation | POST /api/v1/videos/generations |
decisions | POST /api/v1/decisions |
Lọc bằng ?provider= để chỉ xem một nhà cung cấp, hoặc ?exclude_video_and_decisions=true để ẩn mọi thứ trừ chat và ảnh. Có mặt trong danh mục không phải lời hứa: mô hình video không trả lời yêu cầu chat, và API trả model_kind_mismatch.
Tuyến mặc định, hoặc một header để tự chọn nhà cung cấp
Một mô hình có thể được phục vụ bởi nhiều kênh thượng nguồn, mỗi kênh có nhà cung cấp và mức giá công bố riêng. Không có header thì nền tảng tự chọn; có X-Felo-Channel thì bạn chọn.
# first channel only — no automatic fallback
X-Felo-Channel: claude-cc
X-Felo-Channel: claude-cc,anthropic # ordered selection, not a retry list- Giá trị là danh sách mã kênh công khai có thứ tự, lấy từ
channels[].codecủa mô hình, được kiểm tra theo đúng thứ tự bạn viết. - Chỉ nhóm nhà cung cấp của kênh đầu tiên được gọi, và bạn trả giá của kênh đó.
- Không có chuyển kênh tự động. Danh sách kênh là một lựa chọn, không phải chính sách thử lại — nếu một nhà cung cấp lỗi, hãy gửi lại từ ứng dụng của bạn với kênh khác.
X-Felo-Channel hoạt động trên sáu endpoint tạo sinh ở trên. Nó không áp dụng cho API dữ liệu hay Felo APIs: những lệnh gọi đó đi tới nhà cung cấp bạn nêu trong yêu cầu.
Một lệnh gọi thực sự tốn bao nhiêu
Lệnh gọi mô hình tính theo token — đầu vào, đầu ra và cache — nhân với hệ số giảm giá của kênh. Giá hiển thị theo triệu token cho dễ đọc, nhưng việc tính tiền dùng độ chính xác tới từng token của bảng giá hiện hành: một yêu cầu ngắn không bao giờ bị làm tròn lên một triệu.
- Giá cache chỉ áp dụng khi phản hồi giao thức báo có dùng cache; mô hình không báo thì tính toàn bộ theo giá đầu vào.
- Tìm kiếm web do dịch vụ mô hình tự thực hiện và báo cáo có giá $0.01 mỗi lần.
- Một số mô hình chia bậc theo độ dài prompt: Claude Haiku 5.5 giá $0.10 đầu vào và $0.50 đầu ra mỗi triệu token cho prompt tới 100K token, vượt mức đó là $0.50 và $2.50 cho toàn bộ yêu cầu.
- Lần nạp đầu tiên là $1. Không thuê bao, không phí theo người dùng, không cam kết tối thiểu — khóa không dùng thì không tốn gì.
Lệnh gọi API dữ liệu và quy trình Felo cũng trừ từ số dư đó, mỗi loại theo mức giá công bố của nó: mỗi yêu cầu thành công, mỗi mục trả về hoặc theo mức dùng thực tế.
Xem giá và tín dụngHai giới hạn trông giống nhau nhưng không phải
Hết số dư trả 402 INSUFFICIENT_CREDITS. Gọi quá nhanh trả 429 RATE_LIMITED. Chờ đợi giải quyết cái thứ hai và không bao giờ giải quyết cái thứ nhất.
| Mã trạng thái | Mã lỗi | Cần làm gì |
|---|---|---|
| 401 | UNAUTHORIZED | Sửa hoặc tạo lại khóa |
| 402 | INSUFFICIENT_CREDITS | Nạp tiền trong phần thanh toán của console rồi gửi lại |
| 404 | phụ thuộc endpoint | Kiểm tra ID mô hình, ID tác vụ hoặc đường dẫn |
| 429 | RATE_LIMITED | Chờ Retry-After rồi thử lại |
| 5xx | CHAT_FAILED, SERVICE_UNAVAILABLE | Thử lại với backoff lũy thừa và jitter |
Hiện chỉ /v2/chat công bố giới hạn cứng. Lệnh gọi mô hình cũng có thể bị giới hạn ở thượng nguồn, và điều đó hiện ra dưới dạng 429 — hãy đọc X-RateLimit-* và Retry-After thay vì hard-code con số. Mỗi phản hồi mang một request_id, và header X-Request-Id bạn gửi đi được trả lại nguyên vẹn, để log của bạn và của chúng tôi khớp nhau.
Ảnh và video hoàn tất ở chế độ nền
Cả hai endpoint tạo sinh trả về task_id thay vì kết quả. Gửi, hỏi trạng thái, lấy kết quả — và lưu ý: một khi tác vụ đã tạo, phần lớn lỗi đến dưới dạng 200 kèm trạng thái kết thúc, không phải lỗi HTTP.
# submit, then poll the task
POST /api/v1/images/generations → task_id
GET /api/v1/images/generations/{id} → status, result
POST /api/v1/videos/generations → task_id
GET /api/v1/videos/generations/{id} → status, resultĐọc trạng thái trước khi đọc kết quả: failed và interrupted cũng là phản hồi, và error.message nói lý do. 402 khi gửi nghĩa là tác vụ chưa từng được tạo. SuperAgent khác: nó trả stream_key và đẩy sự kiện qua SSE, nên không có gì để hỏi trạng thái.
Đổi URL gốc, giữ nguyên client
Cả hai SDK chạy không cần sửa gì khi URL gốc trỏ về đây. npx feloapi-cli setup ghi cùng cấu hình đó cho Claude Code và Codex.
# OpenAI SDK
base_url = "https://openapi.felo.ai/api/v1"
# Anthropic SDK — one level up; the SDK appends /v1/messages
base_url = "https://openapi.felo.ai/api"
# pin a provider (optional)
default_headers = {"X-Felo-Channel": "claude-cc"}ID mô hình không giống nhau giữa các nhà cung cấp. Hãy chọn trong danh mục trước khi đổi URL gốc, nếu không lệnh gọi đầu tiên sẽ trả 404.
Phần mà một cổng thường để bạn tự lo
Cổng LLM định tuyến lệnh gọi mô hình. Ở đây cùng một khóa còn chạm tới danh mục gồm 5,000+ API — nên bước tìm kiếm của agent, slide nó tạo ra và tài liệu nó đọc lại đều trừ từ cùng số tín dụng, không phải thêm ba nhà cung cấp.
- Search
- PPT Task
- SuperAgent
- Web Fetch
- X Search
- Mindmap
- Landing Page Task
- LiveDoc
- YouTube Subtitling
Lệnh gọi API dữ liệu đi tới các nhà cung cấp có tên dưới /v1/beta — Tavily, Exa, Apollo và phần còn lại của danh mục — mỗi bên theo mức giá công bố của mình.
Cổng dừng ở đâu
- Không tự chuyển kênh — logic thử lại nằm ở ứng dụng của bạn, có chủ đích.
- Có mặt trong danh mục không bảo đảm tương thích; mỗi loại mô hình chỉ có một bề mặt gọi.
- Không có giới hạn tần suất cấp nền tảng nào được công bố cho lệnh gọi mô hình, nhưng giới hạn của nhà cung cấp thượng nguồn vẫn áp dụng.
- Tín dụng trả trước, không hoàn lại và không rút được — hãy nạp đúng mức bạn định dùng.
Sáu câu hỏi về cổng LLM
Cổng LLM là gì?
Một điểm vào đặt trước nhiều nhà cung cấp mô hình, để mã của bạn nói chuyện với một URL gốc, một khóa và một số dư thay vì cả chục SDK. Cổng AI cũng vậy; cổng này bán thêm các API dữ liệu mà một agent cần.
Tôi có giữ được SDK OpenAI hoặc Anthropic không?
Có. Chat Completions và Responses giữ dạng của OpenAI, Messages là gốc. URL gốc là https://openapi.felo.ai/api/v1 và https://openapi.felo.ai/api — cao hơn một cấp vì SDK đó tự nối thêm /v1/messages.
Làm sao biết nên gọi mô hình nào?
GET /api/v1/models liệt kê mọi loại kèm kênh và giá; mô hình video và quyết định có danh sách riêng. Đọc model_kind rồi gọi endpoint tương ứng. Có trong danh sách không có nghĩa endpoint nào cũng nhận mô hình đó.
Nhà cung cấp sập thì có tự chuyển không?
Không, và đó là cố ý. Danh sách kênh là lựa chọn, không phải chính sách thử lại: chỉ kênh đầu được gọi. Việc chuyển kênh thuộc về ứng dụng của bạn, nơi bạn thấy lỗi, ngân sách và phương án dự phòng mình thật sự muốn.
Giá bao nhiêu?
Mỗi mô hình có mức giá Felo bắt đầu từ một phần mười giá chính thức của nhà cung cấp, và kênh bạn cố định quyết định mức giá bạn trả. Trả trước, tính theo lệnh gọi, lần nạp đầu $1, không thuê bao.
Có gọi được ảnh, video và API dữ liệu không?
Có. Một khóa chạm tới mô hình chat, ảnh, video và quyết định và danh mục 5,000+ API phía sau /v1/beta — tất cả trừ từ cùng số tín dụng.
Thử bằng một lệnh gọi
Tạo khóa, nạp tiền và trỏ SDK bạn đang dùng về một URL gốc.