PDF Hỏi-Đáp với Gaia và Qdrant
Gaia PDF RAG là ứng dụng Retrieval-Augmented Generation (RAG) cho phép người dùng đặt câu hỏi về tài liệu PDF bằng cách sử dụng nút Gaia cục bộ và cơ sở dữ liệu vectơ Qdrant. Nó kết hợp sức mạnh của LLM cục bộ với tìm kiếm vectơ hiệu quả để cung cấp câu trả lời chính xác, có nhận thức về ngữ cảnh.
Mã nguồn đầy đủ và hướng dẫn chi tiết để thiết lập và chạy ví dụ này có thể được tìm thấy trong kho lưu trữ Gaia Cookbook .
Những gì bạn có thể học và xây dựng:
Bằng cách khám phá và áp dụng ví dụ này, bạn có thể học cách:
- Xử lý và phân đoạn tài liệu PDF: Hiểu các bước liên quan đến việc chia nhỏ tệp PDF thành các phân đoạn dễ quản lý để có thể truy xuất hiệu quả.
- Triển khai Tìm kiếm ngữ nghĩa với Qdrant: Xem cách tận dụng cơ sở dữ liệu vectơ để tìm kiếm hiệu quả và theo ngữ cảnh các đoạn tài liệu của bạn.
- Tích hợp LLM cục bộ thông qua Gaia: Tìm hiểu cách kết nối với nút Gaia cục bộ của bạn để tận dụng sức mạnh của các mô hình ngôn ngữ được lưu trữ cục bộ cho mục đích trả lời câu hỏi.
- Tăng cường tính liên quan với Xếp hạng lại Cross-Encoder: Khám phá các kỹ thuật để tinh chỉnh kết quả tìm kiếm và cải thiện độ chính xác của thông tin thu được.
- Cung cấp trải nghiệm liền mạch cho người dùng với tính năng phản hồi trực tuyến: Triển khai phản hồi theo thời gian thực cho người dùng khi câu trả lời được tạo.
- Đảm bảo độ tin cậy với trích dẫn nguồn thông minh: Tìm hiểu cách cung cấp tài liệu tham khảo rõ ràng cho mỗi câu trả lời.
- Giảm thiểu ảo giác bằng cách lọc thông tin liên quan: Khám phá các chiến lược để lọc thông tin không liên quan và giảm khả năng phản hồi không chính xác.
- Xây dựng Bot Hỏi & Đáp PDF có thể tùy chỉnh: Ví dụ này cung cấp nền tảng vững chắc để bạn tùy chỉnh và triển khai hệ thống trả lời câu hỏi của riêng mình cho các tài liệu hoặc bộ sưu tập PDF cụ thể.
Các tính năng chính được chứng minh:
- 📑 Xử lý và phân đoạn tài liệu PDF: Xử lý hiệu quả việc trích xuất và phân đoạn nội dung từ các tệp PDF.
- 🔍 Tìm kiếm ngữ nghĩa bằng Qdrant: Tận dụng nhúng vector để truy xuất thông minh các phần tài liệu có liên quan.
- 🤖 Tích hợp LLM cục bộ thông qua nút Gaia: Kết nối với LLM đang chạy cục bộ của bạn để tạo câu trả lời dựa trên ngữ cảnh đã truy xuất.
- ↗️ Xếp hạng lại mã hóa chéo để cải thiện mức độ liên quan: Tối ưu hóa kết quả tìm kiếm bằng cách áp dụng mô hình xếp hạng tinh vi hơn.
- 💨 Truyền phát phản hồi để có UX tốt hơn: Mang lại trải nghiệm người dùng tương tác và phản hồi tốt hơn.
- 🎯 Trích dẫn nguồn thông minh: Chỉ rõ tài liệu nguồn được sử dụng để tạo ra mỗi câu trả lời.
- ⚡ Lọc mức độ liên quan để ngăn ngừa ảo giác: Tăng cường độ tin cậy của câu trả lời bằng cách lọc bỏ những thông tin ít liên quan.
Bắt đầu:
Điều kiện tiên quyết
Trước khi chạy Gaia RAG, hãy đảm bảo bạn có:
- Một nút Gaia cục bộ đang chạy (Kiểm tra liên kết này để tìm hiểu cách chạy LLM cục bộ của riêng bạn: https://docs.gaianet.ai/node-guide/quick-start )
- Máy chủ Qdrant đang chạy
- Python 3.8 trở lên
- Thư viện hệ thống cần thiết để xử lý PDF
Cài đặt
- Sao chép kho lưu trữ:
git clone https://github.com/harishkotra/gaia-pdf-rag.git
cd gaia-pdf-rag
- Tạo môi trường ảo:
python -m venv venv
source venv/bin/activate # Trên Windows sử dụng: venv\Scripts\activate
- Cài đặt các phụ thuộc:
pip cài đặt -r requirements.txt
Thiết lập các thành phần
1. Nút Gaia
Bắt đầu nút Gaia cục bộ của bạn:
gaianet khởi tạo
gaianet bắt đầu
2. Máy chủ Qdrant
Khởi động Qdrant bằng Docker:
docker chạy -d -p 6333:6333 -p 6334:6334 \
-v $(pwd)/qdrant_storage:/qdrant/storage \
qdrant/qdrant
Chạy ứng dụng
-
Đảm bảo cả nút Gaia và Qdrant đều đang chạy
-
Khởi động ứng dụng Streamlit:
streamlit chạy ứng dụng.py
- Mở trình duyệt của bạn tại
http://localhost:8501
Cách sử dụng
- Tải lên tài liệu PDF bằng thanh bên
- Nhấp vào "Xử lý tài liệu" để lập chỉ mục
- Đặt câu hỏi trong trường nhập liệu chính
- Xem câu trả lời và tài liệu nguồn có liên quan
Cấu hình
Bạn có thể sửa đổi các thông số sau trong ứng dụng.py
:
GAIA_NODE_URL
: URL của nút Gaia cục bộ của bạnMÁY CHỦ QDRANT
: Máy chủ lưu trữ QdrantCỔNG QDRANT
: Cổng máy chủ QdrantKÍCH THƯỚC VECTOR
: Kích thước nhúngTÊN_BỘ SƯU TẬP
: Tên cho bộ sưu tập cơ sở dữ liệu vector
Cấu trúc dự án
gaia-pdf-rag/
├── app.py # Ứng dụng Streamlit chính
├── requirements.txt # Phụ thuộc Python
├── .gitignore # Tệp Gitignore
├── TỆP README.md
Mã nguồn đầy đủ và hướng dẫn chi tiết để thiết lập và chạy ví dụ này có thể được tìm thấy trong kho lưu trữ Gaia Cookbook .