Spaces:
Runtime error
Runtime error
Commit
·
8f7ab76
1
Parent(s):
8ade526
Back e Front
Browse files
app.py
CHANGED
|
@@ -34,17 +34,20 @@ def get_hello_message(name: str):
|
|
| 34 |
|
| 35 |
def create_item(name: str, description: str, price: float):
|
| 36 |
"""Chama a lógica do backend diretamente."""
|
| 37 |
-
|
| 38 |
-
|
|
|
|
|
|
|
| 39 |
|
| 40 |
# Cria uma instância do modelo Pydantic, como o backend espera
|
| 41 |
item_model = Item(
|
| 42 |
name=name,
|
| 43 |
description=description,
|
| 44 |
-
price=price
|
| 45 |
)
|
| 46 |
# Chamada direta à função do backend
|
| 47 |
-
|
|
|
|
| 48 |
|
| 49 |
# --- Interface Gradio ---
|
| 50 |
with gr.Blocks(title="FastAPI + Gradio Integrado") as demo:
|
|
|
|
| 34 |
|
| 35 |
def create_item(name: str, description: str, price: float):
|
| 36 |
"""Chama a lógica do backend diretamente."""
|
| 37 |
+
# Validação explícita para evitar problemas com valores 'falsy' como 0.0
|
| 38 |
+
if not name or price is None:
|
| 39 |
+
# Retorna um JSON vazio ou uma mensagem de erro, mantendo o tipo de saída consistente.
|
| 40 |
+
return gr.JSON(value={"error": "Nome e Preço são campos obrigatórios."})
|
| 41 |
|
| 42 |
# Cria uma instância do modelo Pydantic, como o backend espera
|
| 43 |
item_model = Item(
|
| 44 |
name=name,
|
| 45 |
description=description,
|
| 46 |
+
price=float(price) # Garante que o tipo é float
|
| 47 |
)
|
| 48 |
# Chamada direta à função do backend
|
| 49 |
+
# O Gradio espera um dicionário para o componente gr.JSON, então convertemos o modelo.
|
| 50 |
+
return create_api_item(item_model).model_dump()
|
| 51 |
|
| 52 |
# --- Interface Gradio ---
|
| 53 |
with gr.Blocks(title="FastAPI + Gradio Integrado") as demo:
|