Spaces:
Running
on
Zero
Running
on
Zero
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, language: str): | |
# 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, | |
font=font, | |
output_dir=output_dir, | |
) | |
filename = f'{output_dir}/presentation.pptx' | |
return filename | |
# Updated examples to include language selection | |
examples = [ | |
["Generate a presentation on economics, 7 slides", "English"], | |
["Сгенерируйте презентацию по экономике, 7 слайдов", "Русский"], | |
["Create a presentation on climate change, 6 slides", "English"], | |
["Создайте презентацию об изменении климата, 6 слайдов", "Русский"], | |
["Create a presentation on artificial intelligence, 8 slides", "English"], | |
["Создайте презентацию об искусственном интеллекте, 8 слайдов", "Русский"], | |
["Design a presentation on space exploration, 10 slides", "English"], | |
["Разработайте презентацию о космических исследованиях, 10 слайдов", "Русский"], | |
["Prepare a presentation on the future of renewable energy, 7 slides", "English"], | |
["Подготовьте презентацию о будущем возобновляемой энергетики, 7 слайдов", "Русский"], | |
["Develop a presentation on the history of art movements, 9 slides", "English"], | |
["Разработайте презентацию о истории художественных движений, 9 слайдов", "Русский"], | |
["Generate a presentation on the impact of social media, 6 slides", "English"], | |
["Сгенерируйте презентацию о влиянии социальных сетей, 6 слайдов", "Русский"], | |
["Create a presentation on sustainable urban planning, 8 slides", "English"], | |
["Создайте презентацию о устойчивом градостроительстве, 8 слайдов", "Русский"], | |
["Разработайте презентацию о новшествах в области медицинских технологий, 7 слайдов", "Русский"], | |
["Design a presentation on innovations in healthcare technology, 7 slides", "English"], | |
["Подготовьте презентацию о глобальных экономических тенденциях, 5 слайдов", "Русский"], | |
["Prepare a presentation on global economic trends, 5 slides", "English"], | |
["Разработайте презентацию о психологии потребительского поведения, 6 слайдов", "Русский"], | |
["Develop a presentation on the psychology of consumer behavior, 6 slides", "English"], | |
["Сгенерируйте презентацию о преимуществах осознанности и медитации, 7 слайдов", "Русский"], | |
["Generate a presentation on the benefits of mindfulness and meditation, 7 slides", "English"], | |
["Создайте презентацию о достижениях в области автономных транспортных средств, 8 слайдов", "Русский"], | |
["Create a presentation on advancements in autonomous vehicles, 8 slides", "English"], | |
["Разработайте презентацию о влиянии изменений климатической политики, 5 слайдов", "Русский"], | |
["Design a presentation on the impact of climate policy changes, 5 slides", "English"], | |
] | |
iface = gr.Interface( | |
fn=create_presentation, | |
inputs=[ | |
gr.Textbox( | |
label="Presentation Description", | |
placeholder="Enter the description for the presentation..." | |
), | |
gr.Dropdown( | |
label="Language", | |
choices=["English", "Russian"], | |
value="English" | |
) | |
], | |
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() |