RAG 기반 문서 검색 시스템 - 13(복합 질문 및 문서 요약 기능 구현)

2025. 7. 23. 11:55·사이드 프로젝트

개요

이전 글에서는 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 태스크 API
  • backend/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
'사이드 프로젝트' 카테고리의 다른 글
  • RAG 기반 문서 검색 시스템 - 정리
  • RAG 기반 문서 검색 시스템 - 12(OCR 기반 문서 자동 텍스트 인식 및 저장 기능 구현)
  • RAG 기반 문서 검색 시스템 - 11(문서 분류 및 권한 기반 접근 제어 구현)
  • RAG 기반 문서 검색 시스템 - 10(문서 메타데이터 및 버전 관리 기능 구현)
moo-n
moo-n
개발관련 기록 블로그
  • moo-n
    moo-n 님의 블로그
    moo-n
  • 전체
    오늘
    어제
    • 분류 전체보기 (48)
      • Cursor AI 교육관련 (4)
      • Cursor AI 사용하기(JAVA) (3)
      • Cursor AI 사용하기(C#) (1)
      • MCP 사용하기 (2)
      • IT 관련 정리 (15)
      • 사이드 프로젝트 (15)
      • 장애대응 매뉴얼 (3)
      • 업무관련 (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    포트포워딩
    청킹
    Rag
    claude code
    방화벽
    바이브코딩
    nextjs
    vb6.0
    SVN
    Agent
    LLM
    mcp
    C#
    conTeXt
    에이전트
    임베딩
    notion
    OCR
    notion mcp
    Chunk
    Cursor
    AI
    벡터db
    Claude
    Chunking
    ClaudeCode
    oracleClient
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
moo-n
RAG 기반 문서 검색 시스템 - 13(복합 질문 및 문서 요약 기능 구현)
상단으로

티스토리툴바