8000 GitHub - RamboRogers/cyberai: WebUI for OpenAI, Ollama and Anthropic
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

RamboRogers/cyberai

Repository files navigation

🎯 Version 0.3.0: Multi-Modal AI Support

Now with Image Upload & Vision Model Integration

multimodal chat interface multimodal image upload
chat interface admin dashboard
chat interface admin dashboard

Note: Screenshots may not reflect the latest UI/UX rework. It's probably cooler than this.

CyberAI

Secure Multi-Modal AI Chat Platform

πŸ€– Multiple AI Models | πŸ–ΌοΈ Image Upload & Vision | 🌍 Web UI | ⚑ Real-time Streaming | πŸ”’ Secure | 🎨 Cyberpunk Terminal

Version 0.3.0 Go Version Platform Support License

Link to Video

CyberAI is a powerful, secure multi-user chat platform that integrates multiple AI models through a cyberpunk-inspired terminal interface. Built with performance, security, and flexibility in mind, it provides a centralized interface for interacting with various language models, leveraging Retrieval-Augmented Generation (RAG) with web search and chat history to deliver more informed and contextually relevant responses.

NEW in 0.3.0: Full multi-modal support with image upload capabilities - drag & drop images, paste from clipboard, or use the file picker to enhance your conversations with AI vision models like GPT-4V and Ollama's LLaVA models.

Features dual theme modes: Switch between the signature cyberpunk "Hacker" theme and a professional "Business" theme for corporate environments, with automatic browser dark/light mode detection.

The intention is to provide a sleek, secure, and efficient way to interact with AI language models through a unified interface.

🌟 Features

Model Support Chat Features
  • Multiple LLM provider integration (Ollama, OpenAI)
  • Multi-modal vision model support (GPT-4V, LLaVA, etc.)
  • Custom agent system with specialized prompts
  • Model enumeration system
  • Per-user model access control
  • Endpoint registration system
  • Model discovery system
  • Image upload via drag & drop, file picker, or clipboard paste
  • Multi-image attachment support (up to 5 images per message)
  • Image preview and management in chat interface
  • Automatic image cleanup on chat deletion
  • Real-time message streaming
  • Markdown rendering for responses
  • Copy-to-clipboard functionality
  • Chat history preservation
  • Multi-user concurrent chat sessions
  • Smooth scrolling interface
  • Retrieval-Augmented Generation (RAG) using web search results and conversation history for enhanced context and accuracy.
  • Integrated web search (Brave Search, Google CSE) to feed real-time data into RAG.
User Interface Security
  • Modern, responsive UI built with Tailwind CSS
  • Dual theme system: Cyberpunk "Hacker" theme and professional "Business" theme
  • Automatic browser dark/light mode detection with manual override
  • Cyberpunk S3270 terminal-inspired design (Penguin UI theme)
  • Unified style across Chat and Admin interfaces
  • Dynamic model selection dropdowns
  • Image attachment interface with visual feedback
  • Admin dashboard for system management
  • Agent creation/selection UI (Planned/Not Implemented)
  • Metrics display component (Planned/Not Implemented)
  • User authentication system
  • Role-based access control
  • Secure file upload with validation
  • Image storage with user isolation
  • Secure API endpoint storage
  • Protected WebSocket connections
  • Input sanitization
  • Encrypted sensitive data

Updates

  • 0.3.0 Multi-Modal Support Release

    • Image upload support via drag & drop, file picker, and clipboard paste
    • Integration with OpenAI vision models (GPT-4V, GPT-4-vision-preview)
    • Support for Ollama vision models (LLaVA, Llama-Vision, etc.)
    • Smart image cleanup on chat deletion
    • Enhanced chat interface with image preview and management
    • Secure image storage with user isolation
  • 0.2.0 First Tagged Release

    • White mode/business theme added.
    • Fixed a new chat bug where you would be driven back to a previous chat session.
    • Fixed a JS session bug where lots of logs were generated.

