문서
채팅 & LLM
두 가지 채팅 엔드포인트: 버킷을 검색해서 출처와 함께 답변하는 RAG 채팅과, 직접 LLM에 접근하는 OpenAI 호환 completions 프록시.
RAG 채팅
POST /v1/chat은 버킷에서 관련 컨텍스트를 검색한 뒤, 출처 인용이 포함된 답변을 생성합니다. 스트리밍을 지원합니다.
bashcurl -X POST https://api.schift.io/v1/chat \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $SCHIFT_API_KEY" \
-d '{
"bucket_id": "abc123",
"message": "핵심 발견은 무엇인가요?",
"top_k": 5,
"stream": true
}'| 필드 | 타입 | 기본값 | 설명 |
|---|---|---|---|
bucket_id | string | — | 컨텍스트를 검색할 버킷 |
message | string | — | 사용자 질문 |
history | ChatMessage[] | [] | 이전 대화 턴 (최대 10개) |
model | string | gpt-4.1-nano | 생성에 사용할 LLM 모델 |
top_k | integer | 5 | 검색할 출처 수 |
stream | boolean | true | SSE 스트리밍 활성화 |
system_prompt | string | — | 커스텀 시스템 프롬프트 |
temperature | float | — | 샘플링 온도 |
max_tokens | integer | — | 최대 출력 토큰 |
비스트리밍 응답은 reply, sources (id, score, text 포함), model을 반환합니다. 스트리밍은 SSE 이벤트로 sources, chunk 델타, done 순서로 전송됩니다.
Chat Completions (OpenAI 호환)
POST /v1/chat/completions은 OpenAI 채팅 API의 드롭인 대체입니다. 여러 LLM 프로바이더를 단일 엔드포인트로 프록시합니다.
bashcurl -X POST https://api.schift.io/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $SCHIFT_API_KEY" \
-d '{
"model": "gpt-4.1",
"messages": [{"role": "user", "content": "RAG를 한 문단으로 설명해주세요."}]
}'| 필드 | 타입 | 기본값 | 설명 |
|---|---|---|---|
model | string | — | LLM 모델 ID (예: gpt-4.1, claude-sonnet-4-6) |
messages | object[] | — | OpenAI 형식 메시지 |
temperature | float | — | 샘플링 온도 |
max_tokens | integer | — | 최대 출력 토큰 |
stream | boolean | false | SSE 스트리밍 활성화 |
stop | string[] | — | 중지 시퀀스 |
표준 OpenAI 응답 형식을 반환합니다. GET /v1/models로 사용 가능한 LLM 모델 목록을 확인할 수 있습니다.
어떤 걸 써야 하나
문서를 검색해서 출처와 함께 답변받으려면 /v1/chat을 사용하세요. 검색 없이 순수 LLM 호출만 필요하면 /v1/chat/completions을 사용하세요 — OpenAI와 동일한 형식이라 호환 라이브러리에서 바로 쓸 수 있습니다.