Simple Chatbot application using Python, GoogleAPIKey

Google-GenerativeAI is Google AI Python SDK. It uses Gemini to build AI-powered features. In this article, we will see how to create a Simple Chatbot application using Python GoogleAPIKey.

What is Google-GenerativeAI?

Google-GenerativeAI is nothing but Google AI Python SDK. It enables to use of Gemini to build AI-powered features and applications. This SDK supports use cases like: We can use this SDK to generate text from text-only input/text and image input and it is applicable for Gemini only/chat purpose/embedding. It can be installed separately by using the below command.

pip install google-generativeai

Simple Chatbot application using Python, GoogleAPIKey

Below, are the implementation of the isSimple Chatbot application using Python GoogleAPIKey.

Prerequisites :

Steps to Create GoogleAPIKey

Step 1: There are different ways to sign in and if we go with email then, we can get the option of creating a new app as shown below. To redirect to GoogleAPI key-creating page click here.

Chosen third option

Step 2: Once we have given a name for an app, a similar vscode environment will be available. In the terminal, we can create any subdirectory under workspaces. Let us keep the name of the subdirectory to be “chatbot”

As it is the deployment environment, it will come up with automatic files as shown below

File Structure


Install requirements.txt

For install the requirements.txt file run the below command in terminal thourh which we can install all the dependencies for the project.

pip install -r requirements.txt

requirements.txt: It is the key file where all the dependent packages of Python are placed.

streamlit
google-generativeai

Install Necessary Library

For creating the chatbot we need to install the streamlit for creating GUI of the chatbot and also the google-generativeai for generate the response which we can install using the below command.

pip install streamlit 
pip install google-generativeai

Writing Code for Chatbot

Below are the step-by-step Implementatio of the code.

Step 1: Importing Libraries and Setting Up

Below code imports the Streamlit library as ‘st’ and Google’s GenerativeAI library as ‘genai’. It then uses Streamlit to create a simple chatbot page with a title. These elements enable the creation of a user-friendly interface for interacting with the chatbot.

Python3
import streamlit as st
import google.generativeai as genai

st.markdown("# Simple Chat Bot page ?")
st.sidebar.markdown("# Chat Bot page ?")

Step 2: Configuring Google API Key

below code sets up a Google API key for the GenerativeAI service, enabling its configuration for text generation and model interactions.

Python3
GOOGLE_API_KEY = "***************" #Replace with Google_Api_Key 
genai.configure(api_key=GOOGLE_API_KEY)

Step 3: Initializing Generative AI Model

Below code create a GenerativeAI model called “gemini-pro” using the variable b. It then starts a chat session using this model, with an empty history provided as input to initiate the conversation.

Python3
geminiModel=genai.GenerativeModel("gemini-pro") 
chat = geminiModel.start_chat(history=[])

Step 5: User Interface and Interaction

Below, code creates a simple chat interface using Streamlit, where users can input text and receive instant answers from a model. It maintains a chat history in the session state. Upon clicking the submit button, it retrieves a response from the “gemini-pro” model, updates the chat history, and displays both the response and the chat history in the interface.

Python3
st.header("A simple Chat Bot")

if 'chat_history' not in st.session_state:
    st.session_state['chat_history'] = []

inputText=st.text_input("Input: ",key="input")
submitButton=st.button("Get Instant answers")

if submitButton and inputText:
    output=get_gemini_response(inputText)
    st.session_state['chat_history'].append(("You", inputText))
    st.subheader("The Response is")
    for outputChunk in output:
        st.write(outputChunk.text)
        st.session_state['chat_history'].append(("Bot", outputChunk.text))

st.subheader("The Chat History is")
for role, text in st.session_state['chat_history']:
    st.write(f"{role}: {text}")

Complete Code

chatBot.py

Python
import streamlit as st
import google.generativeai as genai

st.markdown("# Simple Chat Bot page ?")
st.sidebar.markdown("# Chat Bot page ?")

# Replace the google_api_key here
GOOGLE_API_KEY = "***************" #Replace with Google_Api_Key 
genai.configure(api_key=GOOGLE_API_KEY)

## function to load Gemini Pro model and get repsonses
geminiModel=genai.GenerativeModel("gemini-pro") 
chat = geminiModel.start_chat(history=[])

def get_gemini_response(query):
    #Sends the conversation history with the added message and returns the model's response.
    instantResponse=chat.send_message(query,stream=True)
    return instantResponse

st.header("A simple Chat Bot")

# Initialize session state for chat history if it doesn't exist
if 'chat_history' not in st.session_state:
    st.session_state['chat_history'] = []

#Display a single-line text input widget.
inputText=st.text_input("Input: ",key="input")
submitButton=st.button("Get Instant answers")

if submitButton and inputText:
    # calls the get_gemini_response function by passing the inputText as query and gets the response as output
    output=get_gemini_response(inputText)
    # Add user query and response to session state chat history
    st.session_state['chat_history'].append(("You", inputText))
    st.subheader("The Response is")
    #Display the output in the app as Bot response
    for outputChunk in output:
        st.write(outputChunk.text)
        st.session_state['chat_history'].append(("Bot", outputChunk.text))
        
st.subheader("The Chat History is")
 # Piece of code to show the chat history in the app   
for role, text in st.session_state['chat_history']:
    st.write(f"{role}: {text}")

Run the Server

To run the server run the below command in terminal

python -m streamlit run chatBot.py

Output





Contact Us