release: stabilize RAG pipeline and finalize chat UI/UX for production#52
Merged
Conversation
frontend dev 환경에 대한 CI/CD 배포 파이프라인을 dev 브랜치에 병합합니다. ### 병합 내용 - GitHub Actions 기반 frontend dev 배포 워크플로우 통합 - Vite 기반 frontend 빌드 자동화 - 빌드 산출물을 S3 버킷에 업로드 - CloudFront 캐시 무효화를 통한 즉시 반영 - GitHub Environments(`frontend-dev`) 및 OIDC 기반 AWS Role 연동 ### 병합 목적 - frontend dev 환경 배포 자동화로 반복 작업 제거 - backend / frontend CI·CD 책임 분리 - 운영과 유사한 dev 배포 흐름을 통한 사전 검증 체계 확보 ### 영향 범위 - dev 환경에만 적용 - production(frontend-prod) 배포에는 영향 없음
frontend production 환경에 대한 CI/CD 배포 파이프라인을 main 브랜치에 반영합니다. ### 주요 내용 - GitHub Actions 기반 frontend production CD 워크플로우 추가 - S3 정적 배포 및 CloudFront 캐시 무효화 자동화 - OIDC 기반 AWS 인증 적용으로 장기 키 제거 - GitHub Environments(`frontend-prod`)를 통한 환경 분리 ### 배포 방식 - main 브랜치 병합 시 production frontend 배포 자동 실행 - dev 환경에서 검증된 배포 흐름을 그대로 production에 적용 ### 영향 범위 - frontend 배포 파이프라인만 변경 - backend 로직 및 인프라에는 영향 없음
backend 챗 API에 Pinecone 기반 Retrieval-Augmented Generation(RAG) 파이프라인을 적용하는 변경 사항을 dev 브랜치에 병합합니다. ### 병합 내용 - Pinecone VectorDB를 활용한 문서 검색(Retrieval) 기능 추가 - 검색된 법률 문서 컨텍스트와 LLM 응답을 결합한 RAG 체인 구현 - DB 기반 대화 히스토리를 기존 구조 그대로 유지하며 RAG에 결합 - stateless 체인 구조를 유지하여 캐싱 및 확장성 고려 - RAG 관련 설정을 app/core/config.py를 통해 일원화 ### 병합 목적 - LLM 단독 응답 구조에서 벗어나 문서 근거 기반 답변 제공 - 전세사기·임대차 상담 응답의 정확도 및 신뢰도 향상 - dev 환경에서 실제 RAG 동작을 검증하기 위한 기반 마련 - prod 반영 전 단계에서 Retrieval 품질 및 성능 검증 ### 영향 범위 - backend dev 환경에만 적용 - 기존 문서 인덱싱 파이프라인에는 영향 없음 - production 환경에는 아직 반영되지 않음
Pinecone 기반 RAG 파이프라인에서 발생하던 top_k 타입 오류를 수정한 변경 사항을 병합합니다. ### 병합 내용 - 환경변수로 전달된 top_k 값이 문자열로 처리되던 문제 수정 - Pinecone Retriever에 전달되는 top_k 값을 정수(int) 타입으로 명시적 변환 - Retrieval 단계에서 발생하던 TypeError 및 HTTP 500 오류 해소 ### 병합 목적 - RAG 파이프라인의 안정성 확보 - dev 환경에서 RAG 응답 검증이 가능하도록 런타임 오류 제거 - 기능 브랜치(feat/backend-rag-pinecone)를 정상 상태로 복구 ### 영향 범위 - RAG 기능 브랜치에만 적용 - 기존 dev / production 코드에는 직접적인 영향 없음 - 문서 인덱싱 및 DB 로직 변경 없음
RAG 파이프라인 설정 누락으로 인해 발생한 백엔드 애플리케이션 부팅 실패 문제를 수정한 변경 사항을 병합합니다. ### 병합 내용 - app/core/config.py에 RAG_TOP_K 설정 값 정의 - 환경변수 기반 설정 값에 대해 정수(int) 타입 캐스팅 적용 - Pinecone Retriever 초기화 단계에서 발생하던 ImportError 제거 - Gunicorn worker 부팅 실패로 인한 HTTP 5xx 오류 해소 ### 병합 목적 - dev 환경에서 백엔드 서버 정상 기동 상태 복구 - RAG 파이프라인 초기화 안정성 확보 - 설정 누락으로 인한 재발 가능성 제거 ### 영향 범위 - backend dev 환경에만 적용 - RAG 설정 로직에 한정된 수정 - 기존 문서 인덱싱 파이프라인 및 비 RAG 기능에는 영향 없음
Pinecone VectorDB 기반 Retrieval을 backend RAG 파이프라인에 연결하고, LLM 응답에 검색 출처(source)를 포함하도록 구현한 변경사항을 병합합니다. ### 병합 내용 - Pinecone VectorDB(`chatbot-law-dev`) 기반 문서 Retrieval 로직 연결 - OpenAI Embeddings(`text-embedding-3-large`)를 활용한 질의 임베딩 - RAG 체인에서 검색된 문서를 LLM 컨텍스트로 결합 - 응답 JSON에 `sources` 필드 포함 (문서명, chunk 식별자 등) - Retrieval 결과가 없을 경우에도 LLM 단독 응답이 가능하도록 안정화 ### 병합 목적 - 기존 LLM 단독 응답 구조에서 RAG 기반 답변 구조로 전환 - 답변의 근거를 확인할 수 있는 출처 정보 제공 - 이후 조항(제○조/제○항) 단위 출처 표시 및 UI 고도화를 위한 기반 마련 ### 영향 범위 - backend RAG 체인 및 Retrieval 로직 - API 응답에 `sources` 필드 추가 - 기존 기능에 대한 breaking change 없음
Pinecone 벡터 인덱싱 관리에 필요한 스크립트 및 메타데이터 파일을 dev 브랜치에 병합합니다. ### 병합 내용 - 누락되었던 Pinecone 인덱싱 파이프라인 복구 - docx 로더, 전처리(cleaner), 청킹(chunker), 임베딩(embedder) 로직 포함 - 파이프라인 실행 및 벡터 업서트 흐름 재정비 - index_manifest.json 파일 복구 - 중복 인덱싱 방지를 위한 문서 추적 메타데이터 관리 - 기존 벡터 인덱스 상태와의 정합성 확보 - scripts/indexing 디렉토리 기준 Pinecone 관리 코드 정리 ### 병합 목적 - 로컬 및 운영 환경에서 Pinecone VectorDB 인덱싱 관리 불가능 문제 해결 - RAG 응답 품질 개선을 위한 메타데이터 기반 검색/출처 확장 준비 - dev 환경 기준 벡터 데이터 재구성 및 재인덱싱 작업 기반 마련 ### 영향 범위 - backend dev 환경에만 영향 - API 동작 로직에는 직접적인 변경 없음 - production 환경에는 영향 없음 (추후 별도 반영 예정)
…hment #46 Pinecone VectorDB 기반 RAG 파이프라인에서 발생하던 metadata null 값 문제를 해결하고, 기존 벡터에 법령 출처 메타데이터를 일괄 보강한 변경사항을 병합합니다. ### 📌 병합 내용 - Pinecone metadata 규칙에 맞도록 sanitize 로직 추가 - null(None) 값 제거 - Pinecone 허용 타입(string, number, boolean, list[string])만 유지 - 기존 Pinecone 벡터(53개)에 대해 법령 메타데이터 backfill 수행 - law_title, law_short - article_no, article_title - clause_no, item_no - citation (UI 표시용 출처 문자열) - pipeline_version - metadata null 값으로 인한 Pinecone update 400 오류 방지 ### 🎯 병합 목적 - Pinecone metadata 업데이트 안정성 확보 - 법령 조항 단위 출처 정보 제공을 위한 데이터 기반 정비 - Frontend 출처(source) UI 개선 작업을 위한 사전 준비 완료 ### 🔍 검증 결과 - index_manifest.json 기준 전체 53개 vector ID 정상 매칭 - Pinecone metadata 업데이트 결과: - updated = 53 - missing = 0 - Pinecone 콘솔에서 metadata 정상 반영 확인 - 기존 기능에 대한 breaking change 없음 ### 📎 비고 - index_manifest.json 중복 생성 이슈 확인 후 정본 파일만 유지 - 향후 manifest 경로는 환경변수 기반으로 고정하는 방향 고려
Pinecone 기반 RAG 파이프라인에서 LLM 응답의 출처(sources)를 법령·조항 단위로 식별 가능한 구조로 개선한 변경사항을 dev 브랜치에 병합합니다. ### 📌 병합 내용 - RAG 검색 결과의 sources 구조 확장 - 법령 기반 citation 정보 포함 - law_title, law_short, article/조항 메타데이터 추가 - source + doc_sha + chunk_index 기반 chunk_id 재구성 - 동일 법령/조항 기준 sources 중복 제거(deduplication) - LLM context의 인용 번호([n]) 형식 유지 ### 🎯 병합 목적 - LLM 답변의 근거를 사용자에게 명확히 제시할 수 있는 기반 마련 - Frontend 출처(citation) UI 구현을 위한 데이터 구조 완성 - 법률 상담 챗봇의 신뢰성과 설명 가능성 강화 ### 🔍 검증 결과 - 로컬 환경에서 RAG 응답 정상 동작 확인 - Network 응답에서 sources 필드에 법령 메타데이터 정상 포함 - chunk_id 값이 정상 생성됨 - 기존 기능에 대한 breaking change 없음 ### 📝 비고 - 변경 범위는 backend service 레이어(chain_builder)로 한정됨 - retriever, embedding, LLM 설정에는 영향 없음
Frontend 챗봇 응답 UI에서 법령 출처(citation) 표시 방식을 개선하여 숫자 인용 방식([1], [2] 등)을 제거하고, 각 항목 문장 끝에 사람이 읽을 수 있는 법령 출처를 직접 표기하도록 변경한 사항을 dev 브랜치에 병합합니다. ### ✨ 병합 내용 - 숫자 인용([n])을 실제 법령 출처 텍스트로 치환하여 본문에 inline 표시 - 출처를 하단 패널이 아닌 각 문장/항목 마지막에 직접 노출 - SourcesPanel 컴포넌트 사용 중단(UI 단순화) - chunk_id 등 내부 기술 식별자 사용자 화면에서 완전 제거 - ChatMessage 컴포넌트 내 출처 렌더링 로직 일원화 ### 🎯 병합 목적 - 법률 상담 UX에 적합한 출처 표기 방식 제공 - 사용자에게 즉시 이해 가능한 법적 근거 제시 - RAG 기반 응답의 신뢰성 및 가독성 강화 - Backend citation 구조를 자연스럽게 소비하는 Frontend 표현 계층 완성 ### 🧪 검증 결과 - 로컬 환경에서 챗봇 응답 정상 동작 확인 - 본문 내 인용번호가 법령 출처 텍스트로 정확히 치환됨 - 출처 중복/누락 없이 각 항목 말미에 정상 표시 - 기존 질문/응답 흐름 및 복사 기능 정상 동작 ### 📝 비고 - Backend API 및 응답 스키마 변경 없음 - 변경 범위는 frontend UI 레이어(ChatMessage)로 한정 - 기존 기능에 대한 breaking change 없음
프론트엔드 채팅 화면의 UI/UX를 개선하고, 법률 답변에서 출처(citation)를 자연스럽게 표시하도록 렌더링 구조를 정리한 변경 사항을 병합합니다. ### 🔧 변경 내용 - 채팅 레이아웃을 ChatGPT 스타일에 가깝게 개선 - 이중 스크롤 제거, 브라우저 단일 스크롤 사용 - 질문 입력창 하단 고정 및 한 줄 입력 UI 구성 - 메시지 영역 가독성 개선 - 메시지 폭, 여백, 정렬 구조 조정 - 법률 답변 내 출처(citation) 표시 방식 정리 - 인용 번호 기반 렌더링 구조 안정화 ### 🎯 변경 목적 - 사용자에게 익숙한 챗봇 UI 제공 - 법률 상담 응답의 신뢰성과 가독성 향상 - 이후 출처 persistence(새로고침 유지) 기능 확장을 위한 기반 마련 ###⚠️ 참고 - 백엔드 API 스펙 변경 없음 - 출처 persistence는 후속 PR에서 처리 예정
프론트엔드 챗봇 화면의 UI/UX를 개선하고, 대화 영역 가독성과 사용자 상호작용 흐름을 중심으로 레이아웃 및 스타일 구조를 정리한 변경 사항을 병합합니다. ### 🔧 변경 내용 - 채팅 메시지 영역 레이아웃 정리 - 챗봇 / 사용자 메시지 정렬 및 간격 조정 - 대화 영역 내 폭 및 여백 재조정으로 가독성 향상 - Suggestion Chips UX 개선 - 칩 클릭 시 즉시 질문이 전송되도록 동작 방식 변경 - 불필요한 입력 단계 제거 - CSS 구조 정리 - 중복 스타일 제거 - 역할별 스타일 그룹화 - 유지보수성을 고려한 CSS 구조 재정비 ### 🎯 변경 목적 - 사용자에게 익숙한 챗봇 UI/UX 제공 - 대화 흐름의 자연스러움 및 메시지 가독성 향상 - 향후 기능 확장을 고려한 프론트엔드 구조 안정화 ###⚠️ 참고 - 기능 추가보다는 UX/UI 개선 중심의 PR입니다. - 백엔드 로직 및 API 스펙에는 영향이 없습니다.
📌 개요 프론트엔드 채팅 입력 UX 개선과 아바타 리소스 최적화를 위한 병합입니다. 사용자 입력 흐름과 시각적 요소를 중심으로 UI/UX와 성능을 함께 개선했습니다. ✨ 주요 변경 사항 1. 채팅 입력 UX 개선 - Enter 키 입력 시 메시지 전송 - Shift + Enter 조합으로 줄바꿈 입력 지원 - 채팅 입력 방식과 흐름을 ChatGPT 사용 패턴에 맞게 정리 - 불필요한 입력 단계 제거로 즉각적인 사용자 상호작용 강화 2. 입력 UI 안정화 및 가독성 개선 - 입력 영역 자동 줄바꿈 처리 - 입력 상태에 따른 스크롤 동작 정리 - 입력 필드와 전송 버튼 간 시각적 정렬 개선 3. 아바타 리소스 최적화 - roy 아바타 이미지 용량 최적화 (1MB 이상 → 약 193KB) - 시각적 품질을 유지하면서 초기 로딩 속도 및 네트워크 비용 절감 - 채팅 UI 내 아바타 표현의 일관성 강화 🧪 테스트 사항 - Enter / Shift + Enter 입력 동작 정상 확인 - 메시지 입력 및 전송 흐름 정상 동작 - 아바타 표시 및 채팅 레이아웃 이상 없음 🔎 참고 - 본 PR은 프론트엔드 UI/UX 개선에 한정됨 - 백엔드 API, 응답 로직 및 데이터 구조에는 영향 없음
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.
📌 개요
이 PR은 dev 브랜치에서 검증된 변경 사항을 main 브랜치로 병합하여,
법률 상담 챗봇의 핵심 기능(RAG 파이프라인)과 사용자 경험(UI/UX)을
프로덕션 수준으로 안정화하는 것을 목표로 합니다.
백엔드 RAG 검색·출처 체계의 완성도 향상과 함께,
프론트엔드 채팅 UI/UX 및 입력 경험을 전반적으로 개선했습니다.
✨ 주요 변경 사항
1. Backend (RAG Pipeline 안정화)
2. Frontend (Chat UI / UX 개선)
3. Avatar 및 리소스 최적화
🧪 테스트 및 검증
ℹ️ 참고 사항
→ 이후 별도 feature 브랜치에서 작업 예정