Esempio n. 1
0
def start_new_story():
    with open('story/story_data.yaml', 'r') as stream:
        story_data = yaml.safe_load(stream)

    # Select a random setting

    # Only fantasy is supported right now
    #setting_key = random.choice(list(story_data['settings'].keys()))
    setting_key = 'fantasy'

    character_key = random.choice(
        list(story_data['settings'][setting_key]['characters'].keys()))
    name = grammars.direct(setting_key, 'fantasy_name')
    character = story_data['settings'][setting_key]['characters'][
        character_key]
    setting_description = story_data['settings'][setting_key]['description']

    # Generate context and prompt
    context, prompt = get_curated_exposition(setting_key, character_key, name,
                                             character, setting_description)

    story_manager.generator.generate_num = 120
    story_manager.start_new_story(prompt, context=context, upload_story=False)
    story_manager.generator.generate_num = story_manager.generator.default_gen_num

    print(
        f'---- BEGIN STORY START ----\n{get_story_chunk()}\n---- END STORY START ----'
    )
Esempio n. 2
0
def random_story(story_data):
    # random setting
    # settings = list(story_data["settings"])
    # n_settings = len(settings)
    # rand_n = random.randint(0, n_settings - 1)
    # setting_key = settings[rand_n]

    # temporarily only available in fantasy
    setting_key = "fantasy"

    # random character
    characters = list(story_data["settings"][setting_key]["characters"])
    n_characters = len(characters)
    rand_n = random.randint(0, n_characters - 1)
    character_key = characters[rand_n]

    # random name
    name = grammars.direct(setting_key, "fantasy_name")

    return setting_key, character_key, name
Esempio n. 3
0
def random_story(story_data):
    # random setting
    settings = story_data["settings"].keys()
    n_settings = len(settings)
    n_settings = 2
    rand_n = random.randint(0, n_settings - 1)
    for i, setting in enumerate(settings):
        if i == rand_n:
            setting_key = setting

    # random character
    characters = story_data["settings"][setting_key]["characters"]
    n_characters = len(characters)
    rand_n = random.randint(0, n_characters - 1)
    for i, character in enumerate(characters):
        if i == rand_n:
            character_key = character

    # random name
    name = grammars.direct(setting_key, "character_name")

    return setting_key, character_key, name, None, None