Spaces:
Running
Running
Curinha
commited on
Commit
·
149c25a
1
Parent(s):
7814ee2
Enhance FastAPI app with custom documentation URL and add status endpoint
Browse files
app.py
CHANGED
@@ -5,29 +5,29 @@ import uvicorn
|
|
5 |
from sound_generator import generate_sound, generate_music
|
6 |
from fastapi import FastAPI, HTTPException
|
7 |
from fastapi.middleware.cors import CORSMiddleware
|
8 |
-
from fastapi.responses import FileResponse
|
9 |
from pydantic import BaseModel
|
10 |
|
11 |
-
# Create the FastAPI app
|
12 |
-
app = FastAPI()
|
13 |
|
14 |
-
|
15 |
-
# Configuración de CORS para permitir solicitudes desde cualquier origen
|
16 |
app.add_middleware(
|
17 |
CORSMiddleware,
|
18 |
-
allow_origins=[
|
19 |
-
"*"
|
20 |
-
], # Permitir todos los orígenes (puedes restringirlo a tus orígenes específicos)
|
21 |
allow_credentials=True,
|
22 |
-
allow_methods=["*"],
|
23 |
-
allow_headers=["*"],
|
24 |
)
|
25 |
|
26 |
-
|
27 |
# Define a Pydantic model to handle the input prompt
|
28 |
class AudioRequest(BaseModel):
|
29 |
prompt: str
|
30 |
|
|
|
|
|
|
|
|
|
31 |
|
32 |
@app.post("/generate-sound/")
|
33 |
async def generate_sound_endpoint(request: AudioRequest):
|
@@ -49,7 +49,6 @@ async def generate_sound_endpoint(request: AudioRequest):
|
|
49 |
except Exception as e:
|
50 |
raise HTTPException(status_code=500, detail=str(e))
|
51 |
|
52 |
-
|
53 |
@app.post("/generate-music/")
|
54 |
async def generate_music_endpoint(request: AudioRequest):
|
55 |
try:
|
@@ -70,20 +69,24 @@ async def generate_music_endpoint(request: AudioRequest):
|
|
70 |
except Exception as e:
|
71 |
raise HTTPException(status_code=500, detail=str(e))
|
72 |
|
|
|
|
|
73 |
|
74 |
-
|
75 |
-
with gr.Blocks() as demo:
|
76 |
gr.Markdown("# API de Sonidos Generativos")
|
77 |
gr.Markdown("Bienvenido al servicio de generación de sonidos mediante IA.")
|
78 |
-
gr.Markdown(
|
79 |
-
|
80 |
-
)
|
81 |
-
gr.Markdown("-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
# Montar Gradio en FastAPI - IMPORTANTE: esto debe hacerse antes de iniciar el servidor
|
86 |
app = gr.mount_gradio_app(app, demo, path="/")
|
87 |
|
|
|
|
|
|
|
|
|
|
|
88 |
if __name__ == "__main__":
|
89 |
uvicorn.run(app, host="0.0.0.0", port=7860)
|
|
|
5 |
from sound_generator import generate_sound, generate_music
|
6 |
from fastapi import FastAPI, HTTPException
|
7 |
from fastapi.middleware.cors import CORSMiddleware
|
8 |
+
from fastapi.responses import FileResponse, JSONResponse
|
9 |
from pydantic import BaseModel
|
10 |
|
11 |
+
# Create the FastAPI app with custom docs URL
|
12 |
+
app = FastAPI(docs_url="/api/docs")
|
13 |
|
14 |
+
# Configuración de CORS
|
|
|
15 |
app.add_middleware(
|
16 |
CORSMiddleware,
|
17 |
+
allow_origins=["*"],
|
|
|
|
|
18 |
allow_credentials=True,
|
19 |
+
allow_methods=["*"],
|
20 |
+
allow_headers=["*"],
|
21 |
)
|
22 |
|
|
|
23 |
# Define a Pydantic model to handle the input prompt
|
24 |
class AudioRequest(BaseModel):
|
25 |
prompt: str
|
26 |
|
27 |
+
# Prueba para verificar si la API funciona - la dejamos por ahora para debugging
|
28 |
+
@app.get("/status")
|
29 |
+
def status():
|
30 |
+
return {"status": "API running", "version": "1.0"}
|
31 |
|
32 |
@app.post("/generate-sound/")
|
33 |
async def generate_sound_endpoint(request: AudioRequest):
|
|
|
49 |
except Exception as e:
|
50 |
raise HTTPException(status_code=500, detail=str(e))
|
51 |
|
|
|
52 |
@app.post("/generate-music/")
|
53 |
async def generate_music_endpoint(request: AudioRequest):
|
54 |
try:
|
|
|
69 |
except Exception as e:
|
70 |
raise HTTPException(status_code=500, detail=str(e))
|
71 |
|
72 |
+
# Interfaz de Gradio
|
73 |
+
demo = gr.Blocks()
|
74 |
|
75 |
+
with demo:
|
|
|
76 |
gr.Markdown("# API de Sonidos Generativos")
|
77 |
gr.Markdown("Bienvenido al servicio de generación de sonidos mediante IA.")
|
78 |
+
gr.Markdown("Esta API está disponible para uso a través de los siguientes endpoints:")
|
79 |
+
gr.Markdown("- Generar sonido: `/api/generate-sound/`")
|
80 |
+
gr.Markdown("- Generar música: `/api/generate-music/`")
|
81 |
+
gr.Markdown("- Documentación de la API: `/api/docs`")
|
82 |
+
|
83 |
+
# Montar la app de Gradio en FastAPI
|
|
|
|
|
84 |
app = gr.mount_gradio_app(app, demo, path="/")
|
85 |
|
86 |
+
# Para confirmar que el código está funcionando, podemos agregar un print
|
87 |
+
print("✅ Servidor inicializado. Gradio montado en la ruta principal '/'")
|
88 |
+
print("📝 Endpoints de la API disponibles en '/api/*'")
|
89 |
+
print("📄 Documentación disponible en '/api/docs'")
|
90 |
+
|
91 |
if __name__ == "__main__":
|
92 |
uvicorn.run(app, host="0.0.0.0", port=7860)
|