-
Notifications
You must be signed in to change notification settings - Fork 0
Description
이슈 배경
- AI 서버와 연동하여 사용자 질문에 대한 AI 채팅 답변 및 출처 링크 제공 기능을 수행하는 클라이언트 구현함.
- 기존 Mock 구현체를 Feign Client를 통해 실제 외부 API를 호출하는 구현체로 대함.
이슈 내용
1. API 명세 구현
- 채팅 답변 요청 (
getChatAnswer)- Endpoint:
POST /webhook/chat-answer - 동작: 사용자 질문, 대화 내역, 검색 모드를 전달하여 AI 답변 및 출처(링크, 추론 과정) 데이터를 수신함.
- Request:
{ "userId": 1, "question": "Gemini 관련 링크 찾아줘", "history": [], "mode": "detailed" } - Response
- List 형태로 반환
[ { "answer": "Gemini와 관련된 내용은 두 개의 아티클에 포함돼 있습니다. 두 글 모두 Gemini Pro 3.0의 CLI 사용법과 구독 조건, 모델 활성화 절차를 상세히 안내하고 있어요. 필요하신 정보를 아래 링크에서 확인해보세요.", "linkIds": [ "3", "4" ], "reasoningSteps": [ { "step": "제공된 컨텍스트 중 Gemini Pro 3.0에 대한 설명이 포함된 항목을 찾음", "linkIds": [ "3", "4" ] } ], "relatedLinks": [ "3", "4" ], "isFallback": false, "hits": [] } ]
- Endpoint:
2. 비즈니스 로직
RagChatFeign구현: AI 채팅 서버와 직접적인 HTTP 통신을 담당하는 Feign 클라이언트 작성함.RagChatClient구현:RagChatFeign을 호출하여 받은 응답 데이터(JSON Array)를 내부 비즈니스 로직에서 사용하기 적합한 DTO로 파싱 및 변환하여 반환함.- 통신용 Request 및 반환용 Response DTO 정의함.
- 예외 처리(Fallback): 외부 서버 통신 실패(Timeout, 5xx 에러) 시 트랜잭션 롤백 없이 에러 로그를 기록함. 이후 메인 로직에 영향을 주지 않도록
null또는 기본 실패 응답 DTO를 반환함
참고 자료
No response
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels