개요
Chat API는 |Fess|의 AI 검색 모드 기능에 프로그램에서 접근하기 위한 RESTful API입니다. 검색 결과를 기반으로 한 AI 지원 응답을 가져올 수 있습니다.
이 API는 두 가지 엔드포인트를 제공합니다:
비스트리밍 API: 완전한 응답을 한 번에 가져오기
스트리밍 API: Server-Sent Events(SSE) 형식으로 실시간으로 응답 가져오기
전제조건
Chat API를 사용하려면 다음 설정이 필요합니다:
AI 검색 모드 기능이 활성화되어 있을 것(
rag.chat.enabled=true)LLM 프로바이더가 설정되어 있을 것
자세한 설정 방법은 :doc:`../config/rag-chat`를 참조하세요.
비스트리밍 API
엔드포인트
요청 파라미터
응답
성공 시(HTTP 200)
오류 시
HTTP 상태 코드
| 코드 | 설명 |
|---|---|
| 200 | 요청 성공 |
| 400 | 요청 파라미터가 잘못됨(message가 비어 있음 등) |
| 404 | 엔드포인트를 찾을 수 없음 |
| 405 | 허용되지 않는 HTTP 메서드(POST만 허용) |
| 500 | 서버 내부 오류 |
사용 예
cURL
JavaScript
Python
스트리밍 API
엔드포인트
요청 파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
message | String | 예 | 사용자의 메시지(질문) |
sessionId | String | 아니오 | 세션 ID. 대화를 계속하는 경우 지정 |
응답 형식
스트리밍 API는 text/event-stream 형식(Server-Sent Events)으로 응답을 반환합니다.
각 이벤트는 다음 형식입니다:
SSE 이벤트
session
세션 정보를 알립니다. 스트림 시작 시 전송됩니다.
phase
처리 단계의 시작/완료를 알립니다.
단계 종류:
intent_analysis- 의도 분석search- 검색 실행evaluation- 결과 평가generation- 응답 생성
chunk
생성된 텍스트 조각을 알립니다.
sources
참조 문서 정보를 알립니다.
done
처리 완료를 알립니다.
error
오류를 알립니다.
사용 예
cURL
JavaScript(EventSource)
Python
오류 처리
API 사용 시 적절한 오류 처리를 구현하세요.
속도 제한
Chat API에는 속도 제한이 적용됩니다.
기본 설정:
1분당 10개 요청
속도 제한을 초과하면 HTTP 429 오류가 반환됩니다.
속도 제한 설정은 :doc:`../config/rag-chat`를 참조하세요.
보안
Chat API 사용 시 보안 관련 주의사항:
인증: 현재 버전에서는 API에 인증이 필요하지 않지만, 프로덕션 환경에서는 적절한 접근 제어를 검토하세요
속도 제한: DoS 공격을 방지하기 위해 속도 제한을 활성화하세요
입력 검증: 클라이언트 측에서도 입력 검증을 수행하세요
CORS: 필요에 따라 CORS 설정을 확인하세요
참고 정보
AI 검색 모드 기능 설정 - AI 검색 모드 기능 설정
LLM 통합 개요 - LLM 통합 개요
AI 검색 모드 - 최종 사용자용 채팅 검색 가이드
API 개요 - API 개요