Skip to content

πŸ€– + 🐳 + 🐧 Monadic Chat is a framework designed to create and use intelligent chatbots. By providing a full-fledged Linux environment on Docker to GPT-4 and other LLMs, it allows the chatbots to perform advanced tasks that require external tools for searching, coding, testing, analysis, visualization, and more.

License

Notifications You must be signed in to change notification settings

yohasebe/monadic-chat

Repository files navigation

Β 

Grounding AI Chatbots with Full Linux Environment on Docker

Β 

tl;dr

Monadic Chat is a framework designed to create and use intelligent chatbots. By providing a full-fledged Linux environment on Docker to GPT-4 and other LLMs, it allows the chatbots to perform advanced tasks that require external tools. It also supports voice interaction, image and video recognition and generation, and AI-to-AI chat, suitable not only for using AI but also for developing and researching various applications.

  • Recent Updates
    • [Sep, 2024] 0.8.14
      • Many under-the-hood improvements
    • [Aug, 2024] 0.8.11
      • App authoring format changed
      • Claude Jupyter Notebook app added
      • Math rendering improved
      • Second Opinion app added
      • PDF Document import/export feature
    • [Jul, 2024]
      • Mistral AI (Chat and Code Interpreter) app added
      • Multiple images can be uploaded for image recognition
      • Continue button introduced
      • Jupyter Notebook app added
      • Browser auto open
      • Linux (Ubuntu/Debian) installer released
      • App file name changed from monadic-chat to Monadic Chat
      • Settings menu added
    • [Jun, 2024]
      • Speech Draft Helper app added (with TTS audio file generation)
      • Menu bar items added; Shared Folder asccessible on Windows
      • Better uninstallation of containers
      • Monadic Chat Console UI improved
      • AI-User feature introduced
      • Automatic Docker image rebuild feature
      • Source code block copy button added
      • Video Describer app added
    • Full Change Log

Documentation

Installation

There is another version of Monadic Chat, which is a command line app provided as a RubyGem.

Features

Basic Structure

  • πŸ€– Chat functionality powered by GPT-4 via OpenAI's Chat API
  • πŸ‘©β€πŸ’» Installable as a GUI application on Mac and Windows using Electron
  • 🌐 Usable as a web application in browsers
  • πŸ‘©πŸ’¬ πŸ€–πŸ’¬ Both human↔️AI chat and AI↔️AI chat are supported

AI + Linux Environment

  • 🐧 Provides a Linux environment (Ubuntu) freely accessible by AI
  • 🐳 Tools for LLMs via Docker containers
    • Python (+ pip) for tool/function calls
    • Ruby (+ gem) for tool/function calls
    • PGVector (+ PostgreSQL) for DAG using vector representation
    • Selenium (+ Chrome/Chromium) for web scraping
  • πŸ“¦ Each container can be managed via SSH
  • πŸ““ Python container can launch Jupyter Notebook

Data Management

  • πŸ’Ύ Export/import conversation data
  • πŸ’¬ Specify the number of recent messages (active messages) to send to the API
  • πŸ”’ Generate text embeddings from data in PDF files
  • πŸ“‚ Local data folders are synchronized with Docker containers for seamless interaction

Voice Interaction

  • πŸŽ™οΈ Automatic transcription of microphone input using OpenAI's Whisper API
  • πŸ”ˆ Text-to-speech functionality for AI assistant responses
  • πŸ—ΊοΈ Automatic language detection for appropriate text-to-speech playback
  • πŸ—£οΈ Choose the language and voice for text-to-speech
  • 😊 Enable interactive conversations with the AI agent using speech recognition and text-to-speech
  • 🎧 Text data can be spoken by the AI agent and saved as an MP3 audio file

Image and Video Recognition and Generation

  • πŸ–ΌοΈ Generate images from text prompts using OpenAI's DALLΒ·E 3 API
  • πŸ‘€ Analyze and describe the content of uploaded images
  • πŸ“š Multiple images can be uploaded for recognition
  • πŸŽ₯ Recognize and describe the content and audio of uploaded video

Configuration and Extension

  • πŸ’‘ Customize the AI agent's behavior by specifying API parameters and the system prompt
  • πŸ’Ž Extend functionality using the Ruby programming language
  • 🐍 Extend functionality using the Python programming language
  • 🌎 Perform web scraping using Selenium

Message Editing

  • πŸ“ Edit previous messages
  • πŸ—‘οΈ Delete specific messages
  • πŸ“œ Set roles (user, assistant, system) for new messages

Support for Multiple LLM APIs

  • πŸ‘₯ Multiple LLM APIs are supported:

    • OpenAI GPT-4
    • Google Gemini
    • Anthropic Claude
    • Cohere Command R
    • Mistral AI
  • πŸ€–πŸ’¬πŸ€– AI↔️AI Chat is available:

    AI-Assistant AI-User
    OpenAI GPT-4 ↔️ OpenAI GPT-4 or GPT4o
    Google Gemini ↔️ OpenAI GPT-4 or GPT4o
    Anthropic Claude ↔️ OpenAI GPT-4 or GPT4o
    Cohere Command R ↔️ OpenAI GPT-4 or GPT4o
    Mistral AI ↔️ OpenAI GPT-4 or GPT4o

Managing Conversations as Monads

  • ♻️ Manage (invisible) conversation state by obtaining additional responses from LLM and updating values in a predefined JSON object

Author

Yoichiro HASEBE
yohasebe@gmail.com

License

The gem is available as open source under the terms of the MIT License.

About

πŸ€– + 🐳 + 🐧 Monadic Chat is a framework designed to create and use intelligent chatbots. By providing a full-fledged Linux environment on Docker to GPT-4 and other LLMs, it allows the chatbots to perform advanced tasks that require external tools for searching, coding, testing, analysis, visualization, and more.

Topics

Resources

License

Stars

Watchers

Forks