File size: 1,568 Bytes
aef06f1 |
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 |
from fastapi import FastAPI, UploadFile, File
import requests
import os
app = FastAPI()
# URL de l’API Ollama (par défaut, elle tourne localement sur le port 11434)
OLLAMA_API_URL = "http://localhost:11434/api/generate"
# Fonction pour appeler Ollama avec un prompt
def query_ollama(prompt: str, model: str = "mistral"):
payload = {
"model": model,
"prompt": prompt,
"stream": False
}
response = requests.post(OLLAMA_API_URL, json=payload)
if response.status_code == 200:
return response.json()["response"]
else:
return f"Erreur : {response.status_code} - {response.text}"
@app.get("/")
async def root():
return {"message": "Bienvenue sur mon API avec Ollama"}
# Endpoint pour résumer un texte uploadé
@app.post("/summarization/text")
async def summarize_text(file: UploadFile = File(...)):
# Lire le contenu du fichier uploadé
content = await file.read()
text = content.decode("utf-8")
# Créer un prompt pour Ollama
prompt = f"Résume ce texte en 3 phrases courtes : {text}"
# Appeler Ollama avec le modèle (Mistral ou DeepSeek si disponible)
summary = query_ollama(prompt, model="mistral") # Remplace "mistral" par "deepseek-v2" si tu l’as
return {"summary": summary}
# Exemple d’endpoint pour tester avec du texte brut
@app.post("/summarization/test")
async def summarize_test(text: str):
prompt = f"Résume ce texte en 3 phrases courtes : {text}"
summary = query_ollama(prompt, model="mistral")
return {"summary": summary} |