amogaddy commited on
Commit
57fadb3
·
verified ·
1 Parent(s): 36c6e5a

Upload app.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. app.py +50 -0
app.py ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import FastAPI
2
+ from transformers import pipeline
3
+ import uvicorn
4
+ from scraper import search_and_extract
5
+
6
+ app = FastAPI()
7
+
8
+ # Carichiamo il modello GenerAI
9
+ print("Caricamento modello amogaddy/GenerAI...")
10
+ generator = pipeline("text-generation", model="amogaddy/GenerAI")
11
+
12
+ @app.get("/")
13
+ def health_check():
14
+ """Endpoint di health‑check."""
15
+ return {"status": "running", "model": "GenerAI"}
16
+
17
+ @app.post("/ask")
18
+ def ask(prompt: str):
19
+ """Endpoint principale per la generazione di testo con ricerca web (RAG)."""
20
+ # 1. Ricerca sul web per usare internet come database
21
+ web_results = search_and_extract(prompt, max_results=2)
22
+
23
+ context = ""
24
+ sources = []
25
+ if web_results:
26
+ for r in web_results:
27
+ context += f"Fonte [{r['title']}]: {r['text'][:500]}\n"
28
+ sources.append(r['url'])
29
+
30
+ # 2. Creazione del prompt finale con il contesto trovato su internet
31
+ if context:
32
+ final_prompt = f"Contesto trovato su internet:\n{context}\n\nRispondi alla seguente domanda in base al contesto: {prompt}"
33
+ else:
34
+ final_prompt = prompt
35
+
36
+ # 3. Generazione della risposta tramite il modello
37
+ output = generator(final_prompt, max_length=512, num_return_sequences=1)
38
+ answer = output[0]["generated_text"]
39
+
40
+ # 4. Rimuoviamo la parte del prompt per restituire solo la risposta generata
41
+ if final_prompt in answer:
42
+ answer = answer.replace(final_prompt, "").strip()
43
+
44
+ return {
45
+ "result": answer,
46
+ "sources": sources
47
+ }
48
+
49
+ if __name__ == "__main__":
50
+ uvicorn.run(app, host="0.0.0.0", port=7860)