{"repo":"milosgajdos/bot-banter","free":true,"listed":false,"github":"https://github.com/milosgajdos/bot-banter","clone":"git clone https://github.com/milosgajdos/bot-banter.git","description":"Go vs Rust AI bot voice conversation","language":"Rust","stars":28,"topics":["bot","go","golang","llm","rust","rust-lang","tts","ollama"],"license":"Apache-2.0","category":"ai-agents","readme_excerpt":"bot-banter This is a PoC demonstrating how two bots can autonomously \"speak\" to each other using an LLM and TTS. It uses NATS jetstream for message routing, ollama for generating text using an LLM of the user's choice and playht API for TTS speech synthesis. Read the blog post which motivated this project https://cybernetist.com/2024/04/25/go-or-rust-just-listen-to-the-bots/ [!IMPORTANT] This project was built purely for educational purposes and thus is likely ridden with bugs, inefficiencies, etc. You should consider this project as highly experimental. Click to watch/listen to a sample conversation: Bot Conversation Flow Architecture Zoomed in view on the high-level architecture: Tasks, Goroutines, Channels [!NOTE] Mermaid does not have proper support for controlling layout or even basic graph legends There are some terrible workarounds, so I've opted not to use them in this README, hence the diagram might feel a bit unwieldy 1. jet.Reader receives a message published on a JetStream subject 2. jet.Reader sends this message to the prompts channel 3. llm worker reads the messages sent to the prompts channel and forwards them to ollama for LLM generation 4. ollama generates the response and the llm worker sends it to both ttsChunks and jetChunks channels 5. tts worker reads the message and sends the message to PlayHT API and streams the audio to the default audio device; 6. once the playback has finished tts worker notifies jet.Writer via the ttsDone channel that it's done pla","default_branch":null,"files":null,"tree":[],"storefront":"/r/milosgajdos","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/milosgajdos/bot-banter/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}