Illia56's picture
Update app.py
be772b0
raw
history blame
2.4 kB
import streamlit as st
from bardapi import Bard
import os
import requests
session = requests.Session()
session.headers = {
"Host": "bard.google.com",
"X-Same-Domain": "1",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36",
"Content-Type": "application/x-www-form-urlencoded;charset=UTF-8",
"Origin": "https://bard.google.com",
"Referer": "https://bard.google.com/",
}
session.cookies.set("__Secure-1PSID", os.getenv("_BARD_API_KEY"))
bard = Bard(token=os.getenv("_BARD_API_KEY"), session=session)
TITLE = "Palm 2🌴 Chatbot"
DESCRIPTION = """
"""
# Prediction function
def predict(message):
with st.status("Requesting Palm-2🌴..."):
st.write("Requesting API...")
response = bard.get_answer(message+'Rule 1: If User requires a code snippet, write each code snippet only in that way that it would run in streamlit app.')
st.write("Done...")
st.write("Checking images...")
for i in response['images']:
st.image(i)
return response
# Streamlit UI
st.title(TITLE)
st.write(DESCRIPTION)
if "messages" not in st.session_state:
st.session_state.messages = []
# Display chat messages from history on app rerun
for message in st.session_state.messages:
with st.chat_message(message["role"]):
st.markdown(message["content"])
# React to user input
if prompt := st.chat_input("Ask Palm 2 anything..."):
# Display user message in chat message container
st.chat_message("human",avatar = "πŸ§‘β€πŸ’»").markdown(prompt)
# Add user message to chat history
st.session_state.messages.append({"role": "human", "content": prompt})
response = predict(prompt)
# Display assistant response in chat message container
with st.chat_message("assistant", avatar='🌴'):
st.markdown(response['content'])
if response['code']:
# if st.button('Run Code'):
with st.status("Running code..."):
try:
exec(response['code'])
except Exception as e:
st.write(f"ERROR {e}...")
# Add assistant response to chat history
st.session_state.messages.append({"role": "assistant", "content": response['content']})