File size: 2,103 Bytes
af1cf81
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import streamlit as st
from PIL import Image

def set_state_if_absent(key, value):
    if key not in st.session_state:
        st.session_state[key] = value

def set_initial_state():
    set_state_if_absent("question", "Ask a question")
    set_state_if_absent("result", None)
    set_state_if_absent("haystack_started", False)

def reset_results(*args):
    st.session_state.result = None

def set_hf_api_key(api_key: str):
    st.session_state["HUGGING_FACE_TOKEN"] = api_key

def sidebar():
    with st.sidebar:
        image = Image.open('logo/haystack-logo-colored.png')

        st.markdown(
            "## How to use\n"
            "1. Enter your Hugging Face TGI API key below\n"
            "2. Ask a question\n"
            "3. Enjoy πŸ€—\n"
        )

        api_key_input = st.text_input(
            "Hugging Face TGI API Key",
            type="password",
            placeholder="Paste your Hugging Face TGI token here",
            value=st.session_state.get("HUGGING_FACE_TOKEN", ""),
        )

        if api_key_input:
            set_hf_api_key(api_key_input)

        st.markdown("---")
        st.markdown(
            "## How this works\n"
            "This app was built with [Haystack](https://haystack.deepset.ai) using the"
            " [`PromptNode`](https://docs.haystack.deepset.ai/docs/prompt_node) and custom [`PromptTemplate`](https://docs.haystack.deepset.ai/docs/prompt_node#templates).\n\n"
            " The source code is also on [GitHub](https://github.com/TuanaCelik/should-i-follow)"
            " with instructions to run locally.\n"
            "You can see how the `PromptNode` was set up [here](https://github.com/TuanaCelik/should-i-follow/blob/main/utils/haystack.py)")
        st.markdown("---")
        st.markdown("Made by [tuanacelik](https://twitter.com/tuanacelik)")
        st.markdown("---")
        st.markdown("""Thanks to [mmz_001](https://twitter.com/mm_sasmitha) 
                        for open sourcing [KnowledgeGPT](https://knowledgegpt.streamlit.app/) which helped me with this sidebar πŸ™πŸ½""")
        st.image(image, width=250)