Endpoint /models para lista dinámica de modelos
Browse files
app.py
CHANGED
|
@@ -652,5 +652,34 @@ async def api_chat(request: ChatRequest):
|
|
| 652 |
except Exception as e:
|
| 653 |
raise HTTPException(status_code=500, detail=str(e))
|
| 654 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 655 |
# Montar la API en el mismo servidor que Gradio
|
| 656 |
demo.app = app
|
|
|
|
| 652 |
except Exception as e:
|
| 653 |
raise HTTPException(status_code=500, detail=str(e))
|
| 654 |
|
| 655 |
+
@app.get("/models")
|
| 656 |
+
async def api_models():
|
| 657 |
+
try:
|
| 658 |
+
# Devolver la estructura MODELS pero solo los nombres y labels
|
| 659 |
+
return {
|
| 660 |
+
"text": [
|
| 661 |
+
{"id": k, "label": v} for k, v in MODELS["text"].items()
|
| 662 |
+
] if isinstance(MODELS["text"], dict) else [
|
| 663 |
+
{"id": k, "label": v} for k, v in MODELS["text"].items()
|
| 664 |
+
],
|
| 665 |
+
"image": [
|
| 666 |
+
{"id": k, "label": v} for k, v in MODELS["image"].items()
|
| 667 |
+
] if isinstance(MODELS["image"], dict) else [
|
| 668 |
+
{"id": k, "label": v} for k, v in MODELS["image"].items()
|
| 669 |
+
],
|
| 670 |
+
"video": [
|
| 671 |
+
{"id": k, "label": v} for k, v in MODELS["video"].items()
|
| 672 |
+
] if isinstance(MODELS["video"], dict) else [
|
| 673 |
+
{"id": k, "label": v} for k, v in MODELS["video"].items()
|
| 674 |
+
],
|
| 675 |
+
"chat": [
|
| 676 |
+
{"id": k, "label": v} for k, v in MODELS["chat"].items()
|
| 677 |
+
] if isinstance(MODELS["chat"], dict) else [
|
| 678 |
+
{"id": k, "label": v} for k, v in MODELS["chat"].items()
|
| 679 |
+
]
|
| 680 |
+
}
|
| 681 |
+
except Exception as e:
|
| 682 |
+
raise HTTPException(status_code=500, detail=str(e))
|
| 683 |
+
|
| 684 |
# Montar la API en el mismo servidor que Gradio
|
| 685 |
demo.app = app
|