Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import time | |
| from src.constructor import generate_presentation | |
| from src.prompt_configs import en_gigachat_config, ru_gigachat_config | |
| from src.gigachat import giga_generate | |
| # from src.kandinsky import api_k31_generate | |
| from src.kandinsky import generate_image | |
| from src.font import Font | |
| logs_dir = "logs" | |
| fonts_dir = "fonts" | |
| def create_presentation(description: str, slides_num: int, language: str, num_inference_steps: int, image_size_coef: float): | |
| # Select the appropriate prompt configuration based on the selected language | |
| if language == "English": | |
| prompt_config = en_gigachat_config | |
| elif language == "Русский": | |
| prompt_config = ru_gigachat_config | |
| else: | |
| # set default to prevent interruptions in unexpected scenario | |
| prompt_config = en_gigachat_config | |
| font = Font(fonts_dir) | |
| font.set_random_font() | |
| output_dir = f'{logs_dir}/{int(time.time())}' | |
| generate_presentation( | |
| llm_generate=giga_generate, | |
| # generate_image=api_k31_generate, | |
| generate_image=generate_image, | |
| prompt_config=prompt_config, | |
| description=description, | |
| slides_num=slides_num, | |
| font=font, | |
| output_dir=output_dir, | |
| num_inference_steps=num_inference_steps, | |
| image_size_coef=image_size_coef | |
| ) | |
| filename = f'{output_dir}/presentation.pptx' | |
| return filename | |
| # Updated examples to include language selection | |
| examples = [ | |
| ["Generate a presentation on economics", 7, "English"], | |
| ["Сгенерируйте презентацию по экономике", 7, "Русский"], | |
| ["Create a presentation on climate change", 6, "English"], | |
| ["Создайте презентацию об изменении климата", 6, "Русский"], | |
| ["Create a presentation on artificial intelligence", 8, "English"], | |
| ["Создайте презентацию об искусственном интеллекте", 8, "Русский"], | |
| ["Design a presentation on space exploration", 10, "English"], | |
| ["Разработайте презентацию о космических исследованиях", 10, "Русский"], | |
| ["Prepare a presentation on the future of renewable energy", 7, "English"], | |
| ["Подготовьте презентацию о будущем возобновляемой энергетики", 7, "Русский"], | |
| ["Develop a presentation on the history of art movements", 9, "English"], | |
| ["Разработайте презентацию о истории художественных движений", 9, "Русский"], | |
| ["Generate a presentation on the impact of social media", 6, "English"], | |
| ["Сгенерируйте презентацию о влиянии социальных сетей", 6, "Русский"], | |
| ["Create a presentation on sustainable urban planning", 8, "English"], | |
| ["Создайте презентацию о устойчивом градостроительстве", 8, "Русский"], | |
| ["Разработайте презентацию о новшествах в области медицинских технологий", 7, "Русский"], | |
| ["Design a presentation on innovations in healthcare technology", 7, "English"], | |
| ["Подготовьте презентацию о глобальных экономических тенденциях", 5, "Русский"], | |
| ["Prepare a presentation on global economic trends", 5, "English"], | |
| ["Разработайте презентацию о психологии потребительского поведения", 6, "Русский"], | |
| ["Develop a presentation on the psychology of consumer behavior", 6, "English"], | |
| ["Сгенерируйте презентацию о преимуществах осознанности и медитации", 7, "Русский"], | |
| ["Generate a presentation on the benefits of mindfulness and meditation", 7, "English"], | |
| ["Создайте презентацию о достижениях в области автономных транспортных средств", 8, "Русский"], | |
| ["Create a presentation on advancements in autonomous vehicles", 8, "English"], | |
| ["Разработайте презентацию о влиянии изменений климатической политики", 5, "Русский"], | |
| ["Design a presentation on the impact of climate policy changes", 5, "English"], | |
| ] | |
| iface = gr.Interface( | |
| fn=create_presentation, | |
| inputs=[ | |
| gr.Textbox( | |
| label="Presentation Description", | |
| placeholder="Enter the description for the presentation..." | |
| ), | |
| gr.Dropdown( | |
| label="Number of slides", | |
| choices=range(1, 11), | |
| value=5 | |
| ), | |
| gr.Dropdown( | |
| label="Language", | |
| choices=["English", "Русский"], | |
| value="English" | |
| ), | |
| gr.Slider( | |
| label="number of diffusion steps", | |
| minimum=2, | |
| maximum=50, | |
| step=1, | |
| value=50, | |
| ), | |
| gr.Slider( | |
| label="scaling factor for image reduction", | |
| minimum=0.25, | |
| maximum=1.0, | |
| step=0.05, | |
| value=1.0, | |
| ) | |
| ], | |
| outputs=gr.File( | |
| label="Download Presentation" | |
| ), | |
| title="Presentation Generator", | |
| description="Generate a presentation based on the provided description and selected language. Click the button to download the presentation.", | |
| css="footer {visibility: hidden}", | |
| allow_flagging="never", | |
| examples=examples | |
| ) | |
| iface.launch() |