Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OmniBot v2.0 - Multi-Modal Tool Agent (Docker + Firebase)

This repository contains the full, modular code for a powerful AI assistant capable of persistent memory, multi-step tool execution, and multimodal communication (text, voice, vision, image generation).

The system runs on Windows (via Docker Desktop/WSL2) and uses local and cloud services simultaneously.

🧠 Architecture Overview

The system is split into multiple services:

gembot (Python Container): The core intelligence running discord_bot.py. It handles all reasoning, memory lookups, and tool coordination (Tool Agent).

omnibot-v2 (Nginx Container): Hosts the static web interface (index.html) for administration and a graphical chat interface.

Stable Diffusion (Native Windows): Handles local image generation for maximum GPU speed.

Firebase Firestore (Cloud): Stores shared, persistent Long-Term Memory (LTM) under the PRIMARY_USER ID.

⚙️ Setup and Configuration (CRITICAL)

Before building, you MUST configure your API keys and Firebase settings.

Step 1: Configure Secrets

Update the .env file in the root directory:

Variable

Source

Purpose

DISCORD_TOKEN

Discord Developer Portal

Bot connection

GEMINI_API_KEY

Google AI Studio

Search, Vision, TTS (Web/Python)

FIREBASE_API_KEY

Firebase Console (Web App Config)

Firestore REST API access

FIREBASE_PROJECT_ID

Firebase Console (Web App Config)

Identifies your database

Step 2: Configure Web Interface (omnibot-docker/index.html)

You must manually paste the secrets into the <script> tag inside index.html (since the browser cannot read .env).

Step 3: Database Preparation

Ensure a Native Firestore Database is created, and Anonymous Sign-in is enabled in the Firebase Console.

📦 File Structure

Directory/File

Purpose

discord_bot.py

Main Orchestrator. Handles Discord events and calls the Tool Agent.

tool_handlers.py

Contains all tool functions (e.g., generate_image, browse_website).

memory_db.py

Handles all CRUD operations with Firebase Firestore, using the hardcoded PRIMARY_USER ID for unified memory storage.

core.py

Contains the core query_llm function and configuration loader.

config.py

Global constants and environment variables.

gembot_views.py

Discord UI logic for interactive buttons.

omnibot-docker/

Contains the Dockerfile and index.html for the web server.

.dockerignore

Crucial for speed. Prevents large files (like Stable Diffusion) from being copied into the container during the build.

🚀 Launch Sequence (Windows)

Use the local launcher.bat script to start the entire system:

Build Images: Run this command first to ensure all modular files are compiled into the latest image:

docker build -t gembot .

Launch: Execute the launcher to start Stable Diffusion, the two containers, and open the web interface.

.\launcher.bat

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages