diff --git a/.env.example b/.env.example
new file mode 100644
index 0000000..f74401e
--- /dev/null
+++ b/.env.example
@@ -0,0 +1,46 @@
+# OpenAI Configuration
+OPENAI_API_KEY=sk-your-openai-api-key-here
+OPENAI_MODEL=gpt-4
+
+# Slack Integration
+SLACK_BOT_TOKEN=xoxb-your-slack-bot-token-here
+SLACK_APP_TOKEN=xapp-your-slack-app-token-here
+SLACK_SIGNING_SECRET=your-slack-signing-secret-here
+
+# Gmail Integration
+# Option 1: OAuth 2.0 credentials file path
+GMAIL_CREDENTIALS_FILE=path/to/credentials.json
+GMAIL_TOKEN_FILE=path/to/token.json
+# Option 2: SMTP configuration (alternative)
+GMAIL_SMTP_USER=your-email@gmail.com
+GMAIL_SMTP_PASSWORD=your-app-password-here
+
+# Notion Integration
+NOTION_API_KEY=secret_your-notion-integration-token-here
+NOTION_DATABASE_ID=your-database-id-here
+
+# Database Configuration
+DATABASE_URL=postgresql://user:password@localhost:5432/rag7_db
+# For development, can use SQLite:
+# DATABASE_URL=sqlite:///./rag7.db
+
+# Redis Configuration
+REDIS_URL=redis://localhost:6379/0
+
+# ChromaDB Configuration
+CHROMA_HOST=localhost
+CHROMA_PORT=8000
+CHROMA_PERSISTENCE_DIR=./chroma_data
+
+# API Configuration
+API_HOST=0.0.0.0
+API_PORT=8000
+API_RELOAD=True
+CORS_ORIGINS=http://localhost:3000,http://localhost:5173
+
+# Frontend Configuration
+VITE_API_URL=http://localhost:8000
+
+# Environment
+ENVIRONMENT=development
+LOG_LEVEL=INFO
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..ff23142
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,84 @@
+name: CI
+
+on:
+ push:
+ branches: [ main, develop, feature/* ]
+ pull_request:
+ branches: [ main, develop ]
+
+jobs:
+ lint-and-test:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Set up Python
+ uses: actions/setup-python@v4
+ with:
+ python-version: '3.11'
+
+ - name: Cache Python dependencies
+ uses: actions/cache@v3
+ with:
+ path: ~/.cache/pip
+ key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }}
+ restore-keys: |
+ ${{ runner.os }}-pip-
+
+ - name: Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ pip install -r requirements.txt
+
+ - name: Lint with flake8
+ run: |
+ # Stop the build if there are Python syntax errors or undefined names
+ flake8 src tests --count --select=E9,F63,F7,F82 --show-source --statistics
+ # Exit-zero treats all errors as warnings
+ flake8 src tests --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
+
+ - name: Type check with mypy
+ run: |
+ mypy src --ignore-missing-imports || true
+
+ - name: Run tests
+ env:
+ OPENAI_API_KEY: sk-test-key
+ SLACK_BOT_TOKEN: xoxb-test-token
+ GMAIL_SMTP_USER: test@gmail.com
+ GMAIL_SMTP_PASSWORD: test-password
+ NOTION_API_KEY: secret_test_key
+ run: |
+ pytest tests/ -v --tb=short
+
+ - name: Check code formatting
+ run: |
+ black --check src tests || true
+
+ frontend-build:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v3
+
+ - name: Set up Node.js
+ uses: actions/setup-node@v3
+ with:
+ node-version: '18'
+
+ - name: Cache Node modules
+ uses: actions/cache@v3
+ with:
+ path: frontend/node_modules
+ key: ${{ runner.os }}-node-${{ hashFiles('frontend/package-lock.json') }}
+ restore-keys: |
+ ${{ runner.os }}-node-
+
+ - name: Install frontend dependencies
+ working-directory: ./frontend
+ run: npm ci || npm install
+
+ - name: Build frontend
+ working-directory: ./frontend
+ run: npm run build
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..a9a2969
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,70 @@
+# Environment variables
+.env
+.env.local
+
+# Python
+__pycache__/
+*.py[cod]
+*$py.class
+*.so
+.Python
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
+venv/
+ENV/
+env/
+
+# Testing
+.pytest_cache/
+.coverage
+htmlcov/
+.tox/
+
+# IDEs
+.vscode/
+.idea/
+*.swp
+*.swo
+*~
+
+# ChromaDB
+chroma_data/
+*.db
+
+# Credentials
+credentials.json
+token.json
+*.pem
+*.key
+
+# Logs
+*.log
+logs/
+
+# Frontend
+node_modules/
+frontend/dist/
+frontend/build/
+frontend/.vite/
+
+# OS
+.DS_Store
+Thumbs.db
+
+# Docker
+*.pid
+frontend/package-lock.json
diff --git a/DASHBOARD_GUIDE.md b/DASHBOARD_GUIDE.md
new file mode 100644
index 0000000..33e1eba
--- /dev/null
+++ b/DASHBOARD_GUIDE.md
@@ -0,0 +1,244 @@
+# Full GUI Dashboard - Visual Guide
+
+## π¨ Dashboard Overview
+
+The RAG7 AI Agent Platform now features a complete GUI dashboard with sidebar navigation and multiple views.
+
+## π Layout Structure
+
+```
+βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
+β β
+β ββββββββββββββββ ββββββββββββββββββββββββββββββββββββββ β
+β β SIDEBAR β β MAIN CONTENT β β
+β β β β β β
+β β ββββββββββββ β β ββββββββββββββββββββββββββββββββ β β
+β β β π€ RAG7 β β β β Page Header β β β
+β β β β β β β π¬ Conversational AI β β β
+β β β β Online β β β ββββββββββββββββββββββββββββββββ β β
+β β ββββββββββββ β β β β
+β β β β ββββββββββββββββββββββββββββββββ β β
+β β Navigation β β β β β β
+β β ββββββββββββ β β β β β β
+β β βπ¬ Chat β β β β Active View Content β β β
+β β βπ Integr.β β β β β β β
+β β βπ Analyticsβ β β (Chat, Integrations, β β β
+β β ββοΈ Settingsβ β β β Analytics, or Settings) β β β
+β β ββββββββββββ β β β β β β
+β β β β β β β β
+β β Quick Stats β β ββββββββββββββββββββββββββββββββ β β
+β β ββββββββββββ β β β β
+β β β 3 Active β β β β β
+β β β 9 Funcs β β β β β
+β β ββββββββββββ β β β β
+β β β β β β
+β ββββββββββββββββ ββββββββββββββββββββββββββββββββββββββ β
+β β
+βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
+ ββββββββββββ
+ β π¬ β β Floating Bot
+ β β (Independent)
+ ββββββββββββ
+```
+
+## π― Dashboard Views
+
+### 1. Chat View (π¬)
+
+```
+βββββββββββββββββββββββββββββββββββββββββββββββββββ
+β π¬ Conversational AI π β β
+βββββββββββββββββββββββββββββββββββββββββββββββββββ€
+β β
+β ββββββββββββββββββββββββββββββββββββββββββ β
+β β π€ β β
+β β Welcome to RAG7 AI Assistant! β β
+β β β β
+β β ββββββββ ββββββββ ββββββββ β β
+β β β π± β β π§ β β π β β β
+β β βSlack β βGmail β βNotionβ β β
+β β β β β β β β β β β β β
+β β ββββββββ ββββββββ ββββββββ β β
+β β β β
+β β Ask me anything! β β
+β ββββββββββββββββββββββββββββββββββββββββββ β
+β β
+β π€ What can you do? β
+β 2:30 PM β
+β β
+β π€ I can help with Slack, Gmail, and Notion! β
+β β‘ slack_list_channels β β
+β 2:30 PM β
+β β
+βββββββββββββββββββββββββββββββββββββββββββββββββββ€
+β Type your message... π β
+βββββββββββββββββββββββββββββββββββββββββββββββββββ
+```
+
+### 2. Integrations View (π)
+
+```
+βββββββββββββββββββββββββββββββββββββββββββββββββββ
+β π Integrations π β β
+βββββββββββββββββββββββββββββββββββββββββββββββββββ€
+β Connected Integrations β
+β Manage your external service connections β
+β β
+β βββββββββββββββ βββββββββββββββ ββββββββββββ
+β β π± β β π§ β β π ββ
+β β Slack β β Gmail β β Notion ββ
+β β β Connected β β β Not Conn. β β β Not ββ
+β β β β β β ββ
+β β Functions: 2β β Functions: 3β β Funcs: 4ββ
+β β β β β β ββ
+β β β’ send_msg β β β’ send_emailβ β β’ createββ
+β β β’ list_ch β β β’ list_msgs β β β’ updateββ
+β βββββββββββββββ βββββββββββββββ ββββββββββββ
+β β
+βββββββββββββββββββββββββββββββββββββββββββββββββββ
+```
+
+### 3. Analytics View (π)
+
+```
+βββββββββββββββββββββββββββββββββββββββββββββββββββ
+β π Analytics π β β
+βββββββββββββββββββββββββββββββββββββββββββββββββββ€
+β Usage Analytics β
+β Monitor your AI agent performance β
+β β
+β ββββββββββββ ββββββββββββ ββββββββββββ β
+β β π¬ β β π₯ β β β‘ β β
+β β Total β β Active β β Functionsβ β
+β β Messages β β Sessions β β Executed β β
+β β 0 β β 0 β β 0 β β
+β ββββββββββββ ββββββββββββ ββββββββββββ β
+β β
+β ββββββββββββ β
+β β β
β β
+β β Success β β
+β β Rate β β
+β β 100% β β
+β ββββββββββββ β
+β β
+β π Advanced analytics coming soon... β
+β β
+βββββββββββββββββββββββββββββββββββββββββββββββββββ
+```
+
+### 4. Settings View (βοΈ)
+
+```
+βββββββββββββββββββββββββββββββββββββββββββββββββββ
+β βοΈ Settings π β β
+βββββββββββββββββββββββββββββββββββββββββββββββββββ€
+β Configure your AI agent platform β
+β β
+β π API Configuration β
+β βββββββββββββββββββββββββββββββββββββββββββ β
+β β OpenAI API Key: β’β’β’β’β’β’β’β’β’β’β’β’ β β
+β β Set in .env file β β
+β βββββββββββββββββββββββββββββββββββββββββββ β
+β βββββββββββββββββββββββββββββββββββββββββββ β
+β β OpenAI Model: [gpt-4 βΌ] β β
+β β Configure in .env file β β
+β βββββββββββββββββββββββββββββββββββββββββββ β
+β β
+β π¨ Interface β
+β β Enable floating bot widget β
+β β Show function execution details β
+β β
+β π Documentation β
+β [π README] [π Quick Start] [π οΈ Dev Guide] β
+β β
+βββββββββββββββββββββββββββββββββββββββββββββββββββ
+```
+
+## π¨ Color Scheme
+
+- **Primary Gradient**: Purple (#667eea β #764ba2)
+- **Sidebar**: Gradient purple background
+- **Main Content**: White (#FFFFFF)
+- **Background**: Light gray (#f5f7fa)
+- **Text**: Dark gray (#1f2937)
+- **Borders**: Light gray (#e5e7eb)
+- **Success**: Green (#059669)
+- **Error**: Red (#dc2626)
+
+## β¨ Key Features
+
+### Sidebar
+- **Logo & Branding** - RAG7 with robot icon
+- **Status Badge** - Shows online/offline with color
+- **Navigation Items** - 4 main sections with icons
+- **Badge Indicators** - Active integrations count
+- **Quick Stats** - Active and function counts
+- **Sticky Position** - Always visible
+- **Responsive** - Collapses on mobile
+
+### Navigation Items
+- **Chat** (π¬) - Default view
+- **Integrations** (π) - With badge showing 3/3
+- **Analytics** (π) - Usage metrics
+- **Settings** (βοΈ) - Configuration
+
+### Main Content
+- **Page Header** - Title with icons
+- **Content Area** - Dynamic based on view
+- **Scrollable** - Handles overflow
+- **Responsive** - Adapts to screen size
+
+### Responsive Behavior
+- **Desktop**: Full sidebar + main content
+- **Tablet**: Narrower sidebar
+- **Mobile**: Horizontal nav bar at top
+
+## π― Independent UI Modes
+
+1. **Full Dashboard**
+ - Professional layout
+ - Multiple views
+ - Sidebar navigation
+ - Analytics and settings
+ - Full-featured management
+
+2. **Floating Bot**
+ - Compact overlay
+ - Always available
+ - Quick access
+ - Independent state
+ - Works alongside dashboard
+
+## π Usage Flow
+
+1. **Load Dashboard** - Opens to Chat view
+2. **See Status** - Check connection in sidebar
+3. **Navigate** - Click sidebar items to switch views
+4. **Chat** - Use full chat interface
+5. **Manage** - View integrations, analytics, settings
+6. **Float** - Use floating bot anytime for quick chats
+
+## π± Responsive Design
+
+### Desktop (> 768px)
+- Full sidebar (260px width)
+- Main content fills remaining space
+- All features visible
+- Optimal experience
+
+### Mobile (< 768px)
+- Sidebar becomes horizontal nav
+- Full-width main content
+- Touch-optimized buttons
+- Adapts gracefully
+
+## π¨ Visual Hierarchy
+
+1. **Primary**: Logo, page title, chat messages
+2. **Secondary**: Navigation items, cards
+3. **Tertiary**: Stats, timestamps, badges
+4. **Interactive**: Buttons, inputs, links
+
+---
+
+Built for an intuitive, professional user experience! π
diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md
new file mode 100644
index 0000000..005681c
--- /dev/null
+++ b/DEVELOPMENT.md
@@ -0,0 +1,538 @@
+# Development Guide
+
+This guide explains how to extend the RAG7 AI Agent Platform with new integrations, functions, and capabilities.
+
+## Table of Contents
+
+- [Architecture Overview](#architecture-overview)
+- [Adding New Integrations](#adding-new-integrations)
+- [Function Calling Design](#function-calling-design)
+- [Memory and RAG Patterns](#memory-and-rag-patterns)
+- [Testing Guidelines](#testing-guidelines)
+- [Code Style](#code-style)
+- [Deployment](#deployment)
+
+## Architecture Overview
+
+### Core Components
+
+1. **ConversationalAgent** (`src/agent/core.py`)
+ - Manages conversation flow
+ - Routes function calls to integrations
+ - Maintains conversation context
+
+2. **BaseIntegration** (`src/integrations/base.py`)
+ - Abstract base for all integrations
+ - Defines function schema format
+ - Converts to OpenAI function calling format
+
+3. **AgentMemory** (`src/agent/memory.py`)
+ - Stores conversation history
+ - Provides semantic search via ChromaDB
+ - Falls back to in-memory storage
+
+4. **FastAPI Interface** (`src/interfaces/web_api.py`)
+ - REST and WebSocket endpoints
+ - Integration health monitoring
+ - CORS and middleware configuration
+
+## Adding New Integrations
+
+### Step 1: Create Integration Class
+
+Create a new file in `src/integrations/`:
+
+```python
+# src/integrations/my_service.py
+from typing import Any, Dict, List, Optional
+from .base import BaseIntegration, IntegrationFunction, FunctionParameter
+
+class MyServiceIntegration(BaseIntegration):
+ """Integration for MyService API."""
+
+ def __init__(self, api_key: Optional[str] = None):
+ super().__init__()
+ self.api_key = api_key
+ # Initialize your client here
+
+ def get_functions(self) -> List[IntegrationFunction]:
+ """Define available functions."""
+ return [
+ IntegrationFunction(
+ name="my_function",
+ description="What this function does",
+ parameters=[
+ FunctionParameter(
+ name="param1",
+ type="string",
+ description="Parameter description",
+ required=True
+ )
+ ]
+ )
+ ]
+
+ async def execute(self, function_name: str, **kwargs) -> Dict[str, Any]:
+ """Execute a function."""
+ if function_name == "my_function":
+ return await self._my_function(**kwargs)
+
+ return {
+ "success": False,
+ "error": f"Unknown function: {function_name}",
+ "data": None
+ }
+
+ async def _my_function(self, param1: str) -> Dict[str, Any]:
+ """Implementation of my_function."""
+ try:
+ # Your API call here
+ result = "some result"
+
+ return {
+ "success": True,
+ "data": {"result": result},
+ "error": None
+ }
+ except Exception as e:
+ return {
+ "success": False,
+ "error": str(e),
+ "data": None
+ }
+
+ async def health_check(self) -> bool:
+ """Check if integration is configured."""
+ return bool(self.api_key)
+```
+
+### Step 2: Register Integration
+
+Add to `src/interfaces/web_api.py` in the `lifespan` function:
+
+```python
+# Initialize MyService integration
+if settings.my_service_api_key:
+ my_service = MyServiceIntegration(
+ api_key=settings.my_service_api_key
+ )
+ integrations.append(my_service)
+ logger.info("MyService integration enabled")
+```
+
+### Step 3: Add Configuration
+
+Update `src/utils/config.py`:
+
+```python
+class Settings(BaseSettings):
+ # ... existing fields ...
+
+ # MyService Integration
+ my_service_api_key: str = ""
+```
+
+Update `.env.example`:
+
+```bash
+# MyService Integration
+MY_SERVICE_API_KEY=your-api-key-here
+```
+
+### Step 4: Add Tests
+
+Create `tests/test_my_service.py`:
+
+```python
+import pytest
+from src.integrations.my_service import MyServiceIntegration
+
+@pytest.mark.asyncio
+async def test_my_service_integration():
+ """Test MyService integration."""
+ service = MyServiceIntegration(api_key="test-key")
+
+ functions = service.get_functions()
+ assert len(functions) > 0
+
+ result = await service.execute("my_function", param1="test")
+ assert "success" in result
+```
+
+## Function Calling Design
+
+### Function Schema
+
+Functions are defined using the `IntegrationFunction` model:
+
+```python
+IntegrationFunction(
+ name="function_name",
+ description="Clear description for the AI model",
+ parameters=[
+ FunctionParameter(
+ name="param_name",
+ type="string", # string, integer, boolean, array, object
+ description="What this parameter does",
+ required=True, # or False
+ enum=["option1", "option2"] # Optional: restrict values
+ )
+ ]
+)
+```
+
+### Parameter Types
+
+Supported types match JSON Schema:
+- `string` - Text values
+- `integer` - Whole numbers
+- `number` - Decimals
+- `boolean` - true/false
+- `array` - Lists
+- `object` - Nested structures
+
+### Best Practices
+
+1. **Clear Descriptions**: Help the AI understand when to use the function
+ ```python
+ description="Send a message to a Slack channel by name or ID"
+ ```
+
+2. **Required vs Optional**: Mark parameters appropriately
+ ```python
+ FunctionParameter(name="channel", required=True)
+ FunctionParameter(name="thread_ts", required=False)
+ ```
+
+3. **Enums for Constraints**: Limit values when possible
+ ```python
+ FunctionParameter(
+ name="priority",
+ type="string",
+ enum=["low", "medium", "high"]
+ )
+ ```
+
+4. **Atomic Functions**: Each function should do one thing well
+ - β
`send_message()` - Send a message
+ - β `send_message_and_create_channel()` - Too complex
+
+## Memory and RAG Patterns
+
+### Using Agent Memory
+
+The `AgentMemory` class provides conversation persistence:
+
+```python
+# Add messages
+await memory.add_message(
+ role="user",
+ content="User's question",
+ metadata={"source": "web", "user_id": "123"}
+)
+
+# Get recent messages
+messages = await memory.get_recent_messages(limit=10)
+
+# Semantic search
+similar = await memory.search_similar(
+ query="questions about pricing",
+ limit=5
+)
+```
+
+### Implementing RAG
+
+To add retrieval-augmented generation:
+
+1. **Index Documents**:
+ ```python
+ # In your integration or startup
+ for doc in documents:
+ await memory.collection.add(
+ ids=[doc.id],
+ documents=[doc.content],
+ metadatas=[{"type": "knowledge", "source": doc.source}]
+ )
+ ```
+
+2. **Retrieve Context**:
+ ```python
+ # Before calling OpenAI
+ relevant_docs = await memory.search_similar(user_message, limit=3)
+
+ # Add to system message
+ context = "\n".join([doc["content"] for doc in relevant_docs])
+ system_message = f"Context:\n{context}\n\nAnswer based on this context."
+ ```
+
+3. **Cite Sources**:
+ ```python
+ # Include metadata in response
+ sources = [doc["metadata"]["source"] for doc in relevant_docs]
+ ```
+
+### ChromaDB Collections
+
+Create separate collections for different use cases:
+
+```python
+# Conversation history
+conversation_memory = AgentMemory(collection_name="conversations")
+
+# Knowledge base
+knowledge_base = AgentMemory(collection_name="knowledge")
+
+# User preferences
+user_prefs = AgentMemory(collection_name="user_preferences")
+```
+
+## Testing Guidelines
+
+### Test Structure
+
+```python
+# tests/test_my_feature.py
+import pytest
+from unittest.mock import AsyncMock, patch
+
+@pytest.mark.asyncio
+async def test_feature():
+ """Test description."""
+ # Arrange
+ setup_data = {}
+
+ # Act
+ result = await function_to_test(setup_data)
+
+ # Assert
+ assert result["success"] is True
+```
+
+### Mocking External APIs
+
+```python
+@patch('src.integrations.slack.AsyncWebClient')
+async def test_slack_mock(mock_client):
+ """Test with mocked Slack client."""
+ mock_client.return_value.chat_postMessage = AsyncMock(
+ return_value={"ok": True, "ts": "123"}
+ )
+
+ slack = SlackIntegration(bot_token="test")
+ result = await slack.execute("send_message", channel="test", text="hi")
+
+ assert result["success"] is True
+```
+
+### Test Coverage
+
+Aim for:
+- β
Happy path tests
+- β
Error handling tests
+- β
Edge cases
+- β
Integration tests
+- β
API endpoint tests
+
+Run coverage:
+```bash
+pytest --cov=src --cov-report=html
+open htmlcov/index.html
+```
+
+## Code Style
+
+### Python Style Guide
+
+Follow PEP 8 with these conventions:
+
+```python
+# Type hints
+def process_message(message: str, user_id: Optional[str] = None) -> Dict[str, Any]:
+ """Process a message and return result."""
+ pass
+
+# Docstrings (Google style)
+async def send_email(to: str, subject: str, body: str) -> bool:
+ """
+ Send an email via Gmail.
+
+ Args:
+ to: Recipient email address
+ subject: Email subject line
+ body: Email body content
+
+ Returns:
+ True if sent successfully, False otherwise
+
+ Raises:
+ ValueError: If recipient email is invalid
+ """
+ pass
+
+# Error handling
+try:
+ result = await api_call()
+except SpecificException as e:
+ logger.error(f"Failed to call API: {e}")
+ return {"success": False, "error": str(e)}
+```
+
+### Formatting Tools
+
+```bash
+# Format code
+black src tests
+
+# Check style
+flake8 src tests
+
+# Type checking
+mypy src --ignore-missing-imports
+```
+
+### Commit Messages
+
+Follow conventional commits:
+
+```
+feat: Add GitHub integration
+fix: Handle timeout in Slack API
+docs: Update integration setup guide
+test: Add tests for memory search
+refactor: Simplify function calling logic
+```
+
+## Deployment
+
+### Docker Production Build
+
+Create `Dockerfile.prod`:
+
+```dockerfile
+FROM python:3.11-slim
+
+WORKDIR /app
+
+COPY requirements.txt .
+RUN pip install --no-cache-dir -r requirements.txt
+
+COPY src/ ./src/
+
+ENV ENVIRONMENT=production
+ENV API_RELOAD=False
+
+CMD ["uvicorn", "src.interfaces.web_api:app", "--host", "0.0.0.0", "--port", "8000"]
+```
+
+### Environment Variables
+
+For production:
+
+```bash
+# Use secrets management
+OPENAI_API_KEY=${SECRET_OPENAI_KEY}
+DATABASE_URL=postgresql://user:pass@db:5432/rag7
+REDIS_URL=redis://redis:6379/0
+CHROMA_HOST=chromadb
+LOG_LEVEL=INFO
+ENVIRONMENT=production
+```
+
+### Kubernetes Deployment
+
+Example `deployment.yaml`:
+
+```yaml
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: rag7-api
+spec:
+ replicas: 3
+ selector:
+ matchLabels:
+ app: rag7-api
+ template:
+ metadata:
+ labels:
+ app: rag7-api
+ spec:
+ containers:
+ - name: api
+ image: your-registry/rag7:latest
+ env:
+ - name: OPENAI_API_KEY
+ valueFrom:
+ secretKeyRef:
+ name: rag7-secrets
+ key: openai-key
+ ports:
+ - containerPort: 8000
+```
+
+### Health Checks
+
+The `/health` endpoint returns:
+
+```json
+{
+ "status": "healthy",
+ "agent_ready": true,
+ "openai_configured": true
+}
+```
+
+Use for:
+- Docker healthcheck
+- Kubernetes liveness/readiness probes
+- Load balancer health checks
+
+### Monitoring
+
+Add monitoring with:
+
+1. **Prometheus**: Expose metrics
+ ```python
+ from prometheus_client import Counter, Histogram
+
+ chat_requests = Counter('chat_requests_total', 'Total chat requests')
+ chat_duration = Histogram('chat_duration_seconds', 'Chat processing time')
+ ```
+
+2. **Logging**: Use structured logging
+ ```python
+ import logging
+ logger.info("Processing chat", extra={
+ "user_id": user_id,
+ "message_length": len(message)
+ })
+ ```
+
+3. **Error Tracking**: Integrate Sentry
+ ```python
+ import sentry_sdk
+ sentry_sdk.init(dsn=settings.sentry_dsn)
+ ```
+
+## Contributing
+
+1. Fork the repository
+2. Create a feature branch: `git checkout -b feature/my-feature`
+3. Make changes following code style guidelines
+4. Add tests for new functionality
+5. Run tests: `pytest tests/ -v`
+6. Format code: `black src tests`
+7. Commit with conventional commits
+8. Push and create a Pull Request
+
+## Getting Help
+
+- π Review existing integrations for examples
+- π Check GitHub Issues for known problems
+- π¬ Ask questions in Pull Requests
+- π§ Contact maintainers for major changes
+
+---
+
+Happy coding! π
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..67d0a69
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,23 @@
+FROM python:3.11-slim
+
+WORKDIR /app
+
+# Install system dependencies
+RUN apt-get update && apt-get install -y \
+ gcc \
+ g++ \
+ && rm -rf /var/lib/apt/lists/*
+
+# Copy requirements and install Python dependencies
+COPY requirements.txt .
+RUN pip install --no-cache-dir -r requirements.txt
+
+# Copy application code
+COPY src/ ./src/
+
+# Create directories for credentials and data
+RUN mkdir -p /app/credentials /app/chroma_data
+
+EXPOSE 8000
+
+CMD ["uvicorn", "src.interfaces.web_api:app", "--host", "0.0.0.0", "--port", "8000"]
diff --git a/FLOATING_BOT_GUIDE.md b/FLOATING_BOT_GUIDE.md
new file mode 100644
index 0000000..213272c
--- /dev/null
+++ b/FLOATING_BOT_GUIDE.md
@@ -0,0 +1,108 @@
+# Floating Bot Widget - Visual Guide
+
+## π¨ Appearance
+
+### Closed State (Floating Button)
+```
+ ββββββββββββ
+ β β
+ β π¬ β β Gradient purple button
+ β β Hovers in bottom-right
+ ββββββββββββ
+```
+
+### Open State (Chat Window)
+```
+βββββββββββββββββββββββββββββββββββββββ
+β π€ AI Assistant ποΈ β β β Header with gradient
+βββββββββββββββββββββββββββββββββββββββ€
+β β
+β π€ Hello! I'm your AI... β β Welcome message
+β Ask me anything! β
+β β
+β π€ What can you do? β β User message
+β 2:30 PM β
+β β
+β π€ I can help with... β β Assistant message
+β β‘ slack_send_message β β with function calls
+β 2:30 PM β
+β β
+β ... β β Typing indicator
+β β
+βββββββββββββββββββββββββββββββββββββββ€
+β Type your message... π β β Input area
+βββββββββββββββββββββββββββββββββββββββ
+ β
+ Floating widget
+ 380px Γ 600px
+```
+
+## β¨ Features
+
+1. **Floating Button**
+ - Gradient purple background
+ - Chat icon when closed
+ - X icon when open
+ - Smooth hover animation
+ - Bottom-right positioning
+
+2. **Chat Window**
+ - Rounded corners (16px)
+ - Box shadow for depth
+ - Slide-up animation
+ - Responsive sizing
+ - Mobile-friendly
+
+3. **Header**
+ - Gradient background
+ - Bot avatar emoji (π€)
+ - Online/Offline status
+ - Clear chat button (ποΈ)
+ - Close button (β)
+
+4. **Messages**
+ - User messages (right, purple gradient)
+ - Assistant messages (left, white)
+ - Function call badges
+ - Timestamps
+ - Smooth animations
+
+5. **Input**
+ - Rounded input field
+ - Send button with icon
+ - Disabled state handling
+ - Auto-focus on open
+
+## π― Usage
+
+### For Users:
+1. Click floating button to open
+2. Type message and press Enter or click send
+3. See real-time responses
+4. View function executions
+5. Clear chat with trash icon
+6. Close with X or floating button
+
+### For Developers:
+- Component: `FloatingBot.js`
+- Styles: `FloatingBot.css`
+- WebSocket connection for real-time
+- Fallback to REST API
+- Independent of main app state
+
+## π Color Scheme
+
+- **Primary Gradient**: #667eea β #764ba2
+- **Close Gradient**: #f093fb β #f5576c
+- **User Messages**: Purple gradient
+- **Assistant Messages**: White with subtle shadow
+- **Background**: Light gray (#f9fafb)
+- **Hover Effects**: Scale and glow
+
+## π± Responsive Behavior
+
+- **Desktop**: 380px Γ 600px window
+- **Mobile**: Full width minus 40px margins
+- **Position**: Bottom-right with 20px spacing
+- **Button**: 60px Γ 60px circle
+- **Animations**: Slide up, fade in, scale effects
diff --git a/GUI_TESTING_GUIDE.md b/GUI_TESTING_GUIDE.md
new file mode 100644
index 0000000..a3caf8b
--- /dev/null
+++ b/GUI_TESTING_GUIDE.md
@@ -0,0 +1,532 @@
+# GUI Testing Guide
+
+Complete guide for testing the RAG7 Conversational AI Agent Platform GUI.
+
+## Table of Contents
+1. [Automated Testing](#automated-testing)
+2. [Manual Testing](#manual-testing)
+3. [Setup Validation](#setup-validation)
+4. [Component-Specific Testing](#component-specific-testing)
+5. [Browser Testing](#browser-testing)
+6. [Troubleshooting](#troubleshooting)
+
+---
+
+## Automated Testing
+
+### Backend Tests
+
+**Run all backend tests:**
+```bash
+cd /home/runner/work/rag7/rag7
+pytest tests/ -v
+```
+
+**Run specific test file:**
+```bash
+pytest tests/test_web_api.py -v
+pytest tests/test_integrations.py -v
+```
+
+**Run with coverage:**
+```bash
+pytest tests/ --cov=src --cov-report=html
+```
+
+**Expected Results:**
+- β
15 tests should pass
+- β
All integrations (Slack, Gmail, Notion) discoverable
+- β
API endpoints return 200 status
+- β
Health checks pass
+
+### Frontend Tests
+
+**Install test dependencies:**
+```bash
+cd frontend
+npm install
+```
+
+**Run all frontend tests:**
+```bash
+npm test
+```
+
+**Run tests with coverage:**
+```bash
+npm run test:coverage
+```
+
+**Run tests in CI mode (non-interactive):**
+```bash
+CI=true npm test
+```
+
+**Expected Results:**
+- β
Dashboard component renders
+- β
Navigation works between views
+- β
FloatingBot opens/closes correctly
+- β
ChatInterface sends messages
+- β
API calls are made properly
+- β
Error handling works
+
+### Test Files Created
+- `frontend/src/Dashboard.test.js` - Dashboard navigation and view tests
+- `frontend/src/FloatingBot.test.js` - Floating bot widget tests
+- `frontend/src/ChatInterface.test.js` - Chat interface interaction tests
+- `frontend/src/setupTests.js` - Jest testing configuration
+
+---
+
+## Manual Testing
+
+### Quick Start Testing
+
+**Option 1: HTML Mockup (No Setup Required)**
+```bash
+# Simply open in browser
+open mockup-gui.html
+# OR
+python -m http.server 8080
+# Visit http://localhost:8080/mockup-gui.html
+```
+
+**Test Checklist for HTML Mockup:**
+- [ ] Page loads without errors
+- [ ] Sidebar navigation is visible
+- [ ] All 4 views accessible (Chat, Integrations, Analytics, Settings)
+- [ ] Floating bot button appears in bottom-right
+- [ ] Clicking floating bot opens chat window
+- [ ] Navigation switches between views
+- [ ] Chat input accepts text
+- [ ] Responsive design works on mobile (resize browser)
+
+**Option 2: Full Platform (React + Backend)**
+```bash
+# Automated setup
+chmod +x setup.sh
+./setup.sh
+
+# OR Docker
+docker-compose up --build
+
+# OR Manual
+# Terminal 1 - Backend
+pip install -r requirements.txt
+uvicorn src.interfaces.web_api:app --reload
+
+# Terminal 2 - Frontend
+cd frontend
+npm install
+npm start
+```
+
+### Dashboard Testing Checklist
+
+**Access:** http://localhost:3000
+
+#### Sidebar Navigation
+- [ ] Logo displays "RAG7"
+- [ ] Status indicator shows (Online/Offline)
+- [ ] 4 navigation items visible:
+ - [ ] π¬ Chat
+ - [ ] π Integrations
+ - [ ] π Analytics
+ - [ ] βοΈ Settings
+- [ ] Badge indicators show counts
+- [ ] Quick stats display at bottom
+
+#### Chat View
+- [ ] Welcome screen displays on first visit
+- [ ] Input field accepts text
+- [ ] Send button is clickable
+- [ ] Messages appear in chat history
+- [ ] Timestamps show for each message
+- [ ] Function calls are visualized
+- [ ] Typing indicator appears (if implemented)
+- [ ] Can send message with Enter key
+- [ ] Can send message with Send button
+
+#### Integrations View
+- [ ] Cards for each integration (Slack, Gmail, Notion)
+- [ ] Health status indicators show
+ - [ ] Connected (green) or Not Connected (red/gray)
+- [ ] Function listings per integration
+- [ ] Connection stats display
+- [ ] Cards are responsive
+
+#### Analytics View
+- [ ] 4 stat cards display:
+ - [ ] Messages count
+ - [ ] Sessions count
+ - [ ] Functions Executed count
+ - [ ] Success Rate percentage
+- [ ] Numbers update (if real-time)
+- [ ] Cards are visually consistent
+
+#### Settings View
+- [ ] API configuration section visible
+- [ ] Interface toggles work
+- [ ] Documentation links present:
+ - [ ] README
+ - [ ] Quick Start
+ - [ ] Dev Guide
+ - [ ] API Docs
+- [ ] Links navigate correctly
+
+### Floating Bot Testing Checklist
+
+#### Initial State
+- [ ] Floating button visible in bottom-right corner
+- [ ] Button has gradient purple design
+- [ ] Button animates on hover
+
+#### Opening/Closing
+- [ ] Click button opens chat window
+- [ ] Window slides up with animation
+- [ ] Window size is appropriate (380Γ600px)
+- [ ] Close button (Γ) is visible
+- [ ] Clicking close button closes window
+- [ ] Clicking floating button again closes window
+
+#### Chat Functionality
+- [ ] Chat input field is visible
+- [ ] Can type message in input
+- [ ] Send button works
+- [ ] Enter key sends message
+- [ ] Messages appear in chat history
+- [ ] User messages aligned right
+- [ ] Bot messages aligned left
+- [ ] Function calls are visualized
+- [ ] Success/error indicators show
+
+#### Additional Features
+- [ ] Clear chat button works
+- [ ] Chat history persists during session
+- [ ] WebSocket connection established (check console)
+- [ ] Falls back to REST API if WebSocket fails
+- [ ] Works independently of dashboard
+- [ ] Mobile responsive (resize browser)
+
+### API Testing Checklist
+
+**Access:** http://localhost:8000/docs
+
+- [ ] `/health` - Returns healthy status
+- [ ] `/chat` - Accepts POST with message
+- [ ] `/integrations` - Lists all integrations
+- [ ] `/functions` - Lists available functions
+- [ ] `/ws/chat` - WebSocket endpoint accessible
+- [ ] Interactive API docs work
+- [ ] All endpoints return proper responses
+
+---
+
+## Setup Validation
+
+### Run Validation Script
+
+Create and run this validation script:
+
+```bash
+#!/bin/bash
+# save as validate-setup.sh
+
+echo "=== RAG7 Platform Setup Validation ==="
+echo ""
+
+# Check backend
+echo "1. Checking Backend..."
+if python -c "import fastapi, openai, chromadb" 2>/dev/null; then
+ echo " β
Backend dependencies installed"
+else
+ echo " β Backend dependencies missing"
+fi
+
+# Check frontend
+echo "2. Checking Frontend..."
+if [ -d "frontend/node_modules" ]; then
+ echo " β
Frontend dependencies installed"
+else
+ echo " β Frontend dependencies missing - run 'cd frontend && npm install'"
+fi
+
+# Check environment
+echo "3. Checking Environment..."
+if [ -f ".env" ]; then
+ echo " β
.env file exists"
+ if grep -q "OPENAI_API_KEY" .env; then
+ echo " β
OPENAI_API_KEY configured"
+ else
+ echo " β οΈ OPENAI_API_KEY not set in .env"
+ fi
+else
+ echo " β οΈ .env file not found - copy from .env.example"
+fi
+
+# Check ports
+echo "4. Checking Ports..."
+if lsof -Pi :8000 -sTCP:LISTEN -t >/dev/null 2>&1; then
+ echo " β
Backend running on port 8000"
+else
+ echo " β οΈ Backend not running on port 8000"
+fi
+
+if lsof -Pi :3000 -sTCP:LISTEN -t >/dev/null 2>&1; then
+ echo " β
Frontend running on port 3000"
+else
+ echo " β οΈ Frontend not running on port 3000"
+fi
+
+# Run tests
+echo "5. Running Tests..."
+if pytest tests/ -q 2>/dev/null; then
+ echo " β
Backend tests passing"
+else
+ echo " β οΈ Backend tests failed or pytest not available"
+fi
+
+echo ""
+echo "=== Validation Complete ==="
+```
+
+**Run validation:**
+```bash
+chmod +x validate-setup.sh
+./validate-setup.sh
+```
+
+---
+
+## Component-Specific Testing
+
+### Dashboard Component
+
+**Test Navigation:**
+1. Open http://localhost:3000
+2. Click each navigation item
+3. Verify view changes
+4. Check browser console for errors
+5. Verify no memory leaks (check dev tools)
+
+**Test API Integration:**
+1. Open Network tab in dev tools
+2. Navigate between views
+3. Verify API calls are made:
+ - `/health` on mount
+ - `/integrations` for integrations view
+ - `/functions` for functions list
+4. Check response status codes (should be 200)
+
+### FloatingBot Component
+
+**Test Isolation:**
+1. Open dashboard
+2. Open floating bot
+3. Send message in floating bot
+4. Navigate dashboard views
+5. Verify both work independently
+6. Check for state interference
+
+**Test WebSocket:**
+1. Open browser console
+2. Open floating bot
+3. Look for WebSocket connection message
+4. Send a message
+5. Verify WebSocket sends/receives
+6. Close and reopen - verify reconnection
+
+### ChatInterface Component
+
+**Test Message Flow:**
+1. Type message
+2. Click send
+3. Verify message appears in history
+4. Verify response appears
+5. Check function visualization
+6. Verify timestamps
+
+**Test Error Handling:**
+1. Stop backend server
+2. Try sending message
+3. Verify error handling
+4. Start backend
+5. Verify recovery
+
+---
+
+## Browser Testing
+
+### Desktop Browsers
+
+Test on multiple browsers:
+- [ ] **Chrome** (latest)
+- [ ] **Firefox** (latest)
+- [ ] **Safari** (if on Mac)
+- [ ] **Edge** (latest)
+
+**Test in each browser:**
+- [ ] Dashboard loads
+- [ ] Navigation works
+- [ ] Floating bot works
+- [ ] Chat sends messages
+- [ ] Styles display correctly
+- [ ] No console errors
+
+### Mobile/Responsive
+
+**Test responsive design:**
+1. Open http://localhost:3000
+2. Open dev tools (F12)
+3. Toggle device toolbar (Ctrl+Shift+M)
+4. Test different sizes:
+ - [ ] iPhone SE (375Γ667)
+ - [ ] iPhone 12 Pro (390Γ844)
+ - [ ] iPad (768Γ1024)
+ - [ ] Desktop (1920Γ1080)
+
+**Verify for each size:**
+- [ ] Sidebar adapts/collapses
+- [ ] Floating bot remains accessible
+- [ ] Chat input visible
+- [ ] Buttons are tappable
+- [ ] Text is readable
+- [ ] No horizontal scroll
+
+### Performance Testing
+
+**Check Performance:**
+```bash
+# Build for production
+cd frontend
+npm run build
+
+# Serve production build
+npx serve -s build -p 3000
+```
+
+**Test:**
+- [ ] Page load time < 3 seconds
+- [ ] No console warnings
+- [ ] Lighthouse score > 90
+- [ ] Memory usage reasonable
+
+---
+
+## Troubleshooting
+
+### Frontend Tests Fail
+
+**Issue:** Tests fail with module errors
+```bash
+cd frontend
+rm -rf node_modules package-lock.json
+npm install
+npm test
+```
+
+**Issue:** Tests timeout
+- Increase jest timeout in setupTests.js
+- Check if API endpoints are mocked correctly
+
+### GUI Not Loading
+
+**Issue:** Blank page or 404
+1. Check frontend is running: http://localhost:3000
+2. Check backend is running: http://localhost:8000/health
+3. Check browser console for errors
+4. Clear browser cache
+5. Check TROUBLESHOOTING.md
+
+**Issue:** API calls fail
+1. Verify backend is running
+2. Check proxy in package.json
+3. Verify CORS settings
+4. Check network tab in dev tools
+
+### Floating Bot Not Working
+
+**Issue:** Button not visible
+- Check z-index in FloatingBot.css
+- Verify component is imported in Dashboard.js
+- Check browser console for errors
+
+**Issue:** WebSocket fails
+- Verify backend WebSocket endpoint
+- Check browser WebSocket support
+- Should fallback to REST API
+
+### Performance Issues
+
+**Issue:** Slow loading
+- Build for production
+- Check network tab for large assets
+- Verify API response times
+- Check for memory leaks
+
+---
+
+## Test Summary
+
+After completing all tests, you should have:
+
+β
**Backend:**
+- 15 passing tests
+- All endpoints working
+- Integrations discoverable
+
+β
**Frontend:**
+- All component tests passing
+- Dashboard navigation working
+- FloatingBot functional
+- ChatInterface sending messages
+
+β
**Manual:**
+- HTML mockup working
+- All views accessible
+- Both UI modes independent
+- Responsive design verified
+
+β
**Integration:**
+- API calls successful
+- WebSocket connected
+- Error handling works
+- Cross-browser compatible
+
+---
+
+## Quick Reference Commands
+
+```bash
+# Backend tests
+pytest tests/ -v
+
+# Frontend tests
+cd frontend && npm test
+
+# Run full platform
+./setup.sh
+
+# Docker
+docker-compose up --build
+
+# Validation
+./validate-setup.sh
+
+# View mockup
+open mockup-gui.html
+```
+
+---
+
+## Next Steps
+
+After successful testing:
+1. Review test coverage reports
+2. Add integration tokens to .env
+3. Test with real API keys
+4. Deploy to production
+5. Set up monitoring
+6. Add more tests as needed
+
+For issues, see `TROUBLESHOOTING.md`
diff --git a/MOCKUP_GUIDE.md b/MOCKUP_GUIDE.md
new file mode 100644
index 0000000..4b7727e
--- /dev/null
+++ b/MOCKUP_GUIDE.md
@@ -0,0 +1,407 @@
+# RAG7 GUI Mockup Guide
+
+## Overview
+
+The `mockup-gui.html` file is a **standalone HTML mockup** that demonstrates the complete RAG7 AI Agent Platform interface without requiring any backend services or build tools. This is perfect for:
+
+- π¨ **Quick previews** of the UI design
+- π₯ **Stakeholder demonstrations** without technical setup
+- π± **UI/UX testing** across different devices
+- πΌοΈ **Visual reference** for development
+- π **Fast iteration** on design changes
+
+## Features
+
+### Full GUI Dashboard
+- **Sidebar Navigation** - Logo, status badge, navigation menu, quick stats
+- **4 Main Views:**
+ 1. **Chat View** - Conversation interface with message history
+ 2. **Integrations View** - Cards showing Slack, Gmail, and Notion
+ 3. **Analytics View** - Statistics cards with metrics
+ 4. **Settings View** - Configuration options and documentation links
+
+### Floating Bot Widget
+- **Toggleable chat** - Bottom-right floating button
+- **Independent chat window** - Works alongside main dashboard
+- **Animated interactions** - Smooth slide-up animation
+- **Fully functional** - Can send/receive mockup messages
+
+### Interactive Elements
+- β
**View switching** - Click sidebar nav to change views
+- β
**Chat messaging** - Type and send messages (simulated responses)
+- β
**Floating bot** - Click to open/close
+- β
**Settings toggles** - Interactive switches
+- β
**Responsive design** - Works on mobile and desktop
+
+## How to Use
+
+### Option 1: Open Directly in Browser
+
+```bash
+# From repository root
+open mockup-gui.html
+
+# Or on Linux
+xdg-open mockup-gui.html
+
+# Or on Windows
+start mockup-gui.html
+```
+
+### Option 2: Serve with Simple HTTP Server
+
+```bash
+# Using Python
+python -m http.server 8080
+
+# Using Node.js
+npx serve .
+
+# Then visit http://localhost:8080/mockup-gui.html
+```
+
+### Option 3: Online Hosting
+
+Upload `mockup-gui.html` to any static hosting service:
+- GitHub Pages
+- Netlify Drop
+- Verge
+- AWS S3 + CloudFront
+
+## Interface Tour
+
+### Dashboard Sidebar
+
+```
+ββββββββββββββββββββββ
+β π€ RAG7 β
+β β Online β
+ββββββββββββββββββββββ€
+β π¬ Chat β β Active
+β π Integrations β with badge "3"
+β π Analytics β
+β βοΈ Settings β
+ββββββββββββββββββββββ€
+β Quick Stats β
+β Active: 3 β
+β Functions: 9 β
+ββββββββββββββββββββββ
+```
+
+### Chat View
+
+**Welcome Card** - Shows available integrations with status pills
+
+**Message Area:**
+- User messages (right-aligned, purple gradient)
+- Assistant messages (left-aligned, gray)
+- Function call badges (yellow/green)
+- Timestamps
+
+**Input Area** - Type messages and click send button (π)
+
+### Integrations View
+
+**3 Integration Cards:**
+
+1. **Slack** (Connected)
+ - Send message
+ - List channels
+ - Send thread reply
+
+2. **Gmail** (Connected)
+ - Send email
+ - List messages
+ - Read message
+
+3. **Notion** (Connected)
+ - Create page
+ - Query database
+ - Add database entry
+
+### Analytics View
+
+**4 Stat Cards:**
+- π¬ Total Messages: 1,247
+- π₯ Active Sessions: 89
+- β‘ Functions Executed: 342
+- β
Success Rate: 98.5%
+
+**Placeholder** for advanced analytics charts
+
+### Settings View
+
+**API Configuration** - OpenAI status indicator
+
+**Interface Options:**
+- Enable Floating Bot (toggle)
+- Show Function Details (toggle)
+
+**Documentation Links:**
+- README
+- Quick Start Guide
+- Development Guide
+- API Documentation
+
+### Floating Bot Widget
+
+**Closed State:**
+- Purple gradient circular button (bottom-right)
+- Displays π¬ emoji
+
+**Open State:**
+- 380Γ600px chat window
+- Header with "AI Assistant" title and close button
+- Message area with scrollable history
+- Input field with send button
+
+## Visual Design
+
+### Color Palette
+
+```css
+Primary Gradient: #667eea β #764ba2
+Success Green: #10b981
+Background: #f5f7fa
+White: #ffffff
+Gray Scale: #1f2937 β #9ca3af
+```
+
+### Typography
+
+- **Font Family**: System fonts (SF Pro, Segoe UI, Roboto)
+- **Headings**: 18px - 28px, bold
+- **Body**: 14px, regular
+- **Small**: 12px, regular
+
+### Spacing
+
+- **Card Padding**: 24-32px
+- **Gap Between Items**: 12-24px
+- **Border Radius**: 6-16px
+- **Shadows**: Subtle elevation effects
+
+## Customization
+
+### Change Colors
+
+Edit the CSS in `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Welcome to RAG7 AI Agent Platform
+
I'm an AI assistant with access to multiple integrations. I can help you with Slack messages, Gmail, and Notion tasks.
+
+
+
+ Slack
+
+
+
+ Gmail
+
+
+
+ Notion
+
+
+
+
+
+
+
π€
+
+
Send a message "Meeting at 3pm today" to #general
+
2:45 PM
+
+
+
+
+
π€
+
+
I'll send that message to the #general channel for you.
+
+ β‘ slack_send_message(channel="#general", text="Meeting at 3pm today") β
+
+
Done! I've sent the message to #general.
+
2:45 PM
+
+
+
+
+
π€
+
+
What integrations do you have access to?
+
2:46 PM
+
+
+
+
+
π€
+
+
I have access to three integrations:
+ Slack: Send messages, list channels
+ Gmail: List, read, and send emails
+ Notion: Create pages, query databases
+
+
2:46 PM
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Full async implementation for workspace messaging
+
+
+
Available Functions
+
+
π€ Send message
+
π List channels
+
π¬ Send thread reply
+
+
+
+
+
+
+
+ OAuth2/SMTP integration for email management
+
+
+
Available Functions
+
+
π¨ Send email
+
π¬ List messages
+
π Read message
+
+
+
+
+
+
+
+ Workspace and database operations
+
+
+
Available Functions
+
+
π Create page
+
π Query database
+
β Add database entry
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
π¬
+
Total Messages
+
1,247
+
β 12% from last week
+
+
+
+
π₯
+
Active Sessions
+
89
+
β 8% from last week
+
+
+
+
β‘
+
Functions Executed
+
342
+
β 15% from last week
+
+
+
+
β
+
Success Rate
+
98.5%
+
β 2% from last week
+
+
+
+
+
π
+
Advanced Analytics Coming Soon
+
Detailed charts, usage trends, and performance metrics will be available here.
+
+
+
+
+
+
+
+
+
+
+
π API Configuration
+
+
+
OpenAI API Key
+
Configure in .env file
+
+
β Configured
+
+
+
+
+
π¨ Interface Options
+
+
+
Enable Floating Bot
+
Show quick access chat widget
+
+
+
+
+
+
Show Function Details
+
Display function calls in chat
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
π€
+
+
Hello! I'm your AI assistant. How can I help you today?
+
Now
+
+
+
+
+
+
+
+
+
+
+
+
+
+