maclenn77's picture
Add multiple pages (#22)
c87ff83
"""Sidebar component for the Streamlit app."""
import streamlit as st
import openai
from gnosis.components.handlers import set_api_key, click_wk_button
def delete_collection(client, collection):
"""Delete collection button."""
if st.button("Delete collection"):
st.warning("Are you sure?")
if st.button("Yes"):
try:
client.delete_collection(collection.name)
except AttributeError:
st.error("Collection erased.")
def openai_api_key_box():
"""Box for entrying OpenAi API Key"""
st.sidebar.write("## OpenAI API key")
openai.api_key = st.sidebar.text_input(
"Enter OpenAI API key",
value="",
type="password",
key="api_key",
placeholder="Enter your OpenAI API key",
on_change=set_api_key,
label_visibility="collapsed",
)
st.sidebar.write(
"You can find your API key at https://platform.openai.com/account/api-keys"
)
def creativity_slider():
"""Slider with temperature level"""
st.sidebar.subheader("Creativity")
st.sidebar.write("The higher the value, the crazier the text.")
st.sidebar.slider(
"Temperature",
min_value=0.0,
max_value=1.25, # Max level is 2, but it's too stochastic
value=0.5,
step=0.01,
key="temperature",
)
def wk_checkbox():
"""Wikipedia Checkbox for changing state"""
st.sidebar.checkbox(
"Use Wikipedia", on_change=click_wk_button, value=st.session_state.wk_button
)
# Sidebar
def sidebar(client, collection):
"""Sidebar component for the Streamlit app."""
with st.sidebar:
openai_api_key_box()
wk_checkbox()
creativity_slider()
delete_collection(client, collection)