Chuyển đến nội dung chính
Phiên bản: 2.0.0

DynamicRAG

DynamicRAG là một ứng dụng web dựa trên React triển khai hệ thống Retrieval-Augmented Generation (RAG) động. Nó cho phép người dùng nhập văn bản, xử lý thành nhúng và thực hiện các tác vụ trả lời câu hỏi bằng cách kết hợp tìm kiếm vectơ và Mô hình ngôn ngữ lớn.

Thông tin

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 chụp màn hình

Nhập văn bản dựa trên Dynamic RAG

chụp màn hình-localhost-3000-2024-12-24-00_55_11

Github Repo đến Dynamic RAG

hình ảnh

Đặc trưng

  • Xử lý và phân đoạn văn bản theo thời gian thực
  • Tạo cơ sở dữ liệu vector động bằng Qdrant
  • Xử lý hàng loạt các đầu vào văn bản lớn
  • Tích hợp với nút Gaia cục bộ
  • Phân tích kho lưu trữ GitHub bằng GitIngest
  • Theo dõi tiến độ và xử lý lỗi
  • Giao diện người dùng sạch sẽ, phản hồi nhanh bằng cách sử dụng Tailwind CSS và các thành phần shadcn/ui

Điều kiện tiên quyết

  • Node.js (v16 trở lên)
  • Python (để cài đặt GitIngest)
  • Một phiên bản Qdrant đang chạy (cục bộ hoặc từ xa)
  • Máy chủ LLM cục bộ thông qua Gaia chạy trên cổng 8080 (Hướng dẫn: https://docs.gaianet.ai/node-guide/quick-start )
  • Các nhúng nomic mô hình nhúng (tự động tải xuống trong Gaianet thư mục khi Gaia CLI được cài đặt)
  • Các lạc đà không bướu 3.2 mô hình ngôn ngữ (tự động tải xuống trong Gaianet thư mục khi Gaia CLI được cài đặt. Bạn có thể thay thế mô hình tùy thuộc vào trường hợp sử dụng của bạn)

Cài đặt

  1. Sao chép kho lưu trữ:
git clone https://github.com/harishkotra/dynamic-rag-gaia
cd dynamic-rag
  1. Cài đặt các phụ thuộc:
Cài đặt npm
  1. Cài đặt GitIngest:
pip cài đặt gitingest
  1. Đảm bảo máy chủ Qdrant của bạn đang chạy và có thể truy cập tại http://localhost:6333
  2. Đảm bảo nút Gaia của bạn đang chạy và có thể truy cập tại http://localhost:8080 (Hướng dẫn: https://docs.gaianet.ai/node-guide/quick-start )
  3. Khởi động máy chủ phát triển:
npm chạy dev

Cách sử dụng

  1. Chọn chế độ nhập liệu:
    • Nhập văn bản: Dán văn bản cơ sở kiến thức của bạn vào vùng văn bản đầu vào
    • Kho lưu trữ GitHub: Nhập URL kho lưu trữ GitHub để phân tích nội dung của nó
  2. Đặt câu hỏi: Nhập câu hỏi của bạn vào trường câu hỏi.
  3. Tiến trình: Nhấp vào "Gửi" để xử lý truy vấn của bạn. Hệ thống sẽ:
    • Đối với nhập văn bản: Chia văn bản đầu vào thành các phần có thể quản lý được
    • Đối với kho lưu trữ GitHub: Lấy và xử lý nội dung kho lưu trữ bằng GitIngest
    • Tạo nhúng cho từng khối
    • Lưu trữ nhúng trong bộ sưu tập Qdrant tạm thời
    • Tìm ngữ cảnh có liên quan bằng cách sử dụng tìm kiếm tương tự vector
    • Tạo câu trả lời bằng cách sử dụng Gaia Node cục bộ
  4. Xem kết quả: Hệ thống sẽ hiển thị phản hồi được tạo dựa trên bối cảnh có liên quan tìm thấy.

Chi tiết kỹ thuật

Xử lý văn bản

  • Kích thước khối tối đa: 2000 ký tự
  • Kích thước xử lý hàng loạt: 3 khối cùng một lúc
  • Các đoạn được tạo ra dựa trên ranh giới văn bản tự nhiên (đoạn văn và câu)

Cơ sở dữ liệu Vector

  • Sử dụng Qdrant để lưu trữ vector và tìm kiếm sự tương đồng
  • Tạo bộ sưu tập tạm thời cho mỗi phiên truy vấn
  • Tự động dọn dẹp bộ sưu tập sau khi sử dụng
  • Sử dụng các vector 768 chiều để nhúng

Tích hợp API

  • Tương thích với các điểm cuối API theo phong cách OpenAI
  • Hỗ trợ cả nhúng và điểm cuối hoàn thành trò chuyện
  • Sử dụng nhúng nomic mô hình cho nhúng
  • Sử dụng lạc đà không bướu mô hình tạo văn bản
  • Tích hợp với GitIngest để phân tích kho lưu trữ
  • Tuyến API NextJS để tích hợp công cụ dòng lệnh

Thành phần

  • DynamicRAG.js: Thành phần chính thực hiện hệ thống RAG
  • ứng dụng/api/gitingest/route.js: Tuyến API để xử lý kho lưu trữ GitHub
  • Xử lý và xác thực đầu vào
  • Theo dõi tiến trình và hiển thị lỗi
  • Quản lý cơ sở dữ liệu vector
  • Tích hợp LLM

Xử lý lỗi

Hệ thống bao gồm xử lý lỗi toàn diện cho:

  • Lỗi xử lý văn bản
  • Lỗi tìm nạp và phân tích kho lưu trữ GitHub
  • Nhúng lỗi tạo
  • Hoạt động cơ sở dữ liệu vector
  • Lỗi truy vấn LLM
  • Các vấn đề về mạng

Phụ thuộc

  • Phản ứng
  • CSS của Tailwind
  • thành phần shadcn/ui
  • Lodash cho các hàm tiện ích
  • Nhiều thành phần UI (@/components/ui/*)
Thông tin

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 .