Skip to content

πŸ€–βœ¨ Dialog-first platform for developing interactive AI-Powered assistant-like applications on Linux

License

Notifications You must be signed in to change notification settings

mydroidandi/commbase

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Python Package using Conda Python Version flake8 Lint json-lint Shell Linter

Commbase Commbase

Commbase

πŸ€–βœ¨ Dialog-first platform for developing interactive AI-Powered assistant-like applications on Linux

Introduction

Commbase, short for Communicative Commands Base, is a comprehensive platform designed to empower computers and computer-based devices with cutting-edge conversational AI capabilities. While it includes a flexible and extensible ✨ development framework ✨ at its core, Commbase goes beyond mere development tools. It serves as both a module and library bundler, incorporating third-party Language Models (LLMs, etc.) to enable advanced features such as "distributed AIs" or "multi-agent systems" (MAS). Commbase adapts across a diverse range of devices, from computers to smart appliances, robots, vehicles, Iron Man-like suits, starships, and beyond, ensuring universal accessibility and functionality. Operating effortlessly on either a single machine or a pair of machines in a client-server architecture, Commbase offers unparalleled adaptability and scalability.

Links and Resources

Features

Feature Insights

Topic Features
βš™οΈ Control & Accessibility Offers multiple methods to start and stop Commbase, including init systems, cron jobs, terminal commands, or voice commands. Provides a terminal-based interface and option for custom UIs.
πŸ–₯️ Multi-pane Support Facilitates multitasking and organization within Commbase by providing a versatile workspace with options for navigating between different functionalities.
πŸ“ Logging & Recording Enables transparent monitoring of system activity, troubleshooting, and security maintenance through the recording of terminal and voice commands, along with secure access control.
πŸ”§ Configuration Simplifies customization of Commbase to meet specific user needs and preferences by offering easy-to-adjust centralized configuration files for built-in options.
πŸ€– Advanced Capabilities Demonstrates sophistication and cutting-edge AI functionalities by integrating Language Models and advanced assistant capabilities such as language understanding and vision.

Detailed Feature Overview

Topic Features
πŸ› οΈ Installation & Setup * Detailed installation steps, structure, and contribution guidelines are available on the GitHub repository, ensuring secure and transparent setup processes.
πŸ’» Commands & Interfaces * Help option to see available built-in commands for terminal use or development.
* Built-in commands support both voice and terminal command calls.
βš™οΈ Control & Accessibility * Easy to start and stop using init systems, cron jobs, terminal commands, or voice commands.
* Terminal-based interface, with the option to create custom UIs.
πŸ”€ Navigation * Seamlessly switch among windows using keybindings to access dashboards, server connections, etc.
πŸ–₯️ Multi-pane Support * Multiple panes are provided, covering functionalities like the chat room, STT engine (Speech-to-Text), server pane, client pane, and additional options.
πŸ“‚ Custom Applications * Load custom terminal applications and seamlessly switch back to the chat room in the same pane.
🎨 Personalization * Customizable application, user, and assistant names.
πŸ“ Logging & Recording * Terminal and voice command recorder-transmitter area easy to install even in other hosts for remote control through networks, with enabled secure access control and logging.
πŸ”§ Configuration * Effortlessly adjust and customize your settings with our platform's centralized configuration files. No code is required to configure built-in options.
πŸ—£οΈ STT & TTS Engines * The STT Engine operates in Whisper reactive mode by default, with the ability to switch to Whisper proactive mode at any time.
* TTS Engines are dedicated for text-to-speech functionalities, so projects can effectively speak in various languages, enhancing accessibility and global reach.
🌍 Internationalization * Support to global audiences with seamless internationalization.
* Tailor your user experience by modifying i18n files to customize voice commands.
πŸ“œ Custom Scripting * Effortlessly create custom server-side command scripts with a single file catalog database (scalable to any RDBMS), our up-to-date well-documented API, and JSON simplicity.
* Write command scripts in any programming language.
♻️ Reusable Functions * Access to a comprehensive library of reusable functions to enhance custom command scripts with streamlined efficiency and tailored functionalities.
πŸ€– Advanced Capabilities * LLMs (Large Language Models), SLMs (Small Language Models), and other Language Models integration.
* Enhanced assistant capabilities with advanced language understanding, including additional features like vision.
πŸ“Š Activity Management * Efficiently manage your system's activity and user interactions by seamlessly integrating Commbase logs with custom app logs.
* Logs include customizable backups of past assistant-user conversations.
πŸ›‘οΈ Platform Stability * The use of Linux enhances the stability, reliability, and security of our software, ensuring robust and flexible performance in various environments.

