SlitProjektHub: Projektauftrag, Rollen, Aufgaben, Dokumente und getypte Kontexte. Daraus wird der Prompt strukturiert zusammengesetzt (Context Orchestration); Nachrichten werden typisiert/klassifiziert → weniger Chat-Drift, klare Governance, auditierbar.
0
stars
117
commits
Python
primary language
Sep 10, 2026
updated
KI-gestütztes Tool zur Verwaltung von Ausschreibungsprojekten mit automatischer Fragenbeantwortung (RAG) und KI-Erkennung.
1-50, 1-20,25,51-105) statt "alle oder nichts"start_app.ps1Das System verwendet Hybrid Retrieval für optimale Treffergenauigkeit:
Query: "Ist eine ISO9001-Zertifizierung erforderlich?"
→ Distillation: "iso9001 zertifizierung erforderlich pflicht"
→ Semantic: Chunks über Qualitätsmanagement-Anforderungen
→ BM25: Chunks mit exaktem "iso9001" Token
→ RRF Fusion: Beste Kombination beider Methoden
git clone https://github.com/lastphoenx/SlitProjektHub.git
cd SlitProjektHub
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
python -m spacy download de_core_news_sm
cp config/config.example.yaml config/config.yaml
cp config/auth.example.yaml config/auth.yaml
cp config/user_settings.example.yaml config/user_settings.yaml
cp .env.example .env
# config/config.yaml, .env und auth.yaml lokal anpassen (Keys, trusted_proxy_ips)
Hinweis
de_core_news_sm: Das deutsche spaCy-Sprachmodell (~15 MB) wird für die BM25-Lemmatisierung benötigt. Es wird nicht überrequirements.txtinstalliert, sondern mit dem separatenspacy download-Befehl. Ohne dieses Modell läuft das RAG-System im Fallback-Modus (einfaches Regex-Tokenizing).
Vor dem Senden an OpenAI/Anthropic werden Prompts zusätzlich mit Presidio + Flair anonymisiert (swiss-pii-anonymizer). Erfordert einmaligen Modell-Download (~2–3 GB HF-Cache, 8 GB RAM empfohlen für ner-german-large). Auf dem Server: docs/SERVER_SETUP.md Abschnitt 7.
export HF_HOME=/opt/slitprojekthub/.hf_cache
.venv/bin/python scripts/maintenance/prefetch_pii_models.py
Lokal ohne Prefetch: Stufe 2 fällt still auf Regex-Stufe 1 zurück (SWISS_PII_ANONYMIZER=0 zum Abschalten).
.\start_app.ps1
Das Skript beendet automatisch laufende Prozesse auf Port 8000/8501 und öffnet Backend und Frontend in separaten Fenstern.
app/
streamlit_app.py # Einstiegspunkt Streamlit
pages/ # Einzelne App-Seiten (01–08)
src/
m01_config.py # Einstellungen
m03_db.py # Datenbank-Modelle (SQLModel)
m07_*.py # Domänenlogik (Projekte, Rollen, Tasks)
m08_llm.py # LLM Provider Abstraction (OpenAI/Anthropic/Mistral)
m09_rag.py # RAG (Retrieval Augmented Generation)
m10_chat.py # Chat-Logik
m13_ki_detector.py # KI-Erkennung für Ausschreibungsfragen
backend/
main.py # FastAPI REST API
data/
db/ # SQLite Datenbank (nicht in Git)
rag/ # ChromaDB Vektoren (nicht in Git)
config/
config.yaml # App-Einstellungen
scripts/
maintenance/ # Hilfsskripte (check_*, fix_*, debug_*)
docs/
ARCHITECTURE.md # Technische Architektur
PROJECT_STRUCTURE.md # Dateistruktur & Feature-Übersicht
.env-Datei im Root-Verzeichnis (Vorlage: .env.example):
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
MISTRAL_API_KEY=...
Analysiert Fragen aus eingelesenen CSV-Dateien darauf, ob sie KI-generiert wirken:
sentence-transformers100 commits
17 commits
Python
75.9%
HTML
21.1%
SlitProjektHub: Projektauftrag, Rollen, Aufgaben, Dokumente und getypte Kontexte. Daraus wird der Prompt strukturiert zusammengesetzt (Context Orchestration); Nachrichten werden typisiert/klassifiziert → weniger Chat-Drift, klare Governance, auditierbar.
0
stars
117
commits
Python
primary language
Sep 10, 2026
updated
KI-gestütztes Tool zur Verwaltung von Ausschreibungsprojekten mit automatischer Fragenbeantwortung (RAG) und KI-Erkennung.
1-50, 1-20,25,51-105) statt "alle oder nichts"start_app.ps1Das System verwendet Hybrid Retrieval für optimale Treffergenauigkeit:
Query: "Ist eine ISO9001-Zertifizierung erforderlich?"
→ Distillation: "iso9001 zertifizierung erforderlich pflicht"
→ Semantic: Chunks über Qualitätsmanagement-Anforderungen
→ BM25: Chunks mit exaktem "iso9001" Token
→ RRF Fusion: Beste Kombination beider Methoden
git clone https://github.com/lastphoenx/SlitProjektHub.git
cd SlitProjektHub
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
python -m spacy download de_core_news_sm
cp config/config.example.yaml config/config.yaml
cp config/auth.example.yaml config/auth.yaml
cp config/user_settings.example.yaml config/user_settings.yaml
cp .env.example .env
# config/config.yaml, .env und auth.yaml lokal anpassen (Keys, trusted_proxy_ips)
Hinweis
de_core_news_sm: Das deutsche spaCy-Sprachmodell (~15 MB) wird für die BM25-Lemmatisierung benötigt. Es wird nicht überrequirements.txtinstalliert, sondern mit dem separatenspacy download-Befehl. Ohne dieses Modell läuft das RAG-System im Fallback-Modus (einfaches Regex-Tokenizing).
Vor dem Senden an OpenAI/Anthropic werden Prompts zusätzlich mit Presidio + Flair anonymisiert (swiss-pii-anonymizer). Erfordert einmaligen Modell-Download (~2–3 GB HF-Cache, 8 GB RAM empfohlen für ner-german-large). Auf dem Server: docs/SERVER_SETUP.md Abschnitt 7.
export HF_HOME=/opt/slitprojekthub/.hf_cache
.venv/bin/python scripts/maintenance/prefetch_pii_models.py
Lokal ohne Prefetch: Stufe 2 fällt still auf Regex-Stufe 1 zurück (SWISS_PII_ANONYMIZER=0 zum Abschalten).
.\start_app.ps1
Das Skript beendet automatisch laufende Prozesse auf Port 8000/8501 und öffnet Backend und Frontend in separaten Fenstern.
app/
streamlit_app.py # Einstiegspunkt Streamlit
pages/ # Einzelne App-Seiten (01–08)
src/
m01_config.py # Einstellungen
m03_db.py # Datenbank-Modelle (SQLModel)
m07_*.py # Domänenlogik (Projekte, Rollen, Tasks)
m08_llm.py # LLM Provider Abstraction (OpenAI/Anthropic/Mistral)
m09_rag.py # RAG (Retrieval Augmented Generation)
m10_chat.py # Chat-Logik
m13_ki_detector.py # KI-Erkennung für Ausschreibungsfragen
backend/
main.py # FastAPI REST API
data/
db/ # SQLite Datenbank (nicht in Git)
rag/ # ChromaDB Vektoren (nicht in Git)
config/
config.yaml # App-Einstellungen
scripts/
maintenance/ # Hilfsskripte (check_*, fix_*, debug_*)
docs/
ARCHITECTURE.md # Technische Architektur
PROJECT_STRUCTURE.md # Dateistruktur & Feature-Übersicht
.env-Datei im Root-Verzeichnis (Vorlage: .env.example):
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
MISTRAL_API_KEY=...
Analysiert Fragen aus eingelesenen CSV-Dateien darauf, ob sie KI-generiert wirken:
sentence-transformers100 commits
17 commits
Python
75.9%
HTML
21.1%