Spaces:
Runtime error
Runtime error
Initial commit: Autonomous AI Chatbot - 10x More Autonomous
Browse files- .gitignore +44 -0
- .huggingface/spaces_metadata +12 -0
- Dockerfile +37 -0
- LICENSE +25 -0
- README.md +421 -5
- chatbot_app.py +401 -0
- requirements.txt +9 -0
.gitignore
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Byte-compiled / optimized / DLL files
|
| 2 |
+
__pycache__/
|
| 3 |
+
*.py[cod]
|
| 4 |
+
*$py.class
|
| 5 |
+
|
| 6 |
+
# Distribution / packaging
|
| 7 |
+
.Python
|
| 8 |
+
build/
|
| 9 |
+
develop-eggs/
|
| 10 |
+
dist/
|
| 11 |
+
downloads/
|
| 12 |
+
eggs/
|
| 13 |
+
.eggs/
|
| 14 |
+
lib/
|
| 15 |
+
lib64/
|
| 16 |
+
parts/
|
| 17 |
+
sdist/
|
| 18 |
+
var/
|
| 19 |
+
wheels/
|
| 20 |
+
*.egg-info/
|
| 21 |
+
.installed.cfg
|
| 22 |
+
*.egg
|
| 23 |
+
|
| 24 |
+
# Environment
|
| 25 |
+
.env
|
| 26 |
+
.venv
|
| 27 |
+
env/
|
| 28 |
+
venv/
|
| 29 |
+
ENV/
|
| 30 |
+
|
| 31 |
+
# IDE
|
| 32 |
+
.vscode/
|
| 33 |
+
.idea/
|
| 34 |
+
*.swp
|
| 35 |
+
*.swo
|
| 36 |
+
|
| 37 |
+
# OS
|
| 38 |
+
.DS_Store
|
| 39 |
+
|
| 40 |
+
# Gradio
|
| 41 |
+
gradio_cached_examples/
|
| 42 |
+
|
| 43 |
+
# Deployment scripts
|
| 44 |
+
deploy_chatbot.py
|
.huggingface/spaces_metadata
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
title: Autonomous AI Chatbot
|
| 3 |
+
emoji: 🤖
|
| 4 |
+
colorFrom: purple
|
| 5 |
+
colorTo: blue
|
| 6 |
+
sdk: docker
|
| 7 |
+
pinned: false
|
| 8 |
+
license: mit
|
| 9 |
+
hardware: cpu-basic
|
| 10 |
+
---
|
| 11 |
+
|
| 12 |
+
A fully autonomous AI chatbot with code execution capabilities.
|
Dockerfile
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
FROM python:3.11-slim
|
| 2 |
+
|
| 3 |
+
# Set working directory
|
| 4 |
+
WORKDIR /data
|
| 5 |
+
|
| 6 |
+
# Install system dependencies
|
| 7 |
+
RUN apt-get update && apt-get install -y \
|
| 8 |
+
gcc \
|
| 9 |
+
g++ \
|
| 10 |
+
curl \
|
| 11 |
+
&& rm -rf /var/lib/apt/lists/*
|
| 12 |
+
|
| 13 |
+
# Copy requirements first for better caching
|
| 14 |
+
COPY requirements.txt .
|
| 15 |
+
|
| 16 |
+
# Install Python dependencies
|
| 17 |
+
RUN pip install --no-cache-dir -r requirements.txt
|
| 18 |
+
|
| 19 |
+
# Install additional useful packages
|
| 20 |
+
RUN pip install --no-cache-dir \
|
| 21 |
+
transformers \
|
| 22 |
+
accelerate \
|
| 23 |
+
requests
|
| 24 |
+
|
| 25 |
+
# Copy application code
|
| 26 |
+
COPY chatbot_app.py .
|
| 27 |
+
|
| 28 |
+
# Expose port
|
| 29 |
+
EXPOSE 7861
|
| 30 |
+
|
| 31 |
+
# Set environment variables
|
| 32 |
+
ENV GRADIO_SERVER_NAME=0.0.0.0
|
| 33 |
+
ENV GRADIO_SERVER_PORT=7861
|
| 34 |
+
ENV PYTHONUNBUFFERED=1
|
| 35 |
+
|
| 36 |
+
# Launch application
|
| 37 |
+
CMD ["python", "chatbot_app.py"]
|
LICENSE
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
MIT License
|
| 2 |
+
|
| 3 |
+
Copyright (c) 2024 Autonomous AI Chatbot
|
| 4 |
+
|
| 5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
| 6 |
+
of this software and associated documentation files (the "Software"), to deal
|
| 7 |
+
in the Software without restriction, including without limitation the rights
|
| 8 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
| 9 |
+
copies of the Software, and to permit persons to whom the Software is
|
| 10 |
+
furnished to do so, subject to the following conditions:
|
| 11 |
+
|
| 12 |
+
The above copyright notice and this permission notice shall be included in all
|
| 13 |
+
copies or substantial portions of the Software.
|
| 14 |
+
|
| 15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
| 16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
| 17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
| 18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
| 19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
| 20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
| 21 |
+
SOFTWARE.
|
| 22 |
+
|
| 23 |
+
---
|
| 24 |
+
|
| 25 |
+
"Powerful for All. Autonomy for All."
|
README.md
CHANGED
|
@@ -1,10 +1,426 @@
|
|
| 1 |
---
|
| 2 |
-
title: Autonomous
|
| 3 |
-
emoji:
|
| 4 |
-
colorFrom:
|
| 5 |
-
colorTo:
|
| 6 |
sdk: docker
|
|
|
|
|
|
|
| 7 |
pinned: false
|
|
|
|
|
|
|
| 8 |
---
|
| 9 |
|
| 10 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
---
|
| 2 |
+
title: Autonomous AI Chatbot
|
| 3 |
+
emoji: 🤖
|
| 4 |
+
colorFrom: purple
|
| 5 |
+
colorTo: blue
|
| 6 |
sdk: docker
|
| 7 |
+
sdk_version: "24.1.2"
|
| 8 |
+
app_file: chatbot_app.py
|
| 9 |
pinned: false
|
| 10 |
+
license: mit
|
| 11 |
+
hardware: cpu-basic
|
| 12 |
---
|
| 13 |
|
| 14 |
+
# 🤖 Autonomous AI Chatbot
|
| 15 |
+
|
| 16 |
+
## 10x More Autonomous • Infinitely More Possibilities
|
| 17 |
+
|
| 18 |
+
An AI-powered chatbot with **fully autonomous code execution capabilities** that integrates with our code interpreter sandbox. Experience the future of AI-assisted programming!
|
| 19 |
+
|
| 20 |
+
---
|
| 21 |
+
|
| 22 |
+
## ✨ Revolutionary Features
|
| 23 |
+
|
| 24 |
+
### 🧠 **10 Levels of Autonomy**
|
| 25 |
+
- **Level 1-3:** Basic conversational AI
|
| 26 |
+
- **Level 4-6:** Expert coding assistant
|
| 27 |
+
- **Level 7-8:** Autonomous problem solver
|
| 28 |
+
- **Level 9-10:** **Fully autonomous AI programmer** 🤖
|
| 29 |
+
|
| 30 |
+
### 💻 **Autonomous Code Execution**
|
| 31 |
+
- **Automatic Code Generation** from natural language
|
| 32 |
+
- **Real-time Code Execution** in sandbox environment
|
| 33 |
+
- **Smart Error Detection & Debugging**
|
| 34 |
+
- **Performance Optimization** suggestions
|
| 35 |
+
- **Complete Testing & Validation**
|
| 36 |
+
|
| 37 |
+
### 🔗 **Dual Integration**
|
| 38 |
+
- **Code Interpreter Sandbox** - Execute any Python code
|
| 39 |
+
- **HuggingFace Models** - Access to free LLMs
|
| 40 |
+
- **Router API** - Optimal model routing for best results
|
| 41 |
+
|
| 42 |
+
### 🎛️ **Customizable Intelligence**
|
| 43 |
+
- **6 Free Models** to choose from
|
| 44 |
+
- **Adjustable Temperature** (creativity control)
|
| 45 |
+
- **Token Limit** configuration
|
| 46 |
+
- **Real-time Autonomy** adjustment
|
| 47 |
+
|
| 48 |
+
---
|
| 49 |
+
|
| 50 |
+
## 🚀 How It Works
|
| 51 |
+
|
| 52 |
+
### **1. Chat Naturally**
|
| 53 |
+
```
|
| 54 |
+
User: "Create a machine learning model to predict house prices"
|
| 55 |
+
```
|
| 56 |
+
|
| 57 |
+
### **2. AI Analyzes & Plans**
|
| 58 |
+
- Understands requirements
|
| 59 |
+
- Designs solution architecture
|
| 60 |
+
- Plans implementation steps
|
| 61 |
+
|
| 62 |
+
### **3. Autonomous Execution** (High Autonomy Mode)
|
| 63 |
+
- Generates complete code
|
| 64 |
+
- Executes in real-time
|
| 65 |
+
- Tests functionality
|
| 66 |
+
- Provides results
|
| 67 |
+
- Suggests improvements
|
| 68 |
+
|
| 69 |
+
### **4. Complete Solution**
|
| 70 |
+
- Working code
|
| 71 |
+
- Execution results
|
| 72 |
+
- Performance metrics
|
| 73 |
+
- Documentation
|
| 74 |
+
- Enhancement suggestions
|
| 75 |
+
|
| 76 |
+
---
|
| 77 |
+
|
| 78 |
+
## 🎯 Example Interactions
|
| 79 |
+
|
| 80 |
+
### **Level 10 (Fully Autonomous) - Data Analysis**
|
| 81 |
+
|
| 82 |
+
**You Say:** *"Analyze this dataset and create visualizations"*
|
| 83 |
+
|
| 84 |
+
**AI Responds:**
|
| 85 |
+
1. ✅ Generates data analysis code
|
| 86 |
+
2. ✅ Executes the code
|
| 87 |
+
3. ✅ Shows execution results
|
| 88 |
+
4. ✅ Creates visualizations
|
| 89 |
+
5. ✅ Provides statistical insights
|
| 90 |
+
6. ✅ Suggests improvements
|
| 91 |
+
|
| 92 |
+
**Output:**
|
| 93 |
+
```python
|
| 94 |
+
# Complete data analysis code
|
| 95 |
+
# Execution results
|
| 96 |
+
# Visualization plots
|
| 97 |
+
# Statistical summary
|
| 98 |
+
# Recommendations
|
| 99 |
+
```
|
| 100 |
+
|
| 101 |
+
### **Level 10 (Fully Autonomous) - Machine Learning**
|
| 102 |
+
|
| 103 |
+
**You Say:** *"Build a sentiment analysis model"*
|
| 104 |
+
|
| 105 |
+
**AI Responds:**
|
| 106 |
+
1. ✅ Creates ML pipeline
|
| 107 |
+
2. ✅ Generates synthetic data
|
| 108 |
+
3. ✅ Trains model
|
| 109 |
+
4. ✅ Evaluates performance
|
| 110 |
+
5. ✅ Visualizes results
|
| 111 |
+
6. ✅ Provides accuracy metrics
|
| 112 |
+
|
| 113 |
+
---
|
| 114 |
+
|
| 115 |
+
## 🎮 Quick Start Guide
|
| 116 |
+
|
| 117 |
+
### **Step 1: Choose Autonomy Level**
|
| 118 |
+
- **1-3:** For basic Q&A
|
| 119 |
+
- **4-6:** For coding assistance
|
| 120 |
+
- **7-8:** For autonomous problem solving
|
| 121 |
+
- **9-10:** **For complete automation** 🚀
|
| 122 |
+
|
| 123 |
+
### **Step 2: Select Model**
|
| 124 |
+
- **Llama-3.2-1B:** Fast, efficient (Recommended)
|
| 125 |
+
- **Llama-3.2-3B:** More capable
|
| 126 |
+
- **Mistral-7B:** Balanced performance
|
| 127 |
+
- **DialoGPT:** Conversation focused
|
| 128 |
+
|
| 129 |
+
### **Step 3: Start Chatting**
|
| 130 |
+
Type your request naturally:
|
| 131 |
+
- "Create a web scraper for data extraction"
|
| 132 |
+
- "Build a recommendation system"
|
| 133 |
+
- "Generate interactive charts"
|
| 134 |
+
- "Develop a chatbot"
|
| 135 |
+
|
| 136 |
+
### **Step 4: Watch AI Work**
|
| 137 |
+
The AI will:
|
| 138 |
+
1. Understand your request
|
| 139 |
+
2. Generate appropriate code
|
| 140 |
+
3. Execute it automatically
|
| 141 |
+
4. Display results
|
| 142 |
+
5. Offer enhancements
|
| 143 |
+
|
| 144 |
+
---
|
| 145 |
+
|
| 146 |
+
## 🎨 Interface Overview
|
| 147 |
+
|
| 148 |
+
### 💬 **Chat Window**
|
| 149 |
+
- Real-time conversations
|
| 150 |
+
- Syntax-highlighted code blocks
|
| 151 |
+
- Execution results
|
| 152 |
+
- Rich formatting
|
| 153 |
+
|
| 154 |
+
### ⚙️ **Control Panel**
|
| 155 |
+
- Model selection dropdown
|
| 156 |
+
- Autonomy level slider (1-10)
|
| 157 |
+
- Temperature control
|
| 158 |
+
- Token limit settings
|
| 159 |
+
|
| 160 |
+
### 🔥 **Quick Action Buttons**
|
| 161 |
+
- 📊 **Data Analysis** - Generate analysis scripts
|
| 162 |
+
- 🤖 **ML Model** - Build ML pipelines
|
| 163 |
+
- 📈 **Visualization** - Create interactive charts
|
| 164 |
+
- 🌐 **Web Scraper** - Develop scrapers
|
| 165 |
+
|
| 166 |
+
---
|
| 167 |
+
|
| 168 |
+
## 🧠 Autonomy Levels Explained
|
| 169 |
+
|
| 170 |
+
| Level | Description | Capabilities |
|
| 171 |
+
|-------|-------------|--------------|
|
| 172 |
+
| 1-3 | **Basic** | Q&A, simple code examples |
|
| 173 |
+
| 4-6 | **Expert** | Code review, debugging, explanations |
|
| 174 |
+
| 7-8 | **Proactive** | Auto-execute, test, optimize |
|
| 175 |
+
| 9-10 | **🤖 Autonomous** | Full automation, testing, documentation |
|
| 176 |
+
|
| 177 |
+
### **Level 10 (Fully Autonomous) Features:**
|
| 178 |
+
- ✅ Automatic code generation
|
| 179 |
+
- ✅ Real-time execution
|
| 180 |
+
- ✅ Error detection & correction
|
| 181 |
+
- ✅ Performance optimization
|
| 182 |
+
- ✅ Complete testing
|
| 183 |
+
- ✅ Documentation generation
|
| 184 |
+
- ✅ Enhancement suggestions
|
| 185 |
+
|
| 186 |
+
---
|
| 187 |
+
|
| 188 |
+
## 🔥 Example Prompts to Try
|
| 189 |
+
|
| 190 |
+
### **Code Generation**
|
| 191 |
+
```
|
| 192 |
+
"Create a REST API for user management with Flask"
|
| 193 |
+
"Build a neural network from scratch using NumPy"
|
| 194 |
+
"Develop a cryptocurrency price tracker"
|
| 195 |
+
```
|
| 196 |
+
|
| 197 |
+
### **Data Analysis**
|
| 198 |
+
```
|
| 199 |
+
"Analyze the sales data and create dashboards"
|
| 200 |
+
"Perform sentiment analysis on customer reviews"
|
| 201 |
+
"Generate predictive models for demand forecasting"
|
| 202 |
+
```
|
| 203 |
+
|
| 204 |
+
### **Automation**
|
| 205 |
+
```
|
| 206 |
+
"Create a web scraper for job listings"
|
| 207 |
+
"Build a data pipeline for ETL processes"
|
| 208 |
+
"Develop a notification system"
|
| 209 |
+
```
|
| 210 |
+
|
| 211 |
+
### **Learning & Education**
|
| 212 |
+
```
|
| 213 |
+
"Explain machine learning algorithms with code examples"
|
| 214 |
+
"Tutorial on building a recommendation system"
|
| 215 |
+
"How to create a web app from scratch"
|
| 216 |
+
```
|
| 217 |
+
|
| 218 |
+
---
|
| 219 |
+
|
| 220 |
+
## 📊 Available Models
|
| 221 |
+
|
| 222 |
+
### **Free Models via HuggingFace Router**
|
| 223 |
+
|
| 224 |
+
1. **meta-llama/Llama-3.2-1B-Instruct** ⭐ *Recommended*
|
| 225 |
+
- Fast response
|
| 226 |
+
- Efficient
|
| 227 |
+
- Good coding capabilities
|
| 228 |
+
|
| 229 |
+
2. **meta-llama/Llama-3.2-3B-Instruct**
|
| 230 |
+
- More capable
|
| 231 |
+
- Better reasoning
|
| 232 |
+
- Slightly slower
|
| 233 |
+
|
| 234 |
+
3. **mistralai/Mistral-7B-Instruct-v0.1**
|
| 235 |
+
- Balanced performance
|
| 236 |
+
- Good code generation
|
| 237 |
+
- Versatile
|
| 238 |
+
|
| 239 |
+
4. **microsoft/DialoGPT-medium**
|
| 240 |
+
- Conversation focused
|
| 241 |
+
- Natural dialogue
|
| 242 |
+
- Good for general chat
|
| 243 |
+
|
| 244 |
+
5. **google/flan-t5-base**
|
| 245 |
+
- Instruction following
|
| 246 |
+
- Task-oriented
|
| 247 |
+
- Structured outputs
|
| 248 |
+
|
| 249 |
+
6. **HuggingFaceH4/zephyr-7b-beta**
|
| 250 |
+
- Open assistant style
|
| 251 |
+
- Helpful responses
|
| 252 |
+
- Code-savvy
|
| 253 |
+
|
| 254 |
+
---
|
| 255 |
+
|
| 256 |
+
## 🔧 Technical Architecture
|
| 257 |
+
|
| 258 |
+
```
|
| 259 |
+
User Input → AI Analysis → Code Generation → Sandbox Execution → Results → Enhancement
|
| 260 |
+
↑ ↓
|
| 261 |
+
Autonomy Level ←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←
|
| 262 |
+
```
|
| 263 |
+
|
| 264 |
+
### **Components:**
|
| 265 |
+
1. **Chat Interface** - Gradio UI
|
| 266 |
+
2. **LLM Router** - HuggingFace Router API
|
| 267 |
+
3. **Code Executor** - Integrated sandbox
|
| 268 |
+
4. **Autonomy Engine** - 10-level control
|
| 269 |
+
5. **Response Formatter** - Rich outputs
|
| 270 |
+
|
| 271 |
+
---
|
| 272 |
+
|
| 273 |
+
## 🎓 Use Cases
|
| 274 |
+
|
| 275 |
+
### **👨💻 For Developers**
|
| 276 |
+
- Rapid prototyping
|
| 277 |
+
- Code generation
|
| 278 |
+
- Bug fixing
|
| 279 |
+
- Learning new libraries
|
| 280 |
+
|
| 281 |
+
### **📊 For Data Scientists**
|
| 282 |
+
- Data analysis
|
| 283 |
+
- Model building
|
| 284 |
+
- Visualization
|
| 285 |
+
- Statistical analysis
|
| 286 |
+
|
| 287 |
+
### **🎓 For Students**
|
| 288 |
+
- Learning programming
|
| 289 |
+
- Practice exercises
|
| 290 |
+
- Project assistance
|
| 291 |
+
- Code review
|
| 292 |
+
|
| 293 |
+
### **🚀 For Entrepreneurs**
|
| 294 |
+
- MVP development
|
| 295 |
+
- Proof of concepts
|
| 296 |
+
- Automation scripts
|
| 297 |
+
- API integration
|
| 298 |
+
|
| 299 |
+
### **🔍 For Researchers**
|
| 300 |
+
- Data processing
|
| 301 |
+
- Algorithm development
|
| 302 |
+
- Analysis pipelines
|
| 303 |
+
- Experimentation
|
| 304 |
+
|
| 305 |
+
---
|
| 306 |
+
|
| 307 |
+
## 🎯 Advanced Features
|
| 308 |
+
|
| 309 |
+
### **🔄 Real-time Code Execution**
|
| 310 |
+
- Execute Python code instantly
|
| 311 |
+
- View stdout/stderr
|
| 312 |
+
- Handle errors gracefully
|
| 313 |
+
- Display results immediately
|
| 314 |
+
|
| 315 |
+
### **🧪 Automatic Testing**
|
| 316 |
+
- Validate generated code
|
| 317 |
+
- Check for errors
|
| 318 |
+
- Performance metrics
|
| 319 |
+
- Quality assessment
|
| 320 |
+
|
| 321 |
+
### **📈 Performance Optimization**
|
| 322 |
+
- Code analysis
|
| 323 |
+
- Efficiency suggestions
|
| 324 |
+
- Best practices
|
| 325 |
+
- Refactoring tips
|
| 326 |
+
|
| 327 |
+
### **📚 Documentation Generation**
|
| 328 |
+
- Auto-document code
|
| 329 |
+
- Generate README files
|
| 330 |
+
- API documentation
|
| 331 |
+
- Usage examples
|
| 332 |
+
|
| 333 |
+
---
|
| 334 |
+
|
| 335 |
+
## 🔐 Security & Safety
|
| 336 |
+
|
| 337 |
+
- **Code Sandboxing** - Safe execution environment
|
| 338 |
+
- **Input Validation** - Prevent malicious code
|
| 339 |
+
- **Rate Limiting** - API protection
|
| 340 |
+
- **Error Handling** - Graceful failures
|
| 341 |
+
|
| 342 |
+
---
|
| 343 |
+
|
| 344 |
+
## 🆚 Comparison to Other Chatbots
|
| 345 |
+
|
| 346 |
+
| Feature | Autonomous AI Chatbot | ChatGPT | Claude | Others |
|
| 347 |
+
|---------|----------------------|---------|--------|--------|
|
| 348 |
+
| **Free to Use** | ✅ Yes | ❌ Limited | ❌ Limited | ❌ |
|
| 349 |
+
| **Code Execution** | ✅ Yes | ❌ | ❌ | ❌ |
|
| 350 |
+
| **Autonomy Levels** | ✅ 1-10 | ❌ | ❌ | ❌ |
|
| 351 |
+
| **Model Selection** | ✅ 6 Models | ❌ | ❌ | ❌ |
|
| 352 |
+
| **Real-time Results** | ✅ Yes | ❌ | ❌ | ❌ |
|
| 353 |
+
| **Visualizations** | ✅ Auto-generate | ❌ | ❌ | ❌ |
|
| 354 |
+
| **Integration** | ✅ Code Sandbox | ❌ | ❌ | ❌ |
|
| 355 |
+
|
| 356 |
+
---
|
| 357 |
+
|
| 358 |
+
## 🎉 Why Choose Our Chatbot?
|
| 359 |
+
|
| 360 |
+
### **1. 100% Free**
|
| 361 |
+
- No API keys required
|
| 362 |
+
- No paid subscriptions
|
| 363 |
+
- Open access to all features
|
| 364 |
+
|
| 365 |
+
### **2. Fully Autonomous**
|
| 366 |
+
- AI executes code automatically
|
| 367 |
+
- No manual intervention needed
|
| 368 |
+
- Complete end-to-end solutions
|
| 369 |
+
|
| 370 |
+
### **3. Powerful Integration**
|
| 371 |
+
- Works with code interpreter
|
| 372 |
+
- Multiple model support
|
| 373 |
+
- Flexible configuration
|
| 374 |
+
|
| 375 |
+
### **4. Endless Possibilities**
|
| 376 |
+
- Custom autonomy levels
|
| 377 |
+
- Real-time adjustment
|
| 378 |
+
- Unlimited experimentation
|
| 379 |
+
|
| 380 |
+
---
|
| 381 |
+
|
| 382 |
+
## 🚀 Get Started Now!
|
| 383 |
+
|
| 384 |
+
### **Click the Quick Action Buttons:**
|
| 385 |
+
- 📊 **Data Analysis** - Try a full analysis pipeline
|
| 386 |
+
- 🤖 **ML Model** - Build a complete model
|
| 387 |
+
- 📈 **Visualization** - Create interactive plots
|
| 388 |
+
- 🌐 **Web Scraper** - Develop automation
|
| 389 |
+
|
| 390 |
+
### **Or Type Your Own:**
|
| 391 |
+
```
|
| 392 |
+
"Create a todo app with database"
|
| 393 |
+
"Build a sentiment analyzer"
|
| 394 |
+
"Generate a report dashboard"
|
| 395 |
+
"Make a game in Python"
|
| 396 |
+
```
|
| 397 |
+
|
| 398 |
+
---
|
| 399 |
+
|
| 400 |
+
## 📞 Support & Community
|
| 401 |
+
|
| 402 |
+
- **Full Documentation** - Complete guides and examples
|
| 403 |
+
- **Code Examples** - Ready-to-run scripts
|
| 404 |
+
- **Best Practices** - Learn from experts
|
| 405 |
+
- **Community** - Share and learn together
|
| 406 |
+
|
| 407 |
+
---
|
| 408 |
+
|
| 409 |
+
## 🏆 The Future of AI Coding
|
| 410 |
+
|
| 411 |
+
**This is not just a chatbot - it's your autonomous AI programming partner!**
|
| 412 |
+
|
| 413 |
+
With **10 levels of autonomy** and **infinitely more possibilities**, you can:
|
| 414 |
+
- Build complete applications
|
| 415 |
+
- Analyze complex data
|
| 416 |
+
- Create beautiful visualizations
|
| 417 |
+
- Automate tedious tasks
|
| 418 |
+
- Learn through hands-on examples
|
| 419 |
+
|
| 420 |
+
**The future is autonomous. The future is now.** 🤖✨
|
| 421 |
+
|
| 422 |
+
---
|
| 423 |
+
|
| 424 |
+
**Made with ❤️ using Gradio, HuggingFace Models, and our Code Interpreter Sandbox**
|
| 425 |
+
|
| 426 |
+
**Experience 10x more autonomy today!**
|
chatbot_app.py
ADDED
|
@@ -0,0 +1,401 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
"""
|
| 2 |
+
Autonomous AI Chatbot with Code Interpreter
|
| 3 |
+
10x More Autonomous, Infinitely More Possibilities
|
| 4 |
+
"""
|
| 5 |
+
|
| 6 |
+
import gradio as gr
|
| 7 |
+
import requests
|
| 8 |
+
import json
|
| 9 |
+
import re
|
| 10 |
+
import os
|
| 11 |
+
import traceback
|
| 12 |
+
from typing import List, Dict, Optional
|
| 13 |
+
import subprocess
|
| 14 |
+
import sys
|
| 15 |
+
import time
|
| 16 |
+
|
| 17 |
+
# Configuration
|
| 18 |
+
API_BASE_URL = "https://router.huggingface.co/v1"
|
| 19 |
+
DEFAULT_MODEL = "meta-llama/Llama-3.2-1B-Instruct" # Free model
|
| 20 |
+
MODEL_OPTIONS = [
|
| 21 |
+
"meta-llama/Llama-3.2-1B-Instruct",
|
| 22 |
+
"meta-llama/Llama-3.2-3B-Instruct",
|
| 23 |
+
"microsoft/DialoGPT-medium",
|
| 24 |
+
"mistralai/Mistral-7B-Instruct-v0.1",
|
| 25 |
+
"google/flan-t5-base",
|
| 26 |
+
"HuggingFaceH4/zephyr-7b-beta"
|
| 27 |
+
]
|
| 28 |
+
|
| 29 |
+
# Chat history
|
| 30 |
+
conversation_history = []
|
| 31 |
+
current_model = DEFAULT_MODEL
|
| 32 |
+
max_tokens = 2048
|
| 33 |
+
temperature = 0.7
|
| 34 |
+
|
| 35 |
+
class AutonomousChatbot:
|
| 36 |
+
"""10x More Autonomous AI Chatbot"""
|
| 37 |
+
|
| 38 |
+
def __init__(self):
|
| 39 |
+
self.model = current_model
|
| 40 |
+
self.api_url = API_BASE_URL
|
| 41 |
+
self.headers = {
|
| 42 |
+
"Content-Type": "application/json",
|
| 43 |
+
"Authorization": "Bearer hf_not_needed_for_router"
|
| 44 |
+
}
|
| 45 |
+
|
| 46 |
+
def call_llm(self, messages: List[Dict], model: str = None) -> str:
|
| 47 |
+
"""Call the LLM via HuggingFace router"""
|
| 48 |
+
try:
|
| 49 |
+
model_to_use = model or self.model
|
| 50 |
+
|
| 51 |
+
payload = {
|
| 52 |
+
"model": model_to_use,
|
| 53 |
+
"messages": messages,
|
| 54 |
+
"max_tokens": max_tokens,
|
| 55 |
+
"temperature": temperature,
|
| 56 |
+
"stream": False
|
| 57 |
+
}
|
| 58 |
+
|
| 59 |
+
response = requests.post(
|
| 60 |
+
f"{self.api_url}/chat/completions",
|
| 61 |
+
headers=self.headers,
|
| 62 |
+
json=payload,
|
| 63 |
+
timeout=60
|
| 64 |
+
)
|
| 65 |
+
|
| 66 |
+
if response.status_code == 200:
|
| 67 |
+
result = response.json()
|
| 68 |
+
return result["choices"][0]["message"]["content"]
|
| 69 |
+
else:
|
| 70 |
+
return f"❌ Error: {response.status_code} - {response.text[:200]}"
|
| 71 |
+
except Exception as e:
|
| 72 |
+
return f"❌ API Error: {str(e)}"
|
| 73 |
+
|
| 74 |
+
def extract_code_blocks(self, text: str) -> List[str]:
|
| 75 |
+
"""Extract code blocks from text"""
|
| 76 |
+
# Match triple backtick code blocks
|
| 77 |
+
pattern = r'```[\s\S]*?```'
|
| 78 |
+
matches = re.findall(pattern, text)
|
| 79 |
+
return [match.strip('`') for match in matches]
|
| 80 |
+
|
| 81 |
+
def execute_code_autonomously(self, code: str) -> str:
|
| 82 |
+
"""Execute code and return results autonomously"""
|
| 83 |
+
try:
|
| 84 |
+
# Create a custom execution environment
|
| 85 |
+
old_stdout = sys.stdout
|
| 86 |
+
old_stderr = sys.stderr
|
| 87 |
+
sys.stdout = io.StringIO()
|
| 88 |
+
sys.stderr = io.StringIO()
|
| 89 |
+
|
| 90 |
+
# Execute the code
|
| 91 |
+
exec(code, globals())
|
| 92 |
+
|
| 93 |
+
# Get output
|
| 94 |
+
stdout_val = sys.stdout.getvalue()
|
| 95 |
+
stderr_val = sys.stderr.getvalue()
|
| 96 |
+
|
| 97 |
+
sys.stdout = old_stdout
|
| 98 |
+
sys.stderr = old_stderr
|
| 99 |
+
|
| 100 |
+
result = ""
|
| 101 |
+
if stdout_val:
|
| 102 |
+
result += f"📤 STDOUT:\n{stdout_val}\n"
|
| 103 |
+
if stderr_val:
|
| 104 |
+
result += f"⚠️ STDERR:\n{stderr_val}\n"
|
| 105 |
+
if not stdout_val and not stderr_val:
|
| 106 |
+
result = "✅ Code executed successfully with no output."
|
| 107 |
+
|
| 108 |
+
return result
|
| 109 |
+
|
| 110 |
+
except Exception as e:
|
| 111 |
+
return f"❌ Code Execution Error:\n{traceback.format_exc()}"
|
| 112 |
+
|
| 113 |
+
async def autonomous_chat(self, message: str, history: List[List[str]], model: str, autonomy_level: int) -> str:
|
| 114 |
+
"""
|
| 115 |
+
Autonomous chat with 10x more capabilities
|
| 116 |
+
autonomy_level: 1-10 (1=basic, 10=fully autonomous)
|
| 117 |
+
"""
|
| 118 |
+
# Add user message to history
|
| 119 |
+
conversation_history.append({"role": "user", "content": message})
|
| 120 |
+
|
| 121 |
+
# System prompt based on autonomy level
|
| 122 |
+
autonomy_prompts = {
|
| 123 |
+
1: "You are a helpful coding assistant. Answer questions and provide code examples when appropriate.",
|
| 124 |
+
3: "You are an expert coding assistant. Provide detailed explanations, debug code, and offer best practices.",
|
| 125 |
+
5: "You are a senior software engineer. Code autonomously when needed, explain thoroughly, and suggest optimizations.",
|
| 126 |
+
7: "You are an AI coding expert. Execute code automatically, test it, and provide comprehensive solutions with improvements.",
|
| 127 |
+
10: "You are a fully autonomous AI programmer. You will: 1) Analyze requests deeply, 2) Write and execute code automatically, 3) Test and debug independently, 4) Provide complete solutions with documentation, 5) Suggest enhancements. Always be proactive and think multiple steps ahead."
|
| 128 |
+
}
|
| 129 |
+
|
| 130 |
+
system_prompt = autonomy_prompts.get(autonomy_level, autonomy_prompts[5])
|
| 131 |
+
|
| 132 |
+
# Prepare messages for LLM
|
| 133 |
+
messages = [
|
| 134 |
+
{"role": "system", "content": system_prompt},
|
| 135 |
+
*conversation_history[-20:] # Keep last 20 messages
|
| 136 |
+
]
|
| 137 |
+
|
| 138 |
+
# Get LLM response
|
| 139 |
+
llm_response = self.call_llm(messages, model)
|
| 140 |
+
|
| 141 |
+
# Add assistant response to history
|
| 142 |
+
conversation_history.append({"role": "assistant", "content": llm_response})
|
| 143 |
+
|
| 144 |
+
# High autonomy: automatically execute code
|
| 145 |
+
if autonomy_level >= 5:
|
| 146 |
+
code_blocks = self.extract_code_blocks(llm_response)
|
| 147 |
+
|
| 148 |
+
if code_blocks:
|
| 149 |
+
response = llm_response + "\n\n" + "="*60 + "\n"
|
| 150 |
+
response += "🤖 AUTONOMOUS CODE EXECUTION\n"
|
| 151 |
+
response += "="*60 + "\n\n"
|
| 152 |
+
|
| 153 |
+
for i, code in enumerate(code_blocks, 1):
|
| 154 |
+
response += f"### Code Block {i}:\n"
|
| 155 |
+
response += f"```python\n{code}\n```\n\n"
|
| 156 |
+
execution_result = self.execute_code_autonomously(code)
|
| 157 |
+
response += f"**Result:**\n{execution_result}\n\n"
|
| 158 |
+
|
| 159 |
+
return response
|
| 160 |
+
|
| 161 |
+
return llm_response
|
| 162 |
+
|
| 163 |
+
def clear_history(self):
|
| 164 |
+
"""Clear conversation history"""
|
| 165 |
+
conversation_history.clear()
|
| 166 |
+
return "✅ Conversation history cleared!"
|
| 167 |
+
|
| 168 |
+
# Initialize chatbot
|
| 169 |
+
chatbot = AutonomousChatbot()
|
| 170 |
+
|
| 171 |
+
# Custom CSS for enhanced UX
|
| 172 |
+
CUSTOM_CSS = """
|
| 173 |
+
.gradio-container {
|
| 174 |
+
max-width: 1400px !important;
|
| 175 |
+
margin: auto !important;
|
| 176 |
+
}
|
| 177 |
+
|
| 178 |
+
.chat-message {
|
| 179 |
+
padding: 15px;
|
| 180 |
+
margin: 10px 0;
|
| 181 |
+
border-radius: 10px;
|
| 182 |
+
}
|
| 183 |
+
|
| 184 |
+
.user-message {
|
| 185 |
+
background-color: #2d4a7c;
|
| 186 |
+
color: white;
|
| 187 |
+
}
|
| 188 |
+
|
| 189 |
+
.bot-message {
|
| 190 |
+
background-color: #1e293b;
|
| 191 |
+
color: #e2e8f0;
|
| 192 |
+
}
|
| 193 |
+
|
| 194 |
+
.code-block {
|
| 195 |
+
background-color: #1e1e1e;
|
| 196 |
+
color: #d4d4d4;
|
| 197 |
+
padding: 15px;
|
| 198 |
+
border-radius: 5px;
|
| 199 |
+
font-family: 'Courier New', monospace;
|
| 200 |
+
margin: 10px 0;
|
| 201 |
+
}
|
| 202 |
+
|
| 203 |
+
.autonomy-indicator {
|
| 204 |
+
padding: 10px;
|
| 205 |
+
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
| 206 |
+
color: white;
|
| 207 |
+
border-radius: 5px;
|
| 208 |
+
margin: 10px 0;
|
| 209 |
+
}
|
| 210 |
+
|
| 211 |
+
.model-selector {
|
| 212 |
+
border: 2px solid #667eea;
|
| 213 |
+
border-radius: 5px;
|
| 214 |
+
}
|
| 215 |
+
"""
|
| 216 |
+
|
| 217 |
+
def chat_interface(message, history, model, autonomy_level):
|
| 218 |
+
"""Main chat interface"""
|
| 219 |
+
if not message:
|
| 220 |
+
return history, ""
|
| 221 |
+
|
| 222 |
+
# Process the message
|
| 223 |
+
response = chatbot.autonomous_chat(message, history, model, autonomy_level)
|
| 224 |
+
|
| 225 |
+
# Add to history
|
| 226 |
+
history.append([message, response])
|
| 227 |
+
|
| 228 |
+
return history, ""
|
| 229 |
+
|
| 230 |
+
def create_chatbot_interface():
|
| 231 |
+
"""Create the chatbot interface"""
|
| 232 |
+
with gr.Blocks(css=CUSTOM_CSS, title="🤖 Autonomous AI Chatbot", theme=gr.themes.Soft()) as app:
|
| 233 |
+
|
| 234 |
+
gr.Markdown(
|
| 235 |
+
"""
|
| 236 |
+
# 🤖 Autonomous AI Chatbot
|
| 237 |
+
|
| 238 |
+
## 10x More Autonomous • Infinitely More Possibilities
|
| 239 |
+
|
| 240 |
+
### ✨ Features:
|
| 241 |
+
- 🧠 **AI-Powered Conversations** - Free models via HuggingFace Router
|
| 242 |
+
- 💻 **Autonomous Code Execution** - Automatically run and test code
|
| 243 |
+
- 🎛️ **Customizable Autonomy** - Adjust from 1 (basic) to 10 (fully autonomous)
|
| 244 |
+
- 🔧 **Code Interpreter Integration** - Built-in sandbox environment
|
| 245 |
+
- 🚀 **Multiple Models** - Choose from free LLMs
|
| 246 |
+
- 📊 **Real-time Execution** - See results instantly
|
| 247 |
+
|
| 248 |
+
---
|
| 249 |
+
"""
|
| 250 |
+
)
|
| 251 |
+
|
| 252 |
+
with gr.Row():
|
| 253 |
+
with gr.Column(scale=4):
|
| 254 |
+
chatbot_ui = gr.Chatbot(
|
| 255 |
+
label="💬 Chat with AI",
|
| 256 |
+
height=600,
|
| 257 |
+
avatar_images=("👤", "🤖"),
|
| 258 |
+
elem_classes=["chat-message"]
|
| 259 |
+
)
|
| 260 |
+
|
| 261 |
+
with gr.Row():
|
| 262 |
+
msg_input = gr.Textbox(
|
| 263 |
+
label="💭 Your Message",
|
| 264 |
+
placeholder="Ask me anything! I can write, execute, and debug code...",
|
| 265 |
+
lines=2,
|
| 266 |
+
scale=4
|
| 267 |
+
)
|
| 268 |
+
send_btn = gr.Button("🚀 Send", variant="primary", scale=1)
|
| 269 |
+
|
| 270 |
+
with gr.Column(scale=1):
|
| 271 |
+
gr.Markdown("### ⚙️ Configuration")
|
| 272 |
+
|
| 273 |
+
model_dropdown = gr.Dropdown(
|
| 274 |
+
label="🤖 Model Selection",
|
| 275 |
+
choices=MODEL_OPTIONS,
|
| 276 |
+
value=DEFAULT_MODEL,
|
| 277 |
+
info="Select a free model"
|
| 278 |
+
)
|
| 279 |
+
|
| 280 |
+
autonomy_slider = gr.Slider(
|
| 281 |
+
label="🎚️ Autonomy Level",
|
| 282 |
+
minimum=1,
|
| 283 |
+
maximum=10,
|
| 284 |
+
value=7,
|
| 285 |
+
step=1,
|
| 286 |
+
info="1=Basic | 5=Expert | 10=Fully Autonomous"
|
| 287 |
+
)
|
| 288 |
+
|
| 289 |
+
with gr.Accordion("📊 Advanced Settings", open=False):
|
| 290 |
+
temp_slider = gr.Slider(
|
| 291 |
+
label="🌡️ Temperature",
|
| 292 |
+
minimum=0.0,
|
| 293 |
+
maximum=1.0,
|
| 294 |
+
value=0.7,
|
| 295 |
+
step=0.1,
|
| 296 |
+
info="Higher = more creative"
|
| 297 |
+
)
|
| 298 |
+
|
| 299 |
+
max_tokens_slider = gr.Slider(
|
| 300 |
+
label="📏 Max Tokens",
|
| 301 |
+
minimum=256,
|
| 302 |
+
maximum=4096,
|
| 303 |
+
value=2048,
|
| 304 |
+
step=256,
|
| 305 |
+
info="Response length limit"
|
| 306 |
+
)
|
| 307 |
+
|
| 308 |
+
clear_btn = gr.Button("🗑️ Clear History", variant="stop")
|
| 309 |
+
|
| 310 |
+
gr.Markdown("### 🔥 Quick Actions")
|
| 311 |
+
|
| 312 |
+
with gr.Column():
|
| 313 |
+
gr.Markdown("**Code Examples:**")
|
| 314 |
+
|
| 315 |
+
example1 = gr.Button("📊 Data Analysis", info="Create and run data analysis code")
|
| 316 |
+
example2 = gr.Button("🤖 ML Model", info="Build a machine learning model")
|
| 317 |
+
example3 = gr.Button("📈 Visualization", info="Generate interactive plots")
|
| 318 |
+
example4 = gr.Button("🌐 Web Scraper", info="Create a web scraper")
|
| 319 |
+
|
| 320 |
+
# Update global variables when settings change
|
| 321 |
+
def update_settings(temp, tokens):
|
| 322 |
+
global temperature, max_tokens
|
| 323 |
+
temperature = temp
|
| 324 |
+
max_tokens = tokens
|
| 325 |
+
return "✅ Settings Updated!"
|
| 326 |
+
|
| 327 |
+
temp_slider.change(
|
| 328 |
+
fn=update_settings,
|
| 329 |
+
inputs=[temp_slider, max_tokens_slider],
|
| 330 |
+
outputs=gr.Textbox(label="Status", visible=False)
|
| 331 |
+
)
|
| 332 |
+
|
| 333 |
+
max_tokens_slider.change(
|
| 334 |
+
fn=update_settings,
|
| 335 |
+
inputs=[temp_slider, max_tokens_slider],
|
| 336 |
+
outputs=gr.Textbox(label="Status", visible=False)
|
| 337 |
+
)
|
| 338 |
+
|
| 339 |
+
# Set up chat events
|
| 340 |
+
send_btn.click(
|
| 341 |
+
fn=chat_interface,
|
| 342 |
+
inputs=[msg_input, chatbot_ui, model_dropdown, autonomy_slider],
|
| 343 |
+
outputs=[chatbot_ui, msg_input]
|
| 344 |
+
)
|
| 345 |
+
|
| 346 |
+
msg_input.submit(
|
| 347 |
+
fn=chat_interface,
|
| 348 |
+
inputs=[msg_input, chatbot_ui, model_dropdown, autonomy_slider],
|
| 349 |
+
outputs=[chatbot_ui, msg_input]
|
| 350 |
+
)
|
| 351 |
+
|
| 352 |
+
# Example prompts
|
| 353 |
+
def example_prompt(prompt_type):
|
| 354 |
+
examples = {
|
| 355 |
+
"data": "Create a comprehensive data analysis script that loads sample data, performs statistical analysis, creates visualizations (histogram, scatter plot, box plot), and provides insights. Execute the code and show the results.",
|
| 356 |
+
"ml": "Build a machine learning pipeline from scratch. Generate synthetic data, split into train/test, train a Random Forest classifier, evaluate accuracy, and visualize feature importance. Run the complete code.",
|
| 357 |
+
"viz": "Create an interactive data visualization dashboard with multiple chart types (line charts, bar charts, heatmaps). Use plotly to make it interactive. Execute and show the plots.",
|
| 358 |
+
"web": "Create a web scraper that fetches data from a public API, processes it, and displays the results. Include error handling and data validation. Run the code and show output."
|
| 359 |
+
}
|
| 360 |
+
return examples.get(prompt_type, "")
|
| 361 |
+
|
| 362 |
+
example1.click(
|
| 363 |
+
fn=lambda: ("📊 Data Analysis Example", "data"),
|
| 364 |
+
outputs=[msg_input, model_dropdown]
|
| 365 |
+
)
|
| 366 |
+
|
| 367 |
+
example2.click(
|
| 368 |
+
fn=lambda: ("🤖 ML Model Example", "ml"),
|
| 369 |
+
outputs=[msg_input, model_dropdown]
|
| 370 |
+
)
|
| 371 |
+
|
| 372 |
+
example3.click(
|
| 373 |
+
fn=lambda: ("📈 Visualization Example", "viz"),
|
| 374 |
+
outputs=[msg_input, model_dropdown]
|
| 375 |
+
)
|
| 376 |
+
|
| 377 |
+
example4.click(
|
| 378 |
+
fn=lambda: ("🌐 Web Scraper Example", "web"),
|
| 379 |
+
outputs=[msg_input, model_dropdown]
|
| 380 |
+
)
|
| 381 |
+
|
| 382 |
+
# Clear history
|
| 383 |
+
clear_btn.click(
|
| 384 |
+
fn=lambda: (chatbot.clear_history(), [], ""),
|
| 385 |
+
outputs=[chatbot_ui, chatbot_ui, msg_input]
|
| 386 |
+
)
|
| 387 |
+
|
| 388 |
+
return app
|
| 389 |
+
|
| 390 |
+
# Import io for execute_code_autonomously
|
| 391 |
+
import io
|
| 392 |
+
|
| 393 |
+
if __name__ == "__main__":
|
| 394 |
+
app = create_chatbot_interface()
|
| 395 |
+
app.launch(
|
| 396 |
+
server_name="0.0.0.0",
|
| 397 |
+
server_port=7861,
|
| 398 |
+
share=False,
|
| 399 |
+
show_error=True,
|
| 400 |
+
quiet=False
|
| 401 |
+
)
|
requirements.txt
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
gradio>=4.0.0
|
| 2 |
+
requests>=2.31.0
|
| 3 |
+
numpy>=1.24.0
|
| 4 |
+
pandas>=2.0.0
|
| 5 |
+
matplotlib>=3.7.0
|
| 6 |
+
plotly>=5.15.0
|
| 7 |
+
seaborn>=0.12.0
|
| 8 |
+
scikit-learn>=1.3.0
|
| 9 |
+
Pillow>=10.0.0
|