콘텐츠로 이동

개요

항목내용
브랜치feature/openai-search-poc
기반 브랜치feature/sllm-search-poc
작성일2026-01-26
상태진행 중

  • 기존 PoC: feature/sllm-search-poc 브랜치에서 로컬 SLLM(Ollama + qwen3:8b) 기반 키워드 확장 기능 구현 완료
  • 문제점: 웹서버 배포 시 응답 속도 문제 우려 (로컬 GPU 리소스 의존)
  • OpenAI 상용 API를 병행 테스트하여 성능 비교
  • 최적 솔루션 도출을 위한 벤치마크 테스트 수행
  • PageIndex 기반 심층 분석 기능 추가 검토

  1. OpenAI API 통합: gpt-4o 모델 기반 키워드 확장 클라이언트 구현
  2. RAG 기능 강화: Elasticsearch 메타데이터를 컨텍스트로 활용한 확장 RAG
  3. PageIndex 심층 분석: 인사이트/모니터링 리포트에 대한 추론 기반 검색
  4. 벤치마크 테스트: 30개+ 검색어로 객관적 성능 비교
항목설명
응답 속도API 호출~응답 완료 시간 (ms)
응답 품질키워드 관련성, 정확도
비용API 호출당 예상 비용
안정성오류율, 타임아웃 빈도

services/llm-search/
├── app/
│ ├── config.py # 환경변수 설정
│ ├── services/
│ │ ├── llm_client.py # 기존 Ollama 클라이언트
│ │ ├── openai_client.py # [신규] OpenAI 클라이언트
│ │ ├── llm_factory.py # [신규] Provider 팩토리
│ │ ├── rag_service.py # [신규] RAG 컨텍스트 서비스
│ │ └── pageindex_client.py # [신규] PageIndex 클라이언트
│ ├── routes/
│ │ ├── keywords.py # 키워드 API (확장)
│ │ ├── benchmark.py # [신규] 벤치마크 API
│ │ └── pageindex.py # [신규] PageIndex API
│ └── data/
│ ├── context/ # RAG 컨텍스트 데이터
│ └── indexes/ # PageIndex 트리 인덱스
├── tests/
│ ├── benchmark.py # 벤치마크 스크립트
│ └── test_queries.json # 테스트 검색어 (30+)
└── .env # 환경변수 (gitignore)
Docs/LLM-Search-PoC/
├── 00_개요.md # 본 문서
├── 01_환경설정.md # 설치 및 환경 구성 가이드
├── 02_OpenAI_클라이언트.md # OpenAI 클라이언트 구현 문서
├── 03_RAG_서비스.md # RAG 서비스 구현 문서
├── 04_PageIndex_통합.md # PageIndex 통합 문서
├── 05_API_엔드포인트.md # API 명세 문서
├── 06_벤치마크_테스트.md # 테스트 방법론
├── 07_비교테스트_결과.md # 최종 비교 분석 결과
└── 08_운영배포_가이드.md # 프로덕션 배포 가이드

┌─────────────────────────────────────────────────────────────────┐
│ 사용자 검색 쿼리 │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ 1. 키워드 확장 (LLM) │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Ollama │ │ OpenAI │ │ OpenAI+RAG │ │
│ │ (qwen3:8b) │ │ (gpt-4o) │ │ (컨텍스트) │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ 2. 콜렉션 검색 (Elasticsearch) │
│ - 원본 검색어 + 확장 키워드로 multi_match 검색 │
│ - 데이터 인덱스 (519건) / 사진 인덱스 │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ 3. 심층 분석 (PageIndex) - 선택적 │
│ - 인사이트 리포트, 모니터링 리포트 등 장문 콘텐츠 │
│ - 계층적 트리 인덱스 생성 → 추론 기반 검색 │
└─────────────────────────────────────────────────────────────────┘
Provider사용 시나리오특징
Ollama로컬 개발/테스트, 비용 민감 환경무료, 느림
OpenAI프로덕션 배포, 빠른 응답 필요유료, 빠름
OpenAI+RAG고품질 키워드 필요, 도메인 특화유료, 높은 품질
PageIndex장문 문서 심층 분석추론 기반, 높은 정확도

단계작업예상 소요
1환경 설정 및 문서 구조25분
2OpenAI 클라이언트 구현30분
3RAG 서비스 구현45분
4PageIndex 통합55분
5API 엔드포인트 확장35분
6벤치마크 테스트60분
7결과 문서 작성30분
총계약 4시간 40분


  • 코드 스타일 준수 (PEP 8, Black)
  • 타입 힌트 적용
  • 에러 핸들링 구현
  • 로깅 추가
  • 단위 테스트 작성
  • 벤치마크 테스트 완료
  • API 통합 테스트 완료
  • 모든 구현 문서 작성 완료
  • API 명세 문서 작성
  • 환경설정 가이드 작성
  • 운영배포 가이드 작성
  • 환경변수 설정 검증
  • 의존성 버전 고정
  • Docker 설정 (필요시)