→ Slide 1
Übung zum Seminar "Mensch und Bot"
Dr. Raphael Wimmer
Sommersemester 2025
→ Slide 2
Überblick: 7. Mai 2025 - Diverses, Python
Umgebungsvariablen und Pfade
Welche Python-IDE soll ich verwenden?
apt, pip, conda, virtualeenv (, docker) - Environments und Paketmanager für Python
uv - die eierlegende Wollmilchsau
Grundkonzepte Python
→ Slide 3
PATH
Umgebungsvariablen: Key-Value-Paare, die vom
OS innerhalb einer Shell den Programmen zur Verfügung gestellt werden.
Anzeigen/setzen mit export
(Linux) bzw. SET
(Windows)
PATH-Umgebungsvariable: wo liegen die ausführbaren Dateien
Reihenfolge relevant - das erstbeste Executable mit passendem Namen wird genommen.
(auch später relevant: PYTHONPATH
)
→ Slide 4
→ Slide 5
PEP 8 - Style Guide für Python
PEP: Python Enhancement Proposal - ein Vorschlag, wie die Sprache weiterentwickelt werden soll
-
pycodestyle
: Kommandozeilentool, das Code auf PEP-8-Konformität prüft
Hier im Kurs: PEP-8-Regeln bitte einhalten (zwingend für Studienleistung), bis auf Regel zu max. Zeilenlänge
-
→ Slide 6
Paketmanagement in Python
Es gibt drei verbreitete Möglichkeiten, Python-Module zu installieren:
Paketmanagement des Betriebssystems (z.B. apt
unter Debian/Ubuntu Linux)
pip
- Pythons Paketmanager
conda
- Paketmanagement der Anaconda-Distribution
Um für jede Anwendung separate Module zu installieren: virtual environments
↓ Slide 7
Paketmanagement durch Betriebssystem
Primär bei Linux-Distributionen, z.B. Debian/Ubuntu
apt install python3-matplotlib
Vorteile: global verfügbar, sicher, vorkompilierte Binaries
Nachteile: nicht immer aktuell, nicht alle Python-Pakete verfügbar, immer nur eine Paketversion installierbar
↓ Slide 8
Paketmanagement mit pip
Pakete werden aus dem Python Package Index (PyPI) installiert (PyPI enthält quasi alle Pakete)
pip3 install matplotlib
pip3 install -r requirements.txt
: Textdatei mit Paketnamen und ggf. Versionen.
Vorteile: global oder (default) lokal installierbar, immer aktuellste Version, quasi alle Pakete verfügbar.
Nachteile: nicht zwingend robust/sicher, Kompilierungsschritt bei C-Erweiterungen notwendig
Tool
pipx
: installiert Python-
Programme in einer eigenen virtuellen Umgebung und fügt sie zum Pfad hinzu (
Repo / Anleitung)
↓ Slide 9
Paketmanagement mit conda
Anaconda: Python-Distribution für Scientific Computing (multi-platform)
-
conda
: package manager für Anaconda (
Intro)
pip und conda können parallel eingesetzt werden (
1,
2)
-
Vorteile: sicher, robust, vorkompilierte Binaries, integrierte Unterstützung von virtual environments
Nachteile: nicht immer aktuell, wenige Python-Pakete verfügbar, fügt Overhead (Ressourcen, Debugging) hinzu
↓ Slide 10
Virtual Environments
Grundidee: für jedes Projekt eine eigene Python-Installation (
Doku)
Funktionsweise: Überschreiben der Pfade zu Binaries, Bibliotheken in der aktuellen Shell
Virtualenv im Unterverzeichnis .env
anlegen: python3 -m venv .env
Virtualenv aktivieren: source .env/bin/activate
(Linux) / .env\Scripts\activate.bat
deaktivieren durch Beenden der Shell
-
Conda: conda create --name myenv
/ conda activate myenv
↓ Slide 11
uv - die eierlegende Wollmilchsau
→ Slide 12
Überblick: 21. Mai 2025 - Erste Chatbots
↓ Slide 13
↓ Slide 14
Eigener Chatbot
Eure Aufgabe: schreibt einen eigenen Chatbot mit einer Heuristik
notwendig: loops, ´input()/rawinput()´, evtl. regex oder String-Operationen
Anforderungen: reagiert auf bestimmte Schlüsselwörter
→ Slide 15
Überblick: 4. Juni 2025 - openai, llm, flask
↓ Slide 16
Simon Willison's llm Python module
↓ Slide 17
Experimente mit llm
Installiert llm
von PYPI
Holt Euch den OpenAI-
API-Key aus GRIPS (wird bald wieder deaktiviert)
fügt den
API-Key bei llm hinzu (siehe Doku)
stellt ein paar Anfragen
variiert die Temperatur
↓ Slide 18
OpenAI API
Klassische REST-Schnittstelle
Beispiel:
wget --method=POST --header="Authorization: Bearer $OPENAI_API_KEY" --header="Content-Type: application/json" --body-data='{"model": "gpt-4o","messages": [{ "role": "user", "content": "Hello, world!" }]}' https://api.openai.com/v1/chat/completions -O -
-
↓ Slide 19
Unser neuer ChatBot mit Web und KI
Wir vibe-coden einen ChatBot mit Web-Interface und OpenAI-Backend
→ Slide 20
11. Juni 2025 - Studienleistung, Social Bots
↓ Slide 21
Studienleistungen
Verpflichtende Abgabe bis 30.7.2025
Projekt 1: Ein Chatbot mit Besonderheit (Python)
Python-Script mit Angabe der Dependencies (requirements.txt)
Chatten
Nachrichten werden entweder an LLM (z.B. OpenAI) geschickt oder von ELiza-Grammatik interpretiert
irgendwas Spannendes! (Eastereggs, Animationen, etc., dokumentiert in README.md)
Code ist nicht grauenhaft
Projekt 2: Eine Analyse eines (Bot-)Netzwerks (Jupyter Notebook)