This repository contains a state-of-the-art Retrieval-Augmented Generation (RAG) chatbot interface designed around the Fiserv aesthetic, fully backed by Google's latest Gemini AI models in Python.
- Pull the Repository.
- Install Python Dependencies:
Navigate into the repository and install the required AI / parsing libraries.
pip install -r backend/requirements.txt
- Configure your API Key:
- Create a file named
.envin the root of the project (you can duplicate.env.example). - Add your Gemini API Key:
GEMINI_API_KEY=AIzaSy... - (Alternatively, you can just click the Settings Icon in the UI when you run the app and paste the key directly there!).
- Create a file named
- Run the Server:
Start the FastAPI server.
python backend/main.py
- Open the interface:
Visit
http://localhost:8000in your web browser.
Nowhere. For maximum security and enterprise confidentiality, the Python backend (backend/main.py) never writes the uploaded files to disk.
- It uses
await file.read()to stream the file directly into your computer's temporary Random Access Memory (RAM). - It extracts the text (from PDF, Word, Excel, CSV) in real-time.
- As soon as the AI generates its response, the file is automatically purged and destroyed from memory. No database, no local caching.
If you want to host this permanently (for example, internally in your office or on a cloud provider like AWS/Render/Heroku), you should not use uvicorn.run(...) directly.
Here is the standard production workflow:
- Host Provider: Use Render, Google Cloud Run, or an internal enterprise server.
- Gunicorn Server: In production, run the app using
gunicornwithuvicornworkers to handle multiple concurrent chats. Command:gunicorn backend.main:app -k uvicorn.workers.UvicornWorker -w 4 - Set Environment Variables securely: In your production provider's dashboard, paste your
GEMINI_API_KEY. DO NOT commit the.envfile to Github! (It is currently hidden in.gitignore).
The Python backend currently routes all prompts to Google's highly efficient gemini-flash-latest model.
If you want to use a massive context window or a more analytical model (like gemini-pro-latest or gemini-2.5-pro), simply open backend/main.py and change line 75:
# Change this:
model = genai.GenerativeModel('gemini-flash-latest')
# To this:
model = genai.GenerativeModel('gemini-pro-latest')