Hướng dẫn
Giao thức và SDK
Dùng các giao thức tương thích OpenAI, Responses và Anthropic Messages, gồm streaming, tool call và di chuyển.
Model API hỗ trợ ba giao thức truyền tải. Hãy giữ SDK hiện có và chỉ thay base URL, khóa API và model ID.
Ma trận endpoint
| Giao thức | Endpoint | Máy khách điển hình |
|---|---|---|
| OpenAI Chat Completions | POST https://openapi.felo.ai/api/v1/chat/completions | OpenAI SDK, hầu hết công cụ tương thích OpenAI |
| OpenAI Responses | POST https://openapi.felo.ai/api/v1/responses | OpenAI SDK với các tính năng Responses API |
| Anthropic Messages | POST https://openapi.felo.ai/api/v1/messages | Anthropic SDK, Claude Code, các công cụ gốc Claude |
Base URL
| Máy khách | Base URL | Lý do |
|---|---|---|
| OpenAI SDK | https://openapi.felo.ai/api/v1 | SDK sẽ nối thêm /chat/completions hoặc /responses |
| Anthropic SDK | https://openapi.felo.ai/api | SDK sẽ nối thêm /v1/messages; đừng tự thêm /v1 |
Cả hai máy khách đều dùng khóa API Felo của bạn làm khóa API của SDK.
import OpenAI from "openai";
import Anthropic from "@anthropic-ai/sdk";
const openai = new OpenAI({
apiKey: process.env.FELO_API_KEY,
baseURL: "https://openapi.felo.ai/api/v1",
});
const anthropic = new Anthropic({
apiKey: process.env.FELO_API_KEY,
baseURL: "https://openapi.felo.ai/api",
});Chọn giao thức
- Dùng Chat Completions khi công cụ hoặc SDK của bạn mong đợi mảng
messagesquen thuộc vàchoices[0].message.content. - Dùng Responses khi bạn cần đối tượng Responses của OpenAI,
input,instructionshoặcoutput_text. - Dùng Messages khi bạn đang dùng Anthropic SDK hoặc một công cụ gốc Claude.
Hãy kiểm tra mô hình trước khi giả định mọi giao thức đều hoạt động. Danh mục công bố supported_protocols, supported_parameters và recommended_protocol. recommended_protocol là khuyến nghị cho máy khách, không phải giới hạn; một mô hình vẫn có thể chấp nhận giao thức khác.
Truyền trực tiếp
Đặt stream: true để nhận Server-Sent Events.
- Chat Completions phát ra các chunk chat kiểu OpenAI.
- Responses phát ra các sự kiện SSE của Responses và kết thúc bằng một đối tượng phản hồi đã hoàn tất.
- Messages phát ra các sự kiện luồng message của Anthropic.
Hãy đọc luồng sự kiện tăng dần và xử lý sự kiện kết thúc trước khi đóng kết nối. Kết nối bị ngắt không giống với một phản hồi đã hoàn tất.
Gọi công cụ và đầu ra có cấu trúc
Truyền tools theo hình dạng gốc của giao thức. Mức hỗ trợ thay đổi theo mô hình, nên hãy kiểm tra supported_parameters trong danh mục trước khi dựa vào gọi công cụ, chế độ JSON hoặc đầu ra có cấu trúc. Một mô hình có thể chấp nhận trường này mà vẫn bỏ qua một tùy chọn không được hỗ trợ.
Định tuyến kênh
Cả ba endpoint đều chấp nhận X-Felo-Channel khi bạn cần ghim một nhà cung cấp. Xem Kênh và định tuyến nhà cung cấp để biết quy tắc header và ví dụ.
Di chuyển từ API chính thức
- Đổi base URL sang URL Felo tương ứng.
- Thay khóa API bằng
FELO_API_KEY. - Thay tên mô hình bằng model ID công khai của Felo.
- Giữ nguyên phần còn lại của cấu trúc yêu cầu.
| Triệu chứng | Nguyên nhân có thể |
|---|---|
| 404 ở mọi yêu cầu | Base URL đã bao gồm /v1, hoặc base URL của Anthropic bị thêm /v1 thủ công |
| 401 | Thiếu khóa Felo hoặc máy khách vẫn gửi khóa cũ |
Lỗi model 400 | Model ID không công khai hoặc không hỗ trợ endpoint đã chọn |
| Yêu cầu Messages bị từ chối | Giao thức Messages yêu cầu max_tokens |
| Lệnh gọi công cụ bị bỏ qua | Mô hình không công bố khả năng đó |