Chat Completions
iwinv, Google, OpenAI 모델에서 사용하는 표준 채팅 API입니다.
OpenAI chat/completions 형식과 완전히 호환됩니다.
엔드포인트
POST https://ai-api.iwinv.kr/v1/chat/completions
요청 파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
model | string | ✅ | 사용할 모델 ID |
messages | array | ✅ | 대화 메시지 배열 |
stream | boolean | 스트리밍 여부. 기본값 false | |
max_tokens | integer | 최대 생성 토큰 수 | |
temperature | number | 응답 다양성 (0.0 ~ 2.0). 기본값 1.0 | |
top_p | number | nucleus sampling 임계값 | |
system | string | 시스템 프롬프트 (일부 모델) |
기본 요청
- Python
- Node.js
- cURL
response = client.chat.completions.create(
model="gemma4-26b",
messages=[
{"role": "system", "content": "당신은 친절한 AI 어시스턴트입니다."},
{"role": "user", "content": "iwinv 클라우드에 대해 알려주세요."}
],
max_tokens=512,
temperature=0.7
)
print(response.choices[0].message.content)
const response = await client.chat.completions.create({
model: "gemma4-26b",
messages: [
{ role: "system", content: "당신은 친절한 AI 어시스턴트입니다." },
{ role: "user", content: "iwinv 클라우드에 대해 알려주세요." }
],
max_tokens: 512,
temperature: 0.7
});
console.log(response.choices[0].message.content);
curl https://ai-api.iwinv.kr/v1/chat/completions \
-H "Authorization: Bearer $IWINV_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gemma4-26b",
"messages": [
{"role": "system", "content": "당신은 친절한 AI 어시스턴트입니다."},
{"role": "user", "content": "iwinv 클라우드에 대해 알려주세요."}
],
"max_tokens": 512,
"temperature": 0.7
}'
멀티턴 대화
이전 대화 내용을 messages 배열에 함께 전달하면 문맥을 유지한 대화가 가능합니다.
messages = [
{"role": "system", "content": "당신은 친절한 AI 어시스턴트입니다."}
]
# 1번째 대화
messages.append({"role": "user", "content": "제 이름은 김철수입니다."})
response = client.chat.completions.create(model="gemma4-26b", messages=messages)
answer = response.choices[0].message.content
messages.append({"role": "assistant", "content": answer})
# 2번째 대화 — 이전 문맥 유지
messages.append({"role": "user", "content": "제 이름이 뭐라고 했죠?"})
response = client.chat.completions.create(model="gemma4-26b", messages=messages)
print(response.choices[0].message.content)
# → "김철수라고 하셨습니다."
스트리밍 응답
stream=True 설정 시 응답을 토큰 단위로 실시간 수신합니다.
- Python
- Node.js
with client.chat.completions.stream(
model="gemma4-26b",
messages=[{"role": "user", "content": "iwinv를 소개해주세요."}]
) as stream:
for chunk in stream:
content = chunk.choices[0].delta.content
if content:
print(content, end="", flush=True)
const stream = await client.chat.completions.create({
model: "gemma4-26b",
messages: [{ role: "user", content: "iwinv를 소개해주세요." }],
stream: true,
});
for await (const chunk of stream) {
const content = chunk.choices[0]?.delta?.content ?? "";
process.stdout.write(content);
}
Thinking 모드 (추론 모델)
Thinking 배지가 있는 모델은 답변 전 내부 추론 과정을 거칩니다.
복잡한 수학, 코딩, 논리 문제에서 더 높은 정확도를 보입니다.
response = client.chat.completions.create(
model="gemma4-31b", # Thinking 지원 모델
messages=[
{"role": "user", "content": "피보나치 수열의 10번째 값을 구하고 과정을 설명해주세요."}
]
)
print(response.choices[0].message.content)