Author
Pranav Verma
Firebase RAG CLI (Firestore Natural Language Query Engine)
A Retrieval-Augmented Generation (RAG) system that allows you to query Firebase Firestore using natural language prompts, powered by Llama 3 via Ollama.
This tool converts plain English questions into structured Firestore queries and returns results directly from your database.
Features
- Natural language querying for Firestore
- Schema-aware query generation (required)
- Powered by Llama 3 via Ollama
- CLI-based initialization
- Firebase Admin SDK integration
- Fully local execution (no cloud dependency for query processing)
- Private key remains local to your machine during execution
- Simple setup and execution
Security & Privacy
This tool is designed with a local-first architecture:
- All query processing happens locally on your machine
- Llama 3 runs locally via Ollama
- Firebase service account key (
firebase-key.json) is used only locally by Firebase Admin SDK - The private key is never sent to any external server by this library
- Users provide their own credentials, and all database access happens from their local environment
- No user queries, schema data, or Firestore results are transmitted to third-party services by this tool
Note: The Firebase private key is used locally to authenticate requests with Firebase Admin SDK. It is not exposed to the internet by this library.
Prerequisites
1. Install Ollama and Llama 3
pip install ollama
ollama pull llama3
Make sure Ollama is installed and running on your system.
2. Firebase Setup
You must have a Firebase project and a service account key file.
Download your firebase-key.json from Firebase Console.
Installation
pip install pranavfirebase-rag
Initialization
After installing the package, run:
my-library init
This command will generate the following files in your project directory:
schema.json
firebase-key.json
rag.py
Configuration
1. schema.json (Required)
You must define your Firestore schema in this file.
Example:
{
"users": {
"Age": "int",
"Name": "string",
"Department": "string",
"Salary": "int"
}
}
This schema is mandatory and used for query parsing and structured retrieval.
2. firebase-key.json
Paste your Firebase service account credentials into this file.
Important:
- The private key is stored locally on your machine
- It is only used by Firebase Admin SDK for authentication
- This library does not transmit it anywhere
Example structure:
{
"type": "service_account",
"project_id": "your-project-id",
"private_key": "-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----\n",
"client_email": "your-client-email"
}
3. rag.py
This file is the main chatbot entry point.
Important:
- Replace the default collection name (e.g.
employees) with your Firestore collection name - Do not modify internal logic unless required
Usage
Run the chatbot:
python rag.py
You will enter an interactive terminal where you can query your database.
Example Queries
- Show all users above 25
- List employees in AI department
- Get users with salary greater than 100000
- Find all names in the users collection
- Show users younger than 30
How It Works
User Input → Llama 3 (Ollama) → Schema Parser → Query Builder → Firestore (Firebase Admin SDK) → Response Output
Architecture
User Input → Llama 3 (Ollama) → Schema Parser → Query Builder → Firestore → Response Output
Notes
- Schema definition is required (not optional)
- Firebase credentials must be valid
- Ollama + Llama 3 must be installed and running before execution
- Collection name must be correctly set in
rag.py
Requirements
- Python 3.8+
- Firebase Admin SDK
- Ollama
- Llama 3 model
Release files for pranavfirebase-rag 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pranavfirebase_rag-0.1.4.tar.gz | 6.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pranavfirebase_rag-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.5 kB