시스템/유저/툴 메시지 구조, 함수 스키마로 외부 시스템 연동.
GPT API
대화형 LLM 추론과 임베딩, 함수호출, 스트리밍을 하나의 API로. 표준 REST/웹소켓을 제공하며, 기업 보안과 관측성까지 갖추었습니다. 요금은 별도문의로 안내합니다.
SSE/웹소켓 토큰 단위 스트리밍으로 저지연 UI 구현.
검색/추천/벡터DB용 고정 길이 벡터 생성.
조직/프로젝트 키, IP 허용목록, 감사로그, 디도스보호(프록시).
기능 요약
| 기능 | 엔드포인트 | 설명 |
|---|---|---|
| Chat Completions | POST /v1/chat/completions |
대화/툴 호출/스트리밍 |
| Embeddings | POST /v1/embeddings |
텍스트 임베딩 벡터 생성 |
| Moderation(옵션) | POST /v1/moderations |
콘텐츠 안전성 검토 |
| Batch(옵션) | POST /v1/batches |
대량 비동기 처리를 위한 배치 |
지원 모델(예시)
| 모델 | 타입 | 권장 용도 | 비고 |
|---|---|---|---|
| gaon-llama-8b | Chat | 일반 대화/요약/질의응답 | 국문 최적화 |
| gaon-llama-70b | Chat | 고정밀 분석/에이전트 | 고사양 |
| gaon-embed-1 | Embedding | 검색/추천/벡터DB | 768-D |
| 커스텀 파인튜닝 | Chat/Embed | 도메인 특화 | 별도 협의 |
빠른 시작
- 콘솔에서 프로젝트를 만들고 API Key 발급
- 기본 엔드포인트:
https://api.gaon.it/v1 - 인증:
Authorization: Bearer <API_KEY>
cURL — Chat
curl -s https://api.gaon.it/v1/chat/completions \
-H "Authorization: Bearer $GAON_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gaon-llama-8b",
"messages": [
{"role":"system","content":"You are a helpful assistant."},
{"role":"user","content":"안녕! 오늘 날씨 어때?"}
]
}'
JavaScript — 스트리밍(SSE)
const resp = await fetch("https://api.gaon.it/v1/chat/completions",{
method:"POST",
headers:{"Authorization":"Bearer "+API_KEY,"Content-Type":"application/json","Accept":"text/event-stream"},
body: JSON.stringify({
model:"gaon-llama-8b",
stream:true,
messages:[{role:"user",content:"한 줄 농담"}]
})
});
const reader = resp.body.getReader();
const dec = new TextDecoder();
let buf="";
for(;;){ const {value,done}=await reader.read(); if(done) break; buf+=dec.decode(value,{stream:true});
for(const line of buf.split("\n")){
if(!line.startsWith("data:")) continue; const data=line.slice(5).trim(); if(data==="[DONE]") break;
const chunk = JSON.parse(data); console.log(chunk.choices?.[0]?.delta?.content||"");
}
}
Python — 함수호출
import requests, json
url = "https://api.gaon.it/v1/chat/completions"
headers = {"Authorization": f"Bearer {API_KEY}", "Content-Type":"application/json"}
payload = {
"model":"gaon-llama-8b",
"tools":[{"type":"function","function":{
"name":"get_weather","description":"도시의 날씨 조회",
"parameters":{ "type":"object","properties":{"city":{"type":"string"}},"required":["city"] }
}}],
"messages":[{"role":"user","content":"서울 날씨 알려줘"}]
}
r = requests.post(url, headers=headers, data=json.dumps(payload))
print(r.json())
Embeddings
curl -s https://api.gaon.it/v1/embeddings \
-H "Authorization: Bearer $GAON_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model":"gaon-embed-1",
"input":["가온 API 사용 방법","검색을 위한 임베딩"]
}'
보안 / 한도
| 항목 | 설명 |
|---|---|
| 인증/권한 | 프로젝트 스코프 API Key, 조직/역할(IAM) 연동 |
| 네트워크 | IP 허용목록, VPC 엔드포인트(옵션), 디도스보호(프록시) |
| 데이터 | 전송구간 TLS, 저장 시 암호화(옵션), 로그 보존 정책 선택 |
| 쿼터/레이트 | RPM/TPM/동시요청 한도 구성, 초과 시 429 반환 |
모니터링 / 로그
| 항목 | 범위 | 설명 |
|---|---|---|
| 메트릭 | 프로젝트/모델/엔드포인트 | RPS, 지연 p50/p95, 토큰 사용량, 오류율 |
| 요청 로그 | 요청/응답 메타 | 모델/토큰/상태코드/지연, PII 마스킹 옵션 |
| 감사 로그 | 키/권한/설정 | 키 발급/폐기, 한도 변경, 정책 변경 추적 |
요금 안내(개요)
| 항목 | 기준 | 비고 |
|---|---|---|
| Chat 추론 | 입력/출력 토큰(1K 단위) | 모델별 단가 상이 — 별도문의 |
| 임베딩 | 토큰(1K) 또는 요청 건수 | 모델/벡터 차원 수 기준 — 별도문의 |
| 네트워크 | 아웃바운드 GB | 리전/전송 정책에 따라 상이 |
* 실제 과금/할인은 계약/약정/리전에 따라 달라질 수 있습니다.
당신의 앱에 대화형 AI를 더 간단하게
요건(모델, 지연, 예산)을 알려주시면 최적 구성을 제안드립니다.
샘플 요청/응답 스키마
요청(예)
{
"model": "gaon-llama-8b",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "문장 두 개를 요약해줘."}
],
"stream": false,
"temperature": 0.7,
"max_tokens": 512
}
응답(예)
{
"id": "cmpl_123",
"object": "chat.completion",
"created": 1700000000,
"model": "gaon-llama-8b",
"choices": [{
"index": 0,
"message": {"role": "assistant", "content": "요약된 문장..."},
"finish_reason": "stop"
}],
"usage": {"prompt_tokens": 120, "completion_tokens": 40, "total_tokens": 160}
}