Merge branch 'main' of https://gitea.fhgr.ch/meulilivio/AISE1_Project into func_improvments
This commit is contained in:
commit
ba40f6fc82
@ -85,6 +85,12 @@ def _reject_action(feedback: str):
|
|||||||
st.session_state.agent_pending_action = next_action
|
st.session_state.agent_pending_action = next_action
|
||||||
st.session_state.agent_status = "waiting_approval"
|
st.session_state.agent_status = "waiting_approval"
|
||||||
|
|
||||||
|
def _handle_reject():
|
||||||
|
feedback = st.session_state.agent_reject_feedback
|
||||||
|
with st.spinner("Agent is replanning..."):
|
||||||
|
_reject_action(feedback)
|
||||||
|
st.session_state.agent_reject_feedback = ""
|
||||||
|
|
||||||
|
|
||||||
def _followup_agent(question: str):
|
def _followup_agent(question: str):
|
||||||
"""Continue a finished task by injecting a follow-up question and resuming the loop."""
|
"""Continue a finished task by injecting a follow-up question and resuming the loop."""
|
||||||
@ -225,7 +231,10 @@ def render_agent_mode():
|
|||||||
if args:
|
if args:
|
||||||
_render_arguments(args)
|
_render_arguments(args)
|
||||||
|
|
||||||
feedback = st.text_input(
|
if "agent_reject_feedback" not in st.session_state:
|
||||||
|
st.session_state.agent_reject_feedback = ""
|
||||||
|
|
||||||
|
st.text_input(
|
||||||
"Rejection feedback (optional):",
|
"Rejection feedback (optional):",
|
||||||
key="agent_reject_feedback",
|
key="agent_reject_feedback",
|
||||||
placeholder="e.g. Use a different approach...",
|
placeholder="e.g. Use a different approach...",
|
||||||
@ -238,10 +247,11 @@ def render_agent_mode():
|
|||||||
_approve_action()
|
_approve_action()
|
||||||
st.rerun()
|
st.rerun()
|
||||||
with col2:
|
with col2:
|
||||||
if st.button("Reject", use_container_width=True):
|
st.button(
|
||||||
with st.spinner("Agent is replanning..."):
|
"Reject",
|
||||||
_reject_action(feedback)
|
use_container_width=True,
|
||||||
st.rerun()
|
on_click=_handle_reject,
|
||||||
|
)
|
||||||
with col3:
|
with col3:
|
||||||
if st.button("Abort Task", use_container_width=True):
|
if st.button("Abort Task", use_container_width=True):
|
||||||
_reset_agent()
|
_reset_agent()
|
||||||
@ -583,6 +593,44 @@ def render_normal_chat():
|
|||||||
st.session_state.chat_history.append({"role": "assistant", "content": ai_response})
|
st.session_state.chat_history.append({"role": "assistant", "content": ai_response})
|
||||||
st.rerun()
|
st.rerun()
|
||||||
|
|
||||||
|
# 5d — Clear Chat opens a confirmation dialog instead of deleting immediately.
|
||||||
|
if st.button("🗑️ Clear Chat"):
|
||||||
|
_clear_chat_dialog()
|
||||||
|
|
||||||
|
# Toggle to switch to Agent Mode (render_normal_chat and render_agent_mode are
|
||||||
|
# mutually exclusive, so the same key here causes no DuplicateWidgetID conflict).
|
||||||
|
st.toggle("Agent Mode", key="agent_mode")
|
||||||
|
|
||||||
|
# 5h — Settings expander: file context toggle, model, token limit, custom prompt.
|
||||||
|
with st.expander("⚙️ Settings", expanded=False):
|
||||||
|
current_file = st.session_state.get("active_file")
|
||||||
|
if current_file:
|
||||||
|
st.toggle(f"Include current file as context: **{Path(current_file).name}**", key="include_file_context", value=True)
|
||||||
|
|
||||||
|
|
||||||
|
st.divider()
|
||||||
|
|
||||||
|
default_model = chat_manager.model or ""
|
||||||
|
model_options = [default_model] if default_model else []
|
||||||
|
|
||||||
|
st.selectbox("Model", model_options, key="selected_model")
|
||||||
|
|
||||||
|
st.slider(
|
||||||
|
"Max Response Tokens",
|
||||||
|
min_value=256, max_value=8000,
|
||||||
|
value=chat_manager.max_tokens,
|
||||||
|
step=256, key="chat_max_tokens",
|
||||||
|
)
|
||||||
|
|
||||||
|
st.divider()
|
||||||
|
|
||||||
|
st.text_area(
|
||||||
|
"Custom System Prompt (overrides default if set)",
|
||||||
|
key="custom_system_prompt",
|
||||||
|
height=120,
|
||||||
|
placeholder="Leave empty to use the default assistant prompt with optional file context.",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
# ── Entry point ───────────────────────────────────────────────────────────────
|
# ── Entry point ───────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user