Metadata-Version: 2.4
Name: pranavfirebase-rag
Version: 0.1.2
Summary: A Firebase Firestore RAG system that bridges natural language prompts with structured database queries. It converts user input into intelligent retrieval operations, allowing developers to interact with Firestore using plain English instead of writing queries manually.
Requires-Python: >=3.8
Description-Content-Type: text/markdown



# 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
- Simple local setup and execution

---

## Prerequisites

### 1. Install Ollama and Llama 3

```bash
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

```bash
pip install pranavfirebase-rag
```

---

## Initialization

After installing the package, run:

```bash
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:

```json
{
  "users": {
    "Age": "int",
    "Name": "string",
    "Department": "string",
    "Salary": "int"
  }
}
```

This schema is mandatory. The RAG engine uses it to understand fields and build queries.

---

### 2. firebase-key.json

Paste your Firebase service account credentials into this file.

Example structure:

```json
{
  "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:

```bash
python rag.py
```

You will enter an interactive terminal where you can query your database.

---

## Example Queries

You can ask questions like:

* 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

---

## Author

Pranav Verma

