marks commited on
Commit
67d3ff8
·
1 Parent(s): 992479e

Added default values

Browse files
Files changed (1) hide show
  1. interface.py +38 -17
interface.py CHANGED
@@ -190,6 +190,11 @@ async def create_podcast(
190
 
191
  def create_ui():
192
  logger.info("Initializing Gradio interface")
 
 
 
 
 
193
  with gr.Blocks(title='PodcastCreator', theme=gr.themes.Soft()) as interface:
194
  with gr.Row():
195
  with gr.Column(scale=2):
@@ -203,7 +208,11 @@ def create_ui():
203
  type='password',
204
  placeholder='Enter key...'
205
  )
206
- voice = gr.Dropdown(label='Voice', choices=[])
 
 
 
 
207
 
208
  with gr.Column():
209
  openrouter_key = gr.Textbox(
@@ -211,7 +220,11 @@ def create_ui():
211
  type='password',
212
  placeholder='Enter key...'
213
  )
214
- model = gr.Dropdown(label='AI Model', choices=[])
 
 
 
 
215
 
216
  submit_btn = gr.Button('Create Podcast', variant='primary')
217
 
@@ -222,35 +235,43 @@ def create_ui():
222
  # Event handlers
223
  def update_voices(key):
224
  if not key:
225
- return gr.Dropdown(choices=[])
226
  try:
227
  client = ElevenLabsClient(key)
228
  voices = client.get_voices()
229
- return gr.Dropdown(choices=voices)
230
  except Exception as e:
231
- return gr.Dropdown(choices=[("", f"Error: {str(e)}")])
 
232
 
233
  async def update_models(key):
234
  if not key:
235
- return gr.Dropdown(choices=[])
236
  try:
237
  client = OpenRouterClient(key)
238
  models = await client.get_models()
239
- return gr.Dropdown(choices=models)
240
  except Exception as e:
241
- return gr.Dropdown(choices=[("", f"Error: {str(e)}")])
 
242
 
243
- elevenlabs_key.change(fn=update_voices, inputs=elevenlabs_key, outputs=voice)
244
- openrouter_key.change(fn=update_models, inputs=openrouter_key, outputs=model)
245
-
246
- submit_btn.click(
247
- fn=create_podcast,
248
- inputs=[url_input, prompt, elevenlabs_key, voice, openrouter_key, model],
249
- outputs=[audio_output, status]
250
- )
 
 
 
 
 
251
 
 
252
  return interface
253
 
254
  if __name__ == '__main__':
255
  demo = create_ui()
256
- demo.launch()
 
190
 
191
  def create_ui():
192
  logger.info("Initializing Gradio interface")
193
+
194
+ # Default choices for dropdowns
195
+ default_voices = [("", "Enter API key to load voices")]
196
+ default_models = [("", "Enter API key to load models")]
197
+
198
  with gr.Blocks(title='PodcastCreator', theme=gr.themes.Soft()) as interface:
199
  with gr.Row():
200
  with gr.Column(scale=2):
 
208
  type='password',
209
  placeholder='Enter key...'
210
  )
211
+ voice = gr.Dropdown(
212
+ label='Voice',
213
+ choices=default_voices,
214
+ value=default_voices[0][0]
215
+ )
216
 
217
  with gr.Column():
218
  openrouter_key = gr.Textbox(
 
220
  type='password',
221
  placeholder='Enter key...'
222
  )
223
+ model = gr.Dropdown(
224
+ label='AI Model',
225
+ choices=default_models,
226
+ value=default_models[0][0]
227
+ )
228
 
229
  submit_btn = gr.Button('Create Podcast', variant='primary')
230
 
 
235
  # Event handlers
236
  def update_voices(key):
237
  if not key:
238
+ return gr.Dropdown(choices=default_voices, value=default_voices[0][0])
239
  try:
240
  client = ElevenLabsClient(key)
241
  voices = client.get_voices()
242
+ return gr.Dropdown(choices=voices, value=voices[0][0] if voices else None)
243
  except Exception as e:
244
+ logger.error(f"Failed to load voices: {e}")
245
+ return gr.Dropdown(choices=[(None, f"Error: {str(e)}")], value=None)
246
 
247
  async def update_models(key):
248
  if not key:
249
+ return gr.Dropdown(choices=default_models, value=default_models[0][0])
250
  try:
251
  client = OpenRouterClient(key)
252
  models = await client.get_models()
253
+ return gr.Dropdown(choices=models, value=models[0][0] if models else None)
254
  except Exception as e:
255
+ logger.error(f"Failed to load models: {e}")
256
+ return gr.Dropdown(choices=[(None, f"Error: {str(e)}")], value=None)
257
 
258
+ # Add error handling for the event handlers
259
+ try:
260
+ elevenlabs_key.change(fn=update_voices, inputs=elevenlabs_key, outputs=voice)
261
+ openrouter_key.change(fn=update_models, inputs=openrouter_key, outputs=model)
262
+
263
+ submit_btn.click(
264
+ fn=create_podcast,
265
+ inputs=[url_input, prompt, elevenlabs_key, voice, openrouter_key, model],
266
+ outputs=[audio_output, status]
267
+ )
268
+ except Exception as e:
269
+ logger.error(f"Failed to set up event handlers: {e}")
270
+ raise
271
 
272
+ logger.info("Gradio interface initialized successfully")
273
  return interface
274
 
275
  if __name__ == '__main__':
276
  demo = create_ui()
277
+ demo.launch()