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
+6 -10
View File
@@ -11,7 +11,11 @@ import streamlit as st
@st.cache_resource
def _get_client():
from kniepunkt.llm import 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
@@ -70,16 +74,6 @@ def _progress_bar():
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"):
"""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)
st.session_state.draft_text = draft
st.session_state.draft_text_source = selected
st.session_state.pop("draft_editor", None)
st.rerun()
st.divider()
@@ -408,6 +403,7 @@ def screen_quality():
draft = dr_module.enrich_draft(_get_client(), draft, feedback)
st.session_state.session["draft"] = draft
st.session_state.pop("quality_report", None)
st.session_state.pop("quality_editor", None)
_save()
st.rerun()