luck210 commited on
Commit
aef06f1
·
verified ·
1 Parent(s): 79cd4bc

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +47 -0
app.py ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import FastAPI, UploadFile, File
2
+ import requests
3
+ import os
4
+
5
+ app = FastAPI()
6
+
7
+ # URL de l’API Ollama (par défaut, elle tourne localement sur le port 11434)
8
+ OLLAMA_API_URL = "http://localhost:11434/api/generate"
9
+
10
+ # Fonction pour appeler Ollama avec un prompt
11
+ def query_ollama(prompt: str, model: str = "mistral"):
12
+ payload = {
13
+ "model": model,
14
+ "prompt": prompt,
15
+ "stream": False
16
+ }
17
+ response = requests.post(OLLAMA_API_URL, json=payload)
18
+ if response.status_code == 200:
19
+ return response.json()["response"]
20
+ else:
21
+ return f"Erreur : {response.status_code} - {response.text}"
22
+
23
+ @app.get("/")
24
+ async def root():
25
+ return {"message": "Bienvenue sur mon API avec Ollama"}
26
+
27
+ # Endpoint pour résumer un texte uploadé
28
+ @app.post("/summarization/text")
29
+ async def summarize_text(file: UploadFile = File(...)):
30
+ # Lire le contenu du fichier uploadé
31
+ content = await file.read()
32
+ text = content.decode("utf-8")
33
+
34
+ # Créer un prompt pour Ollama
35
+ prompt = f"Résume ce texte en 3 phrases courtes : {text}"
36
+
37
+ # Appeler Ollama avec le modèle (Mistral ou DeepSeek si disponible)
38
+ summary = query_ollama(prompt, model="mistral") # Remplace "mistral" par "deepseek-v2" si tu l’as
39
+
40
+ return {"summary": summary}
41
+
42
+ # Exemple d’endpoint pour tester avec du texte brut
43
+ @app.post("/summarization/test")
44
+ async def summarize_test(text: str):
45
+ prompt = f"Résume ce texte en 3 phrases courtes : {text}"
46
+ summary = query_ollama(prompt, model="mistral")
47
+ return {"summary": summary}