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 Lombok in IntelliJ for Java Projects: A Step-by-Step Guide

Lombok in IntelliJ for Java Projects Implementing Lombok in your Java project can streamline your code by reducing boilerplate. Follow these steps to set up Lombok in IntelliJ: Step 1 :  Ensure Java SDK Version. Ensure that your project is using Java 8 or higher.  You can check and set the Java SDK version in pom.xml: XML <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> Step 2 : Add Lombok Dependency to pom.xmlOpen the pom.xml file in your project. Add the following Lombok dependency inside the <dependencies> section: XML <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.24</version> <scope>provided</scope> </dependency> Step 3 : Download Lombok Plugin for IntelliJ IDEAGo to File > Settings (or press Ctrl+Alt+S). Navigate to Plugins. Search for Lombo...

How to Implement Infinispan Cache in Spring Boot with Java 21: A Step-by-Step Guide for Efficient Caching

Infinispan Cache in Spring Boot with Java 21 : Let’s learn how to integrate Infinispan cache in your Spring Boot project using Java 21. This post covers adding dependencies, enabling caching, configuring Infinispan, and more to enhance your application’s performance. Step 1: Add Infinispan Dependencies Add the necessary Infinispan dependencies to your pom.xml file. XML <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </dependency> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-core</artifactId> <version>2.5.4</version> </dependency> <dependency> <groupId>org.infinispan</groupId> <artifactId>infinispan-spring-boot-starter-embedded</artifactId> <version>13.0.0.Final</version> </dependency> For Gradle, add the following dependencies to your build.gradle file: im...