Skip to content

giaplee/rag-gemini

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RAG=Gemini-Sentence-Transformer-Qdrant

This project is a demonstrate how to use a vector database and gemini as chatbot in RAG model

  • Please check the code in try it with notebook file named rag_encoding.ipynb at the same folder
  • The dataset file in dataset folder
  • Link tới github
  • Link tới Jupyter Notebook
  • Chạy trên Colab Open in Colab

RAG với Qdrant và Gemini


Author: Giap Le (Harrison)

Đây là một bài hướng dẫn thực hành cơ bản và nâng cao về việc áp dụng mô hình RAG để tăng độ chính xác của thông tin phàn hồi từ chatbot dựa vào nguồn dữ liệu được kiểm soát và giới hạn ở vector database (ở đây tôi sử dụng Qdrant). Sau đó sử dụng gemini như một chatbot để tương tác với dữ liệu và người dùng. Sử dụng kỹ thuật prompt engineering là few-shot prompting >> nghĩa là hãy đưa vào cho chatbot model nhiều hơn 1 ngữ cảnh (dữ liệu hoăc/và gợi ý) và yêu cầu chatbot chỉ sử dụng dữ liệu đã cung cấp làm nguồn thông tin để trả lời.

Ở đây chúng ta sử dụng sentence-transformers và pre-trained model: all-MiniML-L6-v2 từ HuggingFace

image


Dataset

  • Name: vn_landmark.csv
  • Desc: Dataset này chỉ là một dataset nhỏ để phục vụ cho bài thực hành này, nó bảo gồm hơn 100 các địa danh nổi tiếng của Việt Nam.
  • Columns: Name, Description, Province
  • Bạn có thẻ cập nhật (làm giàu thêm) dữ liệu cho 1 địa danh bằng cách thêm dữ liệu vào Description

Encoder (vectorize)

  • Ở đây chúng ta sử dụng sentence-transformers và pre-trained model: all-MiniML-L6-v2 từ HuggingFace
  • Bạn có thể tham khảo thêm thông tin tại đây https://huggingface.co/sentence-transformers/all-MiniLM-L6-v2
  • Ở đây tôi lựa chọn all-MiniML-L6-v2 vì nó là một model nhỏ gọn chỉ 80MB nhưng có performance rất tốt cho sentence embedding cũng như Semantic Search. Bạn hãy xem chi tiết về các model phổ biến và performance của nó ở bảng phía dưới (sau đó bạn có thể thử nghiệm với các model hình khác cho performance tốt hơn). image

Run Qdrant in Docker

Dứoi đây là phần hướng dẫn cài đặt và khởi chạy cũng như quản lí dataset/collection của bạn với Qdrant (Tôi tạm để English để bạn đọc cho chính xác >> và sẽ translate sang Vietnamese sau khi có bài hướng dẫn chi tiết hơn :) ) You need to manage all of your data using a vector engine. Qdrant lets you store, update or delete created vectors. Most importantly, it lets you search for the nearest vectors via a convenient API.

Dưới đây là 2 bước cơ bản để cài đặt và khởi chạy Qdrant

Download the Qdrant image from DockerHub. docker pull qdrant/qdrant

Start Qdrant inside of Docker. docker run -p 6333:6333 \ -v $(pwd)/qdrant_storage:/qdrant/storage \ qdrant/qdrant

You should see output like this

... [2021-02-05T00:08:51Z INFO actix_server::builder] Starting 12 workers [2021-02-05T00:08:51Z INFO actix_server::builder] Starting "actix-web-service-0.0.0.0:6333" service on 0.0.0.0:6333

Sau đó bạn truy cập vào địa chỉ localhost trên máy tính của bạn: http://localhost:6333/. Bạn sẽ được đưa tới giao diện của Qdrant. image Và bạn có thể xem chi tiết một collection như dao diện phía dưới image

Tất cả data được upload tới Qdrant được lưu trữ bên trong path này ./qdrant_storage (thư mục được vẫn được giữ lại ngay cả khi bạn tạo lại container)

Hãy tạo API key của bạn với Google AI Studio:

  • Truy cập vào đường link này https://aistudio.google.com/app/prompts/new_chat hoặc https://ai.google.dev/aistudio
  • Sau đó hãy login bằng acc gmail của bạn image
  • Sau đó chọn Get API key >> và chọn tiếp Create API Key nếu bạn chưa tạo 1 key nào trước đây hoặc đã xoá nó
  • Và bạn có thể thử nhanh bằng cUrl command và call trực tiếp tới API endpoint như hình dưới (theo tôi biết thì hiện tại việc sử dụng Gemini là FREE): image

Gemini Cookbook

About

This project is a demonstrate how to use a vector database and gemini as chatbot in RAG model

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages