File size: 1,863 Bytes
2d155f8
 
 
 
816825a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2d155f8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
---
title: RAG-Document-System
sdk: docker
---
# RAG Document System

A simple document interaction system using Retrieval-Augmented Generation (RAG) with Streamlit and Google's Gemini AI.

## Features

- Upload text documents (.txt files)
- Ask questions about your documents
- Get AI-powered answers with source citations
- Persistent vector database storage
- Clean web interface

## Setup

### With Docker (Recommended)

1. Clone the repository:
```bash
git clone https://github.com/tusiim3/RAG-Document-System.git
cd RAG-Document-System
```

2. Copy `.env.example` to `.env` and add your Google API key:
```bash
cp .env.example .env
```

3. Run with Docker Compose:
```bash
docker-compose up --build
```

4. Open http://localhost:8501 in your browser

### Without Docker

1. Clone the repository:
```bash
git clone https://github.com/tusiim3/RAG-Document-System.git
cd RAG-Document-System
```

2. Install dependencies:
```bash
pip install -r requirements.txt
```

3. Copy `.env.example` to `.env` and add your Google API key:
```bash
cp .env.example .env
```

4. Run the application:
```bash
streamlit run app.py
```

5. Open http://localhost:8501 in your browser

## Environment Variables

Required in `.env` file:
- `GOOGLE_API_KEY` - Your Google API key for Gemini
- `CHUNK_SIZE` - Text chunk size (default: 1000)
- `CHUNK_OVERLAP` - Chunk overlap (default: 200)
- `EMBEDDING_MODEL` - Embedding model name
- `LLM_TEMPERATURE` - AI response temperature (default: 0.3)

## Usage

1. Upload a text document using the file uploader
2. Wait for document processing to complete
3. Ask questions about the document in the chat interface
4. View source documents for each answer

## Technology Stack

- Streamlit for web interface
- LangChain for document processing
- ChromaDB for vector storage
- Google Gemini for AI responses
- Docker for containerization

##