Update app.py
Browse files
app.py
CHANGED
|
@@ -48,7 +48,7 @@ except Exception as e:
|
|
| 48 |
|
| 49 |
# Inizializza il client di Hugging Face
|
| 50 |
try:
|
| 51 |
-
client = InferenceClient(HF_MODEL, token=HF_API_KEY)
|
| 52 |
logger.info("InferenceClient inizializzato correttamente.")
|
| 53 |
except Exception as e:
|
| 54 |
logger.error(f"Errore nell'inizializzazione di InferenceClient: {e}")
|
|
@@ -234,6 +234,8 @@ async def call_hf_model(prompt: str, temperature: float = 0.5, max_tokens: int =
|
|
| 234 |
stream=stream
|
| 235 |
)
|
| 236 |
|
|
|
|
|
|
|
| 237 |
if stream:
|
| 238 |
# Gestisci lo stream
|
| 239 |
generated_text = ""
|
|
@@ -244,15 +246,22 @@ async def call_hf_model(prompt: str, temperature: float = 0.5, max_tokens: int =
|
|
| 244 |
return generated_text.strip()
|
| 245 |
else:
|
| 246 |
# Risposta non in streaming
|
| 247 |
-
|
| 248 |
-
|
| 249 |
-
|
| 250 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 251 |
else:
|
| 252 |
-
raise ValueError("
|
| 253 |
|
| 254 |
# Forza la risposta su una singola linea se multilinea
|
| 255 |
-
single_line = " ".join(
|
| 256 |
logger.debug(f"Risposta HF single-line: {single_line}")
|
| 257 |
return single_line.strip()
|
| 258 |
except Exception as e:
|
|
@@ -413,12 +422,14 @@ async def generate_response(req: QueryRequest):
|
|
| 413 |
"sparql_results": row_list,
|
| 414 |
"explanation": explanation
|
| 415 |
}
|
|
|
|
| 416 |
@app.post("/prova")
|
| 417 |
async def prova(req: QueryRequest):
|
| 418 |
return {
|
| 419 |
"type": "NATURAL",
|
| 420 |
-
"response":"Questa è una prova di richiesta"
|
| 421 |
}
|
|
|
|
| 422 |
@app.get("/")
|
| 423 |
def home():
|
| 424 |
return {"message": "Assistente Museale con supporto SPARQL."}
|
|
|
|
| 48 |
|
| 49 |
# Inizializza il client di Hugging Face
|
| 50 |
try:
|
| 51 |
+
client = InferenceClient(model=HF_MODEL, token=HF_API_KEY)
|
| 52 |
logger.info("InferenceClient inizializzato correttamente.")
|
| 53 |
except Exception as e:
|
| 54 |
logger.error(f"Errore nell'inizializzazione di InferenceClient: {e}")
|
|
|
|
| 234 |
stream=stream
|
| 235 |
)
|
| 236 |
|
| 237 |
+
logger.debug(f"Risposta completa dal modello: {response}")
|
| 238 |
+
|
| 239 |
if stream:
|
| 240 |
# Gestisci lo stream
|
| 241 |
generated_text = ""
|
|
|
|
| 246 |
return generated_text.strip()
|
| 247 |
else:
|
| 248 |
# Risposta non in streaming
|
| 249 |
+
# Logga la risposta completa per capire la struttura
|
| 250 |
+
logger.debug(f"Risposta completa: {response}")
|
| 251 |
+
|
| 252 |
+
# Adatta la logica di estrazione del testo generato
|
| 253 |
+
if isinstance(response, dict):
|
| 254 |
+
if 'choices' in response and len(response['choices']) > 0:
|
| 255 |
+
generated_text = response['choices'][0].get('message', {}).get('content', '')
|
| 256 |
+
else:
|
| 257 |
+
raise ValueError("Risposta non contiene 'choices' o 'message'.")
|
| 258 |
+
elif isinstance(response, list) and len(response) > 0:
|
| 259 |
+
generated_text = response[0].get('message', {}).get('content', '')
|
| 260 |
else:
|
| 261 |
+
raise ValueError("Struttura della risposta non riconosciuta.")
|
| 262 |
|
| 263 |
# Forza la risposta su una singola linea se multilinea
|
| 264 |
+
single_line = " ".join(generated_text.splitlines())
|
| 265 |
logger.debug(f"Risposta HF single-line: {single_line}")
|
| 266 |
return single_line.strip()
|
| 267 |
except Exception as e:
|
|
|
|
| 422 |
"sparql_results": row_list,
|
| 423 |
"explanation": explanation
|
| 424 |
}
|
| 425 |
+
|
| 426 |
@app.post("/prova")
|
| 427 |
async def prova(req: QueryRequest):
|
| 428 |
return {
|
| 429 |
"type": "NATURAL",
|
| 430 |
+
"response": "Questa è una prova di richiesta"
|
| 431 |
}
|
| 432 |
+
|
| 433 |
@app.get("/")
|
| 434 |
def home():
|
| 435 |
return {"message": "Assistente Museale con supporto SPARQL."}
|