sunnysharma20 commited on
Commit
db02bf4
·
verified ·
1 Parent(s): f5a537d

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +76 -0
app.py ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Generics
2
+ import os
3
+ import keyfile
4
+ import warnings
5
+ import streamlit as st
6
+ from pydantic import BaseModel
7
+ warnings.filterwarnings("ignore")
8
+
9
+ # Langchain packages
10
+ from langchain_google_genai import ChatGoogleGenerativeAI
11
+ from langchain.schema import HumanMessage, SystemMessage, AIMessage
12
+
13
+ # First message that will pop on the screen
14
+ st.set_page_config(page_title = "Magical Healer")
15
+ st.header("Welcome, What help do you need?")
16
+
17
+
18
+
19
+ class AIMessage(BaseModel):
20
+ content: str
21
+
22
+ # initializing the sessionMessages
23
+ if "sessionMessages" not in st.session_state:
24
+ st.session_state["sessionMessages"] = []
25
+ # General Instruction
26
+ if "sessionMessages" not in st.session_state:
27
+ st.session_state.sessionMessage = [
28
+ SystemMessage(content = "You are a medieval magical healer known for your peculiar sarcasm")
29
+ ]
30
+
31
+ # Configuring the key
32
+ os.environ["GOOGLE_API_KEY"] = keyfile.GOOGLEKEY
33
+
34
+ # Create a model
35
+ llm = ChatGoogleGenerativeAI(
36
+ model="gemini-1.5-pro",
37
+ temperature=0.7,
38
+ convert_system_message_to_human= True
39
+ )
40
+
41
+
42
+ # Response function
43
+ def load_answer(question):
44
+ st.session_state.sessionMessages.append(HumanMessage(content=question))
45
+ assistant_response = llm.invoke(st.session_state.sessionMessages)
46
+
47
+ # Assuming assistant_response is an object with a 'content' attribute
48
+ if hasattr(assistant_response, 'content') and isinstance(assistant_response.content, str):
49
+ processed_content = assistant_response.content
50
+ st.session_state.sessionMessages.append(AIMessage(content=processed_content))
51
+ else:
52
+ st.error("Invalid response received from AI.")
53
+ processed_content = "Sorry, I couldn't process your request."
54
+
55
+ return processed_content
56
+
57
+ # def load_answer(question):
58
+ # st.session_state.sessionMessages.append(HumanMessage(content = question))
59
+ # assistant_answer = llm.invoke(st.session_state.sessionMessages)
60
+ # st.session_state.sessionMessages.append(AIMessage(content = assistant_answer))
61
+ # return assistant_answer.content
62
+
63
+ # User message
64
+ def get_text():
65
+ input_text = st.text_input("You: ", key = input)
66
+ return input_text
67
+
68
+
69
+ # Implementation
70
+ user_input = get_text()
71
+ submit = st.button("Generate")
72
+
73
+ if submit:
74
+ resp = load_answer(user_input)
75
+ st.subheader("Answer: ")
76
+ st.write(resp, key = 1)