In 31 Clips baust du Schritt für Schritt deinen eigenen Offline-KI-Agenten: Ubuntu-Server mit NVIDIA-GPU, Ollama, Modelle, Python/FastAPI-Backend und ein Web-Frontend mit Chat und Datei-Upload – alles komplett lokal im eigenen Netzwerk.
ubuntu-drivers), Reboot und Version prüfen.nvidia-sminvidia-smi aufrufen und zeigen,
dass die GTX 1080 korrekt erkannt wird./opt/ki-agent anlegensudo mkdir -p /opt/ki-agent/app /opt/ki-agent/uploads anlegen
und Rechte für den Arbeitsbenutzer setzen (chown)./opt/ki-agent einrichtensudo apt install samba, Freigabe in der smb.conf anlegen
und Rechte & User setzen.\\SERVER\ki-agent zugreifen
und Dateien hin- und herkopieren.ollama list
die Modellübersicht anzeigen.mistral, llama3, granite3-dense:2b und ein etwas größeres Model ibm/granite4:tiny-h memory.py: Einfaches Gesprächs-Gedächtnismemory.py mit ConversationMemory anlegen:
add(), get(), clear().
Erklärung, dass hier der Chatverlauf gespeichert wird.agent.py: Verbindung zu Ollama & Prompt-Aufbauagent.py anlegen, MODEL_NAME = "ibm/granite4:tiny-h" setzen,
ask_model() baut den HTTP-Call zu Ollama
(ohne Streaming, Temperatur 0.2), build_prompt() kombiniert Systemprompt,
Verlauf und Datei-Kontext (_file_context).
Wichtig: Agent soll nur Infos aus Verlauf + Datei verwenden.extractor.py: PDF/TXT/CSV lesenextract_any(path) für den Rest des Systems.main.py: FastAPI-Backend, /chat, /upload, /reset/ rendert index.html,
/chat baut den Prompt, fragt Ollama, aktualisiert das Memory,
/upload speichert Dateien, ruft extract_any() auf
und setzt den Datei-Kontext, /reset löscht Memory und Datei-Kontext.index.html: Schlichtes Chat-Frontend mit Dropzone/static/app.js.app.js: Chat-Logik, Upload & Drag & DropDOMContentLoaded ruft /reset auf, damit jeder Reload
mit einem frischen Chat startet. sendMsgInner() schickt Nachrichten
an /chat, uploadFileInner() lädt Dateien
an /upload und gibt eine Meldung wie
„Du kannst jetzt Fragen stellen“. Drag & Drop-Events verhindern,
dass der Browser PDFs direkt öffnet.source venv/bin/activate),
Uvicorn starten (uvicorn app.main:app --host 0.0.0.0 --port 8000),
im Browser http://SERVER-IP:8000 öffnen
und eine erste Begrüßungsnachricht testen.http_https_testtext.txtphotosynthese_testtext.pdf & differentialrechnung_testtext.pdfki-agent.service unter /etc/systemd/system/ anlegen
(User, WorkingDirectory, PATH, ExecStart),
sudo systemctl daemon-reload,
sudo systemctl enable ki-agent.service und
sudo systemctl start ki-agent.service ausführen
und den Status prüfen. Browser-Test ohne manuelles Starten,
optional journalctl -u ki-agent.service -f zeigen.
Abschluss: Kurs 1 ist fertig – der Offline-KI-Agent
läuft dauerhaft im LAN.