Spaces:
Sleeping
Sleeping
import os | |
import litellm | |
from fastapi import FastAPI, HTTPException, Header, Depends | |
from pydantic import BaseModel | |
# Configuration du modèle | |
model_name = "gemini/gemini-1.5-pro" | |
api_key = os.environ.get("GEMINI_API_KEY") | |
# Configuration de LiteLLM | |
litellm.api_key = api_key | |
app = FastAPI() | |
class PromptRequest(BaseModel): | |
prompt: str | |
model: str = "gemini/gemini-1.5-pro" # Valeur par défaut | |
# Prompt de base | |
base_prompt = """ | |
Tu es un développeur logiciel expérimenté. Tu dois toujours répondre en français d'une manière réfléchie et concise. | |
""" | |
# Clé API pour l'authentification | |
USER_API_KEY = "YOUR_API_KEY" # Remplacez par une clé secrète | |
async def verify_api_key(x_api_key: str = Header(...)): | |
if x_api_key != API_KEY: | |
raise HTTPException(status_code=401, detail="Clé API invalide") | |
async def predict(request: PromptRequest): | |
try: | |
# Ajout du prompt de base à la requête de l'utilisateur | |
full_prompt = base_prompt + request.prompt | |
response = litellm.completion( | |
model=request.model, | |
messages=[{"role": "user", "content": full_prompt}] | |
) | |
return {"response": response.choices[0].message.content, "model": request.model} | |
except Exception as e: | |
return {"error": str(e)} | |