Trang chủ → Hướng dẫn → OpenCode với API tùy chỉnh: cấu hình, Claude, small_model và chi phí thực
OpenCode đọc nhà cung cấp từ opencode.json, nên cấu hình chỉ là một tệp. Điều làm chúng tôi bất ngờ là hóa đơn: chỉ yêu cầu đúng một từ đã sinh ra hai yêu cầu và hơn 12.000 token đầu vào. Chúng tôi chạy OpenCode 1.19.0 trên cổng của mình với ba model để thấy token đi đâu và cắt giảm thế nào.
Đặt nội dung sau vào ~/.config/opencode/opencode.json (hoặc opencode.json trong dự án):
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"apiclan": {
"npm": "@ai-sdk/openai-compatible",
"name": "APICLAN",
"options": {
"baseURL": "https://apiclan.us/v1",
"apiKey": "{env:APICLAN_GPT_KEY}"
},
"models": {
"gpt-6-astra": {},
"gpt-6.1-sol": {}
}
}
}
}
APICLAN_GPT_KEY.models, chỉ liệt kê model thuộc nhóm của khóa đó. Mỗi khóa chỉ thuộc một nhóm, nên GPT, DeepSeek và Claude cần mục nhà cung cấp và khóa riêng.opencode, gõ /models và chọn APICLAN → gpt-6-astra. Trong script: opencode run -m apiclan/gpt-6-astra "...".| baseURL | Kết quả |
|---|---|
https://apiclan.us/v1 | ✓ |
https://apiclan.us | ✗ 404 Not Found |
@ai-sdk/openai-compatible chỉ nối thêm /chat/completions vào baseURL, nên /v1 phải có sẵn. Thiếu nó, OpenCode dừng lại với một dòng Not Found.
Thêm nhà cung cấp thứ hai trong provider, dùng gói Anthropic và khóa của nhóm Claude:
"claude": {
"npm": "@ai-sdk/anthropic",
"name": "APICLAN Claude",
"options": {
"baseURL": "https://apiclan.us/v1",
"apiKey": "{env:APICLAN_CLAUDE_KEY}"
},
"models": { "claude-fable-5-1": {} }
}
Ở đây baseURL cũng phải kết thúc bằng /v1: gói Anthropic chỉ nối thêm /messages, và chỉ https://apiclan.us đã trả về 404 trong bài thử. Điều này ngược với Claude Code, nơi ANTHROPIC_BASE_URL không được chứa /v1.
Chúng tôi yêu cầu OpenCode “Reply with just OK” trong một dự án trống. Model nào cũng gửi hai yêu cầu: một để đặt tiêu đề phiên, một là câu trả lời thật mang theo prompt hệ thống và định nghĩa công cụ của OpenCode.
| Model | Số yêu cầu | Token đầu vào (tiêu đề + trả lời) | Tổng thời gian | Chi phí |
|---|---|---|---|---|
gpt-6-astra | 2 | 4,640 + 7,678 | 20.5 s | $0.050 |
deepseek-v4-pro | 2 | 528 + 5,708 | 34.1 s | $0.005 |
deepseek-v4.1-flash | 2 | 529 + 3,027 | 21.8 s | $0.0006 |
OpenCode gửi cho model GPT một prompt hệ thống dài hơn nhiều (khoảng 7.700 token) so với DeepSeek (khoảng 3.000), và riêng yêu cầu đặt tiêu đề trên GPT đã dùng 4.640 token. Vì vậy cùng một chữ “OK” trên gpt-6-astra tốn khoảng gấp 77 lần trên deepseek-v4.1-flash. Thử ngày 12/10/2026 với OpenCode 1.19.0; chi phí theo số cổng của chúng tôi đã tính.
OpenCode dùng small_model cho việc phụ như đặt tiêu đề phiên. Hãy trỏ nó tới một model rẻ trong nhà cung cấp riêng:
"small_model": "apiclan-ds/deepseek-v4.1-flash",
"provider": {
"apiclan": { ... },
"apiclan-ds": {
"npm": "@ai-sdk/openai-compatible",
"options": {
"baseURL": "https://apiclan.us/v1",
"apiKey": "{env:APICLAN_DS_KEY}"
},
"models": { "deepseek-v4.1-flash": {} }
}
}
Với gpt-6-astra làm model chính, yêu cầu đặt tiêu đề giảm từ $0,0187 xuống $0,00003, cả cuộc trao đổi một từ giảm từ $0,050 xuống $0,031 — rẻ hơn 38% mỗi phiên mới mà câu trả lời không đổi.
Cùng một tác vụ cho mỗi model: viết fizzbuzz.py và test pytest, không chạy lệnh nào. Sau đó chúng tôi đối chiếu từng hàm với kết quả đúng cho 1–30.
| Model | Số yêu cầu | Tổng thời gian | Chi phí | Đúng | Số assert trong test |
|---|---|---|---|---|---|
gpt-6-astra | 3 | 40 s | $0.069 | ✓ | 2 |
deepseek-v4-pro | 3 | 61 s | $0.008 | ✓ | 7 |
deepseek-v4.1-flash | 3 | 25 s | $0.0011 | ✓ | 7 |
Cả ba đều viết đúng mã trong ba yêu cầu. deepseek-v4.1-flash nhanh nhất và tốn khoảng 1/60 so với gpt-6-astra; hai model DeepSeek còn viết test kỹ hơn. deepseek-v4-pro chậm nhất vì suy luận trước mỗi bước. Tổng thời gian gồm cả vài giây khởi động của chính OpenCode.
baseURL thiếu /v1.apiKey chưa được đặt ở terminal khởi chạy OpenCode.is not supported by any configured account in this group) → model trong models không thuộc nhóm của khóa, ví dụ model GPT trong nhà cung cấp dùng khóa DeepSeek.Công cụ lập trình khác: Cline với API tùy chỉnh · Codex với API tùy chỉnh.
Không thuê bao, không mức tối thiểu hàng tháng, không cần gọi cho nhân viên bán hàng. Nạp bằng USDT và tiêu đúng phần bạn dùng — 1 USDT cho bạn 2 tín dụng số dư API.
Đọc hướng dẫn nhanh 30 giâyNgôn ngữ: English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Deutsch · Français · Español · Türkçe · Português · Italiano · Bahasa Indonesia · Tiếng Việt · Bahasa Melayu · Polski · Čeština · فارسی · Русский
Giá trên trang này được điền tự động từ dữ liệu thanh toán thực tế. Điều khoản bên thứ ba được trích từ tài liệu của chính họ.