lruoppolo commited on
Commit
ddcef58
·
1 Parent(s): 1950588
Files changed (1) hide show
  1. main.py +26 -25
main.py CHANGED
@@ -160,45 +160,44 @@ async def extract_image(uid: str = Depends(verify_firebase_token), file: UploadF
160
  async def analyze_document(request: Request, uid: str = Depends(verify_firebase_token)):
161
  try:
162
  body = await request.json()
163
- text_preview = body.get('text', '')[:100] # Logghiamo solo un'anteprima
164
- logger.info(f"Ricevuta richiesta /analyze-document da {uid}. Testo len: {len(body.get('text', ''))}, Preview: {text_preview}...")
165
 
166
  messages = [
167
  {"role": "system", "content": prompts.PROMPT_ANALISI},
168
- {"role": "user", "content": f"Analizza:\n{body['text']}"}
169
  ]
170
 
171
  result = await call_deepseek_with_retry(messages)
172
- logger.info(f"Analisi completata con successo per {uid}.")
173
  return result
174
 
175
  except Exception as e:
176
- logger.error(f"Errore fatale in /analyze-document per {uid}: {str(e)}", exc_info=True)
177
  raise HTTPException(status_code=500, detail=str(e))
178
 
179
  @app.post("/validate-document")
180
  async def validate_document(request: Request, uid: str = Depends(verify_firebase_token)):
181
  try:
182
  body = await request.json()
183
- logger.info(f"Richiesta validazione documento da {uid}. Testo len: {len(body.get('text', ''))}")
184
 
185
  messages = [
186
  {"role": "system", "content": prompts.PROMPT_VALIDAZIONE},
187
- {"role": "user", "content": f"Valida:\n{body['text']}"}
188
  ]
189
 
190
  result = await call_deepseek_with_retry(messages)
191
- logger.info(f"Validazione documento completata per {uid}. Esito: {result.get('stato_documento') if result else 'Nessun esito'}")
192
  return result
193
 
194
  except Exception as e:
195
- logger.error(f"Errore fatale in /validate-document per {uid}: {str(e)}", exc_info=True)
196
  raise HTTPException(status_code=500, detail=str(e))
197
 
198
  @app.post("/generate-questions")
199
  async def generate_questions(request: Request, uid: str = Depends(verify_firebase_token)):
200
  body = await request.json()
201
- logger.info(f"Generazione Quiz richiesta da {uid}. Parametri: language={body.get('language')}, count={body.get('count')}")
202
 
203
  try:
204
  t = Template(prompts.PROMPT_QUIZ)
@@ -208,34 +207,36 @@ async def generate_questions(request: Request, uid: str = Depends(verify_firebas
208
  macro=body.get("macro", "Generico"),
209
  argomento=body.get("argomento", "Generico")
210
  )
211
- logger.debug(f"Prompt finale generato per quiz, lunghezza: {len(prompt_finale)}")
212
 
213
- messages = [{"role": "system", "content": prompt_finale}, {"role": "user", "content": f"Genera:\n{body['content']}"}]
214
- return await call_deepseek_with_retry(messages)
 
 
 
215
  except Exception as e:
216
- logger.error(f"Errore durante la generazione quiz: {str(e)}", exc_info=True)
217
- raise HTTPException(status_code=500, detail=f"Errore template: {str(e)}")
218
 
219
  @app.post("/generate-flashcards")
220
  async def generate_flashcards(request: Request, uid: str = Depends(verify_firebase_token)):
221
  body = await request.json()
222
- logger.info(f"Generazione Flashcard richiesta da {uid}. Tag: {body.get('tag')}")
223
 
224
  try:
225
  t = Template(prompts.PROMPT_FLASHCARD)
226
- # LOG AGGIUNTIVO: Controlliamo le variabili prima della sostituzione
227
- params = {"targetLanguage": body.get("language", "Italiano"), "tag": body.get("tag", "Studio")}
228
- logger.debug(f"Parametri sostituzione: {params}")
 
229
 
230
- prompt_finale = t.substitute(params)
231
- logger.debug("Sostituzione template riuscita.")
232
 
233
- messages = [{"role": "system", "content": prompt_finale}, {"role": "user", "content": f"Genera:\n{body['content']}"}]
234
- return await call_deepseek_with_retry(messages)
235
  except Exception as e:
236
- logger.error(f"Errore fatale in /generate-flashcards: {str(e)}", exc_info=True)
237
  raise HTTPException(status_code=500, detail=str(e))
238
-
239
  # --- ENDPOINTS KEEP-ALIVE ---
240
 
241
  @app.get("/keep-alive")
 
160
  async def analyze_document(request: Request, uid: str = Depends(verify_firebase_token)):
161
  try:
162
  body = await request.json()
163
+ logger.info(f"INPUT_/analyze-document UID={uid} BODY_LEN={len(str(body))}")
 
164
 
165
  messages = [
166
  {"role": "system", "content": prompts.PROMPT_ANALISI},
167
+ {"role": "user", "content": f"Analizza:\n{body.get('text', '')}"}
168
  ]
169
 
170
  result = await call_deepseek_with_retry(messages)
171
+ logger.info(f"OUTPUT_/analyze-document UID={uid} RESULT={json.dumps(result, ensure_ascii=False)}")
172
  return result
173
 
174
  except Exception as e:
175
+ logger.error(f"Errore fatale /analyze-document UID={uid}: {str(e)}", exc_info=True)
176
  raise HTTPException(status_code=500, detail=str(e))
177
 
178
  @app.post("/validate-document")
179
  async def validate_document(request: Request, uid: str = Depends(verify_firebase_token)):
180
  try:
181
  body = await request.json()
182
+ logger.info(f"INPUT_/validate-document UID={uid} BODY_LEN={len(str(body))}")
183
 
184
  messages = [
185
  {"role": "system", "content": prompts.PROMPT_VALIDAZIONE},
186
+ {"role": "user", "content": f"Valida:\n{body.get('text', '')}"}
187
  ]
188
 
189
  result = await call_deepseek_with_retry(messages)
190
+ logger.info(f"OUTPUT_/validate-document UID={uid} RESULT={json.dumps(result, ensure_ascii=False)}")
191
  return result
192
 
193
  except Exception as e:
194
+ logger.error(f"Errore fatale /validate-document UID={uid}: {str(e)}", exc_info=True)
195
  raise HTTPException(status_code=500, detail=str(e))
196
 
197
  @app.post("/generate-questions")
198
  async def generate_questions(request: Request, uid: str = Depends(verify_firebase_token)):
199
  body = await request.json()
200
+ logger.info(f"INPUT_/generate-questions UID={uid} BODY={json.dumps(body)}")
201
 
202
  try:
203
  t = Template(prompts.PROMPT_QUIZ)
 
207
  macro=body.get("macro", "Generico"),
208
  argomento=body.get("argomento", "Generico")
209
  )
 
210
 
211
+ messages = [{"role": "system", "content": prompt_finale}, {"role": "user", "content": f"Genera:\n{body.get('content', '')}"}]
212
+ result = await call_deepseek_with_retry(messages)
213
+
214
+ logger.info(f"OUTPUT_/generate-questions UID={uid} RESULT={json.dumps(result, ensure_ascii=False)}")
215
+ return result
216
  except Exception as e:
217
+ logger.error(f"Errore fatale /generate-questions UID={uid}: {str(e)}", exc_info=True)
218
+ raise HTTPException(status_code=500, detail=str(e))
219
 
220
  @app.post("/generate-flashcards")
221
  async def generate_flashcards(request: Request, uid: str = Depends(verify_firebase_token)):
222
  body = await request.json()
223
+ logger.info(f"INPUT_/generate-flashcards UID={uid} BODY={json.dumps(body)}")
224
 
225
  try:
226
  t = Template(prompts.PROMPT_FLASHCARD)
227
+ prompt_finale = t.substitute(
228
+ targetLanguage=body.get("language", "Italiano"),
229
+ tag=body.get("tag", "Studio")
230
+ )
231
 
232
+ messages = [{"role": "system", "content": prompt_finale}, {"role": "user", "content": f"Genera:\n{body.get('content', '')}"}]
233
+ result = await call_deepseek_with_retry(messages)
234
 
235
+ logger.info(f"OUTPUT_/generate-flashcards UID={uid} RESULT={json.dumps(result, ensure_ascii=False)}")
236
+ return result
237
  except Exception as e:
238
+ logger.error(f"Errore fatale /generate-flashcards UID={uid}: {str(e)}", exc_info=True)
239
  raise HTTPException(status_code=500, detail=str(e))
 
240
  # --- ENDPOINTS KEEP-ALIVE ---
241
 
242
  @app.get("/keep-alive")