Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
@@ -3,6 +3,8 @@ import torch
|
|
3 |
import torch.nn.functional as F
|
4 |
from torch import Tensor
|
5 |
from transformers import AutoTokenizer, AutoModel
|
|
|
|
|
6 |
import gradio as gr
|
7 |
import os
|
8 |
|
@@ -33,6 +35,12 @@ tasks = {
|
|
33 |
'TRECCOVID': 'Given a query on COVID-19, retrieve documents that answer the query',
|
34 |
}
|
35 |
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
tokenizer = AutoTokenizer.from_pretrained('intfloat/e5-mistral-7b-instruct')
|
37 |
model = AutoModel.from_pretrained('intfloat/e5-mistral-7b-instruct', torch_dtype=torch.float16, device_map=device)
|
38 |
|
@@ -56,7 +64,24 @@ def load_corpus_from_json(file_path):
|
|
56 |
with open(file_path, 'r') as file:
|
57 |
data = json.load(file)
|
58 |
return data
|
59 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
60 |
@spaces.GPU
|
61 |
def compute_embeddings(selected_task, input_text):
|
62 |
try:
|
@@ -160,8 +185,11 @@ def format_response(embeddings):
|
|
160 |
}
|
161 |
|
162 |
def generate_and_format_embeddings(selected_task, input_text):
|
163 |
-
|
164 |
-
|
|
|
|
|
|
|
165 |
|
166 |
def app_interface():
|
167 |
corpus_sentences = []
|
|
|
3 |
import torch.nn.functional as F
|
4 |
from torch import Tensor
|
5 |
from transformers import AutoTokenizer, AutoModel
|
6 |
+
import threading
|
7 |
+
import queue
|
8 |
import gradio as gr
|
9 |
import os
|
10 |
|
|
|
35 |
'TRECCOVID': 'Given a query on COVID-19, retrieve documents that answer the query',
|
36 |
}
|
37 |
|
38 |
+
|
39 |
+
# Global queue for embedding requests
|
40 |
+
embedding_request_queue = queue.Queue()
|
41 |
+
embedding_response_queue = queue.Queue()
|
42 |
+
|
43 |
+
|
44 |
tokenizer = AutoTokenizer.from_pretrained('intfloat/e5-mistral-7b-instruct')
|
45 |
model = AutoModel.from_pretrained('intfloat/e5-mistral-7b-instruct', torch_dtype=torch.float16, device_map=device)
|
46 |
|
|
|
64 |
with open(file_path, 'r') as file:
|
65 |
data = json.load(file)
|
66 |
return data
|
67 |
+
|
68 |
+
|
69 |
+
def embedding_worker():
|
70 |
+
while True:
|
71 |
+
# Wait for an item in the queue
|
72 |
+
item = embedding_request_queue.get()
|
73 |
+
if item is None:
|
74 |
+
break
|
75 |
+
selected_task, input_text = item
|
76 |
+
embeddings = compute_embeddings(selected_task, input_text)
|
77 |
+
formatted_response = format_response(embeddings)
|
78 |
+
|
79 |
+
embedding_response_queue.put(formatted_response)
|
80 |
+
embedding_request_queue.task_done()
|
81 |
+
|
82 |
+
threading.Thread(target=embedding_worker, daemon=True).start()
|
83 |
+
|
84 |
+
|
85 |
@spaces.GPU
|
86 |
def compute_embeddings(selected_task, input_text):
|
87 |
try:
|
|
|
185 |
}
|
186 |
|
187 |
def generate_and_format_embeddings(selected_task, input_text):
|
188 |
+
embedding_request_queue.put((selected_task, input_text))
|
189 |
+
response = embedding_response_queue.get()
|
190 |
+
embedding_response_queue.task_done()
|
191 |
+
return response
|
192 |
+
|
193 |
|
194 |
def app_interface():
|
195 |
corpus_sentences = []
|