From 8d4771eb6fde8e25d0f219e2e7d2768d347a8247 Mon Sep 17 00:00:00 2001 From: mrshu Date: Tue, 27 Feb 2024 07:31:06 +0100 Subject: [PATCH] add: Display rendered System and User prompts * Ensure that when jinja2 is used, the rendered versions of the System and User prompts are also shown in the UI. Signed-off-by: mrshu --- prompterator/main.py | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/prompterator/main.py b/prompterator/main.py index 476ae29..84089bf 100644 --- a/prompterator/main.py +++ b/prompterator/main.py @@ -448,7 +448,7 @@ def _get_coloured_patch(patch): ) -def set_up_prompt_attrs_area(st_container): +def set_up_prompt_attrs_area(st_container, st): env = u.jinja_env() parsed_content = env.parse(st.session_state.system_prompt) vars = meta.find_undeclared_variables(parsed_content) @@ -470,6 +470,26 @@ def set_up_prompt_attrs_area(st_container): height=c.DATA_POINT_TEXT_AREA_HEIGHT, ) + system_prompt = env.from_string(st.session_state.system_prompt).render(**st.session_state.row.to_dict()) + user_prompt = env.from_string(st.session_state.user_prompt).render(**st.session_state.row.to_dict()) + # Show the rendered System and User prompts + col1, col2 = st.columns([1, 1]) + col1.text_area( + label=f"Rendered system prompt", + key="system_prompt_jinja2", + value=system_prompt, + disabled=True, + height=c.DATA_POINT_TEXT_AREA_HEIGHT, + ) + + col2.text_area( + label=f"Rendered user prompt", + key="user_prompt_jinja2", + value=user_prompt, + disabled=True, + height=c.DATA_POINT_TEXT_AREA_HEIGHT, + ) + def display_image(st_container, base64_str): st_container.markdown( @@ -489,7 +509,7 @@ def set_up_ui_labelling(): disabled=True, height=c.DATA_POINT_TEXT_AREA_HEIGHT, ) - set_up_prompt_attrs_area(col2_orig) + set_up_prompt_attrs_area(col2_orig, st) if "image" in st.session_state.row: display_image(col2_orig, st.session_state.row["image"])