File size: 2,039 Bytes
390c4a5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3d6b505
390c4a5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
from fastapi import FastAPI,HTTPException,status,UploadFile,File
from pydantic import BaseModel
import uvicorn
import logging
import torch
import ollama
import os
import numpy as np

os.environ['TRANSFORMERS_CACHE'] = '/app/.cache'
os.environ['HF_HOME'] = '/app/.cache'
 
Informations = """ 
-text : Texte à resumé 

output:
- Text summary : texte resumé
"""

app =FastAPI(
    title='Text Summary',
    description =Informations
)  
 
#class to define the input text 
logging.basicConfig(level=logging.INFO)
logger =logging.getLogger(__name__)


prompt_first ="Résumé en 4 ou 5 phrases de la plainte suivante :"
class TextSummary(BaseModel): 
    prompt:str 
    
@app.get("/")
async def home():
    return 'STN BIG DATA'
# Fonction pour générer du texte à partir d'une requête
# Modèle pour la requête
class RequestModel(BaseModel):
    text: str
@app.post("/generate/")
async def generate_text(request: RequestModel):
    # Assurer la configuration pour une utilisation optimale de la mémoire
    try:
        response = ollama.chat(
            model="llama3:latest",
            messages=[{"role": "user", "content": prompt_first + request.text}],
        )
        
        generated_text = ""
        for chunk in response:
            if chunk.choices[0].delta.content is not None:
                generated_text += chunk.choices[0].delta.content

        # Traitement du texte pour supprimer les phrases génériques
        intro_phrases = [
            "Voici un résumé de la plainte en 5 phrases :",
            "Résumé :",
            "Voici ce qui s'est passé :",
            "Cette plainte a été déposée par"
        ]
        
        for phrase in intro_phrases:
            if generated_text.startswith(phrase):
                generated_text = generated_text[len(phrase):].strip()
                break

        return {"generated_text": generated_text}
    except ollama._types.ResponseError as e:
        return {"error": str(e)}
if __name__ == "__main__":
    uvicorn.run("app:app",reload=True)