Spaces:
Running
Running
import mesop as me | |
import components as mex | |
import handlers | |
import llm | |
from constants import DIALOG_INPUT_WIDTH | |
from helpers import parse_variables | |
from state import State | |
def generate_prompt(): | |
state = me.state(State) | |
with mex.dialog(state.dialog_show_generate_prompt): | |
me.text("Generate Prompt", type="headline-6") | |
me.textarea( | |
label="Describe your task", | |
value=state.prompt_gen_task_description, | |
on_blur=handlers.on_update_input, | |
key="prompt_gen_task_description", | |
style=me.Style(width=DIALOG_INPUT_WIDTH), | |
) | |
with mex.dialog_actions(): | |
mex.button( | |
"Close", | |
key="dialog_show_generate_prompt", | |
on_click=handlers.on_close_dialog, | |
) | |
mex.button( | |
"Generate", | |
type="flat", | |
on_click=on_click_generate_prompt, | |
) | |
def on_click_generate_prompt(e: me.ClickEvent): | |
"""Generates an improved prompt based on the given task description and closes dialog.""" | |
state = me.state(State) | |
state.prompt = llm.generate_prompt( | |
state.prompt_gen_task_description, state.model, state.model_temperature | |
) | |
variable_names = parse_variables(state.prompt) | |
for variable_name in variable_names: | |
if variable_name not in state.prompt_variables: | |
state.prompt_variables[variable_name] = "" | |
state.dialog_show_generate_prompt = False | |