Simple Chatbot application using Python, GoogleAPIKey
Last Updated :
02 Apr, 2024
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 optionStep 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
Similar Reads
Python Tutorial | Learn Python Programming Language Python Tutorial â Python is one of the most popular programming languages. Itâs simple to use, packed with features and supported by a wide range of libraries and frameworks. Its clean syntax makes it beginner-friendly.Python is:A high-level language, used in web development, data science, automatio
10 min read
Python Interview Questions and Answers Python is the most used language in top companies such as Intel, IBM, NASA, Pixar, Netflix, Facebook, JP Morgan Chase, Spotify and many more because of its simplicity and powerful libraries. To crack their Online Assessment and Interview Rounds as a Python developer, we need to master important Pyth
15+ min read
Python OOPs Concepts Object Oriented Programming is a fundamental concept in Python, empowering developers to build modular, maintainable, and scalable applications. By understanding the core OOP principles (classes, objects, inheritance, encapsulation, polymorphism, and abstraction), programmers can leverage the full p
11 min read
Python Projects - Beginner to Advanced Python is one of the most popular programming languages due to its simplicity, versatility, and supportive community. Whether youâre a beginner eager to learn the basics or an experienced programmer looking to challenge your skills, there are countless Python projects to help you grow.Hereâs a list
10 min read
Python Exercise with Practice Questions and Solutions Python Exercise for Beginner: Practice makes perfect in everything, and this is especially true when learning Python. If you're a beginner, regularly practicing Python exercises will build your confidence and sharpen your skills. To help you improve, try these Python exercises with solutions to test
9 min read
Python Programs Practice with Python program examples is always a good choice to scale up your logical understanding and programming skills and this article will provide you with the best sets of Python code examples.The below Python section contains a wide collection of Python programming examples. These Python co
11 min read
Enumerate() in Python enumerate() function adds a counter to each item in a list or other iterable. It turns the iterable into something we can loop through, where each item comes with its number (starting from 0 by default). We can also turn it into a list of (number, item) pairs using list().Let's look at a simple exam
3 min read
Python Data Types Python Data types are the classification or categorization of data items. It represents the kind of value that tells what operations can be performed on a particular data. Since everything is an object in Python programming, Python data types are classes and variables are instances (objects) of thes
9 min read
Python Introduction Python was created by Guido van Rossum in 1991 and further developed by the Python Software Foundation. It was designed with focus on code readability and its syntax allows us to express concepts in fewer lines of code.Key Features of PythonPythonâs simple and readable syntax makes it beginner-frien
3 min read
Input and Output in Python Understanding input and output operations is fundamental to Python programming. With the print() function, we can display output in various formats, while the input() function enables interaction with users by gathering input during program execution. Taking input in PythonPython input() function is
8 min read