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:
2026-04-25 23:26:27 +02:00
parent d9c87bd8f1
commit fd011f6db3
+7 -11
View File
@@ -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
return get_client() try:
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()