arbaazt21 commited on
Commit
a931bf1
·
verified ·
1 Parent(s): 5585884

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +58 -0
app.py ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import streamlit as st # type: ignore
3
+ import google.generativeai as gen_ai # type: ignore
4
+ from dotenv import load_dotenv
5
+ # load environment variables
6
+ load_dotenv()
7
+
8
+ # Configure Streamlit page setting
9
+ st.set_page_config(
10
+ page_title="Chat with GeminiPro",
11
+ page_icon=":brain",
12
+ layout="centered")
13
+
14
+
15
+ GOOGLE_API_KEY = os.getenv("GOOGLE_API_KEY")
16
+
17
+ #Setup Google GeminiPro AI Model
18
+ gen_ai.configure(api_key=GOOGLE_API_KEY)
19
+ model = gen_ai.GenerativeModel('gemini-pro')
20
+
21
+
22
+ # Function to translate roles between GeminiPro and Streamlit terminology
23
+ def translate_role_fo_streamlit(user_role):
24
+ if user_role == 'model':
25
+ return "Assistant"
26
+ else:
27
+ return user_role
28
+
29
+
30
+ # Initialize chat session in Streamlit if not already present
31
+ if "chat_session" not in st.session_state:
32
+ st.session_state.chat_session = model.start_chat(history=[])
33
+
34
+
35
+ # Display the Chatbot's title on the page
36
+ st.title("🤖Gemini-Pro AI Chatbot")
37
+
38
+
39
+ # Display the chat history
40
+ for message in st.session_state.chat_session.history:
41
+ with st.chat_message(translate_role_fo_streamlit(message.role)):
42
+ st.markdown(message.parts[0].text)
43
+
44
+
45
+ # Input field for user's message
46
+ user_prompt = st.chat_input("Ask GeminiPro")
47
+ if user_prompt:
48
+ # Add users's message to chat and display it
49
+ st.chat_message("user").markdown(user_prompt)
50
+
51
+
52
+ # Send user's message to GeminiPro and get the respone
53
+ gemini_response = st.session_state.chat_session.send_message(user_prompt)
54
+
55
+
56
+ # Display GeminiPro's response
57
+ with st.chat_message("Assistant"):
58
+ st.markdown(gemini_response.text)