|
import streamlit as st |
|
from auth0_component import login_button |
|
|
|
AUTH0_CLIENT_ID = st.secrets['AUTH0_CLIENT_ID'] |
|
AUTH0_DOMAIN = st.secrets['AUTH0_DOMAIN'] |
|
|
|
|
|
def login(): |
|
if "user_name" in st.session_state or ("jump_query_ask" in st.session_state and st.session_state.jump_query_ask): |
|
return True |
|
st.subheader( |
|
"π€ Welcom to [MyScale](https://myscale.com)'s [ChatData](https://github.com/myscale/ChatData)! π€ ") |
|
st.write("You can now chat with ArXiv and Wikipedia! π\n") |
|
st.write("Built purely with streamlit π , LangChain π¦π and love β€οΈ for AI!") |
|
st.write( |
|
"Follow us on [Twitter](https://x.com/myscaledb) and [Discord](https://discord.gg/D2qpkqc4Jq)!") |
|
st.write( |
|
"For more details, please refer to [our repository on GitHub](https://github.com/myscale/ChatData)!") |
|
st.divider() |
|
col1, col2 = st.columns(2, gap='large') |
|
with col1.container(): |
|
st.write("Try out MyScale's Self-query and Vector SQL retrievers!") |
|
st.write("In this demo, you will be able to see how those retrievers " |
|
"**digest** -> **translate** -> **retrieve** -> **answer** to your question!") |
|
st.session_state["jump_query_ask"] = st.button("Query / Ask") |
|
with col2.container(): |
|
|
|
st.write("Now with the power of LangChain's Conversantional Agents, we are able to build " |
|
"an RAG-enabled chatbot within one MyScale instance! ") |
|
st.write("Log in to Chat with RAG!") |
|
st.write("Recommended to use the standalone version of Chat-Data, available [here](https://myscale-chatdata.hf.space/).") |
|
login_button(AUTH0_CLIENT_ID, AUTH0_DOMAIN, "auth0") |
|
st.divider() |
|
st.write("- [Privacy Policy](https://myscale.com/privacy/)\n" |
|
"- [Terms of Sevice](https://myscale.com/terms/)") |
|
if st.session_state.auth0 is not None: |
|
st.session_state.user_info = dict(st.session_state.auth0) |
|
if 'email' in st.session_state.user_info: |
|
email = st.session_state.user_info["email"] |
|
else: |
|
email = f"{st.session_state.user_info['nickname']}@{st.session_state.user_info['sub']}" |
|
st.session_state["user_name"] = email |
|
del st.session_state.auth0 |
|
st.experimental_rerun() |
|
if st.session_state.jump_query_ask: |
|
st.experimental_rerun() |
|
|
|
|
|
def back_to_main(): |
|
if "user_info" in st.session_state: |
|
del st.session_state.user_info |
|
if "user_name" in st.session_state: |
|
del st.session_state.user_name |
|
if "jump_query_ask" in st.session_state: |
|
del st.session_state.jump_query_ask |
|
|