주요 콘텐츠로 건너뛰기
버전: 2.0.0

가이아 및 큐드랜트와 함께하는 PDF 질문-답변

Gaia PDF RAG는 사용자가 로컬 Gaia 노드와 Qdrant 벡터 데이터베이스를 사용해 PDF 문서에 대해 질문할 수 있는 검색 증강 생성(RAG) 애플리케이션입니다. 로컬 LLM의 강력한 기능과 효율적인 벡터 검색을 결합하여 문맥을 인식하는 정확한 답변을 제공합니다.

PDF-걸레-이미지-1 PDF-걸레-이미지-2 PDF-걸레-이미지-3 PDF-걸레-이미지-4 PDF-걸레-이미지-5

정보

이 예제를 설정하고 실행하기 위한 전체 소스 코드와 자세한 지침은 가이아 쿡북 리포지토리에서 확인할 수 있습니다.

배우고 구축할 수 있는 것

이 예제를 살펴보고 적용하여 방법을 배울 수 있습니다:

  • PDF 문서 처리 및 청크 처리: 효과적인 검색을 위해 PDF 파일을 관리하기 쉬운 세그먼트로 분류하는 단계를 이해합니다.
  • Qdrant로 시맨틱 검색을 구현하세요: 벡터 데이터베이스를 활용하여 문서 덩어리를 효율적으로 컨텍스트에 맞게 검색하는 방법을 알아보세요.
  • 가이아를 통한 로컬 LLM 통합: 로컬 가이아 노드에 연결하여 로컬에서 호스팅되는 언어 모델의 강력한 기능을 질문 답변에 활용하는 방법을 알아보세요.
  • 교차 인코더 재랭킹으로 관련성 향상: 검색 결과를 세분화하고 검색된 정보의 정확도를 개선하는 기술을 알아보세요.
  • 스트리밍 응답으로 원활한 사용자 경험을 제공하세요: 답변이 생성되는 동안 사용자에게 실시간 피드백을 구현하세요.
  • 스마트한 출처 인용으로 신뢰성을 확보하세요: 각 답안에 대한 소스 문서를 명확하게 참조하는 방법을 알아보세요.
  • 관련성 필터링으로 환각 현상을 완화하세요: 관련성 없는 정보를 걸러내고 부정확한 응답의 가능성을 줄이는 전략을 살펴보세요.
  • 사용자 지정 가능한 PDF Q&A 봇 구축: 이 예제는 특정 PDF 문서 또는 컬렉션에 대한 자체 질문 답변 시스템을 맞춤 설정하고 배포할 수 있는 탄탄한 기반을 제공합니다.

주요 기능 시연:

  • 📑 PDF 문서 처리 및 청킹: PDF 파일에서 콘텐츠를 추출하고 분할하는 작업을 효율적으로 처리합니다.
  • 🔍 Qdrant를 사용한 시맨틱 검색: 벡터 임베딩을 활용하여 관련 문서 부분을 지능적으로 검색합니다.
  • 🤖 Gaia 노드를 통한 로컬 LLM 통합: 검색된 컨텍스트를 기반으로 답변을 생성하기 위해 로컬에서 실행 중인 LLM에 연결합니다.
  • 관련성 향상을 위한 크로스 인코더 재랭크: 보다 정교한 순위 모델을 적용하여 검색 결과를 최적화합니다.
  • 💨 더 나은 UX를 위한 스트리밍 응답: 보다 인터랙티브하고 반응성이 뛰어난 사용자 경험을 제공합니다.
  • 🎯 스마트한 소스 인용: 각 답안을 생성하는 데 사용된 소스 문서를 명확하게 표시합니다.
  • 환각을 방지하는 관련성 필터링: 관련성이 낮은 정보를 필터링하여 답변의 신뢰도를 높입니다.

시작하기:

전제 조건

Gaia RAG를 실행하기 전에 다음 사항을 확인하세요:

  1. 로컬 Gaia 노드가 실행 중입니다(로컬 LLM을 실행하는 방법을 알아보려면 이 링크를 확인하세요: https://docs.gaianet.ai/node-guide/quick-start).
  2. Qdrant 서버 실행
  3. Python 3.8+
  4. PDF 처리를 위한 필수 시스템 라이브러리

설치

  1. 리포지토리를 복제합니다:
git clone https://github.com/harishkotra/gaia-pdf-rag.git
cd 가이아-pdf-rag
  1. 가상 환경을 만듭니다:
python -m venv venv
소스 venv/bin/activate # Windows에서 사용: venv\Scripts\activate
  1. 종속성을 설치합니다:
pip 설치 -r requirements.txt

컴포넌트 설정

1. 가이아 노드

로컬 Gaia 노드를 시작하세요:

gaianet init
gaianet start

2. Qdrant 서버

Docker를 사용하여 Qdrant를 시작합니다:

docker run -d -p 6333:6333 -p 6334:6334 \.
-v $(pwd)/qdrant_storage:/qdrant/storage \.
qdrant/qdrant

애플리케이션 실행

  1. Gaia 노드와 Qdrant가 모두 실행 중인지 확인합니다.

  2. 스트림릿 앱을 시작합니다:

스트림라이트 실행 app.py
  1. 다음 주소에서 브라우저를 엽니다. http://localhost:8501

사용법

  1. 사이드바를 사용하여 PDF 문서 업로드
  2. "문서 처리"를 클릭하여 색인화하기
  3. 기본 입력 필드에 질문하기
  4. 답변 및 관련 소스 문서 보기

구성

다음 매개 변수를 수정할 수 있습니다. app.py:

  • GAIA_NODE_URL: 로컬 Gaia 노드의 URL
  • QDRANT_HOST: Qdrant 서버 호스트
  • QDRANT_PORT: Qdrant 서버 포트
  • 벡터 크기: 임베딩 치수 크기
  • 컬렉션_이름: 벡터 데이터베이스 컬렉션의 이름

프로젝트 구조

gaia-pdf-rag/
├── app.py # 메인 스트림라이트 애플리케이션
├── requirements.txt # 파이썬 종속성
├── .gitignore # Gitignore 파일
├── README.md
정보

이 예제를 설정하고 실행하기 위한 전체 소스 코드와 자세한 지침은 가이아 쿡북 리포지토리에서 확인할 수 있습니다.