Bundles

Bundles in Commbase refer to packaged collections of software components, applications, dependencies, or data that are bundled together for ease of distribution, installation, or deployment in various computing environments.

In the context of Commbase, users are allowed to modify existing bundles or create custom ones. This flexibility allows users to tailor the functionality and features to their specific needs, whether by adjusting configurations, integrating custom plugins or extensions, or creating entirely new functionalities within the software framework.

commbase-data-exchange

commbase-data-exchange

An application for exchanging JSON data over HTTP and WebSocket connections, allowing clients to save and retrieve JSON data in real-time. More Info

commbase-genai-llm-google-gemini-p

commbase-genai-llm-google-gemini-p

This app allows you to chat with Gemini, a powerful large language model. Ask questions, get creative writing inspiration, or receive help with tasks. More Info

commbase-genai-llm-meta-llama-p

commbase-genai-llm-meta-llama-p

This app allows you to interact with Llama, a large language model known for its factual language understanding and reasoning abilities. Ask questions, get help with research, or gain insights from complex information. More Info

commbase-genai-llm-openai-gpt-p

commbase-genai-llm-openai-gpt-p

An app designed to facilitate seamless interaction with the powerful OpenAI's GPT language model. This app empowers users to engage in natural language conversations with the model. More Info

commbase-genai-slm-ollama-phi3-mini-memory

commbase-genai-slm-ollama-phi3-mini-memory

Interacts with the Commbase platform by generating AI-driven responses using the Ollama API with the Phi3 mini model from Microsoft. This is a midweight implementation with session or short-term memory for language generation. More Info

commbase-genai-slm-ollama-phi3-mini-memory-remote-rag-pinecone

commbase-genai-slm-ollama-phi3-mini-memory-remote-rag-pinecone

Interacts with the Commbase platform by generating AI-driven responses using the Ollama API with the Phi3 mini model from Microsoft. This is a heavyweight implementation with memory for language generation, featuring remote RAG and Pinecone for persistent memory. More Info

commbase-genai-slm-ollama-phi3-mini-nomemory

commbase-genai-slm-ollama-phi3-mini-nomemory

Interacts with the Commbase platform by generating AI-driven responses using the Ollama API with the Phi3 mini model from Microsoft. This is a lightweight implementation without memory for language generation. More Info

commbase-recorder-transmitter-b

commbase-recorder-transmitter-b

commbase-recorder-transmitter-b is a voice recorder and recording transmitter for Commbase. It also supports sending the recorded audio file to a remote host using scp when the recording is stopped with another key press. More Info

commbase-recorder-transmitter-s

commbase-recorder-transmitter-s

commbase-recorder-transmitter-s is a voice recorder and recording transmitter for Commbase. It also supports sending the recorded audio file to a remote host using scp when the recording is stopped with another key press. More Info

commbase-stt-whisper-proactive-p

commbase-stt-whisper-proactive-p

This is an OpenAI's Whisper-based proactive ASR (Automatic Speech Recognition) engine designed to convert spoken language into written text without requiring an internet connection, making it a reliable and secure solution for any application that needs speech-to-text functionality. More Info

commbase-stt-whisper-reactive-p

commbase-stt-whisper-reactive-p

This is an OpenAI's Whisper-based reactive ASR (Automatic Speech Recognition) engine designed to convert spoken language into written text without requiring an internet connection, making it a reliable and secure solution for any application that needs speech-to-text functionality. More Info

commbase-text-translator-phi3-mini

commbase-text-translator-phi3-mini

Translates text from one language to another using the Ollama API with a specific Phi3 mini language model from Microsoft. More Info

commbase-tts-gTTS

commbase-tts-gTTS

A Commbase-ready TTS executable using gTTS (Google Text-to-Speech), a Python library and CLI tool to interface with Google Translate text-to-speech API. More Info

commbase-tts-gTTS

