File size: 1,427 Bytes
e936a3f
fb7ceee
 
e936a3f
bd1c309
e936a3f
fb7ceee
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e936a3f
 
fb7ceee
 
 
 
 
e936a3f
 
 
fb7ceee
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fbd4b06
e936a3f
bd1c309
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
import streamlit as st
import time
from queue import Queue

st.title("Falcon QA Bot")

huggingfacehub_api_token = st.secrets["hf_token"]

from langchain import HuggingFaceHub, PromptTemplate, LLMChain

repo_id = "tiiuae/falcon-7b-instruct"
llm = HuggingFaceHub(huggingfacehub_api_token=huggingfacehub_api_token, 
                     repo_id=repo_id, 
                     model_kwargs={"temperature":0.2, "max_new_tokens":2000})

template = """
You are an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions.

{question}

"""

queue = Queue()

def chat(query):
    prompt = PromptTemplate(template=template, input_variables=["question"])
    llm_chain = LLMChain(prompt=prompt,verbose=True,llm=llm)

    result = llm_chain.predict(question=query)

    return result

def main():
    input = st.text_input("What do you want to ask about", placeholder="Input your question here")
    if input:
        # Add the user's question to the queue
        queue.put(input)

        # Check if there are any waiting users
        if not queue.empty():
            # Get the next user's question from the queue
            query = queue.get()

            # Generate a response to the user's question
            result = chat(query)

            # Display the response to the user
            st.write(result,unsafe_allow_html=True)

if __name__ == '__main__':
    main()