Logs an einer Stelle sammeln
Sobald mehr als zwei Geräte laufen, ist die Fehlersuche eine Reise über SSH-Verbindungen. Ein zentraler Sammelpunkt löst das.
Entwickler-Blog · Notizen aus der Praxis
Notizen aus .NET, WPF, Azure und dem echten Entwickleralltag.
Aktuelle Beiträge
Aus dem Archiv
Sobald mehr als zwei Geräte laufen, ist die Fehlersuche eine Reise über SSH-Verbindungen. Ein zentraler Sammelpunkt löst das.
Ab dem vierten selbst betriebenen Dienst kennt niemand mehr die Portnummern. Der Zettel mit :3000, :8080 und :9000 ist der Punkt, an dem ein Reverse Proxy anfängt, sich zu lohnen.
Weil hinter IChatClient beides stecken kann, lässt sich ein Vergleich in wenigen Zeilen bauen:
Mein Skript mit tar reicht für Projektordner. Für alles, was wirklich weh täte, benutze ich Restic:
Beim RAG-Beitrag kamen die Embeddings noch aus der Cloud. Lokal geht es genauso, und zwar deutlich unkritischer als bei Sprachmodellen:
Die häufigste Enttäuschung beim ersten Versuch mit lokalen Modellen: Man lädt etwas herunter, es startet, und dann antwortet es mit zwei Wörtern pro Sekunde. Das liegt fast immer daran, dass das Modell nicht in den Grafikspeicher passt.
Ein Rechner, der nur abends gebraucht wird, muss nicht durchlaufen. Wake-on-LAN im BIOS einschalten, dann genügt ein magisches Paket:
Ein Klassiker: Die Anwendung startet vor der Datenbank und stirbt beim ersten Verbindungsversuch. depends_on hilft nicht, weil es nur auf das Starten des Containers wartet, nicht auf die Bereitschaft des Dienstes.
Wenn man ein lokales Modell immer mit demselben Systemprompt benutzt, gehört der nicht in den Code:
Der angenehmste Nebeneffekt der IChatClient-Abstraktion ist, dass ein lokales Modell dahinter genauso aussieht wie ein entferntes. Das macht den Versuch billig.
Nach Thema einsteigen