commbase-tts-pyttsx3

commbase-tts-pyttsx3 is a Python application that utilizes text-to-speech capabilities to read out the content of a file or any input text provided. It uses the pyttsx3 library for text-to-speech functionality. This application supports multiple languages, allowing you to generate speech in various languages. More Info

libcommbase

libcommbase

libcommbase is a core collection of libraries that provides foundational functionalities to Commbase and offers functionalities to Commbase-based applications. It centralizes common functions that can be shared across multiple conversational AI-powered assistant projects. More Info

Usage

Commbase

INSTALL Commbase and then run the next command in a terminal to start the program:

commbase start

Commbase will be ready to receive Commbase voice commands and Commbase terminal commands to assist you.

For more terminal options, run:

commbase -h

Check out the User's Guide for a complete list of options.

Installation

For information on how to install Commbase, follow the steps in the file INSTALL.

User's Guide

For information on how to set up, use, and program Commbase read the User's Guide.

Structure

This project is coded and organized like this:

/path/to/my/commbase/app
β”œβ”€β”€ assets  # Stores different types of assets, such as images, fonts, and ASCII art
β”‚   β”œβ”€β”€ ascii
β”‚   β”œβ”€β”€ docs  # Stores the Commbase User's Guide
β”‚   β”‚   └── images
β”‚   β”œβ”€β”€ fonts
β”‚   β”œβ”€β”€ icons
β”‚   └── images
β”œβ”€β”€ bundles  # External software bundle and external asset bundle
β”‚   β”œβ”€β”€ commbase-data-exchange
β”‚   β”‚   β”œβ”€β”€ client
β”‚   β”‚   β”‚   └── templates
β”‚   β”‚   β”œβ”€β”€ examples
β”‚   β”‚   └── server
β”‚   β”‚       β”œβ”€β”€ client_data
β”‚   β”‚       └── templates
β”‚   β”œβ”€β”€ commbase-genai-llm-google-gemini-p
β”‚   β”‚   └── examples
β”‚   β”œβ”€β”€ commbase-genai-llm-meta-llama-p
β”‚   β”‚   └── examples
β”‚   β”œβ”€β”€ commbase-genai-llm-openai-gpt-p
β”‚   β”‚   └── examples
β”‚   β”œβ”€β”€ commbase-genai-slm-ollama-phi3-mini-memory
β”‚   β”‚   └── examples
β”‚   β”œβ”€β”€ commbase-genai-slm-ollama-phi3-mini-memory-remote-rag-pinecone
β”‚   β”‚   β”œβ”€β”€ examples
β”‚   β”‚   └── resources
β”‚   β”‚       └── src
β”‚   β”œβ”€β”€ commbase-genai-slm-ollama-phi3-mini-nomemory
β”‚   β”‚   └── examples
β”‚   β”œβ”€β”€ commbase-recorder-transmitter-b
β”‚   β”‚   └── examples
β”‚   β”œβ”€β”€ commbase-recorder-transmitter-s
β”‚   β”‚   └── examples
β”‚   β”œβ”€β”€ commbase-stt-whisper-proactive-p
β”‚   β”‚   └── examples
β”‚   β”œβ”€β”€ commbase-stt-whisper-reactive-p
β”‚   β”‚   β”œβ”€β”€ client_data
β”‚   β”‚   └── examples
β”‚   β”œβ”€β”€ commbase-text-translator-phi3-mini
β”‚   β”‚   └── examples
β”‚   β”œβ”€β”€ commbase-tts-gTTS
β”‚   β”‚   └── examples
β”‚   β”œβ”€β”€ commbase-tts-pyttsx3
β”‚   └── libcommbase
β”‚       β”œβ”€β”€ examples
β”‚       β”œβ”€β”€ libcommbase
β”‚       β”‚   β”œβ”€β”€ interactive
β”‚       β”‚   └── routines
β”‚       └── resources
β”‚           β”œβ”€β”€ bundles
β”‚           β”‚   └── sounds
β”‚           └── i18n
β”‚               β”œβ”€β”€ control_patterns
β”‚               β”‚   └── openai_whisper_models
β”‚               β”‚       β”œβ”€β”€ base
β”‚               β”‚       └── ...
β”‚               β”œβ”€β”€ discourses
β”‚               β”œβ”€β”€ log_messages
β”‚               └── skill_patterns
β”‚                   └── openai_whisper_models
β”‚                       β”œβ”€β”€ base
β”‚                       └── ...
β”œβ”€β”€ certificates  # Stores the security certificates
β”œβ”€β”€ config  # Stores the configuration file
β”œβ”€β”€ data  # Stores the voice recognition model results and other data files
β”œβ”€β”€ env  # Stores the environment file
β”œβ”€β”€ history  # Stores the Commbase commands history
β”œβ”€β”€ i18n  # Stores resources related to localization and internationalization
β”‚   β”œβ”€β”€ discourses
β”‚   └── log_messages
β”œβ”€β”€ log  # Stores the log messages
β”œβ”€β”€ screenshots  # Stores the image commbase.png
β”œβ”€β”€ scripts  # Stores the scripts for deploying and configuring Commbase, and a few utils
β”‚   β”œβ”€β”€ configuration
β”‚   β”‚   β”œβ”€β”€ install_commbase_executable
β”‚   β”‚   └── reset_commbase.conf
β”‚   β”œβ”€β”€ deployment
β”‚   └── utilities
β”‚       β”œβ”€β”€ back-up
β”‚       └── bundles
β”‚           └── vu-meter
β”œβ”€β”€ src  # This directory contains user/dev-generated source code
β”‚   β”œβ”€β”€ client
β”‚   β”‚   β”œβ”€β”€ assets  # Stores different types of assets, such as images, fonts, and ASCII art
β”‚   β”‚   β”‚   β”œβ”€β”€ ascii
β”‚   β”‚   β”‚   └── docs  # Stores your app User's Guide
β”‚   β”‚   β”œβ”€β”€ bundles
β”‚   β”‚   β”‚   β”œβ”€β”€ audiobooks
β”‚   β”‚   β”‚   β”‚   └── Robinson_Crusoe
β”‚   β”‚   β”‚   β”œβ”€β”€ terminal-chat-gpt
β”‚   β”‚   β”‚   └── ...
β”‚   β”‚   β”œβ”€β”€ config
β”‚   β”‚   β”œβ”€β”€ i18n
β”‚   β”‚   β”‚   β”œβ”€β”€ discourses
β”‚   β”‚   β”‚   β”œβ”€β”€ log_messages
β”‚   β”‚   β”‚   └── skill_patterns
β”‚   β”‚   β”‚       └── openai_whisper_models
β”‚   β”‚   β”‚           β”œβ”€β”€ base
β”‚   β”‚   β”‚           └── ...
β”‚   β”‚   β”œβ”€β”€ log
β”‚   β”‚   └── serial_communication
β”‚   β”‚       β”œβ”€β”€ arduino
β”‚   β”‚       β”‚   β”œβ”€β”€ arduino_0
β”‚   β”‚       β”‚   β”‚   β”œβ”€β”€ commbase_hardware_notifications
β”‚   β”‚       β”‚   β”‚   β”‚   β”œβ”€β”€ sentiment_component
β”‚   β”‚       β”‚   β”‚   β”‚   β”œβ”€β”€ speech_to_text_engine_component
β”‚   β”‚       β”‚   β”‚   β”‚   └── ...
β”‚   β”‚       β”‚   β”‚   └── ...
β”‚   β”‚       β”‚   └── ...
β”‚   β”‚       └── ...
β”‚   β”œβ”€β”€ server
β”‚   β”‚   └── skills_db
β”‚   β”‚       β”œβ”€β”€ arduino
β”‚   β”‚       β”œβ”€β”€ bash
β”‚   β”‚       β”‚   β”œβ”€β”€ f
β”‚   β”‚       β”‚   β”‚   β”œβ”€β”€ firefox
β”‚   β”‚       β”‚   β”‚   └── ...
β”‚   β”‚       β”‚   └── o
β”‚   β”‚       β”‚       β”œβ”€β”€ openai
β”‚   β”‚       β”‚       └── ...
β”‚   β”‚       β”œβ”€β”€ c++
β”‚   β”‚       β”œβ”€β”€ java
β”‚   β”‚       β”œβ”€β”€ multi-lang
β”‚   β”‚       β”œβ”€β”€ nodejs
β”‚   β”‚       β”œβ”€β”€ python
β”‚   β”‚       β”œβ”€β”€ rust
β”‚   β”‚       └── ...
β”‚   └── tests
β”œβ”€β”€ tests  # Stores the Commbase tests
└── user  # Stores chat conversations, assistant's memories, and other user workspace files
    β”œβ”€β”€ analysis_zone
    β”œβ”€β”€ conversation_logs
    β”œβ”€β”€ knowledge_base
    β”œβ”€β”€ memory_store
    β”‚   β”œβ”€β”€ commbase-genai-slm-ollama-phi3-mini-memory-remote-rag-pinecone
    β”‚   β”‚   β”œβ”€β”€ build
    β”‚   β”‚   └── src
    β”‚   └── ...
    └── ...

