ChatBotGemini / app.py
hanspaa2017108's picture
Update app.py
03acf19 verified
from dotenv import load_dotenv
load_dotenv()
import google.generativeai as genai
import os
import streamlit as st
genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
#call gemini model, receive response
model = genai.GenerativeModel("gemini-pro")
chat = model.start_chat(history=[])
#this function gives back response to question asked
def gemini_response(question):
response = chat.send_message(question, stream=True)
return response
#Streamlit Part (initialization app)
st.set_page_config(page_title = "Conversational Gemini ChatBot")
st.header("Powered by Google Gemini API")
# using session state of streamlit for chat history
#initially it is empty, later when we have conversations it will be stored in this session state
#name of session state is chat history
if 'chat_history' not in st.session_state:
st.session_state['chat_history'] = []
input = st.text_input("Input: ", key=input)
submit = st.button("Ask Question!")
if input and submit:
response = gemini_response(input)
st.session_state['chat_history'].append(("You", input))
st.subheader("The Response is...")
for chunk in response:
st.write(chunk.text)
st.session_state['chat_history'].append(("ChatBot", chunk))
st.subheader("The History is...")
for role, text in st.session_state['chat_history']:
st.write(f"{role}: {text}")