Spaces:
Running
Running
Update app.py
Browse filesA few small fixes
app.py
CHANGED
|
@@ -16,8 +16,28 @@ from pydantic import BaseModel, ValidationError
|
|
| 16 |
from pypdf import PdfReader
|
| 17 |
from tenacity import retry, retry_if_exception_type
|
| 18 |
|
|
|
|
|
|
|
| 19 |
import re
|
| 20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 21 |
def read_readme():
|
| 22 |
readme_path = Path("README.md")
|
| 23 |
if readme_path.exists():
|
|
@@ -580,25 +600,6 @@ def update_instructions(template):
|
|
| 580 |
INSTRUCTION_TEMPLATES[template]["dialog"]
|
| 581 |
)
|
| 582 |
|
| 583 |
-
import concurrent.futures as cf
|
| 584 |
-
import glob
|
| 585 |
-
import io
|
| 586 |
-
import os
|
| 587 |
-
import time
|
| 588 |
-
from pathlib import Path
|
| 589 |
-
from tempfile import NamedTemporaryFile
|
| 590 |
-
from typing import List, Literal
|
| 591 |
-
|
| 592 |
-
import gradio as gr
|
| 593 |
-
|
| 594 |
-
from loguru import logger
|
| 595 |
-
from openai import OpenAI
|
| 596 |
-
from promptic import llm
|
| 597 |
-
from pydantic import BaseModel, ValidationError
|
| 598 |
-
from pypdf import PdfReader
|
| 599 |
-
from tenacity import retry, retry_if_exception_type
|
| 600 |
-
|
| 601 |
-
|
| 602 |
class DialogueItem(BaseModel):
|
| 603 |
text: str
|
| 604 |
speaker: Literal["speaker-1", "speaker-2"]
|
|
@@ -606,22 +607,8 @@ class DialogueItem(BaseModel):
|
|
| 606 |
class Dialogue(BaseModel):
|
| 607 |
scratchpad: str
|
| 608 |
dialogue: List[DialogueItem]
|
| 609 |
-
'''
|
| 610 |
-
def get_mp3(text: str, voice: str, audio_model: str, api_key: str = None) -> bytes:
|
| 611 |
-
client = OpenAI(
|
| 612 |
-
api_key=api_key or os.getenv("OPENAI_API_KEY"),
|
| 613 |
-
)
|
| 614 |
|
| 615 |
-
|
| 616 |
-
model=audio_model,
|
| 617 |
-
voice=voice,
|
| 618 |
-
input=text,
|
| 619 |
-
) as response:
|
| 620 |
-
with io.BytesIO() as file:
|
| 621 |
-
for chunk in response.iter_bytes():
|
| 622 |
-
file.write(chunk)
|
| 623 |
-
return file.getvalue()
|
| 624 |
-
'''
|
| 625 |
def get_mp3(text: str, voice: str, audio_model: str, api_key: str = None,
|
| 626 |
speaker_instructions: str ='Speak in an emotive and friendly tone.') -> bytes:
|
| 627 |
|
|
@@ -640,28 +627,6 @@ def get_mp3(text: str, voice: str, audio_model: str, api_key: str = None,
|
|
| 640 |
file.write(chunk)
|
| 641 |
return file.getvalue()
|
| 642 |
|
| 643 |
-
|
| 644 |
-
|
| 645 |
-
from functools import wraps
|
| 646 |
-
'''
|
| 647 |
-
def conditional_llm(model, api_base=None, api_key=None, reasoning_effort="N/A"):
|
| 648 |
-
"""
|
| 649 |
-
Conditionally apply the @llm decorator based on the api_base parameter.
|
| 650 |
-
If api_base is provided, it applies the @llm decorator with api_base.
|
| 651 |
-
Otherwise, it applies the @llm decorator without api_base.
|
| 652 |
-
"""
|
| 653 |
-
|
| 654 |
-
def decorator(func):
|
| 655 |
-
if api_base:
|
| 656 |
-
return llm(model=model, api_base=api_base, )(func)
|
| 657 |
-
else:
|
| 658 |
-
if reasoning_effort=="N/A":
|
| 659 |
-
return llm(model=model, api_key=api_key, )(func)
|
| 660 |
-
else:
|
| 661 |
-
return llm(model=model, api_key=api_key, reasoning_effort=reasoning_effort)(func)
|
| 662 |
-
|
| 663 |
-
return decorator
|
| 664 |
-
'''
|
| 665 |
def conditional_llm(
|
| 666 |
model,
|
| 667 |
api_base=None,
|
|
@@ -1235,7 +1200,7 @@ with gr.Blocks(title="PDF to Audio", css="""
|
|
| 1235 |
fn=lambda error: gr.Warning(error) if error else None,
|
| 1236 |
inputs=[error_output],
|
| 1237 |
outputs=[]
|
| 1238 |
-
).then(
|
| 1239 |
fn=dialogue_to_df,
|
| 1240 |
inputs=[cached_dialogue],
|
| 1241 |
outputs=[df_editor],
|
|
@@ -1289,10 +1254,10 @@ with gr.Blocks(title="PDF to Audio", css="""
|
|
| 1289 |
gr.Markdown(read_readme())
|
| 1290 |
|
| 1291 |
# Enable queueing for better performance
|
| 1292 |
-
|
| 1293 |
|
| 1294 |
# Launch the Gradio app
|
| 1295 |
-
|
| 1296 |
-
|
| 1297 |
|
| 1298 |
-
demo.launch()
|
|
|
|
| 16 |
from pypdf import PdfReader
|
| 17 |
from tenacity import retry, retry_if_exception_type
|
| 18 |
|
| 19 |
+
from functools import wraps
|
| 20 |
+
|
| 21 |
import re
|
| 22 |
|
| 23 |
+
import concurrent.futures as cf
|
| 24 |
+
import glob
|
| 25 |
+
import io
|
| 26 |
+
import os
|
| 27 |
+
import time
|
| 28 |
+
from pathlib import Path
|
| 29 |
+
from tempfile import NamedTemporaryFile
|
| 30 |
+
from typing import List, Literal
|
| 31 |
+
|
| 32 |
+
import gradio as gr
|
| 33 |
+
|
| 34 |
+
from loguru import logger
|
| 35 |
+
from openai import OpenAI
|
| 36 |
+
from promptic import llm
|
| 37 |
+
from pydantic import BaseModel, ValidationError
|
| 38 |
+
from pypdf import PdfReader
|
| 39 |
+
from tenacity import retry, retry_if_exception_type
|
| 40 |
+
|
| 41 |
def read_readme():
|
| 42 |
readme_path = Path("README.md")
|
| 43 |
if readme_path.exists():
|
|
|
|
| 600 |
INSTRUCTION_TEMPLATES[template]["dialog"]
|
| 601 |
)
|
| 602 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 603 |
class DialogueItem(BaseModel):
|
| 604 |
text: str
|
| 605 |
speaker: Literal["speaker-1", "speaker-2"]
|
|
|
|
| 607 |
class Dialogue(BaseModel):
|
| 608 |
scratchpad: str
|
| 609 |
dialogue: List[DialogueItem]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 610 |
|
| 611 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 612 |
def get_mp3(text: str, voice: str, audio_model: str, api_key: str = None,
|
| 613 |
speaker_instructions: str ='Speak in an emotive and friendly tone.') -> bytes:
|
| 614 |
|
|
|
|
| 627 |
file.write(chunk)
|
| 628 |
return file.getvalue()
|
| 629 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 630 |
def conditional_llm(
|
| 631 |
model,
|
| 632 |
api_base=None,
|
|
|
|
| 1200 |
fn=lambda error: gr.Warning(error) if error else None,
|
| 1201 |
inputs=[error_output],
|
| 1202 |
outputs=[]
|
| 1203 |
+
).then( # fill spreadsheet editor
|
| 1204 |
fn=dialogue_to_df,
|
| 1205 |
inputs=[cached_dialogue],
|
| 1206 |
outputs=[df_editor],
|
|
|
|
| 1254 |
gr.Markdown(read_readme())
|
| 1255 |
|
| 1256 |
# Enable queueing for better performance
|
| 1257 |
+
demo.queue(max_size=20, default_concurrency_limit=32)
|
| 1258 |
|
| 1259 |
# Launch the Gradio app
|
| 1260 |
+
if __name__ == "__main__":
|
| 1261 |
+
demo.launch(share=True)
|
| 1262 |
|
| 1263 |
+
#demo.launch()
|