Spaces:
Sleeping
Sleeping
Commit
·
99abbcc
1
Parent(s):
97045b3
add timeout feature
Browse files
chat.py
CHANGED
|
@@ -33,7 +33,7 @@ def determine_title(section_name, generated_audios):
|
|
| 33 |
section_name = f"{section_name} {count + 1}"
|
| 34 |
return section_name
|
| 35 |
|
| 36 |
-
async def call_with_timeout(coro, timeout):
|
| 37 |
try:
|
| 38 |
return await asyncio.wait_for(coro, timeout)
|
| 39 |
except asyncio.TimeoutError:
|
|
@@ -310,7 +310,7 @@ async def model_chat(genre_input, query: Optional[str], history: Optional[Histor
|
|
| 310 |
sections_list = re.findall(r'\[.*?\]', current_lyrics)
|
| 311 |
|
| 312 |
#current_lyrics = "\n".join(tool_query_args['sections_written'])
|
| 313 |
-
song_link = await call_with_timeout(run_in_executor(make_song, current_lyrics, new_instrumental_tags))
|
| 314 |
## filter out suno link from tool query arg
|
| 315 |
while "https://audiopipe.suno.ai/?item_id=" not in song_link:
|
| 316 |
print("BUGGED OUT, trying again...")
|
|
@@ -322,7 +322,7 @@ async def model_chat(genre_input, query: Optional[str], history: Optional[Histor
|
|
| 322 |
yield '', new_history, new_messages, '', '', '', None, None, generated_audios, []
|
| 323 |
return
|
| 324 |
time.sleep(5)
|
| 325 |
-
song_link = await call_with_timeout(run_in_executor(make_song, current_lyrics, new_instrumental_tags))
|
| 326 |
|
| 327 |
clip_id = song_link.split("https://audiopipe.suno.ai/?item_id=")[1]
|
| 328 |
|
|
@@ -358,7 +358,7 @@ async def model_chat(genre_input, query: Optional[str], history: Optional[Histor
|
|
| 358 |
|
| 359 |
new_instrumental_tags = songwriterAssistant.revise_instrumental_tags(snippet_instrumental_tags, user_instrumental_feedback)
|
| 360 |
|
| 361 |
-
song_link = await call_with_timeout(run_in_executor(make_song, current_lyrics, new_instrumental_tags))
|
| 362 |
## filter out suno link from tool query arg
|
| 363 |
while "https://audiopipe.suno.ai/?item_id=" not in song_link:
|
| 364 |
print("BUGGED OUT, trying again...")
|
|
@@ -370,7 +370,7 @@ async def model_chat(genre_input, query: Optional[str], history: Optional[Histor
|
|
| 370 |
yield '', new_history, new_messages, '', '', '', None, None, generated_audios, []
|
| 371 |
return
|
| 372 |
time.sleep(5)
|
| 373 |
-
song_link = await call_with_timeout(run_in_executor(make_song, current_lyrics, new_instrumental_tags))
|
| 374 |
clip_id = song_link.split("https://audiopipe.suno.ai/?item_id=")[1]
|
| 375 |
|
| 376 |
tool_message_instrumental = {'role': 'tool', 'tool_call_id': tool_call_id, 'name': tool_function_name, 'content': f'revised lyrics: {revised_lyrics}\nrevised instrumental tags: {new_instrumental_tags}, clip id: {clip_id}'}
|
|
@@ -389,7 +389,7 @@ async def model_chat(genre_input, query: Optional[str], history: Optional[Histor
|
|
| 389 |
yield '', new_history, new_messages, tool_query_args["section_name"], revised_lyrics, new_instrumental_tags, clips_to_continue, f'<audio controls><source src="{song_link}" type="audio/mp3"></audio>', generated_audios, buttons
|
| 390 |
|
| 391 |
elif tool_function_name == 'merge_all_snippets':
|
| 392 |
-
updated_clip_url, updated_lyrics, updated_tags, clips_list = await call_with_timeout(run_in_executor(concat_snippets, tool_query_args['last_snippet_id']))
|
| 393 |
|
| 394 |
if updated_clip_url == "Timeout":
|
| 395 |
# Handle the timeout case
|
|
|
|
| 33 |
section_name = f"{section_name} {count + 1}"
|
| 34 |
return section_name
|
| 35 |
|
| 36 |
+
async def call_with_timeout(coro, timeout=45):
|
| 37 |
try:
|
| 38 |
return await asyncio.wait_for(coro, timeout)
|
| 39 |
except asyncio.TimeoutError:
|
|
|
|
| 310 |
sections_list = re.findall(r'\[.*?\]', current_lyrics)
|
| 311 |
|
| 312 |
#current_lyrics = "\n".join(tool_query_args['sections_written'])
|
| 313 |
+
song_link = await call_with_timeout(run_in_executor(make_song, current_lyrics, new_instrumental_tags), 45)
|
| 314 |
## filter out suno link from tool query arg
|
| 315 |
while "https://audiopipe.suno.ai/?item_id=" not in song_link:
|
| 316 |
print("BUGGED OUT, trying again...")
|
|
|
|
| 322 |
yield '', new_history, new_messages, '', '', '', None, None, generated_audios, []
|
| 323 |
return
|
| 324 |
time.sleep(5)
|
| 325 |
+
song_link = await call_with_timeout(run_in_executor(make_song, current_lyrics, new_instrumental_tags), 45)
|
| 326 |
|
| 327 |
clip_id = song_link.split("https://audiopipe.suno.ai/?item_id=")[1]
|
| 328 |
|
|
|
|
| 358 |
|
| 359 |
new_instrumental_tags = songwriterAssistant.revise_instrumental_tags(snippet_instrumental_tags, user_instrumental_feedback)
|
| 360 |
|
| 361 |
+
song_link = await call_with_timeout(run_in_executor(make_song, current_lyrics, new_instrumental_tags), 45)
|
| 362 |
## filter out suno link from tool query arg
|
| 363 |
while "https://audiopipe.suno.ai/?item_id=" not in song_link:
|
| 364 |
print("BUGGED OUT, trying again...")
|
|
|
|
| 370 |
yield '', new_history, new_messages, '', '', '', None, None, generated_audios, []
|
| 371 |
return
|
| 372 |
time.sleep(5)
|
| 373 |
+
song_link = await call_with_timeout(run_in_executor(make_song, current_lyrics, new_instrumental_tags), 45)
|
| 374 |
clip_id = song_link.split("https://audiopipe.suno.ai/?item_id=")[1]
|
| 375 |
|
| 376 |
tool_message_instrumental = {'role': 'tool', 'tool_call_id': tool_call_id, 'name': tool_function_name, 'content': f'revised lyrics: {revised_lyrics}\nrevised instrumental tags: {new_instrumental_tags}, clip id: {clip_id}'}
|
|
|
|
| 389 |
yield '', new_history, new_messages, tool_query_args["section_name"], revised_lyrics, new_instrumental_tags, clips_to_continue, f'<audio controls><source src="{song_link}" type="audio/mp3"></audio>', generated_audios, buttons
|
| 390 |
|
| 391 |
elif tool_function_name == 'merge_all_snippets':
|
| 392 |
+
updated_clip_url, updated_lyrics, updated_tags, clips_list = await call_with_timeout(run_in_executor(concat_snippets, tool_query_args['last_snippet_id']), 45)
|
| 393 |
|
| 394 |
if updated_clip_url == "Timeout":
|
| 395 |
# Handle the timeout case
|