Spaces:
Runtime error
Runtime error
| import re | |
| import gradio as gr | |
| from interfaces import utils | |
| from modules import( | |
| palmchat, | |
| palm_prompts, | |
| ) | |
| print(palm_prompts) | |
| async def plot_gen( | |
| temperature, | |
| genre, place, mood, | |
| side_char_enable1, side_char_enable2, side_char_enable3, | |
| main_char_name, main_char_age, main_char_personality, main_char_job, | |
| side_char_name1, side_char_age1, side_char_personality1, side_char_job1, | |
| side_char_name2, side_char_age2, side_char_personality2, side_char_job2, | |
| side_char_name3, side_char_age3, side_char_personality3, side_char_job3, | |
| ): | |
| side_char_prompt = utils.add_side_character( | |
| [side_char_enable1, side_char_enable2, side_char_enable3], | |
| [side_char_name1, side_char_name2, side_char_name3], | |
| [side_char_job1, side_char_job2, side_char_job3], | |
| [side_char_age1, side_char_age2, side_char_age3], | |
| [side_char_personality1, side_char_personality2, side_char_personality3], | |
| ) | |
| prompt = palm_prompts['plot_gen']['main_plot_gen'].format( | |
| genre=genre, place=place, mood=mood, | |
| main_char_name=main_char_name, | |
| main_char_job=main_char_job, | |
| main_char_age=main_char_age, | |
| main_char_personality=main_char_personality, | |
| side_char_placeholder=side_char_prompt, | |
| ) | |
| print(f"generated prompt:\n{prompt}") | |
| parameters = { | |
| 'model': 'models/text-bison-001', | |
| 'candidate_count': 1, | |
| 'temperature': temperature, | |
| 'top_k': 40, | |
| 'top_p': 1, | |
| 'max_output_tokens': 4096, | |
| } | |
| response_json = await utils.retry_until_valid_json(prompt, parameters=parameters) | |
| return ( | |
| response_json['title'], | |
| f"## {response_json['title']}", | |
| response_json['outline']['rising action'], | |
| response_json['outline']['crisis'], | |
| response_json['outline']['climax'], | |
| response_json['outline']['falling action'], | |
| response_json['outline']['denouement'], | |
| ) | |
| async def first_story_gen( | |
| title, | |
| rising_action, crisis, climax, falling_action, denouement, | |
| genre, place, mood, | |
| side_char_enable1, side_char_enable2, side_char_enable3, | |
| main_char_name, main_char_age, main_char_personality, main_char_job, | |
| side_char_name1, side_char_age1, side_char_personality1, side_char_job1, | |
| side_char_name2, side_char_age2, side_char_personality2, side_char_job2, | |
| side_char_name3, side_char_age3, side_char_personality3, side_char_job3, | |
| cursors, cur_cursor | |
| ): | |
| side_char_prompt = utils.add_side_character( | |
| [side_char_enable1, side_char_enable2, side_char_enable3], | |
| [side_char_name1, side_char_name2, side_char_name3], | |
| [side_char_job1, side_char_job2, side_char_job3], | |
| [side_char_age1, side_char_age2, side_char_age3], | |
| [side_char_personality1, side_char_personality2, side_char_personality3], | |
| ) | |
| prompt = palm_prompts['plot_gen']['first_story_gen'].format( | |
| genre=genre, place=place, mood=mood, | |
| main_char_name=main_char_name, | |
| main_char_job=main_char_job, | |
| main_char_age=main_char_age, | |
| main_char_personality=main_char_personality, | |
| side_char_placeholder=side_char_prompt, | |
| title=title, | |
| rising_action=rising_action, | |
| crisis=crisis, | |
| climax=climax, | |
| falling_action=falling_action, | |
| denouement=denouement, | |
| ) | |
| print(f"generated prompt:\n{prompt}") | |
| parameters = { | |
| 'model': 'models/text-bison-001', | |
| 'candidate_count': 1, | |
| 'temperature': 1, | |
| 'top_k': 40, | |
| 'top_p': 1, | |
| 'max_output_tokens': 4096, | |
| } | |
| response_json = await utils.retry_until_valid_json(prompt, parameters=parameters) | |
| chapter_title = response_json["chapter_title"] | |
| pattern = r"Chapter\s+\d+\s*[:.]" | |
| chapter_title = re.sub(pattern, "", chapter_title) | |
| cursors.append({ | |
| "title": chapter_title, | |
| "plot_type": "rising action", | |
| "story": "\n\n".join(response_json["paragraphs"]) | |
| }) | |
| return ( | |
| f"### {chapter_title} (\"rising action\")", | |
| "\n\n".join(response_json["paragraphs"]), | |
| cursors, | |
| cur_cursor, | |
| gr.update(interactive=True), | |
| gr.update(interactive=True), | |
| gr.update(value=response_json["actions"][0], interactive=True), | |
| gr.update(value=response_json["actions"][1], interactive=True), | |
| gr.update(value=response_json["actions"][2], interactive=True), | |
| ) |