Β
A highly configurable Ruby framework for creating intelligent chatbots
Β
Overview
π Monadic Chat is a highly configurable web application framework for creating and using intelligent chatbots, leveraging the power of OpenAI's Chat and Whisper APIs and the Ruby programming language.
-
Documentation
-
Download Installer
Β
Β
There are two types of Monadic Chat: one is a web browser-based app provided in this repository, which is installed using Docker. The other is a command line application, which is provided as a RubyGem.
- Monadic Chat (this repo)
- Monadic Chat CLI
Features
Basic Structure
- π€ Powered by GPT-3.5 or GPT-4 via OpenAI's Chat API, with unlimited conversation turns
- π©βπ» Multi-OS support using Docker for Mac, Windows, or Linux
Data Management
- πΎ Export/import messages and settings
- π¬ Specify the number of recent messages (active messages) to send to the API, while storing and exporting older messages (inactive messages)
- π’ Generate text embeddings from data in multiple PDF files and query their content using OpenAI's text embedding API
Voice Interaction
- ποΈ Automatic transcription of microphone input using OpenAI's Whisper API
- π Natural text-to-speech voices for AI assistant responses
- πΊοΈ Automatic language detection for appropriate text-to-speech playback
- π Voice chat with the AI agent using speech recognition and text-to-speech
Image Generation
- πΌοΈ Generate images from text prompt using OpenAI's DALLΒ·E 3 API
Image Understanding
- π Local images can be uploaded and let AI assistant analyze what are in them
Configuration and Extension
- π‘ Customize the AI agent's behavior by specifying API parameters and the system prompt
- π Extend functionality using the Ruby programming language
Message Editing
- π Edit previous messages and retry when the desired AI agent response is not obtained
- ποΈ Delete specific messages from previous conversations
- π Add preceding messages with user, assistant, or system roles
Advanced
- πͺ Obtain additional information alongside the primary AI assistant response and store it as the conversation state 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.