mindnet/app/frontend/ui.py

63 lines
2.0 KiB
Python
Raw Normal View History

2025-12-09 18:44:26 +01:00
import streamlit as st
import uuid
2025-12-14 08:34:23 +01:00
# --- MODULE IMPORTS ---
2025-12-14 07:34:51 +01:00
try:
2025-12-14 08:34:23 +01:00
from ui_config import QDRANT_URL, QDRANT_KEY, COLLECTION_PREFIX
from ui_graph_service import GraphExplorerService
from ui_components import render_sidebar, render_chat_interface, render_manual_editor, render_graph_explorer
except ImportError as e:
st.error(f"Import Error: {e}. Bitte stelle sicher, dass alle UI-Dateien im selben Ordner liegen.")
2025-12-14 07:34:51 +01:00
st.stop()
2025-12-09 18:44:26 +01:00
# --- PAGE SETUP ---
2025-12-14 07:34:51 +01:00
st.set_page_config(page_title="mindnet v2.6", page_icon="🧠", layout="wide")
2025-12-09 18:44:26 +01:00
2025-12-09 23:16:28 +01:00
# --- CSS STYLING ---
2025-12-09 18:44:26 +01:00
st.markdown("""
<style>
2025-12-14 07:34:51 +01:00
.block-container { padding-top: 2rem; max_width: 1200px; margin: auto; }
2025-12-09 23:05:28 +01:00
2025-12-09 18:44:26 +01:00
.intent-badge {
2025-12-09 23:05:28 +01:00
background-color: #e8f0fe; color: #1a73e8;
padding: 4px 10px; border-radius: 12px;
font-size: 0.8rem; font-weight: 600;
border: 1px solid #d2e3fc; display: inline-block; margin-bottom: 0.5rem;
2025-12-09 22:27:56 +01:00
}
2025-12-09 23:05:28 +01:00
2025-12-10 16:55:56 +01:00
.draft-box {
2025-12-10 17:14:51 +01:00
border: 1px solid #d0d7de;
border-radius: 6px;
padding: 16px;
background-color: #f6f8fa;
2025-12-10 16:55:56 +01:00
margin-top: 10px;
2025-12-10 17:14:51 +01:00
margin-bottom: 10px;
2025-12-10 16:55:56 +01:00
}
2025-12-10 17:14:51 +01:00
2025-12-10 16:55:56 +01:00
.preview-box {
border: 1px solid #e0e0e0;
2025-12-10 17:14:51 +01:00
border-radius: 6px;
padding: 24px;
2025-12-10 16:55:56 +01:00
background-color: white;
2025-12-10 17:14:51 +01:00
font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
2025-12-10 16:55:56 +01:00
}
2025-12-09 18:44:26 +01:00
</style>
""", unsafe_allow_html=True)
2025-12-09 22:27:56 +01:00
# --- SESSION STATE ---
2025-12-09 23:05:28 +01:00
if "messages" not in st.session_state: st.session_state.messages = []
if "user_id" not in st.session_state: st.session_state.user_id = str(uuid.uuid4())
2025-12-14 08:34:23 +01:00
# --- SERVICE INIT ---
# Initialisiert den Graph Service einmalig
2025-12-14 07:34:51 +01:00
graph_service = GraphExplorerService(QDRANT_URL, QDRANT_KEY, COLLECTION_PREFIX)
2025-12-14 08:34:23 +01:00
# --- MAIN ROUTING ---
2025-12-09 23:05:28 +01:00
mode, top_k, explain = render_sidebar()
2025-12-14 07:34:51 +01:00
2025-12-09 23:05:28 +01:00
if mode == "💬 Chat":
render_chat_interface(top_k, explain)
2025-12-14 07:34:51 +01:00
elif mode == "📝 Manueller Editor":
render_manual_editor()
elif mode == "🕸️ Graph Explorer":
2025-12-14 08:34:23 +01:00
render_graph_explorer(graph_service)