Skip to content

feat(ai): Ask Chat 세션과 히스토리 API 추가#198

Merged
1Seob merged 4 commits into
developfrom
feat/ai-ask-chat-api
Jul 14, 2026
Merged

feat(ai): Ask Chat 세션과 히스토리 API 추가#198
1Seob merged 4 commits into
developfrom
feat/ai-ask-chat-api

Conversation

@1Seob

@1Seob 1Seob commented Jul 14, 2026

Copy link
Copy Markdown
Collaborator

📝 요약(Summary)

  • Ask Chat 프론트 화면 연결을 위한 비생성 API를 추가했습니다.
  • 홈 진입, 세션 시작, 질문 저장, 히스토리 목록/상세 조회 계약을 정리했습니다.
  • 아직 AI 답변 생성, RAG retrieval, 크리스탈/무료 횟수 차감은 포함하지 않았습니다.

주요 변경사항

  • 세션/홈 API

    • GET /ask-chat/home 추가: ACTIVE 세션만 조회하고, 세션이 없으면 생성하지 않음
    • POST /ask-chat/sessions 추가: ACTIVE 세션 재사용 또는 신규 세션 생성
    • 홈 응답은 activeSession 하위 DTO만 nullable로 두어 응답 계약을 명확화
  • 질문 저장 API

    • POST /ask-chat/messages 추가
    • ACTIVE 세션이 없으면 새 세션을 생성한 뒤 USER 메시지만 저장
    • 질문 내용은 앞뒤 공백 제거 후 1~200자 검증
    • answeredTurnCount >= 15인 경우 ASK_CHAT_TURN_LIMIT_EXCEEDED로 저장 전 차단
    • 이 단계에서는 ASSISTANT 메시지, follow-up 질문, RAG 근거 문서를 생성하지 않음
  • 히스토리 조회

    • 히스토리 목록은 USER 메시지가 1개 이상 있는 세션만 노출
    • 빈 세션과 assistant-only 세션은 히스토리 목록에서 제외
    • 목록 응답에 empty, createdDate 추가
    • 상세 응답에 readOnly=true 추가
    • 히스토리 전용 조회/count JPQL 추가
  • Swagger/API 문서

    • 각 API 설명에 화면 ID와 동작 조건을 구체화
    • 세션 생성 여부, nullable 응답, 읽기 전용 상세, 아직 미포함된 AI 생성 범위를 명시
  • 테스트

    • 세션 홈/시작 서비스 테스트 추가
    • 질문 저장/검증/15회 제한 서비스 테스트 추가
    • 히스토리 조회 서비스 테스트 보강
    • 히스토리 전용 repository JPQL 통합 테스트 추가

검증

  • .\gradlew.bat test --tests "com.devkor.ifive.nadab.domain.askchat.application.AskChatMessageCommandServiceTest" --tests "com.devkor.ifive.nadab.domain.askchat.application.AskChatSessionServiceTest" --tests "com.devkor.ifive.nadab.domain.askchat.application.AskChatHistoryQueryServiceTest"
  • .\gradlew.bat test --tests "com.devkor.ifive.nadab.domain.askchat.core.repository.AskChatSessionRepositoryTest" --tests "com.devkor.ifive.nadab.domain.askchat.application.AskChatHistoryQueryServiceTest"
  • git diff --check

참고 / 리스크

  • AI 답변 생성 파이프라인은 후속 PR에서 연결 예정입니다.
  • 크리스탈/무료 횟수 차감 정책은 이번 PR에 포함하지 않았습니다.

🔗 Related Issue

  • Closes:

💬 공유사항

✅ PR Checklist

PR이 다음 요구 사항을 충족하는지 확인하세요.

  • PR 제목을 커밋 메시지 컨벤션에 맞게 작성했습니다.

1Seob added 4 commits July 14, 2026 20:09
GET /ask-chat/home은 활성 세션 조회만 수행하고, POST /ask-chat/sessions는 활성 세션 재사용 또는 신규 생성을 담당하도록 분리함
POST /ask-chat/messages에서 활성 세션 재사용 또는 신규 세션 생성 후 USER 메시지를 저장하도록 구현함
USER 메시지가 있는 세션만 히스토리 목록에 노출하도록 조회 조건을 변경함
Swagger 설명에 홈/채팅/히스토리 화면별 동작과 세션 생성 여부를 구체화함. AskChatMessageCommandService에서 질문 내용을 공백 제거 후 검증하도록
보강하고, 잘못된 입력이 세션 조회와 메시지 저장 전에 차단되는 테스트를 추가함
@1Seob 1Seob merged commit 5618850 into develop Jul 14, 2026
1 check passed
@1Seob 1Seob deleted the feat/ai-ask-chat-api branch July 14, 2026 13:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant