Curinha commited on
Commit
56998f6
·
1 Parent(s): 383458e

Simplify main page with HTML content and add redirect to API documentation

Browse files
Files changed (1) hide show
  1. app.py +94 -22
app.py CHANGED
@@ -5,7 +5,7 @@ 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 with custom docs URL
@@ -69,29 +69,101 @@ async def generate_music_endpoint(request: AudioRequest):
69
  except Exception as e:
70
  raise HTTPException(status_code=500, detail=str(e))
71
 
72
- demo = gr.Blocks(title="Generador de Sonidos y Música con IA")
73
-
74
- with demo:
75
- gr.Markdown("# 🎧 API de Sonidos Generativos")
76
- gr.Markdown("""
77
- Bienvenido al servicio de generación de sonidos y música mediante IA.
78
-
79
- Esta interfaz te permite probar las capacidades de la API de manera sencilla.
80
- La API completa está disponible para desarrolladores en los siguientes endpoints:
81
-
82
- - **Documentación de la API**: [/api/docs](/api/docs)
83
- - **Verificación del servicio**: [/api/health](/api/health)
84
- - **Endpoints para desarrolladores**:
85
- - POST `/api/generate-sound/`
86
- - POST `/api/generate-music/`
87
- """)
88
-
89
- # Montar Gradio en FastAPI
90
- app = gr.mount_gradio_app(app, demo, path="/")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91
 
92
  # Confirmar inicialización
93
- print("✅ Servidor inicializado correctamente")
94
- print("🌐 Interfaz web disponible en la ruta principal '/'")
95
  print("📝 Endpoints de la API disponibles en '/api/*'")
96
  print("📄 Documentaci��n disponible en '/api/docs'")
97
 
 
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, RedirectResponse, HTMLResponse
9
  from pydantic import BaseModel
10
 
11
  # Create the FastAPI app with custom docs URL
 
69
  except Exception as e:
70
  raise HTTPException(status_code=500, detail=str(e))
71
 
72
+ # Página principal simplificada (HTML puro)
73
+ @app.get("/", response_class=HTMLResponse)
74
+ async def home():
75
+ html_content = """
76
+ <!DOCTYPE html>
77
+ <html>
78
+ <head>
79
+ <title>API de Sonidos Generativos</title>
80
+ <meta charset="UTF-8">
81
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
82
+ <style>
83
+ body {
84
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
85
+ line-height: 1.6;
86
+ max-width: 800px;
87
+ margin: 0 auto;
88
+ padding: 20px;
89
+ color: #333;
90
+ }
91
+ .container {
92
+ background-color: #f9f9f9;
93
+ border-radius: 8px;
94
+ padding: 20px;
95
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
96
+ }
97
+ h1 {
98
+ color: #2563eb;
99
+ margin-top: 0;
100
+ }
101
+ .button {
102
+ display: inline-block;
103
+ background-color: #2563eb;
104
+ color: white;
105
+ padding: 10px 20px;
106
+ text-decoration: none;
107
+ border-radius: 4px;
108
+ font-weight: 500;
109
+ margin-right: 10px;
110
+ margin-top: 10px;
111
+ }
112
+ .button:hover {
113
+ background-color: #1d4ed8;
114
+ }
115
+ pre {
116
+ background-color: #f1f1f1;
117
+ padding: 10px;
118
+ border-radius: 4px;
119
+ overflow-x: auto;
120
+ }
121
+ code {
122
+ font-family: monospace;
123
+ }
124
+ </style>
125
+ </head>
126
+ <body>
127
+ <div class="container">
128
+ <h1>API de Sonidos Generativos</h1>
129
+ <p>Bienvenido al servicio de generación de sonidos y música mediante IA.</p>
130
+
131
+ <h2>Documentación</h2>
132
+ <p>La API completa está documentada y disponible en los siguientes enlaces:</p>
133
+ <a href="/api/docs" class="button">Swagger UI</a>
134
+ <a href="/api/redoc" class="button">ReDoc</a>
135
+
136
+ <h2>Endpoints disponibles</h2>
137
+ <ul>
138
+ <li><strong>GET /api/health</strong> - Verificar estado del servicio</li>
139
+ <li><strong>POST /api/generate-sound/</strong> - Generar sonido a partir de descripción</li>
140
+ <li><strong>POST /api/generate-music/</strong> - Generar música a partir de descripción</li>
141
+ </ul>
142
+
143
+ <h2>Ejemplos de uso</h2>
144
+ <h3>Generar sonido</h3>
145
+ <pre><code>curl -X POST "http://localhost:7860/api/generate-sound/" \\
146
+ -H "Content-Type: application/json" \\
147
+ -d '{"prompt": "Un trueno distante", "duration": 15, "pitch": 0.9}'</code></pre>
148
+
149
+ <h3>Generar música</h3>
150
+ <pre><code>curl -X POST "http://localhost:7860/api/generate-music/" \\
151
+ -H "Content-Type: application/json" \\
152
+ -d '{"prompt": "Melodía relajante", "genre": "ambient", "duration": 60, "bpm": 100}'</code></pre>
153
+ </div>
154
+ </body>
155
+ </html>
156
+ """
157
+ return html_content
158
+
159
+ # También puedes ofrecer una redirección directa a la documentación si lo prefieres
160
+ @app.get("/docs", response_class=RedirectResponse, status_code=302)
161
+ async def redirect_to_docs():
162
+ return "/api/docs"
163
 
164
  # Confirmar inicialización
165
+ print("✅ Servidor inicializado correctamente !!!!")
166
+ print("🌐 Página principal disponible en la ruta '/'")
167
  print("📝 Endpoints de la API disponibles en '/api/*'")
168
  print("📄 Documentaci��n disponible en '/api/docs'")
169