File size: 1,790 Bytes
50845fb
 
 
 
 
c424053
 
debed97
3fe0fdb
 
 
 
 
 
 
 
 
50845fb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
aaa6c56
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
import time
import streamlit as st
import requests
headers = {"Authorization": "Bearer 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"}


st.title("question-answering-demo")
option = st.selectbox('Select a model', ('distilbert-base-cased-distilled-squad', 'roberta-base-squad2-distilled', 'xlm-roberta-large-squad2', 'bert-large-cased-whole-word-masking-finetuned-squad'))
if option == "distilbert-base-cased-distilled-squad":
    API_URL = 'https://api-inference.huggingface.co/models/distilbert-base-cased-distilled-squad'
elif option == 'roberta-base-squad2-distilled':
    API_URL = 'https://api-inference.huggingface.co/models/deepset/roberta-base-squad2-distilled'
elif option == 'xlm-roberta-large-squad2':
    API_URL = "https://api-inference.huggingface.co/models/deepset/xlm-roberta-large-squad2"
if option == 'bert-large-cased-whole-word-masking-finetuned-squad':
    API_URL = 'https://api-inference.huggingface.co/models/bert-large-cased-whole-word-masking-finetuned-squad'
st.write(API_URL)
text_input = st.text_area("Enter some context👇")
text_question = st.text_input("Enter a question regarding that context👇")


def query(payload):
    retries = 0
    while True:
        response = requests.post(API_URL, headers=headers, json=payload)
        if response.status_code == 200:
            return response.json()
        elif response.status_code == 429:
            retries += 1
            wait_time = 2 ** retries
            print(f"Too many requests. Retrying in {wait_time} seconds...")
            time.sleep(wait_time)
        else:
            print(f"Request failed with status code {response.status_code}.")
            return None


if st.button("Send"):
    output = query({"inputs": {"question": text_question, "context": text_input}})
    st.write(output)