Overview
Monadic Chat is a locally hosted web application designed to create and utilize intelligent chatbots. By providing a Linux environment on Docker to GPT and other LLMs, it allows the execution of advanced tasks that require external tools. It supports voice interaction, image and video recognition and generation, and AI-to-AI chat, making it useful not only for various AI applications but also for developing and researching AI-powered applications.
Available for Mac, Windows, and Linux (Debian/Ubuntu) with easy-to-use installers.
Getting Started
- Documentation (English/Japanese)
- Installation
What is Grounding?
Monadic Chat is an AI framework grounded in the real world. The term grounding here has two meanings.
Typically, discourse involves context and purpose, which are referenced and updated as the conversation progresses. Just as in human-to-human conversations, maintaining and referencing context is useful, or even essential, in conversations with AI agents. By defining the format and structure of meta-information in advance, it is expected that conversations with AI agents will become more purposeful. The process of users and AI agents advancing discourse while sharing a foundational background is the first meaning of "grounding."
Human users can use various tools to achieve their goals. However, in many cases, AI agents cannot do this. Monadic Chat enables AI agents to execute tasks using external tools by providing them with a freely accessible Linux environment. This allows AI agents to more effectively support users in achieving their goals. Since it is an environment on Docker containers, it does not affect the host system. This is the second meaning of "grounding."
Features
Basic Structure
- π€ Use of AI assistants via various web and local APIs
- βοΈ Easy Docker environment setup using a GUI app with Electron
- π Synchronized folder for syncing local files with files inside Docker containers
- π¦ User-added apps and containers functionality
- π¬ Support for both Human/AI chat and AI/AI chat
- β¨ Chat functionality utilizing multiple AI models
- π Automatic updates with in-app notifications and download management
AI + Linux Environment
- π§ Provision of a Linux environment to AI agents
- π³ Tools available to LLMs via Docker containers
- Linux (+ apt)
- Ruby (+ gem)
- Python (+ pip)
- PGVector (+ PostgreSQL)
- Selenium (+ Chrome/Chromium)
- β‘οΈ Use of LLMs via online and local APIs
- π¦ Each container can be managed via SSH
- π Integration with Jupyter Notebook
AI User & Conversation Management
- π§ AI User feature allowing the AI to generate responses as if coming from a human user
- π Maintains the user's tone, style, and language in AI-generated user messages
- π Works with multiple AI providers including OpenAI, Claude, Gemini, Mistral, and more
- πΎ Export/import chat data
- π Edit chat data (add, delete, edit)
- π¬ Specify the number of messages to send to the API as context size
- π Set roles for messages (user, assistant, system)
- π’ Generate and import/export text embeddings from PDFs
- πΌ Logging of code execution and tool/function use for debugging
Voice Interaction
- π Text-to-speech for AI assistant responses (OpenAI or Elevenlabs)
- ποΈ Speech recognition using the Speech-to-Text API (+ display of p-values)
- πΊοΈ Automatic language detection for text-to-speech
- π£οΈ Choose the language and voice for text-to-speech
- π Interactive conversation with AI agents using speech recognition and text-to-speech
- π§ Save AI assistant's spoken responses as MP3 audio files
Image/Video Recognition and Generation
- πΌοΈ Image generation using DALLΒ·E 3 API and Google Imagen
- π Recognition and description of uploaded images
- π Upload and recognition of multiple images
- π₯ Recognition and description of uploaded video content and audio
Configuration and Extension
- π‘ Specify and edit API parameters and system prompts
- π§© Create custom applications with Monadic DSL (Domain Specific Language)
- π Create diagrams with DrawIO Grapher and Mermaid Grapher apps
- π Extend functionality using the Ruby programming language
- π Extend functionality using the Python programming language
- π Web search capabilities using the Tavily API and OpenAI's built-in search feature
- π Perform web scraping using Selenium
- π¦ Add custom Docker containers
Support for Multiple LLM APIs
- π₯ Web API
- π¦ Ollama in the local Docker environment
- Llama
- Phi
- Mistral
- Gemma
- DeepSeek
- π€π¬π€ AI-to-AI chat functionality
Conversations as Monads
- β»οΈ In addition to the main response from the AI assistant, it is possible to manage the (invisible) state of the conversation by obtaining additional responses and updating values within a predefined JSON object
Developer
Yoichiro HASEBE
yohasebe@gmail.com
License
This software is available as open source under the terms of the Apache License 2.0.