가이아 및 큐드랜트와 함께하는 PDF 질문-답변
Gaia PDF RAG는 사용자가 로컬 Gaia 노드와 Qdrant 벡터 데이터베이스를 사용해 PDF 문서에 대해 질문할 수 있는 검색 증강 생성(RAG) 애플리케이션입니다. 로컬 LLM의 강력한 기능과 효율적인 벡터 검색을 결합하여 문맥을 인식하는 정확한 답변을 제공합니다.
정보
이 예제를 설정하고 실행하기 위한 전체 소스 코드와 자세한 지침은 가이아 쿡북 리포지토리에서 확인할 수 있습니다.
배우고 구축할 수 있는 것
이 예제를 살펴보고 적용하여 방법을 배울 수 있습니다:
- PDF 문서 처리 및 청크 처리: 효과적인 검색을 위해 PDF 파일을 관리하기 쉬운 세그먼트로 분류하는 단계를 이해합니다.
- Qdrant로 시맨틱 검색을 구현하세요: 벡터 데이터베이스를 활용하여 문서 덩어리를 효율적으로 컨텍스트에 맞게 검색하는 방법을 알아보세요.
- 가이아를 통한 로컬 LLM 통합: 로컬 가이아 노드에 연결하여 로컬에서 호스팅되는 언어 모델의 강력한 기능을 질문 답변에 활용하는 방법을 알아보세요.
- 교차 인코더 재랭킹으로 관련성 향상: 검색 결과를 세분화하고 검색된 정보의 정확도를 개선하는 기술을 알아보세요.
- 스트리밍 응답으로 원활한 사용자 경험을 제공하세요: 답변이 생성되는 동안 사용자에게 실시간 피드백을 구현하세요.
- 스마트한 출처 인용으로 신뢰성을 확보하세요: 각 답안에 대한 소스 문서를 명확하게 참조하는 방법을 알아보세요.
- 관련성 필터링으로 환각 현상을 완화하세요: 관련성 없는 정보를 걸러내고 부정확한 응답의 가능성을 줄이는 전략을 살펴보세요.
- 사용자 지정 가능한 PDF Q&A 봇 구축: 이 예제는 특정 PDF 문서 또는 컬렉션에 대한 자체 질문 답변 시스템을 맞춤 설정하고 배포할 수 있는 탄탄한 기반을 제공합니다.
주요 기능 시연:
- 📑 PDF 문서 처리 및 청킹: PDF 파일에서 콘텐츠를 추출하고 분할하는 작업을 효율적으로 처리합니다.
- 🔍 Qdrant를 사용한 시맨틱 검색: 벡터 임베딩을 활용하여 관련 문서 부분을 지능적으로 검색합니다.
- 🤖 Gaia 노드를 통한 로컬 LLM 통합: 검색된 컨텍스트를 기반으로 답변을 생성하기 위해 로컬에서 실행 중인 LLM에 연결합니다.
- ️ 관련성 향상을 위한 크로스 인코더 재랭크: 보다 정교한 순위 모델을 적용하여 검색 결과를 최적화합니다.
- 💨 더 나은 UX를 위한 스트리밍 응답: 보다 인터랙티브하고 반응성이 뛰어난 사용자 경험을 제공합니다.
- 🎯 스마트한 소스 인용: 각 답안을 생성하는 데 사용된 소스 문서를 명확하게 표시합니다.
- 환각을 방지하는 관련성 필터링: 관련성이 낮은 정보를 필터링하여 답변의 신뢰도를 높입니다.
시작하기:
전제 조건
Gaia RAG를 실행하기 전에 다음 사항을 확인하세요:
- 로컬 Gaia 노드가 실행 중입니다(로컬 LLM을 실행하는 방법을 알아보려면 이 링크를 확인하세요: https://docs.gaianet.ai/node-guide/quick-start).
- Qdrant 서버 실행
- Python 3.8+
- PDF 처리를 위한 필수 시스템 라이브러리
설치
- 리포지토리를 복제합니다:
git clone https://github.com/harishkotra/gaia-pdf-rag.git
cd 가이아-pdf-rag
- 가상 환경을 만듭니다:
python -m venv venv
소스 venv/bin/activate # Windows에서 사용: venv\Scripts\activate
- 종속성을 설치합니다:
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
애플리케이션 실행
-
Gaia 노드와 Qdrant가 모두 실행 중인지 확인합니다.
-
스트림릿 앱을 시작합니다:
스트림라이트 실행 app.py
- 다음 주소에서 브라우저를 엽니다.
http://localhost:8501
사용법
- 사이드바를 사용하여 PDF 문서 업로드
- "문서 처리"를 클릭하여 색인화하기
- 기본 입력 필드에 질문하기
- 답변 및 관련 소스 문서 보기
구성
다음 매개 변수를 수정할 수 있습니다. app.py
:
GAIA_NODE_URL
: 로컬 Gaia 노드의 URLQDRANT_HOST
: Qdrant 서버 호스트QDRANT_PORT
: Qdrant 서버 포트벡터 크기
: 임베딩 치수 크기컬렉션_이름
: 벡터 데이터베이스 컬렉션의 이름
프로젝트 구조
gaia-pdf-rag/
├── app.py # 메인 스트림라이트 애플리케이션
├── requirements.txt # 파이썬 종속성
├── .gitignore # Gitignore 파일
├── README.md
정보
이 예제를 설정하고 실행하기 위한 전체 소스 코드와 자세한 지침은 가이아 쿡북 리포지토리에서 확인할 수 있습니다.