Spaces:
ismot
/
Runtime error

ismot jaimin commited on
Commit
58d565f
·
0 Parent(s):

Duplicate from jaimin/LongAnswer

Browse files

Co-authored-by: Jaimin Mungalpara <[email protected]>

Files changed (4) hide show
  1. .gitattributes +31 -0
  2. README.md +13 -0
  3. app.py +80 -0
  4. requirements.txt +2 -0
.gitattributes ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ftz filter=lfs diff=lfs merge=lfs -text
6
+ *.gz filter=lfs diff=lfs merge=lfs -text
7
+ *.h5 filter=lfs diff=lfs merge=lfs -text
8
+ *.joblib filter=lfs diff=lfs merge=lfs -text
9
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
10
+ *.model filter=lfs diff=lfs merge=lfs -text
11
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
12
+ *.npy filter=lfs diff=lfs merge=lfs -text
13
+ *.npz filter=lfs diff=lfs merge=lfs -text
14
+ *.onnx filter=lfs diff=lfs merge=lfs -text
15
+ *.ot filter=lfs diff=lfs merge=lfs -text
16
+ *.parquet filter=lfs diff=lfs merge=lfs -text
17
+ *.pickle filter=lfs diff=lfs merge=lfs -text
18
+ *.pkl filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pt filter=lfs diff=lfs merge=lfs -text
21
+ *.pth filter=lfs diff=lfs merge=lfs -text
22
+ *.rar filter=lfs diff=lfs merge=lfs -text
23
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
24
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
25
+ *.tflite filter=lfs diff=lfs merge=lfs -text
26
+ *.tgz filter=lfs diff=lfs merge=lfs -text
27
+ *.wasm filter=lfs diff=lfs merge=lfs -text
28
+ *.xz filter=lfs diff=lfs merge=lfs -text
29
+ *.zip filter=lfs diff=lfs merge=lfs -text
30
+ *.zst filter=lfs diff=lfs merge=lfs -text
31
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: LongAnswer
3
+ emoji: 🐠
4
+ colorFrom: yellow
5
+ colorTo: purple
6
+ sdk: streamlit
7
+ sdk_version: 1.10.0
8
+ app_file: app.py
9
+ pinned: false
10
+ duplicated_from: jaimin/LongAnswer
11
+ ---
12
+
13
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
app.py ADDED
@@ -0,0 +1,80 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pinecone
2
+ import streamlit as st
3
+ from transformers import pipeline
4
+ from sentence_transformers import SentenceTransformer
5
+
6
+ PINECONE_KEY = 'b2aaea5e-1395-4270-8c6b-2c89ff1d0a13'
7
+
8
+ @st.experimental_singleton
9
+ def init_pinecone():
10
+ pinecone.init(api_key=PINECONE_KEY, environment="us-west1-gcp") # get a free api key from app.pinecone.io
11
+ return pinecone.Index("extractive-question-answering")
12
+
13
+ @st.experimental_singleton
14
+ def init_models():
15
+ retriever = SentenceTransformer("multi-qa-MiniLM-L6-cos-v1")
16
+ model_name = 'jaimin/bert-large-squad'
17
+ reader = pipeline(tokenizer=model_name, model=model_name, task='question-answering')
18
+ return retriever, reader
19
+
20
+ st.session_state.index = init_pinecone()
21
+ retriever, reader = init_models()
22
+
23
+
24
+ def card(title, context, score):
25
+ return st.markdown(f"""
26
+ <div class="container-fluid">
27
+ <div class="row align-items-start">
28
+ <div class="col-md-12 col-sm-12">
29
+ <b>{title}</b>
30
+ <br>
31
+ <span style="color: #808080;">
32
+ <small>{context}</small>
33
+ [<b>Score: </b>{score}]
34
+ </span>
35
+ </div>
36
+ </div>
37
+ </div>
38
+ """, unsafe_allow_html=True)
39
+
40
+ st.title("")
41
+
42
+ st.write("""
43
+ # Extractive Question Answering
44
+ Ask me a question!
45
+ """)
46
+
47
+ st.markdown("""
48
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
49
+ """, unsafe_allow_html=True)
50
+
51
+ def run_query(query):
52
+ xq = retriever.encode([query]).tolist()
53
+ try:
54
+ xc = st.session_state.index.query(xq, top_k=3, include_metadata=True)
55
+ except:
56
+ # force reload
57
+ pinecone.init(api_key=PINECONE_KEY, environment="us-west1-gcp")
58
+ st.session_state.index = pinecone.Index("extractive-question-answering")
59
+ xc = st.session_state.index.query(xq, top_k=3, include_metadata=True)
60
+
61
+ results = []
62
+ for match in xc['matches']:
63
+ answer = reader(question=query, context=match["metadata"]['context'])
64
+ answer["title"] = match["metadata"]['title']
65
+ answer["context"] = match["metadata"]['context']
66
+ results.append(answer)
67
+
68
+ sorted_result = sorted(results, key=lambda x: x['score'], reverse=True)
69
+
70
+ for r in sorted_result:
71
+ answer = r["answer"]
72
+ context = r["context"].replace(answer, f"<mark>{answer}</mark>")
73
+ title = r["title"].replace("_", " ")
74
+ score = round(r["score"], 4)
75
+ card(title, context, score)
76
+
77
+ query = st.text_input("Search!", "")
78
+
79
+ if query != "":
80
+ run_query(query)
requirements.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ pinecone-client
2
+ sentence_transformers