Spaces:
Running
Running
File size: 1,900 Bytes
ffabbb2 bde4d33 4969fb6 ffabbb2 57a5bec 4969fb6 ffabbb2 4969fb6 7bae4bb 57a5bec 4969fb6 ffabbb2 4969fb6 ffabbb2 4969fb6 ffabbb2 4969fb6 795c92a 4969fb6 795c92a 4969fb6 343ddc8 4969fb6 ffabbb2 4969fb6 818b3fd 4969fb6 bde4d33 | 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 | import os
import uvicorn
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from openai import OpenAI
from pydantic import BaseModel
from typing import List
# 1. Configuration des accès
# Assurez-vous d'avoir défini ALBERT_API_KEY dans vos secrets Hugging Face
ALBERT_API_KEY = os.getenv("ALBERT_API_KEY")
ALBERT_BASE_URL = "https://albert.api.etalab.gouv.fr/v1"
# Initialisation du client compatible Albert
client = OpenAI(
api_key=ALBERT_API_KEY,
base_url=ALBERT_BASE_URL
)
app = FastAPI()
# 2. Configuration CORS pour autoriser votre frontend React
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # En production, remplacez par l'URL de votre front
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# Modèle de données pour valider les requêtes entrantes
class Message(BaseModel):
role: str
content: str
class ChatRequest(BaseModel):
messages: List[Message]
@app.post("/api/chat")
async def chat_albert(request: ChatRequest):
try:
# On utilise l'alias simplifié qui fonctionne sur tous les comptes Albert
response = client.chat.completions.create(
model="mistralai/Mistral-Small-3.2-24B-Instruct-2506",
messages=[{"role": m.role, "content": m.content} for m in request.messages],
temperature=0.7,
max_tokens=1000
)
return {"content": response.choices[0].message.content}
except Exception as e:
# On imprime l'erreur exacte dans les logs de Hugging Face pour pouvoir la lire
response = client.chat.completions.create(...)
print(f"RÉPONSE IA : {response.choices[0].message.content}") # Ajoute ça !
return {"content": response.choices[0].message.content}
if __name__ == "__main__":
# Hugging Face utilise souvent le port 7860
uvicorn.run(app, host="0.0.0.0", port=7860) |