Skip to main content

How to create a GenAI Talking Avatar ChatBot using Streamlit and Anthropic Claude LLM Model

GenAI Talking Avatar ChatBot using Streamlit and Anthropic Claude LLM Model

GenAI-Talking-Avatar-Chatbot is a web application that allows users to interact with an AI-powered talking chatbot with a static avatar. The chatbot uses AWS Bedrock for generating responses and Google Text-to-Speech (gTTS) for voice output. The backend is built with FastAPI, and the frontend uses Streamlit for the user interface.

Features

API Backend (api.py)
  • Provides an API endpoint to handle chat requests.
  • Uses AWS Bedrock to generate AI responses in a specified JSON format.
  • Ensures the responses include the message, avatar expression, and voice tone.
  • Includes a health check endpoint to verify the API status.
Chat UI (chat_frontend.py)
  • Chat Interface: Provides a chat interface where users can input their queries and receive responses from the AI assistant.
  • Avatar Display: Displays an avatar that changes expressions based on the AI assistant's responses and actions (e.g., thinking, speaking).
  • AI Response Handling: Sends user queries to an AI backend server and processes the responses to display clean messages in the chat interface.
  • Text-to-Speech: Converts the AI assistant's text responses into speech using Google Text-to-Speech (gTTS) and plays the audio using Pygame.
  • Session Management: Maintains the chat history and current avatar expression using Streamlit's session state.
  • Error Handling: Handles errors gracefully, displaying appropriate error messages to the user.

GitHub Repo: Clone and use latest code from here.

Comments

Popular posts from this blog

How to implement JUnit 5 in Your Maven or Gradle Project: A Step-by-Step Guide for Java Testing

Unit Testing JUnit Learn how to integrate JUnit 5 in your Maven or Gradle project for efficient Java testing. This guide covers adding dependencies, creating test classes, writing test methods, and running tests in IntelliJ IDEA and Visual Studio Code to ensure robust and error-free code. Step 1: Create a Simple Java Application Create a simple Java application, for example, “Copilot Demo,” and select Maven or Gradle as the build system through IntelliJ IDEA or Visual Studio Code. Step 2: Add JUnit Dependency For Maven: Add the following dependency to your pom.xml file inside the <dependencies> tag: XML <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>5.11.2</version> <scope>test</scope> </dependency> For Gradle: Add the following dependencies to your build.gradle file: dependencies { testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.11.2' } Step ...

How to Set Up SonarQube in IntelliJ: A Step-by-Step Guide

SonarQube in IntelliJ: (Looking for SonarLint then check here:  How to install and execute Sonarlint ) Setting up SonarQube in IntelliJ can significantly enhance your code quality by identifying bugs and vulnerabilities. Follow these steps to integrate SonarQube with IntelliJ: Step 1 :  Install SonarLint PluginOpen IntelliJ and navigate to Settings. Go to Plugins > Marketplace. Search for SonarLint, install it, and restart the IDE. Step 2 : Configure SonarLint Click on SonarLint at the bottom left of IntelliJ. Select Configure SonarLint. In the popup, check the box for Bind project to SonarQube/SonarCloud and click on Configure the connection. Step 3 :  Set Up the ConnectionIn the new popup, click the + icon to add a new connection. If the + icon is not visible, go to File > Settings > New UI and disable it. Apply changes and restart the IDE. Name your connection and select SonarQube. Enter the SonarQube URL (e.g., https://sonar.prod.company.com) and click Next....

How to Implement JBoss Narayana with Spring Boot: Java 21 to Master Distributed Transactions, Ensure Data Consistency, and Reliable Transactions

Integrating JBoss Narayana with Spring Boot : A Comprehensive Guide for Java 21 to Master Distributed Transactions, Ensure Data Consistency, and Reliable Transactions. Overview JBoss Narayana is a transaction manager that supports distributed transactions. It is part of the JBoss suite of projects and ensures data consistency across multiple resources, such as databases and message queues, in a distributed system. Narayana is compliant with the Java Transaction API (JTA) and supports both XA and non-XA transactions. Key FeaturesDistributed Transactions :  Ensures data consistency across multiple resources. JTA Compliance: Implements the Java Transaction API. Recovery: Provides mechanisms for transaction recovery in case of failures. Integration: Easily integrates with various Java EE and Spring applications. Compatibility : Compatible with Java 21 and other modern Java stacks 1 2 . Steps to Integrate JBoss Narayana in a Spring Boot Project Step 1: Add Dependencies Add the necessary...