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}