Quay lại blog

Công cụ & tích hợpHướng dẫn

Kết nối Qwen Code với CheapTokens: biến môi trường và settings.json

Trỏ Qwen Code tới một API tương thích OpenAI bằng ba biến môi trường hoặc một mục settings.json: base URL, model id đầy đủ và key nằm ngoài git.

Bởi CheapTokens TeamĐã xuất bản 6 phút đọc

Terminal Qwen Code với các biến OPENAI_API_KEY, OPENAI_BASE_URL và OPENAI_MODEL
Trên trang này
  1. Cài đặt Qwen Code
  2. Cách 1: ba biến môi trường
  3. Cách 2: settings.json và key nằm ngoài git
  4. Một phiên lập trình tốn bao nhiêu
  5. Các model khác để thử
  6. Nếu Qwen Code không kết nối được

Qwen Code có thể kết nối tới một endpoint tương thích OpenAI tùy chỉnh, vì vậy để kết nối nó với CheapTokens cần ba giá trị: base URL https://api.cheaptokens.dev/v1, API key của bạn và một model id đầy đủ như deepseek-ai/DeepSeek-V4-Flash-0731. Hãy export chúng dưới dạng OPENAI_API_KEY, OPENAI_BASE_URL và OPENAI_MODEL, hoặc đặt chúng vào ~/.qwen/settings.json. Cả hai cách đều lấy từ tài liệu xác thực của Qwen Code (trang cập nhật lần cuối ngày 22 tháng 10 năm 2026).

Hãy hình dung một phiên làm việc dài: agent đọc hàng chục tệp, sửa ba tệp, chạy lại các bài test. Mỗi bước đều gửi lại ngữ cảnh, nên bạn phải trả tiền cho input lặp đi lặp lại. Đó là lý do một model rẻ tính theo số token phù hợp với agent terminal, và vì sao thiết lập dưới đây đáng bỏ ra mười phút.

Cài đặt Qwen Code#

Qwen Code cần Node.js 22 trở lên. README của dự án (github.com/QwenLM/qwen-code) liệt kê vài cách cài đặt; đây là hai cách:

Cài đặt Qwen Code

npm

bash
npm install -g @qwen-code/qwen-code@latest

Homebrew

bash
brew install qwen-code

Bạn khởi chạy nó bằng qwen. Tài liệu cũng mô tả /auth → Custom Provider để kết nối thủ công một proxy hoặc một provider không được hỗ trợ. Hai cách dưới đây được viết chi tiết từng dòng, nên hãy bắt đầu với một trong số đó.

Cách 1: ba biến môi trường#

Cách nhanh nhất. Mở terminal trong dự án của bạn và chạy:

bash
export OPENAI_API_KEY="sk-your-api-key"
export OPENAI_BASE_URL="https://api.cheaptokens.dev/v1"
export OPENAI_MODEL="deepseek-ai/DeepSeek-V4-Flash-0731"
qwen

Key là giá trị giữ chỗ; hãy dán key của bạn từ dashboard CheapTokens. Việc export OPENAI_API_KEY cũng là điều báo cho Qwen Code dùng xác thực tương thích OpenAI khi bạn thiết lập mọi thứ qua biến môi trường. OPENAI_MODEL có một alias là QWEN_MODEL.

Một chi tiết khiến nhiều người vấp: model id. Hãy dùng id đầy đủ từ tài liệu CheapTokens. Tên ngắn bạn thấy cạnh giá, deepseek-v4-flash-0731, không được API chấp nhận, và id khác nhau giữa các provider.

Biến nào làm gì? Hãy ghép chúng:

Ghép cặp

Ghép mỗi biến với nhiệm vụ của nó

  • OPENAI_API_KEYKey CheapTokens của bạn; export nó sẽ chọn xác thực tương thích OpenAI
  • OPENAI_BASE_URLEndpoint mà Qwen Code gửi request tới
  • OPENAI_MODELModel id được gửi tới API
  • QWEN_MODELMột alias cho OPENAI_MODEL

Các export chỉ tồn tại cho đến khi bạn đóng terminal. Để giữ thiết lập, hãy dùng cách tiếp theo.

Cách 2: settings.json và key nằm ngoài git#

Giả sử bạn chia sẻ repo với một nhóm và không ai muốn key nằm trong tệp cấu hình. Khi đó hãy mô tả model trong ~/.qwen/settings.json và giữ key trong một tệp riêng.

json
{
  "modelProviders": {
    "openai": [
      {
        "id": "deepseek-ai/DeepSeek-V4-Flash-0731",
        "name": "DeepSeek-V4-Flash (CheapTokens)",
        "baseUrl": "https://api.cheaptokens.dev/v1",
        "description": "DeepSeek-V4-Flash through CheapTokens",
        "envKey": "CHEAPTOKENS_API_KEY"
      }
    ]
  },
  "security": { "auth": { "selectedType": "openai" } },
  "model": { "name": "deepseek-ai/DeepSeek-V4-Flash-0731" }
}

