Spaces:
Sleeping
Sleeping
#Generic | |
import os | |
import keyfile | |
import streamlit as st | |
import warnings | |
warnings.filterwarnings("ignore") | |
#Langchain Packages | |
from langchain_google_genai import ChatGoogleGenerativeAI | |
from langchain.schema import HumanMessage, SystemMessage, AIMessage | |
#First message that will pop on the screen | |
st.set_page_config(page_title = "Magical Healer") | |
st.header("Welcome, How can I help you?") | |
class AIMessage(BaseModel): | |
content: str | |
if "sessionMessages" not in st.session_state: | |
st.session_state["sessionMessages"]=[] | |
#General Instruction | |
if "sessionMessages" not in st.session_state: | |
st.session_state.sessionMessage=[ | |
SystemMessage(content="You are a medievel magical healer known for your peculiar sarcasm") | |
] | |
#Configure the key | |
os.environ["GOOGLE_API_KEY"] = keyfile.GOOGLEKEY | |
# Create the model | |
llm = ChatGoogleGenerativeAI( | |
model="gemini-1.5-pro", | |
temperature=0.7, | |
convert_system_message_to_human= True | |
) | |
#User message | |
def load_answer(question): | |
st.session_state.sessionMessages.append(HumanMessage(content=question)) | |
assistant_response = llm.invoke(st.session_state.sessionMessages) | |
# Assuming assistant_response is an object with a 'content' attribute | |
if hasattr(assistant_response, 'content') and isinstance(assistant_response.content, str): | |
processed_content = assistant_response.content | |
st.session_state.sessionMessages.append(AIMessage(content=processed_content)) | |
else: | |
st.error("Invalid response received from AI.") | |
processed_content = "Sorry, I couldn't process your request." | |
return processed_content | |
#Working with Responses | |
#def load_answer(question): | |
# st.session_state.sessionMessages.append(HumanMessage(content=question)) | |
# assistant_answer=llm.invoke(st.session_state.sessionMessages) | |
# st.session_state.sessionMessages.append(AIMessage(content = assistant_answer)) | |
# return assistant_answer.content | |
def get_text(): | |
input_text=st.text_input("You: ", key=input) | |
return input_text | |
#Implementing | |
user_input=get_text() | |
submit= st.button("Generate") | |
if submit: | |
resp=load_answer(user_input) | |
st.subheader("Answer: ") | |
st.write(resp,key=1) | |