bambadij commited on
Commit
c8b2dc2
·
verified ·
1 Parent(s): 8da98b7
Files changed (1) hide show
  1. app.py +84 -3
app.py CHANGED
@@ -1,7 +1,64 @@
1
- res = requests.post('http://10.100.238.77:11434/api/generate', json={
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  "prompt": full_prompt,
3
  "stream": False,
4
- # "model": "llama3"
5
  })
6
 
7
  # Vérification de la réponse
@@ -9,4 +66,28 @@
9
  print("response",res)
10
  raise HTTPException(status_code=res.status_code, detail="Erreur de l'API Ollama")
11
  # Extraction du texte généré
12
- generated_text = res.json().get('response', '')
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import FastAPI,HTTPException,status,UploadFile,File
2
+ from pydantic import BaseModel
3
+ import uvicorn
4
+ import logging
5
+ import torch
6
+ import ollama
7
+ import os
8
+ import numpy as np
9
+ from fastapi.responses import Response
10
+ import requests
11
+ from fastapi.middleware.cors import CORSMiddleware
12
+
13
+ os.environ['TRANSFORMERS_CACHE'] = '/app/.cache'
14
+ os.environ['HF_HOME'] = '/app/.cache'
15
+
16
+ Informations = """
17
+ -text : Texte à resumé
18
+
19
+ output:
20
+ - Text summary : texte resumé
21
+ """
22
+
23
+ app =FastAPI(
24
+ title='Text Summary',
25
+ description =Informations
26
+ )
27
+
28
+ #class to define the input text
29
+ logging.basicConfig(level=logging.INFO)
30
+ logger =logging.getLogger(__name__)
31
+ app.add_middleware(
32
+ CORSMiddleware,
33
+ allow_origins=["*"],
34
+ allow_credentials=True,
35
+ allow_methods=["*"],
36
+ allow_headers=["*"],
37
+ )
38
+
39
+ DEFAULT_PROMPT = "Résumez la plainte suivante en 5 phrases concises, en vous concentrant sur les faits principaux et en évitant toute introduction générique : "
40
+ class TextSummary(BaseModel):
41
+ prompt:str
42
+
43
+ @app.get("/")
44
+ async def home():
45
+ return 'STN BIG DATA'
46
+ # Fonction pour générer du texte à partir d'une requête
47
+ # Modèle pour la requête
48
+ class RequestModel(BaseModel):
49
+ text: str
50
+ @app.post("/generate/")
51
+ async def generate_text(request: RequestModel):
52
+ # Assurer la configuration pour une utilisation optimale de la mémoire
53
+ try:
54
+ # Combinaison du prompt par défaut et du texte de l'utilisateur
55
+ full_prompt = DEFAULT_PROMPT + request.text
56
+
57
+ # Utilisation de l'API Ollama
58
+ res = requests.post('http://ollama:11434/api/generate', json={
59
  "prompt": full_prompt,
60
  "stream": False,
61
+ "model": "llama3"
62
  })
63
 
64
  # Vérification de la réponse
 
66
  print("response",res)
67
  raise HTTPException(status_code=res.status_code, detail="Erreur de l'API Ollama")
68
  # Extraction du texte généré
69
+ generated_text = res.json().get('response', '')
70
+
71
+ # Traitement du texte pour supprimer les phrases génériques
72
+ intro_phrases = [
73
+ "Voici un résumé de la plainte en 5 phrases :",
74
+ "Résumé :",
75
+ "Voici ce qui s'est passé :",
76
+ "Cette plainte a été déposée par"
77
+ ]
78
+
79
+ for phrase in intro_phrases:
80
+ if generated_text.startswith(phrase):
81
+ generated_text = generated_text[len(phrase):].strip()
82
+ break
83
+
84
+ return {"summary_text_2": generated_text}
85
+
86
+ except requests.RequestException as e:
87
+ raise HTTPException(status_code=500, detail=f"Erreur de requête : {str(e)}")
88
+ except Exception as e:
89
+ raise HTTPException(status_code=500, detail=f"Erreur inattendue : {str(e)}")
90
+
91
+ if __name__ == "__main__":
92
+ uvicorn.run("app:app",host="0.0.0.0", port=8000,reload=True)
93
+