Allgemeine Einführung
0. Projektfunktion
Das System ist eine interne Web-Anwendung für Marketing-AI-Workflows rund um Produktwissen, Dokumente und Content-Erstellung.
Es verbindet eine Dash-/Flask-UI mit mehreren Python-Services, die Inhalte generieren, durchsuchen, prüfen und im Kontext von Produkt- und Dokumentendaten weiterverarbeiten.
Im heutigen Stand ist das System eine interne Web-Anwendung für “Marketing AI”-Workflows rund um Produkt-Know-how und Marketing-Collateral:
- Produkt- und Dokumentensuche
- Produkt-/Dokumenten-Generierung, z. B. Bulletins, Customer Letters, Concise Pages
- Übersetzung, Paraphrasierung, Review/Prüfung von Texten
- Verwaltung von zentralen “Libraries” (Prompt-, Terminology-, Parameter-Definitionen)
- Laden und Verwenden von Produkt- und Unit-Daten aus S3/JSON/CSV/YAML
- LLM-Streaming mit Azure OpenAI
Es löst also praktisch das Problem:
“Marketing-User müssen aus mehreren internen Produkt-/Dokumentdatenbeständen strukturierten Text erzeugen, den richtigen Kontext für einen Auftrag finden und das Ergebnis im UI oder als API-Response weiterverarbeiten.”
1. Grobstruktur
Der Einstiegspunkt ist die App selbst: marketinggpt/app.py. Dort wird die Dash-/Flask-Anwendung aufgebaut, der Server registriert und die Page-Module sowie die API-Blueprints an die App gehängt.
Die eigentliche Nutzerfunktionalität liegt in den Page-Modulen unter marketinggpt/pages: zum Beispiel marketinggpt/pages/generation.py, marketinggpt/pages/search_filter.py, marketinggpt/pages/review.py und marketinggpt/pages/translate.py.
Der zentrale Service-/Wiring-Layer sitzt in marketinggpt/python_functions/energyai_elements.py. Dort werden globale Objekte und zentrale Hilfs-Services aufgebaut.
Die Core-Integration für LLM-, Datenspeicher- und Produktlogik liegt in marketinggpt/python_functions/openaiInterface.py, marketinggpt/python_functions/Dataloader.py, marketinggpt/python_functions/LibraryManager.py und marketinggpt/python_functions/s3connect.py.
Zusätzlich gibt es die globale Shared-Datenlage in marketinggpt/share.py und die Cache-/Refresh-Logik in marketinggpt/scheduler.py.
Die RAG-/Graph-Struktur ist in marketinggpt/rag vorbereitet, ist aber aktuell nicht der dominante Laufpfad.
2. Code Interdepenz
Die Anwendung startet in marketinggpt/app.py:
- Flask wird als Server-Container aufgebaut.
- Dash wird an den Flask-Server gebunden.
- Die einzelnen Page-Module registrieren UI- und API-Route-Logik.
- Der gemeinsame API-Blueprint wird unter
/apieingebunden.
Danach werden die globalen Basisobjekte in marketinggpt/python_functions/energyai_elements.py initialisiert. Diese zentralen Objekte stellen den Kern für Rollen, Prompt-Libraries, Produkt- und Unit-Informationen sowie LLM- und Search-Kontexte bereit.
Die konkrete Anfrage läuft dann typischerweise über eine Dash-Page oder einen Flask-API-Route-Handler. Die Page spricht dazu die passenden Python-Helfer oder den LLM-Wrapper an und liefert den Output wieder an die UI oder an die API-Response.
3. Tech-Stack Basics
Das Projekt ist primär Python-basiert. Die wichtigsten Bausteine sind:
- Dash und Flask für die Web-/UI-Schicht
- pandas, numpy und scikit-learn für Daten- und Analyse-Logik
- OpenAI- oder Azure-OpenAI-Integration für LLM-Workflows
- boto3 und S3-Integration für Cloud-Storage-Zugriffe
- YAML-/Env-/Secrets-Konfigurationen für lokale und Cloud-Kontexte
Die relevanten Dependency-Definitionen liegen in marketinggpt/requirements.txt.
4. Wie startet das Projekt lokal?
Der lokale Einstieg ist marketinggpt/app.py. Der Server wird dort als Flask-App gestartet und die Dash-Seiten werden über die Page-Registrierung in die App eingebunden.
Der Start-Befehl muss im Projektordner marketinggpt mit python app.py ausgeführt werden, um die Applikation zu starten.
Ein neues Setup ist zunächst eine kleine Ergänzung in [energyai_elements.py]: Der Laufzustand hängt von den Umgebungsvariablen, den S3-Zugängen und den in marketinggpt/python_functions/energyai_elements.py initialisierten Objekten und weiteren Nutzerergänzungen ab.
5. Einstiegspunkte für neue Entwickler
Wenn man sich im Projekt orientieren möchte, ist die Reihenfolge sinnvoll:
- marketinggpt/app.py
- marketinggpt/python_functions/energyai_elements.py
- marketinggpt/python_functions/s3connect.py
- marketinggpt/python_functions/LibraryManager.py
- marketinggpt/python_functions/Dataloader.py
- marketinggpt/pages/generation.py
Als nächstes kannst du dir die Einstiegspunkte anschauen!