File size: 1,567 Bytes
651c93d
 
 
 
 
 
 
 
 
 
 
9582693
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5b0ed5a
9582693
 
 
 
 
 
 
 
 
 
 
 
 
 
5b0ed5a
 
9582693
 
 
 
 
 
 
 
 
 
 
 
 
5b0ed5a
9582693
5b0ed5a
9582693
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
---
title: AI Chatbot
emoji: "🤖"
colorFrom: indigo
colorTo: blue
sdk: streamlit
sdk_version: "1.35.0"
app_file: app.py
pinned: false
---

# AI Chatbot with RAG and HuggingFace Models

A professional, modular chatbot app using Streamlit, supporting PDF/CSV/XLSX upload, Retrieval-Augmented Generation (RAG), and custom HuggingFace models (e.g., amiguel/GM_Qwen1.8B_Finetune).

---

## Features

- Modern Streamlit chat UI with Tw Cen MT font and company logo
- Upload PDF, CSV, XLSX files for context
- Uses RAG pipeline for document QA
- Customizable HuggingFace text generation model
- Modular, production-ready codebase

---

## Quickstart

### 1. **Clone and Install**

```bash
git clone <your-repo-url>
cd chatbot_app
pip install -r requirements.txt
```

### 2. **Run Locally**

```bash
streamlit run app.py
```

### 3. **Docker Deploy**

```bash
docker build -t chatbot-app .
docker run -p 8501:8501 chatbot-app
```

---

## Deployment

### **A. AWS (GPU)**
1. Launch a GPU EC2 instance (e.g., g4dn.xlarge).
2. Install Docker and NVIDIA drivers.
3. Build and run the Docker image as above.
4. Open port 8501 for web access.

### **B. HuggingFace Spaces**
1. Create a new Space (Streamlit SDK).
2. Upload all files (including `app.py`, `requirements.txt`, `src/`, and `assets/`).
3. The app will auto-deploy.

---

## Customization

- Change the logo in `assets/logo.png`.
- Adjust font or colors in `src/utils.py`.
- Swap out the default HuggingFace model in the sidebar.

---

## License

MIT

---

## Contact

[Your Company Name] | [[email protected]]