Client/pi

Dùng Wokey API với pi

Lấy khóa API Wokey, trỏ pi đế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 APIkey

Dù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

pi đọc provider tùy chỉnh từ models.json. Cấu hình bên dưới gọi các mô hình Claude qua Anthropic Messages; với GPT, DeepSeek và các mô hình khác, hãy thêm một provider thứ hai với api đặt là openai-completions và baseUrl kết thúc bằng /v1.

  1. 1

    Export khóa API

    Chạy export WOKEY_API_KEY="YOUR_API_KEY" trong terminal dùng để khởi động pi, hoặc thêm vào ~/.zshrc.

  2. 2

    Ghi models.json

    Lưu nội dung bên dưới vào ~/.pi/agent/models.json. Nếu tệp đã có provider khác, chỉ thêm mục wokey dưới providers.

  3. 3

    Chọn mô hình

    Khởi động pi, gõ /model và chọn một mô hình dưới wokey.

pi
{
  "providers": {
    "wokey": {
      "baseUrl": "https://api.wokey.ai",
      "api": "anthropic-messages",
      "apiKey": "$WOKEY_API_KEY",
      "models": [
        { "id": "claude-opus-5-5", "reasoning": true, "input": ["text", "image"] }
      ]
    }
  }
}

Đị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ạngBase URLDùng cho
Anthropic Messageshttps://api.wokey.aiMô hình Claude
OpenAI Chat Completionshttps://api.wokey.ai/v1DeepSeek, GLM, Kimi và các mô hình khác
OpenAI Responseshttps://api.wokey.ai/v1Mô hình GPT

Nơi cấu hình: ~/.pi/agent/models.json

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.

pi mặc định dùng định dạng Anthropic Messages. 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
curl https://api.wokey.ai/v1/messages \
  -H "x-api-key: YOUR_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-5",
    "max_tokens": 1024,
    "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ờ.

401

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.

402

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.

403

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.

403

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.

429

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.

499

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.

502

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.

504

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.

529

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 pi có cần kết thúc bằng /v1 không?
Tùy vào trường api. Với anthropic-messages, dùng https://api.wokey.ai không có /v1; với openai-completions hoặc openai-responses, dùng https://api.wokey.ai/v1.
Vì sao các mô hình Wokey không có trong /model?
pi không liệt kê mô hình tùy chỉnh khi không xác định được khóa API. Nếu apiKey là $WOKEY_API_KEY, hãy export WOKEY_API_KEY trong cùng terminal khởi động pi, rồi kiểm tra models.json có phải JSON hợp lệ không. /model đọc lại tệp mỗi lần mở.
Làm sao gửi ảnh đến mô hình Wokey trong pi?
Theo mặc định, mô hình tùy chỉnh trong pi chỉ khai báo đầu vào văn bản. Thêm "input": ["text", "image"] vào mô hình nhận ảnh để khai báo rằng nó nhận đầu vào hình ảnh.
Tôi có cần thay đổi cửa sổ ngữ cảnh và đầu ra tối đa không?
Nếu không có chúng, pi mặc định contextWindow 128000 và maxTokens 16384. Khi mô hình có cửa sổ lớn hơn, hãy đặt contextWindow và maxTokens trong mục mô hình theo giá trị trên trang mô hình đó.
Tôi có thể không để khóa API trong tệp không?
Có. apiKey chấp nhận biến môi trường viết dạng $NAME, và dạng !command đọc khóa từ đầu ra của một lệnh.