/monadic-chat

A highly configurable Ruby framework for creating intelligent chatbots

Primary LanguageRubyMIT LicenseMIT

CI

 

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.

 

 

🌟 Command Line Version

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. The URL of the repository for the command line version is as follows

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
  • πŸ”ˆ Text-to-speech functionality for AI assistant responses
  • πŸ—£οΈ Choose the language and voice for text-to-speech (available on Google Chrome or Microsoft Edge)
  • πŸ—ΊοΈ Automatic language detection for appropriate text-to-speech playback
  • 😊 Enable voice conversations with the AI agent using speech recognition and text-to-speech

Image Generation

  • πŸ–ΌοΈ Generate images from text prompt using OpenAI's DALLΒ·E 2 API

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.