Spaces:
Sleeping
Sleeping
Update app.py
Browse filesAprès chaque réponse réussie, l'extension VS Code essaie d'appeler une deuxième adresse : /spend/calculate. C'est une fonctionnalité de l'extension pour calculer le coût en tokens de la requête. Comme notre API est gratuite et n'a pas cette fonctionnalité, elle ne possède pas cette adresse. Votre serveur répond donc correctement : "Désolé, l'adresse /spend/calculate n'existe pas" (Erreur 404).
app.py
CHANGED
@@ -126,6 +126,38 @@ async def create_chat_completion(request: ChatCompletionRequest):
|
|
126 |
else:
|
127 |
# Code de secours si le stream n'est pas demandé (peu probable)
|
128 |
return {"choices": [{"message": {"role": "assistant", "content": response_text}}]}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
129 |
|
130 |
@app.get("/")
|
131 |
def root():
|
|
|
126 |
else:
|
127 |
# Code de secours si le stream n'est pas demandé (peu probable)
|
128 |
return {"choices": [{"message": {"role": "assistant", "content": response_text}}]}
|
129 |
+
# ... (tout votre code existant reste inchangé) ...
|
130 |
+
|
131 |
+
# Fonction génératrice pour le streaming
|
132 |
+
async def stream_generator():
|
133 |
+
# ... (le contenu de cette fonction ne change pas) ...
|
134 |
+
|
135 |
+
# Si l'extension demande un stream, on renvoie le générateur
|
136 |
+
if request.stream:
|
137 |
+
# ... (cette partie ne change pas) ...
|
138 |
+
|
139 |
+
# ===============================================================
|
140 |
+
# AJOUTEZ LE CODE CI-DESSOUS
|
141 |
+
# ===============================================================
|
142 |
+
|
143 |
+
@app.post("/spend/calculate")
|
144 |
+
async def spend_calculate():
|
145 |
+
"""
|
146 |
+
Endpoint factice pour satisfaire le client qui essaie de calculer les coûts.
|
147 |
+
Ne fait rien et renvoie une réponse de succès vide.
|
148 |
+
"""
|
149 |
+
return {} # Renvoie un JSON vide avec un statut 200 OK par défaut
|
150 |
+
|
151 |
+
# ===============================================================
|
152 |
+
# FIN DE L'AJOUT
|
153 |
+
# ===============================================================
|
154 |
+
|
155 |
+
@app.get("/")
|
156 |
+
def root():
|
157 |
+
return {"status": "API compatible OpenAI en ligne (avec streaming)", "model_id": MODEL_ID}
|
158 |
+
|
159 |
+
# On a besoin de asyncio pour la pause dans le stream
|
160 |
+
import asyncio
|
161 |
|
162 |
@app.get("/")
|
163 |
def root():
|