Client/DeepSeek Harness
Dùng Wokey API với DeepSeek Harness
Lấy khóa API Wokey, trỏ DeepSeek Harness đến base URL của Wokey, rồi xác nhận kết nối bằng một yêu cầu curl.
Cập nhật
Trên trang nàyexpand_more
Lấy khóa API và base URLlink
Mọi client đều dùng cùng một khóa API Wokey và cùng một base URL.
Tạo khóa API
Đăng nhập và tạo khóa nền tảng trên trang API. Các khóa trong cùng một tài khoản dùng chung số dư của tài khoản đó.
Tạo khóa APIkeyDùng base URL của Wokey
Đặt base URL của client là tên miền của gateway; cấu hình bên dưới cho biết có cần thêm /v1 hay không.
Cấu hình clientlink
DeepSeek Harness (dsh) chấp nhận gateway tùy chỉnh, nên một khóa Wokey dùng được cho các mô hình DeepSeek, GPT, GLM và Claude. deepseek-v4.1-flash hỗ trợ Chat Completions, Responses và Anthropic Messages; cấu hình bên dưới đặt Claude Opus 5.5 và DeepSeek-V4.1-Flash dưới cùng một provider Anthropic Messages và khai báo đầu vào hình ảnh cho cả hai.
- 1
Cài bản phát hành trước 0.2.1
Tag latest trên npm vẫn là 0.2.0; DeepSeek khuyên dùng v0.2.1-rc.1 trở lên cho V4.1-Flash-1017, vì vậy hãy cài @next.
- 2
Đặt biến khóa API
Cấu hình chỉ ghi tên apiKeyEnv, nên khóa không bao giờ nằm trong tệp. Bạn cũng có thể lưu khóa tại Settings → Models trong giao diện web.
- 3
Thêm provider
Sửa ~/.dsh/profiles/web/cordis.patch.yml (profiles/headless với dsh headless). Ví dụ này dùng Anthropic Messages cho cả hai mô hình, với base URL là https://api.wokey.ai. Nếu bạn chọn OpenAI Chat Completions, hãy tạo một provider riêng và dùng https://api.wokey.ai/v1.
- 4
Khai báo đầu vào hình ảnh
DeepSeek Harness coi mô hình tùy chỉnh chưa khai báo là chỉ nhận văn bản, nên có thể từ chối ảnh trước khi Wokey nhận được yêu cầu, kể cả khi mô hình trên Wokey hỗ trợ thị giác. Với Opus 5.5, Haiku 5.5 hoặc bất kỳ mô hình thị giác nào khác, hãy thêm input: [text, image] dưới mô hình đó; trong giao diện, vào Settings → Models → sửa provider → Customized settings → mở rộng hàng của mô hình → Input types → Image. Lưu lại, rồi bắt đầu một phiên mới.
- 5
Giữ các provider hiện có
Cấu hình ghi đè này thay thế toàn bộ config của mục llm-pi-ai, nên nếu bạn đã thêm provider trong giao diện, hãy liệt kê chúng dưới providers nữa. Dùng dấu cách cho mọi mức thụt lề và không trộn tab vào YAML. Bắt đầu một phiên mới sau khi lưu.
# 1. Cài hoặc cập nhật lên 0.2.1
npm install -g @deepseek-ai/dsh@next
export WOKEY_API_KEY="YOUR_API_KEY"
# 2. ~/.dsh/profiles/web/cordis.patch.yml
- id: llm-pi-ai
config:
providers:
wokey:
displayName: Wokey
apiKeyEnv: WOKEY_API_KEY
api: anthropic-messages
baseURL: https://api.wokey.ai
models:
- id: claude-opus-5-5
name: Claude Opus 5.5
contextWindow: 1000000
input: [text, image]
- id: deepseek-v4.1-flash
name: DeepSeek-V4.1-Flash
contextWindow: 1000000
maxTokens: 393216
input: [text, image]
- id: agent-default-model
config:
provider: wokey
model: claude-opus-5-5
# 3. Khởi động
dsh webĐịnh dạng API và base URLlink
Khi một client chuyển sang định dạng API khác, việc base URL có kết thúc bằng /v1 hay không có thể thay đổi.
| Định dạng | Base URL | Dùng cho |
|---|---|---|
| OpenAI Chat Completions | https://api.wokey.ai/v1 | DeepSeek, GLM, Kimi và các mô hình khác |
| Anthropic Messages | https://api.wokey.ai | Mô hình Claude |
Nơi cấu hình: ~/.dsh/profiles/web/cordis.patch.yml
Phí Search / Fetch và phạm vi hỗ trợ của Wokeylink
Wokey cung cấp các giao diện suy luận mô hình được liệt kê trên trang này, không cung cấp endpoint độc lập /v1/tools/search hay /v1/tools/fetch. Hỗ trợ gọi công cụ không có nghĩa là hỗ trợ mọi công cụ web tích hợp sẵn của upstream. Tìm kiếm phía máy chủ trong request mô hình phụ thuộc vào tuyến cung cấp thực tế và hiện không được liệt kê là tính năng Wokey đã xác minh và hỗ trợ đồng nhất; trang này không công bố giá Wokey cho mỗi lệnh gọi Search/Fetch. Nếu cần tìm kiếm và fetch độc lập có tài liệu hỗ trợ, hãy dùng khóa API DeepSeek với api.deepseek.com, cấu hình và tính phí riêng với các lệnh gọi mô hình qua Wokey.
Phí chính thức, thay đổi từ ngày 1 tháng 11 và chi tiết hỗ trợKhắc phục sự cố thường gặplink
- “The current model does not support images”: đây là cơ chế kiểm tra năng lực cục bộ của Harness; không có nghĩa là Wokey hay Opus 5.5 không hỗ trợ thị giác. Hãy bật Image cho mô hình đó, hoặc thêm input: [text, image] vào mục YAML của nó.
- Ảnh vẫn bị từ chối sau khi lưu: hãy bắt đầu phiên mới và chọn lại mô hình; phiên hiện có vẫn giữ năng lực mô hình và tệp đính kèm đã ghi nhận.
- Yêu cầu có ảnh trả về 400: hãy khớp giao thức và base URL. Anthropic Messages dùng https://api.wokey.ai không có /v1; OpenAI Chat Completions dùng https://api.wokey.ai/v1. deepseek-v4.1-flash hỗ trợ cả hai định dạng, nhưng client vẫn phải gửi đúng cấu trúc của giao thức đã chọn.
- Ứng dụng không khởi động hoặc báo số dòng YAML: kiểm tra input có nằm dưới đúng mô hình, mọi dấu gạch đầu dòng của mô hình thẳng hàng và tệp không chứa tab. Khôi phục bản sao lưu, rồi lưu lại chỉ với dấu cách.
- Ứng dụng khởi động với “Select a model”: kiểm tra agent-default-model vẫn trỏ đến provider và mô hình đang tồn tại. Cập nhật mục này sau khi xóa hoặc đổi tên provider.
- Mô hình xuất hiện sau khi tìm kiếm nhưng không có năng lực hình ảnh: Fetch available models chủ yếu điền ID và các trường dung lượng. Hãy khai báo rõ input: [text, image] cho từng mô hình thị giác tùy chỉnh thay vì đánh dấu mọi mô hình là hỗ trợ thị giác.
- Các provider khác biến mất sau khi lưu: ghi đè cordis.patch.yml thay thế toàn bộ mục llm-pi-ai, nên hãy giữ mọi provider hiện có dưới providers.
Kiểm tra bằng curllink
Nếu client báo lỗi, trước hết hãy dùng curl để loại trừ vấn đề về khóa API và base URL.
DeepSeek Harness mặc định dùng định dạng OpenAI Chat Completions. Nếu yêu cầu này trả về 200 thì khóa API và base URL đều đúng. Hãy thay YOUR_API_KEY bằng khóa của bạn trước khi gửi.
curl https://api.wokey.ai/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4.1-flash",
"messages": [
{ "role": "user", "content": "Hello" }
]
}'Lỗi và khắc phục sự cốlink
Trước hết hãy phân biệt các trường hợp xác thực, số dư, giới hạn tốc độ, mô hình không khả dụng và upstream hết thời gian chờ.
invalid api key
Khóa bị thiếu, nhập sai, đã bị xóa, hoặc header Authorization / x-api-key mâu thuẫn nhau.
insufficient balance
Số dư tài khoản quá thấp. Hãy nạp tiền trước khi gửi thêm yêu cầu.
model_denylisted / account_restricted
Lệnh gọi đến mô hình, hoặc đến mọi mô hình trên tài khoản, bị tạm dừng sau nhiều lần vi phạm. Xem Phí xử lý vi phạm và giới hạn.
request_blocked
Yêu cầu này bị chặn trước khi đến upstream và không bị tính phí, ví dụ gửi lại nguyên vẹn một yêu cầu mà mô hình vừa từ chối, hoặc người dùng cuối đang bị tạm dừng (X-End-User-Id). Thông báo lỗi cho biết điều gì bị chặn; hãy sửa yêu cầu theo thông báo hoặc thử lại sau. Các yêu cầu khác không bị ảnh hưởng.
rate limited
Lưu lượng quá dày. Hãy thử lại sau hoặc giảm số yêu cầu đồng thời. Nếu chỉ một mô hình, hoặc một người dùng cuối (X-End-User-Id), liên tục trả về 429, đó có thể là giới hạn tạm thời sau khi vi phạm.
client disconnected
Client đã đóng kết nối trước khi phản hồi hoàn tất (mã downstream_aborted). Mặc định trường hợp này miễn phí. Khi một tài khoản có ít nhất 50 lần client ngắt kết nối trong 24 giờ qua và chúng chiếm từ 10% số yêu cầu trở lên, các yêu cầu bị ngắt kết nối sau đó sẽ bị tính phí theo mức sử dụng mà upstream báo cáo: phần đầu vào đã xử lý, bao gồm đọc và ghi cache, và phần đầu ra chỉ khi upstream đã tính. Ngắt kết nối trước khi upstream báo cáo bất kỳ mức sử dụng nào vẫn miễn phí. Tài khoản sẽ được thông báo khi bắt đầu tính phí, và việc tính phí tự động dừng trong vòng một giờ khi tỷ lệ ngắt kết nối trở lại bình thường. Nguyên nhân thường gặp là thời gian chờ của client hoặc proxy quá ngắn, hoặc chương trình hủy yêu cầu trước khi chúng hoàn tất.
upstream unavailable
Dịch vụ mô hình upstream tạm thời không khả dụng. Hãy đổi mô hình hoặc thử lại sau.
upstream timeout
Phản hồi từ upstream hết thời gian chờ. Hãy rút ngắn ngữ cảnh, giảm max_tokens hoặc thử lại.
upstream overloaded
Mô hình upstream tạm thời quá tải và Wokey đã thử lại trên các tuyến khác (mã upstream_overloaded). Lỗi này không liên quan đến số dư của bạn. Hãy thử lại sau ít phút hoặc đổi mô hình.
Câu hỏi thường gặplink
- baseURL của DeepSeek Harness có cần kết thúc bằng /v1 không?
- Tùy vào trường api của provider. Với anthropic-messages, dùng https://api.wokey.ai không có /v1; OpenAI Chat Completions cần một provider riêng với https://api.wokey.ai/v1.
- Vì sao báo mô hình hiện tại không hỗ trợ hình ảnh?
- Đó là bước kiểm tra khả năng cục bộ trong Harness: theo mặc định, mô hình tùy chỉnh chỉ khai báo đầu vào văn bản. Thêm input: [text, image] vào mục mô hình, lưu lại và thử lại trong một phiên mới.
- Vì sao các provider khác của tôi biến mất sau khi lưu?
- Phần ghi đè llm-pi-ai trong cordis.patch.yml thay thế toàn bộ mục. Hãy ghi các provider bạn đã có vào providers cùng với Wokey.