문서

채팅 & 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_idstring컨텍스트를 검색할 버킷
messagestring사용자 질문
historyChatMessage[][]이전 대화 턴 (최대 10개)
modelstringgpt-4.1-nano생성에 사용할 LLM 모델
top_kinteger5검색할 출처 수
streambooleantrueSSE 스트리밍 활성화
system_promptstring커스텀 시스템 프롬프트
temperaturefloat샘플링 온도
max_tokensinteger최대 출력 토큰

비스트리밍 응답은 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를 한 문단으로 설명해주세요."}]
  }'
필드타입기본값설명
modelstringLLM 모델 ID (예: gpt-4.1, claude-sonnet-4-6)
messagesobject[]OpenAI 형식 메시지
temperaturefloat샘플링 온도
max_tokensinteger최대 출력 토큰
streambooleanfalseSSE 스트리밍 활성화
stopstring[]중지 시퀀스

표준 OpenAI 응답 형식을 반환합니다. GET /v1/models로 사용 가능한 LLM 모델 목록을 확인할 수 있습니다.

어떤 걸 써야 하나

문서를 검색해서 출처와 함께 답변받으려면 /v1/chat을 사용하세요. 검색 없이 순수 LLM 호출만 필요하면 /v1/chat/completions을 사용하세요 — OpenAI와 동일한 형식이라 호환 라이브러리에서 바로 쓸 수 있습니다.