챗봇 대화 (SSE 스트리밍)
POST/api/v1/chatbot/messages
AI 챗봇과 대화하여 레시피 추천을 받습니다. 응답은 Server-Sent Events(SSE) 스트리밍으로 전달됩니다.
동작 흐름
- 클라이언트가 POST로 메시지 전송
- Producer가 Kafka에 챗봇 요청 이벤트 발행 (streamChannelId 포함)
- Producer가 Redis 채널(chatbot:stream:{streamChannelId}) 구독
- Consumer가 Kafka 메시지 처리 후 GPT 스트리밍 결과를 Redis에 발행
- Producer가 Redis 수신 데이터를 SSE로 클라이언트에 전달
- done/error 이벤트 수신 시 스트림 종료
SSE 이벤트 형식 (Content-Type: text/event-stream)
- data: { "type": "chunk", "data": "텍스트 조각" }
- data: { "type": "done", "data": { "conversationId", "isCreditDepleted", "message?", "suggestedRecipes?" } }
- data: { "type": "error", "data": { "message": "오류 메시지" } }
Request
Responses
- 200
- 400
- 401
- 429
- 500
SSE 스트림 (대화 응답이 스트리밍됨)
Response Headers
Content-Type
Cache-Control
Connection
잘못된 요청
인증 실패
요청 횟수 제한 초과
서버 내부 오류