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 ----' )
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
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