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}")