빠른 답변
LLMwithCrypto의 chat completions endpoint는 어떤 필드를 받나요?
OpenAI chat completions body를 받습니다: model와 messages는 필수이고, max_tokens, temperature, top_p, stop, stream, stream_options, tools, tool_choice, response_format은 선택입니다. LLMwithCrypto는 usage 개수를 담은 chat.completion 객체를 반환하며, 2026년 10월 23일 문서 기준으로 크레딧에서 토큰 단위로 청구됩니다. 툴 호출과 JSON 출력은 모델에 따라 다릅니다.
endpoint 한눈에 보기
| 메서드와 URL | POST https://llmwithcrypto.com/api/v1/chat/completions |
|---|---|
| 인증 | OpenAI SDK처럼 API 키를 Authorization 헤더의 Bearer token으로 전달하세요 |
| Body | JSON, Content-Type: application/json |
| 응답 | chat.completion 객체, 또는 stream: true 사용 시 server-sent events |
| 청구 | 잔액에서 토큰 단위로 결제합니다. 입력 및 출력 토큰은 모델 자체의 tokenizer로 계산되며, 해당 모델의 1M 토큰당 가격으로 청구됩니다. 오류로 끝난 호출은 비용이 들지 않습니다 |
| 기능 | 스트리밍은 모든 모델에서 동작하며, tool calling과 JSON 출력은 각 모델이 자체적으로 지원하는 범위를 따릅니다 |
chat completion 생성
POST/api/v1/chat/completions
대화를 한 모델로 보내고 토큰 개수와 함께 답변을 반환합니다. 예제는 DeepSeek V4 Pro에 200토큰 제한으로 짧은 질문을 합니다. 응답의 id, 시간, 개수는 예시입니다.
인증: Authorization: Bearer API_KEY 헤더에 API 키를 넣습니다.
요청 본문
| 필드 | 타입 | 필수 | 설명 |
|---|---|---|---|
model | string | 예 | 모델 id로, 예를 들어 deepseek-v4-pro 또는 gpt-oss-120b입니다. GET /api/v1/models는 해당 키로 호출할 수 있는 모든 id를 반환합니다. |
messages | object[] | 예 | 대화 내용으로, 오래된 것부터 정렬합니다. 각 항목에는 role(system, user, assistant 또는 tool)와 content 문자열이 있으며, tool 메시지는 tool_call_id도 함께 가집니다. |
max_tokens | integer | 아니요 | 답변이 사용할 수 있는 최대 토큰 수입니다. 지정하지 않으면 모델이 컨텍스트 윈도우가 가득 찰 때까지 작성할 수 있으며, 작성하는 모든 토큰에 대해 비용을 지불합니다. |
temperature | number | 아니요 | 0에서 2. 낮을수록 더 예측 가능하고, 높을수록 더 다양합니다. 기본값은 모델에 따라 다릅니다. |
top_p | number | 아니요 | 0에서 1, nucleus sampling. temperature 또는 top_p 중 하나만 변경하고, 둘 다 변경하지 마세요. |
stop | string or string[] | 아니요 | 모델이 해당 문자열을 작성하면 답변이 끝나는 시퀀스 최대 4개. 답변에는 포함되지 않습니다. |
stream | boolean | 아니요 | true는 답변을 server-sent events로 조각별로 전송합니다. streaming을 참고하세요. |
stream_options | object | 아니요 | {"include_usage": true}는 스트리밍 호출의 usage를 담은 마지막 이벤트를 추가합니다. |
tools | object[] | 아니요 | 모델이 호출을 요청할 수 있는 함수로, OpenAI 형식입니다. 툴 호출을 지원하는 모델에서 동작합니다. tool calling을 참고하세요. |
tool_choice | string or object | 아니요 | auto(tools 설정 시 기본값), none, required, 또는 {"type": "function", "function": {"name": "…"}}. |
response_format | object | 아니요 | {"type": "json_object"}는 지원하는 모델에서 유효한 JSON 객체를 요청합니다. JSON에 무엇이 들어가야 하는지 프롬프트에 명시하세요. |
{
"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
}응답 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
}
}코드 예시
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');messages는 어떻게 작성하나요?
매번 전체 대화를 보내세요, 가장 오래된 메시지를 맨 앞에 두세요: API는 호출 사이에 아무것도 기억하지 않으며, 프롬프트 내용도 저장되지 않습니다. 프롬프트와 모델의 답변은 저장하지 않습니다. 응답이 전송되면 그 텍스트는 사라집니다. 각 호출은 시간, 계정, 모델, 토큰 수를 담은 로그 한 줄을 남기며, 이는 30일 후 삭제됩니다.
system: 어조, 언어, 출력 형식처럼 모든 답변의 틀을 잡는 지시사항입니다. 맨 위에 하나 두세요.user: 사용자 또는 여러분의 프로그램이 요청하는 내용입니다.assistant: 모델의 이전 답변으로, 모델이 대화를 이어갈 수 있게 합니다.tool: 모델이 실행을 요청한 함수의 결과이며, 모델이 준tool_call_id와 함께 전달합니다.
모든 메시지가 입력 토큰으로 계산되므로, 대화 기록이 길수록 매 턴마다 비용이 더 듭니다. 대화가 길어지면 오래된 턴을 잘라내거나 요약하세요.
요청은 얼마나 길 수 있나요?
입력과 출력을 합쳐 모델의 컨텍스트 윈도에 맞아야 합니다. 2026년 10월 23일 기준으로 DeepSeek V4 Pro는 최대 1M 토큰, gpt-oss-120b는 최대 128K, Qwen3 235B는 최대 256K까지 읽습니다. 모델 페이지에서 전체 목록을 확인할 수 있습니다.
맞지 않는 요청은 코드 context_length_exceeded와 함께 400로 돌아오며 비용이 들지 않습니다. 프롬프트와 허용하는 가장 긴 답변의 합이 윈도 안에 들어오도록 max_tokens을 설정하세요.
finish_reason은 무엇을 알려주나요?
finish_reason | 의미 | 해야 할 일 |
|---|---|---|
stop | 모델이 답변을 끝냈거나 여러분의 stop 시퀀스 중 하나를 작성했습니다 | 아무것도 하지 않으면 됩니다: 답변이 완료되었습니다 |
length | 답변이 max_tokens 또는 컨텍스트 윈도에 도달했습니다 | max_tokens을 높이거나 더 짧은 답변을 요청하세요 |
tool_calls | 모델이 하나 이상의 함수 실행을 원합니다 | 실행하고 결과를 다시 보내세요. 도구 호출을 참고하세요 |
어떤 OpenAI 파라미터가 지원되지 않나요?
위 표의 필드가 계약의 전부입니다. n(호출당 여러 답변), logprobs, audio 또는 이미지 입력 같은 OpenAI API의 다른 필드는 지원되지 않습니다: 여기 나열된 필드만 보내세요. 이 모델들은 텍스트 모델이며, 이 endpoint를 통해 이미지를 받는 모델은 없습니다.
model 필드는 저희 목록에 있는 id만 받습니다. 당사는 GPT, Claude, Gemini, Grok에 대한 접근 권한을 판매하지 않습니다: 해당 제작사는 자사 승인 없이 API 접근을 재판매하는 것을 금지하며, 당사는 그 승인을 받지 않았습니다.
채팅 완성: 자주 묻는 질문
레거시 completions endpoint가 있나요?
아니요. 채팅 형식만 존재합니다. 단일 프롬프트는 user 메시지 하나를 담은 messages 배열입니다.
호출 비용은 얼마인가요?
잔액에서 토큰 단위로 결제합니다. 입력 및 출력 토큰은 모델 자체의 tokenizer로 계산되며, 해당 모델의 1M 토큰당 가격으로 청구됩니다. 오류로 끝난 호출은 비용이 들지 않습니다. 모델별 가격은 가격 페이지에 있습니다.
지난 요청을 볼 수 있나요?
아니요, 설계상 볼 수 없습니다. 프롬프트와 모델의 답변은 저장하지 않습니다. 응답이 전송되면 그 텍스트는 사라집니다. 각 호출은 시간, 계정, 모델, 토큰 수를 담은 로그 한 줄을 남기며, 이는 30일 후 삭제됩니다.
답변이 중간에 멈춘 이유는 무엇인가요?
그러면 finish_reason이 length입니다: 답변이 max_tokens에 도달했습니다. 모델의 컨텍스트 윈도 안에서 값을 높이세요.