Spaces:
Running
on
Zero
Running
on
Zero
import time | |
import argparse | |
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.font import Font | |
def main(): | |
parser = argparse.ArgumentParser( | |
description='Generate a presentation.' | |
) | |
parser.add_argument( | |
'-d', '--description', | |
type=str, | |
required=True, | |
help='Description of the presentation' | |
) | |
parser.add_argument( | |
'-l', '--language', | |
type=str, | |
choices=['en', 'ru'], | |
default='en', | |
help='Language for the presentation. Choices are: English, Russian. Default is English.' | |
) | |
args = parser.parse_args() | |
# Select the appropriate prompt configuration based on the language argument | |
if args.language == 'en': | |
prompt_config = en_gigachat_config | |
elif args.language == 'ru': | |
prompt_config = ru_gigachat_config | |
else: | |
# set default to prevent interruptions in unexpected scenario | |
print("only 'en' and 'ru' configs are available, settings default 'en'") | |
prompt_config = en_gigachat_config | |
fonts_dir = "./fonts" | |
logs_dir = "./logs" | |
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, | |
prompt_config=prompt_config, | |
description=args.description, | |
font=font, | |
output_dir=output_dir, | |
) | |
if __name__ == "__main__": | |
main() |