Bốn trường đóng vai trò quan trọng:

  • id là model id được gửi tới API, nên nó phải là id đầy đủ.
  • model.name phải khớp với một trong các giá trị id, nếu không Qwen Code không có gì để chọn.
  • security.auth.selectedType đặt thành "openai" sẽ chọn cách tương thích OpenAI.
  • envKey chỉ định tên biến chứa key. Trường này tùy chọn và mặc định là OPENAI_API_KEY.

Bản thân key nằm trong .qwen/.env, nơi tài liệu khuyến nghị dùng cho các bí mật, và tệp đó không được đưa vào git:

bash
CHEAPTOKENS_API_KEY=sk-your-api-key

Có lý do để ưu tiên cách này hơn khối env trong settings.json: các giá trị từ env có mức ưu tiên thấp nhất, và một tệp chứa key rất dễ bị commit nhầm. Thông tin thêm về bảo vệ key nằm trong lưu trữ API key an toàn.

Biến môi trường và các trường tương ứng trong settings.json: key, base URL, model id
Mỗi giá trị trong ba giá trị đi vào đâu: biến môi trường bên trái, settings.json bên phải

Sau khi khởi chạy, /model hiển thị các model đã cấu hình và cho phép bạn chuyển đổi. Để bắt đầu với một model cụ thể, hãy chạy qwen --model "deepseek-ai/DeepSeek-V4-Flash-0731".

Một phiên lập trình tốn bao nhiêu#

Agent terminal nặng về input: mỗi bước mang theo các tệp và lịch sử đã thu thập cho đến lúc đó. Lấy một tác vụ 40 bước và giả sử mỗi bước có 30.000 input token và 1.000 output token. Tức là 40 × 30.000 = 1.200.000 input token và 40 × 1.000 = 40.000 output token. Đây là toàn bộ tác vụ theo giá hiện hành:

Mô hình Mỗi yêu cầu 40 yêu cầu OpenRouter, 40 yêu cầu
GLM-5.3-Flash $0.00064 $0.0256 $0.0526
DeepSeek-V4-Flash $0.00055 $0.022 $0.0633
MiniMax-M2.7 $0.0017 $0.066 $0.408

30.000 token đầu vào và 1.000 token đầu ra mỗi yêu cầu. Giá trên 1 triệu token là giá hiện hành và thay đổi cùng với biểu phí của chúng tôi; cột OpenRouter hiển thị giá tham chiếu cho cùng khối lượng công việc.

Tính cả input lẫn output, CheapTokens rẻ hơn OpenRouter với từng model trong bảng. Với kiểu vòng lặp này, DeepSeek-V4-Flash rất phù hợp: ngữ cảnh 380K, tối đa 32.768 output token trong một câu trả lời, một mức giá ở mọi thời điểm và một số dư cho mọi model. Con số của bạn sẽ khác, nên hãy kéo các thanh trượt:

Máy tính chi phí

Một ngày của bạn với agent terminal

Token đầu vào mỗi yêu cầu: 25.000 · Token đầu ra mỗi yêu cầu: 800 · Số yêu cầu mỗi ngày: 120

Mô hìnhMỗi ngàyMỗi tháng
GLM-5.3-Flash$0.0638$1.92
DeepSeek-V4-Flash$0.0546$1.64
MiniMax-M2.7$0.164$4.93

Giá có trên trang giá. Nếu bạn theo dõi mức sử dụng trong một agent khác, Cline tốn bao nhiêu đi qua cùng phép tính đó.

Các model khác để thử#

Chuyển đổi chỉ là đổi id, không gì khác. Lấy từ trang model hoặc từ GET /v1/models:

  • zai-org/GLM-5.3-Flash: ngữ cảnh 390K, tối đa 8.192 output token mỗi câu trả lời, và tổng giá thấp hơn OpenRouter.
  • MiniMaxAI/MiniMax-M2.7: ngữ cảnh 180K, tối đa 8.192 output token mỗi câu trả lời, và tổng giá thấp hơn OpenRouter.

Hãy đổi OPENAI_MODEL, hoặc thêm một mục thứ hai vào modelProviders.openai và chuyển qua lại giữa chúng bằng /model.

Nếu Qwen Code không kết nối được#

  • Không nhận diện được loại xác thực. Nếu chỉ dùng biến môi trường, OPENAI_API_KEY phải được export. Nếu dùng settings.json, hãy kiểm tra rằng selectedType là "openai".
  • Không tìm thấy model. model.name phải bằng id từng ký tự, và id phải là id đầy đủ của gateway.
  • 401. Key bị thiếu hoặc sai. Nếu bạn dùng envKey, hãy chắc chắn biến đó thực sự tồn tại trong .qwen/.env hoặc shell của bạn.
  • 404. Kiểm tra rằng base URL kết thúc bằng /v1 và id không có lỗi chính tả. Hướng dẫn đầy đủ nằm trong API 401 hoặc 404: sai key, base URL hoặc model id.
  • Một biến có vẻ bị bỏ qua. Các giá trị trong env bên trong settings.json có mức ưu tiên thấp nhất, nên một biến được đặt ở nơi khác sẽ thắng.

Thiết lập cho các agent terminal khác theo cùng một mẫu, ví dụ OpenCode và Aider. Mọi thứ còn lại, từ key đến request đầu tiên, nằm trong tài liệu CheapTokens.