Multimodal Matrix chatbot using ollama, flux.1-schnell, kokoro, and whisper https://we2.ee/@@ai
Find a file
2025-02-03 18:35:36 +00:00
.gitignore Create .gitignore 2025-01-07 22:59:40 -08:00
ai_selfportrait.jpg Auto-update: Sat Jan 18 21:29:26 PST 2025 2025-01-18 21:29:26 -08:00
config.yaml-example Auto-update: Sun Jan 26 11:16:46 PST 2025 2025-01-26 11:16:46 -08:00
LICENSE Add LICENSE 2025-02-03 18:20:23 +00:00
llux.py Auto-update: Sat Jan 18 19:49:07 PST 2025 2025-01-18 19:49:07 -08:00
llux.sh Auto-update: Sun Jan 26 11:16:46 PST 2025 2025-01-26 11:16:46 -08:00
README.md Update README.md 2025-02-03 18:35:36 +00:00
requirements.txt Create requirements.txt 2025-01-07 22:59:01 -08:00
welcome.jpg Upload files to "/" 2025-01-08 07:09:50 +00:00

llux self-portrait

llux

llux is an AI chatbot for the Matrix chat protocol. It uses local LLMs via Ollama for chat and image recognition, offers image generation via Diffusers, specifically FLUX.1, and an OpenAI-compatible API for text-to-speech (e.g. Kokoro FasAPI by remsky). Each user in a Matrix room can set a unique personality (or system prompt), and conversations are kept per user, per channel. Model switching is also supported if you have multiple models installed and configured.

You're welcome to try the bot out on We2.ee at #ai:we2.ee.

Getting Started

  1. Install Ollama
    Youll need Ollama to run local LLMs (text and multimodal). A quick install:

    curl https://ollama.ai/install.sh | sh
    

    Choose your preferred models. For base chat functionality, good options include: llama3.3 and phi4. For multimodal chat, youll need a vision model. I recommend llama3.2-vision. This can be — but doesnt have to be — the same as your base chat model.

    Pull your chosen model(s) with:

    ollama pull <modelname>
    
  2. Create a Python Environment (Recommended)
    You can use either conda/mamba or venv:

    # Using conda/mamba:
    mamba create -n llux python=3.10
    conda activate llux
    
    # or using Python's built-in venv:
    python3 -m venv venv
    source venv/bin/activate
    
  3. Install Dependencies
    Install all required Python libraries from requirements.txt:

    pip install -r requirements.txt
    

    This will install:

    • matrix-nio for Matrix connectivity
    • diffusers for image generation
    • ollama for local LLMs
    • torch for the underlying deep learning framework
    • pillow for image manipulation
    • markdown, pyyaml, etc.
  4. Set Up Your Bot

    • Create a Matrix account for your bot (on a server of your choice).
    • Record the server, username, and password.
    • Copy config.yaml-example to config.yaml (e.g., cp config.yaml-example config.yaml).
    • In your new config.yaml, fill in the relevant fields (Matrix server, username, password, channels, admin usernames, etc.). Also configure the Ollama section for your model settings and the Diffusers section for image generation (model, device, steps, etc.).

    Note: this bot was designed for macOS on Apple Silicon. It has not been tested on Linux. It should work on Linux but might require some minor changes, particularly for image generation. At the very least you will need to change device in config.yaml from mps to your torch device, e.g., cuda.

  5. Run llux

    python3 llux.py
    

    If youre using a virtual environment, ensure its activated first.

Usage

  • .ai message or botname: message
    Basic conversation or roleplay prompt. By replying with this prompt to an image attachment on Matrix, you engage your multimodal / vision model and can ask the model questions about the image attachment.

  • .img prompt Generate an image with the prompt

  • .tts text Convert the provided text to speech

  • .x username message
    Interact with another users chat history (use the display name of that user).

  • .persona personality
    Set or change to a specific roleplaying personality.

  • .custom prompt
    Override the default personality with a custom system prompt.

  • .reset
    Clear your personal conversation history and revert to the preset personality.

  • .stock
    Clear your personal conversation history, but do not apply any system prompt.

Admin Commands

  • .model modelname

    • Omit modelname to show the current model and available options.
    • Include modelname to switch to that model.
  • .clear
    Reset llux for everyone, clearing all stored conversations, deleting image cache, and returning to the default settings.

License & Attribution

llux is based in part on ollamarama-matrix by h1ddenpr0cess20. For that reason it is covered by the same AGPL-3.0 license.