공시 PDF를 올리면 해당 pdf를 llm을 통해 분석하는 기능 추가하기.
계획은
올라마 + Qgrant + RAG 를 통해서 해보기.
해당 과정하며 수정한거.
1. cicd과정
기존에는 git에 v* tag push시 ssh에 접속해서 docker-compose를 실행시켜서 이미지를 pull받게해주는 방식이였다.
그런데 조사해보니 watchtower라는 친구는 이미지가 변경되면 docker에서 pull받아준다고한다.
그래서 git v * tag push -> git action -> 빌드 및 이미지 -> docker에 image push 그러면 서버의 watchtower가 5분에 1번씩 pull하는걸로
Phase 2: PDF 처리 기능
FileStorageService 구현 (파일 저장/로드/검증)
PdfProcessingService 구현 (텍스트 추출)
TextChunker 유틸리티 구현 (청킹 로직)
메타데이터 추출 로직 (페이지 번호, 섹션)
PDF 처리 단위 테스트 작성
Phase 3: 벡터화 및 저장
DisclosureDocument 엔티티 생성
DocumentChunk 엔티티 생성
DisclosureRepository (MyBatis Mapper) 구현
DocumentChunkRepository 구현
EmbeddingService 구현 (벡터 생성)
벡터 DB 저장 로직 구현
유사도 검색 쿼리 구현
임베딩 서비스 테스트 작성
Phase 4: RAG 파이프라인
RagService 구현 (검색 + 생성)
LLM 클라이언트 설정 (OpenAI/Gemini)
프롬프트 템플릿 작성
컨텍스트 증강 로직 구현
출처 표시 기능 구현
RAG 파이프라인 통합 테스트
Phase 5: API 및 테스트
DisclosureAnalysisRequest DTO 생성
DisclosureAnalysisResponse DTO 생성
DisclosureService 구현 (비즈니스 로직)
DisclosureController 구현 (REST API)
POST /api/disclosure/upload
GET /api/disclosure/{documentId}
POST /api/disclosure/{documentId}/analyze
GET /api/disclosure/stock/{stockId}
DELETE /api/disclosure/{documentId}
SecurityConfig 업데이트 (권한 설정)
Swagger 문서화 추가
API 통합 테스트 작성
성능 테스트 (대용량 PDF)
수동 검증 (실제 공시보고서)
'Archive(완료된 내용) > 포트폴리오 강화' 카테고리의 다른 글
| [stock101] LOCK을 누가 계속 잡는 문제. (0) | 2026.01.21 |
|---|---|
| [stock101] KIS API연동 웹소켓 - 2일차 (1) | 2026.01.20 |
| [임베딩] (0) | 2026.01.17 |
| [포폴강화] RAG (0) | 2026.01.16 |
| [계획] 포폴 내용 강화 (0) | 2026.01.13 |