Fix text area reset after AI revision, add API key error handling
- Pop draft_editor/quality_editor widget keys before rerun so revised text is correctly displayed after AI enrichment calls - Wrap _get_client() with friendly st.error/st.stop instead of stack trace - Remove unused _back_next() helper Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -11,7 +11,11 @@ import streamlit as st
|
|||||||
@st.cache_resource
|
@st.cache_resource
|
||||||
def _get_client():
|
def _get_client():
|
||||||
from kniepunkt.llm import get_client
|
from kniepunkt.llm import get_client
|
||||||
|
try:
|
||||||
return get_client()
|
return get_client()
|
||||||
|
except RuntimeError as e:
|
||||||
|
st.error(f"{e}\n\nBitte ANTHROPIC_API_KEY in der .env-Datei eintragen und Streamlit neu starten.")
|
||||||
|
st.stop()
|
||||||
|
|
||||||
|
|
||||||
@st.cache_resource
|
@st.cache_resource
|
||||||
@@ -70,16 +74,6 @@ def _progress_bar():
|
|||||||
st.divider()
|
st.divider()
|
||||||
|
|
||||||
|
|
||||||
def _back_next(back_step: str, next_label: str, next_key: str, next_disabled: bool = False):
|
|
||||||
col1, col2 = st.columns([1, 5])
|
|
||||||
with col1:
|
|
||||||
if st.button("← Zurück", key=f"back_{back_step}"):
|
|
||||||
_go(back_step)
|
|
||||||
with col2:
|
|
||||||
if st.button(next_label, type="primary", key=next_key, disabled=next_disabled):
|
|
||||||
return True
|
|
||||||
return False
|
|
||||||
|
|
||||||
|
|
||||||
def _grid_2x2(results: dict, select_key: str, button_label: str = "Auswählen"):
|
def _grid_2x2(results: dict, select_key: str, button_label: str = "Auswählen"):
|
||||||
"""Render provider outputs in a responsive 2-column grid with selection."""
|
"""Render provider outputs in a responsive 2-column grid with selection."""
|
||||||
@@ -345,6 +339,7 @@ def screen_draft():
|
|||||||
draft = dr_module.enrich_draft(_get_client(), draft, feedback)
|
draft = dr_module.enrich_draft(_get_client(), draft, feedback)
|
||||||
st.session_state.draft_text = draft
|
st.session_state.draft_text = draft
|
||||||
st.session_state.draft_text_source = selected
|
st.session_state.draft_text_source = selected
|
||||||
|
st.session_state.pop("draft_editor", None)
|
||||||
st.rerun()
|
st.rerun()
|
||||||
|
|
||||||
st.divider()
|
st.divider()
|
||||||
@@ -408,6 +403,7 @@ def screen_quality():
|
|||||||
draft = dr_module.enrich_draft(_get_client(), draft, feedback)
|
draft = dr_module.enrich_draft(_get_client(), draft, feedback)
|
||||||
st.session_state.session["draft"] = draft
|
st.session_state.session["draft"] = draft
|
||||||
st.session_state.pop("quality_report", None)
|
st.session_state.pop("quality_report", None)
|
||||||
|
st.session_state.pop("quality_editor", None)
|
||||||
_save()
|
_save()
|
||||||
st.rerun()
|
st.rerun()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user