Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
@@ -6,17 +6,18 @@ import uvicorn
|
|
6 |
import re
|
7 |
from dotenv import load_dotenv
|
8 |
from spaces import GPU
|
|
|
9 |
|
10 |
load_dotenv()
|
11 |
|
12 |
-
app = FastAPI()
|
13 |
-
|
14 |
# Initialize ZeroGPU
|
15 |
try:
|
16 |
-
|
17 |
except Exception as e:
|
18 |
print(f"ZeroGPU initialization failed: {e}")
|
19 |
|
|
|
|
|
20 |
# Global data dictionary
|
21 |
global_data = {
|
22 |
'models': {},
|
@@ -120,16 +121,22 @@ def remove_repetitive_responses(responses):
|
|
120 |
unique_responses.append({'model': response['model'], 'response': normalized_response})
|
121 |
return unique_responses
|
122 |
|
123 |
-
|
124 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
125 |
async def generate(request: ChatRequest):
|
126 |
try:
|
127 |
inputs = normalize_input(request.message)
|
128 |
futures = [
|
129 |
-
executor.submit(model
|
130 |
for model in global_data['models'].values()
|
131 |
]
|
132 |
-
responses = [{'model':
|
133 |
unique_responses = remove_repetitive_responses(responses)
|
134 |
return unique_responses
|
135 |
except Exception as e:
|
|
|
6 |
import re
|
7 |
from dotenv import load_dotenv
|
8 |
from spaces import GPU
|
9 |
+
from spaces.zero import ZeroGPU
|
10 |
|
11 |
load_dotenv()
|
12 |
|
|
|
|
|
13 |
# Initialize ZeroGPU
|
14 |
try:
|
15 |
+
ZeroGPU.initialize()
|
16 |
except Exception as e:
|
17 |
print(f"ZeroGPU initialization failed: {e}")
|
18 |
|
19 |
+
app = FastAPI()
|
20 |
+
|
21 |
# Global data dictionary
|
22 |
global_data = {
|
23 |
'models': {},
|
|
|
121 |
unique_responses.append({'model': response['model'], 'response': normalized_response})
|
122 |
return unique_responses
|
123 |
|
124 |
+
def generate_model_response(model, inputs, top_k, top_p, temperature):
|
125 |
+
try:
|
126 |
+
return model.generate(inputs, top_k=top_k, top_p=top_p, temperature=temperature)
|
127 |
+
except Exception as e:
|
128 |
+
print(f"Error generating response with model {model}: {e}")
|
129 |
+
return ""
|
130 |
+
|
131 |
+
@app.post("/generate")
|
132 |
async def generate(request: ChatRequest):
|
133 |
try:
|
134 |
inputs = normalize_input(request.message)
|
135 |
futures = [
|
136 |
+
executor.submit(generate_model_response, model, inputs, request.top_k, request.top_p, request.temperature)
|
137 |
for model in global_data['models'].values()
|
138 |
]
|
139 |
+
responses = [{'model': model_name, 'response': future.result()} for model_name, future in zip(global_data['models'].keys(), as_completed(futures))]
|
140 |
unique_responses = remove_repetitive_responses(responses)
|
141 |
return unique_responses
|
142 |
except Exception as e:
|