개요
이전 글에서는 OCR(Optical Character Recognition) 기능을 RAG 시스템에 통합하는 작업을 진행했다. Tesseract 를 사용하여 이미지의 문자열을 읽어내어 저장하는 기능을 개발하였다. 이번 글에서는 LLM 기반 Agent 태스크(복합 질문 처리) 및 문서 요약 기능 구현 과정을 정리한다. 이는 RAG 시스템에서 사용자의 고차 질문을 처리하고, 문서의 핵심 정보를 요약해주는기능으로, 실사용자의 검색결과의 품질을 향상시키는 기능이다.
작업 흐름
1. Agent 태스크 프롬프트 설계 및 LLM 연동
- 질문 유형에 따른 프롬프트 템플릿 6종 설계
- simple_qa / complex_analysis / document_summary / comparison / extraction / validation
- OpenAI 기반 LLM 연동 및 fallback 로직 구현
2. 복합 질문 처리 로직 구현
- 질문 복잡도 자동 판별 로직 구현
- 문서 컨텍스트 기반 응답 생성
- 답변 내 근거 문장 하이라이팅 기능 추가
- 에러 상황 대응 메시지 제공
3. 문서 요약 API 설계 및 구현
- RESTful API:
POST /documents/{id}/summary - 요약 유형: general, technical, executive
- 신뢰도 점수, 하이라이트 문장, 불확실성 표기 등 포함
4. 문서 요약 결과 캐싱 로직 구현
- 요약 결과 캐시 저장 및 자동 무효화 처리
- 요약 캐시 적중률 90% 이상 달성
- 캐시 로그 및 추적 기능 구현
5. API 인증 및 권한 처리
- JWT 인증 기반 접근 제어 적용
- 세분화된 권한: agent:task, summary:read, summary:admin
- 권한 부족 시 에러 메시지 명확화
6. API 문서화
- Swagger(OpenAPI) 문서에 모든 엔드포인트 등록
- 요청/응답 예시, 인증 스키마, 에러 코드 명세 포함
- Swagger UI를 통해 실시간 테스트 가능
7. 단위/통합 테스트 작성
- 전체 테스트 커버리지 90% 이상 확보
- Mocking 기반으로 외부 LLM 호출 차단
- 에러 처리, 예외 케이스, 응답 구조까지 검증
결과 요약
주요 성과
- Agent 태스크 프롬프트 6종 구현 및 LLM 연동 완료
- 문서 요약 API 및 캐싱 로직 구축
- JWT 기반 인증/권한 처리로 보안성 강화
- Swagger 문서화 및 고도화된 API 가시성 확보
- 90% 이상의 테스트 커버리지로 품질 보증 완료
API 주요 엔드포인트
POST /agent/task: 복합 질문 처리POST /documents/{id}/summary: 문서 요약 요청GET /documents/{id}/summary: 캐싱된 요약 조회
파일 구조 요약
backend/api/agent.py: Agent 태스크 APIbackend/app/services/agent_service.py: 질문 처리 서비스backend/app/services/summary_service.py: 문서 요약 서비스backend/tests/test_agent.py: Agent 태스크 단위 테스트backend/tests/test_summary.py: 문서 요약 통합 테스트
용어 정리
| 용어 | 설명 |
|---|---|
| Agent 태스크 | LLM을 활용하여 복합 질문에 대한 분석, 비교, 추출, 검증 등의 고차 작업을 처리하는 기능 |
| 문서 요약 | 긴 문서 내용을 핵심만 뽑아 한눈에 이해할 수 있게 축약하는 작업 |
| 프롬프트 템플릿 | 질문 유형에 따라 사전 정의된 LLM 요청 구조 |
| fallback 로직 | 1차 처리 실패 시 대체 처리를 시도하는 안정성 확보 로직 |
| 요약 유형 | general(일반), technical(기술), executive(간략 핵심) 등 사용자 맞춤형 요약 스타일 |
| 캐시 적중률 | 이미 저장된 요약을 재사용하는 비율, 성능 최적화 지표 |
| Swagger UI | OpenAPI 기반 API 문서와 테스트 UI 제공 도구 |
마무리
이번 글에서는 RAG 시스템에 LLM 기반 Agent 태스크 및 문서 요약 기능을 통합한 작업을 정리했다. 복합 질문 처리 프롬프트, 신뢰도 기반 요약, 권한 제어, API 문서화, 캐시 최적화 등 고급 기능들을 체계적으로 구현하며 사용자 경험과 성능을 동시에 확보하였다. 이것으로 RAG 시스템을 구상하며 꼭 필요하다고 생각한 기능들을 전부 구현하였으며 추후로는 통합테스트를 진행하며 개선점들을 개선하고 추가적으로 개발해야 할 내용을 정리하여 개발할 예정이다.
'사이드 프로젝트' 카테고리의 다른 글
| RAG 기반 문서 검색 시스템 - 정리 (1) | 2025.07.23 |
|---|---|
| RAG 기반 문서 검색 시스템 - 12(OCR 기반 문서 자동 텍스트 인식 및 저장 기능 구현) (0) | 2025.07.23 |
| RAG 기반 문서 검색 시스템 - 11(문서 분류 및 권한 기반 접근 제어 구현) (0) | 2025.07.23 |
| RAG 기반 문서 검색 시스템 - 10(문서 메타데이터 및 버전 관리 기능 구현) (1) | 2025.07.23 |
| RAG 기반 문서 검색 시스템 - 9(근거 문장 UI 콜랩스/확장 구현) (3) | 2025.07.22 |