bambadij's picture
fice
3d6b505
Raw History Blame Contribute Delete
2.04 kB
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)