Skip to content

A full-ledged Retrieval Augmented Generation application! Powered by Google Gemini and Langchain

License

Notifications You must be signed in to change notification settings

trungnguyen21/ChatDocument

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ChatDocument

This is a simple Retrieval Augmented Generation app (RAG) with a full-fledged user interface!

📄 Features

  • Document Upload: Users can upload PDF files up to 3145728B (~3MB) containing information for analysis.
  • Google Gemini Pro: Leveraging Google's latest LLM with 2 million token contexts to craft responses and embeddings.
  • State-of-the-art UI: Can't go wrong with React + Bootstrap
  • HTTPS: Deployed on a VPS with a valid SSL certificate

🔧 Tech stack

  • Server: Langchain, FastAPI, Redis
  • Client: React, Bootstrap

📦 Installation

  1. Clone the repository
  2. Make sure you are on the branch main
  3. cd into it
  4. Add GOOGLE_API_KEY and REDIS_URL as variables in the back_end/.env
  1. docker compose up

🔄 System structure (feedback appreciated!)

image

📋 TODOs:

  • Create the app itself :D
    • PDF reader
    • RAG chain with context and chat history
    • REST api endpoints
    • React app client
    • Better PDF parser
    • Scale vectorstore
    • Agents with self-evaluating mechanism instead of current chain
    • Improve processing time + Add support for larger file
  • Deploy on Vercel File too large
  • Deploy on a VPS with nginx and pm2
  • Use WebSocket for faster conversation response rate
  • Site reliability engineering (eta soon)

👥 Contributors

  • Phong Pham
  • Trung Nguyen