Conversation
# Conflicts: # src/main/java/com/mey/backend/global/payload/status/ErrorStatus.java
- 자동 dml 설정 진행중 (place 관련)
- 자동 dml 설정 진행중 (place 관련)
# Conflicts: # build.gradle # src/main/java/com/mey/backend/domain/place/entity/Place.java # src/main/resources/application-dev.yml # src/main/resources/sql/data-mysql.sql
- 기존 키워드 매칭에서 GPT-4o-mini 기반 지능형 의도 분류로 전환 - IntentClassificationResult DTO 추가로 신뢰도 및 분류 근거 제공 - fallback 메커니즘으로 LLM 실패 시 키워드 기반 분류 유지 - 4가지 의도(CREATE_ROUTE, SEARCH_EXISTING_ROUTES, SEARCH_PLACES, GENERAL_QUESTION) 정확도 향상 - 상세한 프롬프트 엔지니어링으로 문맥 기반 분류 최적화
- 다중 의도 지원 챗봇으로 확장 (루트생성/기존루트검색/장소검색/일반질문) - RAG 시스템과 벡터 데이터베이스 통합으로 정확한 정보 검색 - 단계별 정보 수집 및 컨텍스트 관리 시스템 - RouteRepository 기반 실제 루트 검색 기능 - 자동 일수 조정 로직 및 장소 부족 시 알림 - 벡터 스토어 초기화로 Place 데이터 자동 로딩 - 개발환경 SQL 스크립트 실행 순서 최적화 - Theme enum JSON 직렬화 지원 및 단일 테마 구조로 변경
- ChatResponse에 context 필드 추가로 클라이언트 측 컨텍스트 관리 지원 - 모든 의도별 핸들러에서 업데이트된 컨텍스트 반환 - 단계별 정보 수집 과정에서 컨텍스트 누적 및 전달 - createQuestionResponse, createErrorResponse 메서드에 컨텍스트 매개변수 추가 - 대화 흐름 연속성 보장으로 사용자 경험 개선
ChatService의 책임을 분산하여 단일 책임 원칙을 적용하고 코드 가독성과 유지보수성을 향상시킴 새로 분리된 클래스들: • ConversationManager: 대화 세션 및 상태 관리 - 사용자별 세션 생성/관리, 컨텍스트 병합, 상태 전환 로직 • IntentClassifier: 사용자 의도 분류 - LLM 기반 고정밀 분류, 키워드 기반 fallback, 신뢰도 검증 • ContextExtractor: 컨텍스트 정보 추출 - 테마/지역/일수 추출, LLM 파싱, 필수 정보 검증 • ChatResponseBuilder: 응답 생성 및 포맷팅 - 다양한 응답 타입 빌딩, 테마별 메시지, DTO 변환 • ConversationState: 대화 상태 열거형 - 단계적 정보 수집을 위한 상태 머신 정의 기존 ChatService는 1091줄 → 650줄(40% 감소)로 간소화되었으며, 각 컴포넌트가 명확한 책임을 가지고 독립적으로 테스트 가능함
# Conflicts: # src/main/java/com/mey/backend/domain/place/controller/PlaceController.java # src/main/java/com/mey/backend/domain/place/repository/PlaceRepository.java # src/main/java/com/mey/backend/domain/place/service/PlaceService.java # src/main/resources/sql/data-mysql.sql
Member
|
LGTM |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
루트 디렉토리의
CHATBOT_GUIDE.md참고해서 확인해주세요!