Bắt đầuHướng dẫn
Yêu cầu đầu tiên đến CheapTokens với HTTPie: khóa trong env, = và :=
Một lệnh http dễ đọc gửi một hoàn thành chat với khóa trong biến môi trường, sau đó hiển thị nơi câu trả lời và mức sử dụng token.

Trên trang này
Bạn muốn biết rằng khóa hoạt động và id mô hình là đúng, và bạn muốn biết điều đó trong một dòng. Lệnh http của HTTPie làm được điều đó với ít dấu ngoặc kép hơn nhiều so với curl: bạn gõ các trường, nó xây dựng JSON. Đây là toàn bộ yêu cầu, và phần còn lại của bài viết giải thích từng phần.
export CHEAPTOKENS_API_KEY="paste-your-key-here"
http --body -A bearer -a "$CHEAPTOKENS_API_KEY" \
POST https://api.cheaptokens.dev/v1/chat/completions \
model=deepseek-ai/DeepSeek-V4-Flash-0731 \
max_tokens:=200 \
'messages:=[{"role":"user","content":"In one sentence, what is a token?"}]'API tương thích với OpenAI, vì vậy URL cơ sở là https:/ và các yêu cầu chat đi đến / bên dưới nó. Id mô hình là id đầy đủ, deepseek- (tên ngắn từ bảng giá không được chấp nhận). Nếu bạn chưa lưu trữ khóa trước đây, hãy lưu trữ khóa API an toàn trước: gõ dòng export sẽ đưa khóa vào lịch sử shell của bạn, vì vậy một tệp hồ sơ hoặc trình quản lý bí mật là nơi tốt hơn để lưu nó.

= và := thực sự làm gì#
Đây là phần duy nhất của HTTPie bạn phải học. Tài liệu JSON của HTTPie (phiên bản 3.2.4, ngày 1 tháng 11 năm 2024, đọc ngày 9 tháng 11 năm 2026) nói rằng = đặt một trường chuỗi và := đặt một giá trị JSON thô: một số, boolean, mảng hoặc đối tượng. Các trường được cung cấp theo cách này được gửi dưới dạng thân JSON theo mặc định, vì vậy bạn không tự thêm tiêu đề Content-Type.
Trong yêu cầu của chúng tôi, điều đó tạo ra ba hình dạng khác nhau:
model=deepseek-là một chuỗi, vì vậyai/ DeepSeek- V4- Flash- 0731 =.max_tokens:=200là một số, vì vậy:=. Với=bạn sẽ gửi chuỗi"200".messages:=[…]là một mảng các đối tượng, vì vậy:=một lần nữa, và giá trị nằm trong dấu ngoặc đơn để shell để yên các dấu ngoặc kép bên trong.
Tài liệu cũng nói rằng một thân từ stdin không thể được kết hợp với các trường dòng lệnh, vì vậy hãy chọn một phong cách. Đối với một thử nghiệm đầu tiên, các trường ngắn hơn và dễ chỉnh sửa hơn.
Kiểm tra nhanh
max_tokens=200 (với một = đơn giản) gửi gì?
Hiện đáp án
Trả lời: Chuỗi "200"
= luôn tạo một chuỗi. Đối với một số, bạn cần :=, vì vậy hãy viết max_tokens:=200.
Câu trả lời ở đâu#
Phản hồi theo định dạng hoàn thành chat của OpenAI. Bạn đang tìm ba thứ, và chúng nằm ở các vị trí khác nhau:
{
"choices": [
{
"message": { "role": "assistant", "content": "…the answer text…" },
"finish_reason": "stop"
}
],
"usage": { "prompt_tokens": …, "completion_tokens": …, "total_tokens": … }
}Văn bản câu trả lời là choices[0].. finish_reason nằm cạnh nó trong cùng một lựa chọn, và usage ở cấp cao nhất. usage cho biết bạn đã gửi bao nhiêu token (prompt_tokens) và mô hình đã viết bao nhiêu (completion_), điều này rất hữu ích để ước tính chi phí của một yêu cầu.

Nếu bạn chỉ muốn văn bản, hãy chuyển thân qua jq:
http --body -A bearer -a "$CHEAPTOKENS_API_KEY" \
POST https://api.cheaptokens.dev/v1/chat/completions \
model=deepseek-ai/DeepSeek-V4-Flash-0731 \
max_tokens:=200 \
'messages:=[{"role":"user","content":"In one sentence, what is a token?"}]' \
| jq -r '.choices[0].message.content'Tự mình thử xemHãy thử: đặt giới hạn quá nhỏ và đọc finish_reasonHiện đáp án
Thay đổi max_tokens:=200 thành max_tokens:=5 và chạy lại. Câu trả lời bị cắt, và finish_reason đọc length thay vì stop: giới hạn đã dừng mô hình, không phải kết thúc suy nghĩ. Tại sao câu trả lời bị cắt đề cập đến cách khắc phục.
Hoán đổi mô hình: thay đổi một trường#
Mô hình là một chuỗi, vì vậy thử một mô hình khác là một chỉnh sửa một từ. Cả hai id bên dưới đều có sẵn trên CheapTokens với một số dư; DeepSeek-V4-Flash cung cấp cho bạn ngữ cảnh 380K và tối đa 32.768 token đầu ra mỗi câu trả lời, GLM-5.3-Flash ngữ cảnh 390K và tối đa 8.192.
Một yêu cầu, hai mô hình
DeepSeek-V4-Flash
http --body -A bearer -a "$CHEAPTOKENS_API_KEY" \
POST https://api.cheaptokens.dev/v1/chat/completions \
model=deepseek-ai/DeepSeek-V4-Flash-0731 \
max_tokens:=200 \
'messages:=[{"role":"user","content":"Name three uses of a token limit."}]'GLM-5.3-Flash
http --body -A bearer -a "$CHEAPTOKENS_API_KEY" \
POST https://api.cheaptokens.dev/v1/chat/completions \
model=zai-org/GLM-5.3-Flash \
max_tokens:=200 \
'messages:=[{"role":"user","content":"Name three uses of a token limit."}]'Không chắc nên dùng id nào? Liệt kê các mô hình với GET /v1/models và sao chép chuỗi chính xác.
Một yêu cầu thử nghiệm tốn bao nhiêu#
Một câu hỏi ngắn như thế này là rẻ. Giả sử câu hỏi khoảng 100 token và câu trả lời khoảng 150: yêu cầu đó tốn $0.000017. Một nghìn yêu cầu như vậy trông như thế này, với đầu vào và đầu ra được tính cùng nhau:
| Mô hình | Đầu vào $/1M | Đầu ra $/1M | Mỗi yêu cầu | 1.000 yêu cầu | OpenRouter, 1.000 yêu cầu |
|---|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.000008 | $0.008 | $0.0158 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.000017 | $0.0165 | $0.028 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.000028 | $0.0275 | $0.33 |
100 token đầu vào và 150 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ổng cộng, với đầu vào và đầu ra được tính cùng nhau, DeepSeek-V4-Flash rẻ hơn so với OpenRouter, và giá là một mức cố định không có giờ cao điểm. Giá hiện tại cho mọi mô hình có trên trang giá.
Nếu nó không hoạt động#
- Bạn đã gõ
messages=[…]với một=đơn giản. Mảng được gửi dưới dạng chuỗi, không phải danh sách tin nhắn. Sử dụng:=và dấu ngoặc đơn xung quanh toàn bộ giá trị. - JSON bên trong
:=không hợp lệ. Mọi khóa và chuỗi cần dấu ngoặc kép, và dấu ngoặc kép bên ngoài phải là dấu ngoặc đơn. Nếu bạn chỉnh sửa văn bản tin nhắn, hãy giữ dấu ngoặc kép cân bằng. - Khóa trống.
echo ${#CHEAPTOKENS_in độ dài mà không hiển thị khóa;API_ KEY} 0có nghĩa là biến không được đặt trong terminal này. - Id mô hình là tên ngắn. Sử dụng
deepseek-đầy đủ. Đối với câu trả lời 401 và 404, xem sai khóa, URL cơ sở hoặc id mô hình.ai/ DeepSeek- V4- Flash- 0731 - Bạn đã dùng
--session. Tài liệu xác thực của HTTPie nói rằng các tệp phiên lưu trữ thông tin đăng nhập dưới dạng văn bản thuần, vì vậy hãy giữ khóa trong môi trường và để--sessionra khỏi lệnh này.
Kiểm tra phiên bản của bạn với http --version nếu một cờ hoạt động khác với ở trên. Thích Python? Yêu cầu tương tự không có SDK có trong yêu cầu đầu tiên bằng Python với requests. Để có tài liệu tham khảo API đầy đủ, xem tài liệu CheapTokens.