Tech Stack

Core technologies directly involved in the application's functionality.

Required in The Default Installation

OpenAI Whisper | Ollama | Microsoft Phi3 | Pinecone | PyAudio | Awk | Git | Jq | SSH | Flask| NumPy | Pandas | Pyttsx3 | FFmpeg | GNU/Linux | Systemd | Bash | Bc | Python | Oh My Tmux | Tmux

Optional

Anaconda | Google Gemini | Meta Llama | OpenAI GPT | Pgvector | PyTorch | TensorFlow | PostgreSQL | Arduino C++ | Nvidia | Dash | Festival

Development

GitHub | Zsh | Bach | Flake8 | Pytest | ShellCheck

Contests

We are proud to participate in the following contests:

BackdropBuild Contest
BackdropBuild Contest
Gemini API Developer Competition
Gemini API Developer Competition

Sponsors

We extend our heartfelt thanks to the following sponsors for their generous support:

BackdropBuild
BackdropBuild

Providing valuable mentorship.

Vercel
Vercel

Contributing deployment resources for testing.

GitHub
GitHub

Providing access to advanced dev tools.

Pinecone
Pinecone

Supplying vector database services.

If you would like to sponsor our project, please reach out to [email protected].

Approach and Philosophy

Our software embraces minimalism, the DRY (Don't Repeat Yourself) principle, and KISS (Keep It Simple, Stupid), ensuring streamlined features and eliminating unnecessary repetition for improved efficiency and simplicity, in line with the Unix philosophy.

We adhere to industry-standard best practices in software engineering for design and architecture, ensuring the development of robust, scalable, and maintainable systems that meet the highest quality standards and user expectations.

The open-source nature of our project empowers developers to extend its capabilities by adding more bundles or writing their own code, fostering a collaborative and adaptable environment beyond voice commands.

Additionally, our modular design facilitates flexible customization and extension of functionalities according to user needs. You can also incorporate your unique serial and wireless hardware into our platform, enabling tailored communication and interaction with devices for enhanced versatility and functionality.

Dialog-First Software Development Paradigm

Our development philosophy is influenced by the emerging paradigm of Dialog-First, as detailed in Esteban Herrera Castro's paper "Dialog-First: The Future of AI Assistants and Voice-Controlled Software and Hardware." This paradigm prioritizes voice commands and conversational interfaces over traditional GUIs and manual controls, aiming to enhance user experience, accessibility, and efficiency.

By focusing on voice-first solutions, we address the limitations of conventional interfaces, making interactions more intuitive and reducing cognitive load. This approach not only improves usability but also supports diverse user needs, including those with disabilities that may find traditional interfaces challenging.

Furthermore, embracing Dialog-First allows our software to seamlessly integrate with various devices, from smartphones to specialized hardware, fostering innovation in fields like smart homes, healthcare, and beyond. This adaptability ensures that our platform remains at the forefront of technological advancements in voice-controlled software and hardware.

Contributing

To contribute to Commbase, follow these steps:

  1. Fork this repository.
  2. Create a branch: git checkout -b <branch_name>.
  3. Make your changes and commit them: git commit -m '<commit_message>'
  4. Push to the original branch: git push origin <project_name>/<location>
  5. Create the pull request.

Alternatively see the GitHub documentation on creating a pull request.

Contributors

Thanks to the following people who have contributed to this project:

Contact

If you want to contact us you can reach us at [email protected].

License

This project uses the following license: GPL-3.0.