Trả lời nhanh
Endpoint chat completions của LLMwithCrypto nhận những field nào?
Nó nhận body của OpenAI chat completions: model và messages là bắt buộc; max_tokens, temperature, top_p, stop, stream, stream_options, tools, tool_choice và response_format là tùy chọn. LLMwithCrypto trả về một object chat.completion với số lượng usage, tính phí theo token từ credit của bạn, theo tài liệu ngày 23 tháng 10 năm 2026. Tool calling và JSON output phụ thuộc vào model.
Tổng quan về endpoint
| Method và URL | POST https://llmwithcrypto.com/api/v1/chat/completions |
|---|---|
| Xác thực | Truyền khóa API của bạn dưới dạng Bearer token trong header Authorization, giống như OpenAI SDK |
| Body | JSON, Content-Type: application/json |
| Response | Object chat.completion, hoặc server-sent events với stream: true |
| Thanh toán | Bạn trả tiền theo token từ số dư của mình: token đầu vào và đầu ra được đếm bằng tokenizer của chính model và tính theo giá của model đó trên 1M token. Một lần gọi kết thúc bằng lỗi thì không mất phí |
| Tính năng | Streaming hoạt động trên mọi model; tool calling và JSON output tuân theo những gì từng model tự hỗ trợ |
Tạo chat completion
POST/api/v1/chat/completions
Gửi một cuộc hội thoại đến một model và trả về câu trả lời kèm số token. Ví dụ hỏi DeepSeek V4 Pro một câu ngắn với giới hạn 200 token; id, thời gian và số lượng trong response chỉ mang tính minh họa.
Xác thực: khóa API trong header Authorization: Bearer API_KEY.
Request body
| Trường | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
model | string | Có | Model id, ví dụ deepseek-v4-pro hoặc gpt-oss-120b. GET /api/v1/models trả về mọi id mà key của bạn có thể gọi. |
messages | object[] | Có | Cuộc hội thoại, cũ nhất trước. Mỗi item có một role (system, user, assistant hoặc tool) và một chuỗi content; các message tool cũng mang theo tool_call_id. |
max_tokens | integer | Không | Số token tối đa mà câu trả lời được dùng. Nếu không có, model có thể viết cho đến khi đầy context window, và bạn trả tiền cho mọi token nó viết. |
temperature | number | Không | 0 đến 2. Thấp hơn thì dễ đoán hơn, cao hơn thì đa dạng hơn. Giá trị mặc định phụ thuộc vào model. |
top_p | number | Không | 0 đến 1, nucleus sampling. Đổi temperature hoặc top_p, không đổi cả hai. |
stop | string or string[] | Không | Tối đa 4 chuỗi kết thúc câu trả lời khi model viết chúng. Chúng không được tính vào câu trả lời. |
stream | boolean | Không | true gửi câu trả lời dưới dạng server-sent events, từng phần một. Xem streaming. |
stream_options | object | Không | {"include_usage": true} thêm một event cuối cùng với usage của một lần gọi streamed. |
tools | object[] | Không | Các function mà model có thể yêu cầu bạn gọi, theo định dạng OpenAI. Hoạt động trên các model hỗ trợ tool calling. Xem tool calling. |
tool_choice | string or object | Không | auto (mặc định khi tools được đặt), none, required, hoặc {"type": "function", "function": {"name": "…"}}. |
response_format | object | Không | {"type": "json_object"} yêu cầu một JSON object hợp lệ, trên các model hỗ trợ tính năng này. Hãy nói trong prompt của bạn JSON cần chứa gì. |
{
"model": "deepseek-v4-pro",
"messages": [
{
"role": "system",
"content": "Answer in two sentences."
},
{
"role": "user",
"content": "What is a context window?"
}
],
"max_tokens": 200
}{
"model": "gpt-oss-120b",
"messages": [
{
"role": "user",
"content": "Return {\"city\": string, \"country\": string} for the Eiffel Tower."
}
],
"response_format": {
"type": "json_object"
},
"temperature": 0.2,
"max_tokens": 100
}Response 200
{
"id": "chatcmpl-8f2c41d0a7b94e1c",
"object": "chat.completion",
"created": 1792742400,
"model": "deepseek-v4-pro",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "A context window is the maximum number of tokens a model can read and write in one request. Anything beyond it must be cut or summarized before the call."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 27,
"completion_tokens": 34,
"total_tokens": 61
}
}Ví dụ mã
curl -s "https://llmwithcrypto.com/api/v1/chat/completions" \
-H "Authorization: Bearer $LLMWITHCRYPTO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4-pro",
"messages": [
{"role": "system", "content": "Answer in two sentences."},
{"role": "user", "content": "What is a context window?"}
],
"max_tokens": 200
}'import os
from openai import OpenAI
client = OpenAI(
base_url="https://llmwithcrypto.com/api/v1",
api_key=os.environ["LLMWITHCRYPTO_API_KEY"],
)
resp = client.chat.completions.create(
model="deepseek-v4-pro",
messages=[
{"role": "system", "content": "Answer in two sentences."},
{"role": "user", "content": "What is a context window?"},
],
max_tokens=200,
)
print(resp.choices[0].message.content)
print(resp.usage.prompt_tokens, "in,", resp.usage.completion_tokens, "out")import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'https://llmwithcrypto.com/api/v1',
apiKey: process.env.LLMWITHCRYPTO_API_KEY,
});
const resp = await client.chat.completions.create({
model: 'deepseek-v4-pro',
messages: [
{ role: 'system', content: 'Answer in two sentences.' },
{ role: 'user', content: 'What is a context window?' },
],
max_tokens: 200,
});
console.log(resp.choices[0].message.content);
console.log(resp.usage.prompt_tokens, 'in,', resp.usage.completion_tokens, 'out');Tôi viết messages như thế nào?
Gửi toàn bộ cuộc hội thoại mỗi lần, tin nhắn cũ nhất trước: API không lưu bộ nhớ giữa các lần gọi, và không có nội dung nào trong prompt của bạn được lưu lại. Chúng tôi không lưu prompt của bạn hay câu trả lời của model: khi một phản hồi được gửi đi, văn bản của nó biến mất. Mỗi lần gọi để lại một dòng log với thời gian, tài khoản, model và số token, bị xóa sau 30 ngày.
system: hướng dẫn định hình mọi câu trả lời, như giọng điệu, ngôn ngữ hoặc định dạng đầu ra. Đặt một cái ở đầu.user: điều người dùng hoặc chương trình của bạn yêu cầu.assistant: các câu trả lời trước đó của model, để nó có thể tiếp tục cuộc hội thoại.tool: kết quả của một function mà model yêu cầu bạn chạy, kèmtool_call_idmà nó đưa cho bạn.
Mỗi tin nhắn đều tính là input token, nên lịch sử dài tốn nhiều hơn ở mỗi lượt. Hãy cắt bớt hoặc tóm tắt các lượt cũ khi cuộc hội thoại dài ra.
Một request có thể dài bao nhiêu?
Input và output cộng lại phải vừa với context window của model. Tính đến ngày 23 tháng 10 năm 2026, DeepSeek V4 Pro đọc tới 1M token, gpt-oss-120b tới 128K và Qwen3 235B tới 256K; trang models liệt kê tất cả.
Một request không vừa sẽ trả về 400 với mã context_length_exceeded và không tốn gì. Đặt max_tokens sao cho prompt cộng với câu trả lời dài nhất bạn chấp nhận vẫn nằm trong window.
finish_reason cho tôi biết điều gì?
finish_reason | Ý nghĩa | Cần làm gì |
|---|---|---|
stop | Model đã kết thúc câu trả lời, hoặc đã viết một trong các chuỗi stop của bạn | Không cần làm gì: câu trả lời đã đầy đủ |
length | Câu trả lời đã chạm max_tokens hoặc context window | Tăng max_tokens, hoặc yêu cầu câu trả lời ngắn hơn |
tool_calls | Model muốn bạn chạy một hoặc nhiều function | Chạy chúng và gửi kết quả trả lại, xem tool calling |
Những tham số OpenAI nào không được hỗ trợ?
Các field trong bảng trên là toàn bộ hợp đồng. Những tham số khác từ OpenAI API, như n (nhiều câu trả lời mỗi lần gọi), logprobs, audio hoặc input dạng hình ảnh, không được hỗ trợ: chỉ gửi các field được liệt kê ở đây. Các model đều là model văn bản; không model nào nhận hình ảnh qua endpoint này.
Field model chỉ nhận các id trong danh sách của chúng tôi. Chúng tôi không bán quyền truy cập GPT, Claude, Gemini hay Grok: nhà sản xuất của chúng cấm bán lại quyền truy cập API khi chưa có sự chấp thuận của họ, và chúng tôi không có sự chấp thuận đó.
Chat completions: các câu hỏi thường gặp
Có endpoint completions cũ không?
Không. Chỉ tồn tại định dạng chat; một prompt đơn lẻ là một mảng messages với một tin nhắn user.
Một lần gọi tốn bao nhiêu?
Bạn trả tiền theo token từ số dư của mình: token đầu vào và đầu ra được đếm bằng tokenizer của chính model và tính theo giá của model đó trên 1M token. Một lần gọi kết thúc bằng lỗi thì không mất phí. Giá từng model nằm trên trang pricing.
Tôi có thể xem các request trước đây không?
Không, theo thiết kế. Chúng tôi không lưu prompt của bạn hay câu trả lời của model: khi một phản hồi được gửi đi, văn bản của nó biến mất. Mỗi lần gọi để lại một dòng log với thời gian, tài khoản, model và số token, bị xóa sau 30 ngày.
Vì sao câu trả lời của tôi dừng giữa chừng?
Khi đó finish_reason là length: câu trả lời đã chạm max_tokens. Hãy tăng nó, trong giới hạn context window của model.