Key9x98 / Chat-with-PDF

0 stars 0 forks source link

Multi-PDFs to vector database #2

Open vuminhoang opened 1 month ago

vuminhoang commented 1 month ago

*Quick overview: Dự án của nhóm hướng đến việc tạo một PDF chatbot có thể nhận được nhiều PDF ở đầu vào và người dùng hỏi đáp tự do các nội dung trong các PDF đó.

Vấn đề gặp phải: Khi truyền đầu vào là nhiều PDF, nên tạo vector database như thế nào:

  1. Cách 1: Tạo vector database tổng, tức là vẫn chunking như bình thường sau đó tạo một vector datase chưa các vector embedding của tất cả các chunk của cả 2 PDF.

    • Ưu điểm: câu trả lời có thể được tổng hợp từ nhiều PDF (nếu người dùng cần search theo kiểu tổng hợp tt).
    • Nhược điểm: Bị lẫn câu trả lời, vì vẫn là tìm vector tương đồng theo similarity, có thể có một số phần gần giống nhau nằm ở các PDF đều được tìm thấy, làm context bị trộn lên dẫn đến answer sai.
  2. Cách 2: Tạo vector database riêng lẻ cho từng PDF

    • Ưu điểm: search nhanh hơn, rõ ràng, chính xác hơn nếu người dùng chỉ cần thông tin từ 1 PDF cho 1 câu hỏi.
    • Nhược: cần phải tìm được phương pháp phân loại câu truy vấn đầu vào xem nó thuộc PDF nào. Cái này em đang nghĩ đến Semantic Router của anh Bá Ngọc, hoặc sử dụng một kỹ thuật gọi là Few-Shot Prompting.
vuminhoang commented 1 month ago

Comment của Chu Văn An - dev tại VNPAY trên gr cộng đồng: bạn tạo 1 cái router dùng LLM với prompt để phân loại query tương ứng với database, nếu dùng các LLM trả phí thì nên sử dụng function calling chứ ko nên prompt thường. Ví dụ với LlamaIndex, họ dùng 1 quy trình đầy đủ với phân loại query và generate câu trả lời với database tương ứng https://docs.llamaindex.ai/.../agent/multi_document_agents/