Wie rede ich mit KIplatz aus meinem eigenen Code?
Über eine Tür am eigenen Gerät, im Format von OpenAI. Und wer tiefer will, lässt alles in der Spielwiese laufen. Hier stehen die Einzelheiten, die auf den anderen Seiten fehlen.
- Tür am eigenen Gerät: 127.0.0.1:8470, Format von OpenAI, Schlüssel im Programm.
- Spielwiese: alles gegen den Übungsserver, 463 Tests ohne Netz.
- Lizenz vorentschieden: AGPL; fest mit dem Anwalt vor dem Öffnen.
Die Schnittstelle
Einschalten unter Einstellungen, Karte „Andere Programme dürfen KIplatz fragen“. Dort stehen Adresse, Modellname und Schlüssel.
| Was | Wert |
|---|---|
| Adresse | http://127.0.0.1:8470/v1, nur dieser PC; Anfragen mit fremdem Host-Kopf werden abgewiesen |
| Schlüssel | beginnt mit cai-, in jeder Anfrage als Authorization: Bearer; „Neuen Schlüssel machen“ macht den alten sofort ungültig |
| Endpunkte | GET /v1/models gibt ein Modell zurück; POST /v1/chat/completions mit messages, stream, max_tokens; Server-Sent Events bei stream |
| Hausordnung und Wissen | jede Frage geht durch die Hausordnung und bekommt das Wissen der Community und das eigene Wissen dazu; die Anweisung des Programms gilt, soweit sie der Hausordnung nicht widerspricht |
| Grenzen je Anfrage | 40 Nachrichten, 60 000 Zeichen, 256 kB, höchstens 1 500 Wortstücke Antwort; eine Anfrage nach der anderen; keine Bilder |
| Wer antwortet | immer der eigene PC oder der gekoppelte im Heimnetz, nie die Community; nichts wird als Gespräch gespeichert |
Damit arbeiten Open WebUI, Jan, Continue, LibreChat und das Python-Paket openai ohne Änderung: Basisadresse und Schlüssel eintragen, Modellname übernehmen.
Die Spielwiese
Python 3.12 und Git installieren, Quelltext holen, in den Programmordner wechseln, Pakete aus den beiden Anforderungsdateien installieren, das Programm mit --spielwiese starten. Es benutzt einen eigenen Datenordner und den Übungsserver (Zugang „spielwiese“). Tests: python -m pytest tests -q, alle ohne Netz, ohne Grafikkarte, ohne echtes Modell; heute 463 Tests.
Wie das Programm gebaut wird
Das ZIP enthält das signierte Python von python.org (Prüfsumme fest im Bauskript), die Pakete nur mit fester Version und SHA-256, unseren Quelltext und die Startdatei als unveränderte Kopie von pythonw.exe. Der Bau macht einen Selbsttest ohne Fenster und bricht bei jedem Fehler ab. Updates: das Programm vergleicht die Bau-Nummer mit dem Server, holt das Quell-ZIP, prüft SHA-256 und Ed25519-Unterschrift, ersetzt seinen Quelltext-Ordner (der alte bleibt einen Start lang) und startet neu.
Die Bausteine
Fenster über WebView2, Modelle über llama.cpp, Spracherkennung über whisper.cpp am Gerät, Modelle Ministral 3 (Apache 2.0) und ein Qwen-Bedeutungsmodell, Skills im Agent-Skills-Format, Heimnetz mit TLS 1.3 und eigenem Gerätezertifikat, Server als ein Python-Dienst mit Vermittlung, Wissensspeicher, Verteiler, Sammler und Bilanz. Forum: Discourse. Werkstatt und Anmeldestelle: Forgejo, mit OpenID Connect für das eine Konto.
Das Protokoll zwischen Gerät und Server
Ein PC meldet sich mit Kennung und Geheimnis an (am Server nur ein Prüfwert). Fragen stellen, Aufträge holen, Ergebnisse abgeben, Antworten abholen, Rechenstand lesen: alles über https auf einem eigenen Anschluss, mit Fristen, Obergrenzen und Bremse je Adresse. Ein Auftrag geht nie an den PC, der gefragt hat; eine Antwort kommt nur von dem, der die Frage nahm, genau einmal. Die Einzelheiten stehen im Quelltext, sobald er offen ist.
Quelltext und Lizenz
Programm und Protokoll sollen unter der AGPL stehen (frei, mit der Pflicht, Änderungen weiterzugeben); das wird vor dem Öffnen mit einem Anwalt festgelegt. Bis dahin liegt der Quelltext in der Werkstatt für Mitglieder, die mitbauen. Sicherheitslücken bitte vertraulich an support@kiplatz.at.
Kapitel 12, Stand 21.09.2026, Bau 2026-09-21a. Belege: die Schnittstellen-Beschreibung, die dem Programm beiliegt; das Bauskript; die Tests.
