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

chat interface admin dashboard

Note: Screenshots may not reflect the latest UI/UX rework.

CyberAI

Secure Multi-Model AI Chat Platform

πŸ€– Multiple AI Models | 🌍 Web UI | ⚑ Real-time Streaming | πŸ”’ Secure | 🎨 Cyberpunk Terminal

Version 0.1.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.

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)
  • Custom agent system with specialized prompts
  • Model enumeration system
  • Per-user model access control
  • Endpoint registration system
  • Model discovery system
  • 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
  • Cyberpunk S3270 terminal-inspired design (Penguin UI theme)
  • Unified style across Chat and Admin interfaces
  • Dynamic model selection dropdowns
  • 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 API endpoint storage
  • Protected WebSocket connections
  • Input sanitization
  • C691
  • Encrypted sensitive data

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
  • -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

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

βš–οΈ 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