Todo πŸ“‹

  • Gated User Profile (Can only access Persona's)
  • Agents for Users (Persona's with special prompts!)
  • Agents with Tools (can do work)
  • Search (Brave API and Google API)

πŸš€ Quick Start

You can run CyberAI using Docker with either docker run or docker-compose.

Default credentials:

  • Username: admin
  • Password: admin

Option 1: Docker Run

This command uses a Docker named volume (cyberai-data) to store the application's data (like the SQLite database) persistently.

docker run -d --name cyberai \
  -p 8080:8080 \
  -v cyberai-data:/cyberai/data \
  mattrogers/cyberai:latest

Upgrade:

docker pull mattrogers/cyberai:latest
docker stop cyberai && docker rm cyberai
docker run -d --name cyberai \
  -p 8080:8080 \
  -v cyberai-data:/cyberai/data \
  mattrogers/cyberai:latest
  • -d: Run in detached mode.
  • --name cyberai: Assign a name to the container.
  • -p 8080:8080: Map host port 8080 to container port 8080.
  • -v cyberai-data:/cyberai/data: Mount the named volume cyberai-data to the /cyberai/data directory inside the container.

Option 2: Docker Compose

  1. Create a docker-compose.yml file with the following content:
    version: '3.8'
    
    services:
      cyberai:
        image: ramborogers/cyberai:latest
        container_name: cyberai
        ports:
          - "8080:8080"
        volumes:
          - cyberai-data:/cyberai/data
        restart: unless-stopped
    
    volumes:
      cyberai-data:
  2. Run the following command in the same directory as the docker-compose.yml file:
    docker-compose up -d
    This will automatically create the named volume cyberai-data if it doesn't exist.

Accessing the Web Interface

Once the container is running (using either method), access the web interface at:

Upgrading the Docker Container

Using Docker Run:

  1. Pull the latest image: docker pull mattrogers/cyberai:latest
  2. Stop and remove the existing container: docker stop cyberai && docker rm cyberai
  3. Start the new container using the same volume mount command as above.

Using Docker Compose:

  1. Pull the latest image: docker-compose pull
  2. Restart the service, which will automatically use the new image and the existing volume: docker-compose up -d

πŸ”¨ Building from Source

Prerequisites

  • Go 1.21 or later

Clone and Build

# Clone the repository
git clone https://github.com/ramborogers/cyberai.git
cd cyberai

# Build the application
go build -o cyberai ./cmd/cyberai

# Run the application (creates data/cyberai.db by default)
./cyberai

Run without Building

# Run directly with Go
go run ./cmd/cyberai

Environment Variables

CyberAI uses environment variables for configuration (no config file needed):

Variable Description Default
PORT Web server port 8080
SESSION_KEY Secret key for session cookies Default insecure key (only for development)
DB_PATH SQLite database file path /cyberai/data/cyberai.db (Docker) or data/cyberai.db (local)

Example usage when running locally:

# Set environment variables
export PORT=9090
export SESSION_KEY="your-secure-session-key"
export DB_PATH="/path/to/database.db"

# Run the application
./cyberai

πŸ’» Usage

CyberAI provides a unified interface for interacting with various AI models:

  1. Login with your credentials
  2. Select your preferred AI model
  3. Chat in real-time with streaming responses
  4. Create custom agents with specialized system prompts
  5. Search the web directly from your chat with integrated search providers

Admin Features

# Access admin dashboard
http://localhost:8080/admin

# Add new API endpoints
# Manage user permissions
# Create specialized agents
# Configure search providers (Brave Search, Google CSE)
# View system metrics

πŸ” Technical Architecture

Backend (Go)

  • Modular server structure to handle multiple LLM API integrations
  • User authentication and session management
  • WebSocket handlers for real-time chat updates
  • Admin API for managing system resources
  • Search provider integration for web search capabilities

Frontend

  • Responsive chat interface with S3270 terminal-inspired design
  • Dynamic model selection and agent management
  • Admin dashboard for system configuration

Database

Stored under /data/cyberai.db

  • User credentials and permissions storage
  • Chat history preservation
  • Configuration management
  • Search provider settings

Image Storage

Stored under /data/images/

  • Image storage with user isolation
  • Image preview and management in chat interface
  • Automatic image cleanup on chat deletion

βš–οΈ License

CyberAI is licensed under the GNU General Public License v3.0 (GPLv3).
Free Software

License: GPL v3

Connect With Me 🀝

GitHub Twitter Website

About

WebUI for OpenAI, Ollama and Anthropic

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0