siteway

// stack · schnittstelle

Open-Source-Modelle, selbst gehostet.

Ein offenes Modell lässt sich auf eigener Infrastruktur betreiben: Die Gewichte liegen auf einem Server, den du kontrollierst, und die KI-Funktion deiner Website ruft keinen fremden Anbieter mehr. Für siteway ist das der Weg, wenn Daten das Haus nicht verlassen sollen — und diese Seite beschreibt beide Seiten davon ehrlich: den Gewinn an Kontrolle und den Betrieb, den er verlangt.

stack ansatz: modell auf eigener infrastruktur weg: website → eigener endpunkt → modell vorab: lizenz · hardware · betrieb seit: 2006

// definition

Was heißt „offenes Modell, selbst gehostet“?

gewichte verfügbar · ort entscheidet

Ein Modell ist im Kern eine Datei. In ihr stehen die Gewichte — die Zahlen, in denen das Gelernte steckt. Damit daraus eine Antwort wird, braucht es ein Programm, das diese Datei lädt, eine Frage hineingibt und Wort für Wort zurückbekommt. Bei einer fremden Schnittstelle betreibt jemand anders beides. Offen heißt, dass die Gewichte verfügbar sind und du sie selbst betreiben darfst. Selbst gehostet heißt, dass du es tust.

Der Unterschied ist also nicht die Funktion, sondern der Ort. Eine Zusammenfassung, eine Klassifizierung, eine Chat-Antwort sehen von der Website aus gleich aus — nur geht die Anfrage nicht an einen externen Anbieter, sondern an eine Maschine, die dir untersteht. Das ist der ganze Punkt, und es ist auch der ganze Aufwand.

Beim Wort „Open Source“ lohnt eine Präzisierung, weil sie später über Verträge entscheidet. Verfügbare Gewichte sind nicht dasselbe wie quelloffene KI. Die Open Source Initiative unterscheidet beides ausdrücklich: Ihre Definition für quelloffene KI verlangt neben den Gewichten auch den Trainingscode und ausreichende Angaben darüber, woher die Trainingsdaten kommen und wie sie verarbeitet wurden. Viele Modelle, die umgangssprachlich „open“ heißen, erfüllen nur den ersten Teil.

Daraus folgt der wichtigste Satz dieser Seite über Lizenzen: Die Nutzungsbedingungen offener Modelle unterscheiden sich stark. Manche erlauben kommerzielle Nutzung uneingeschränkt, andere knüpfen sie an Bedingungen oder schließen bestimmte Anwendungsfälle aus. Welches Modell in ein Projekt geht, entscheiden wir deshalb erst, nachdem die Lizenz gelesen ist — konkrete Modellnamen nennen wir hier bewusst nicht, weil sich das Feld schneller dreht als eine Agenturseite.

// praxis

Wie wir ein selbst gehostetes Modell anbinden.

erst der zweck · dann das modell

Am Anfang steht keine Modellwahl, sondern eine Frage: Was soll die Funktion eigentlich können? Eine Beschreibung zusammenfassen, eine Anfrage in die richtige Abteilung einsortieren, aus einem Datenblatt eine verständliche Antwort machen, im Chat auf Fragen zu den eigenen Inhalten antworten — das sind vier verschiedene Aufgaben mit vier verschiedenen Ansprüchen. Erst wenn die Aufgabe steht, lässt sich sagen, wie groß ein Modell sein muss. Und die Größe ist es, die später die Rechnung für die Hardware schreibt.

Danach klären wir die Lizenz — vor dem ersten Test, nicht nach dem Launch. Erlaubt das Modell kommerzielle Nutzung in dieser Form? Gibt es Bedingungen an Weitergabe oder Nennung? Gibt es ausgeschlossene Anwendungsfälle? Das Ergebnis notieren wir im Konzept, damit später nachvollziehbar ist, warum die Wahl so ausfiel.

Dann steht der Modell-Dienst: ein Programm auf einem Server, das die Gewichte lädt und im internen Netz über eine Adresse ansprechbar macht. Diese Adresse ist ausdrücklich nicht öffentlich. Erreichbar ist sie nur für unseren eigenen serverseitigen Endpunkt, und der steht dazwischen wie eine Anmeldung an der Pforte: Er prüft, wer fragt, begrenzt, wie oft gefragt werden darf, setzt eine Obergrenze für die Länge und entscheidet, was überhaupt protokolliert wird.

Ein Modell weiß nichts über deine Website. Dieser Satz gilt hier genauso wie bei jeder fremden Schnittstelle, und er ist der Grund, warum eine gute KI-Funktion mehr Suche als Sprachmodell ist. Die eigenen Inhalte müssen mitgegeben werden: Zur Frage sucht der Index oder das CMS die Handvoll Textstellen heraus, die dazu passen, und erst diese Ausschnitte gehen zusammen mit der Frage an das Modell. Wie wir Suche bauen, steht im Hub Suche; ein Suchdienst, den man ebenfalls selbst betreibt, passt an dieser Stelle besonders gut, weil dann auch die Suche im Haus bleibt — Meilisearch ist dafür unsere Zuordnung.

Zuletzt der Fehlerfall, den wir wie bei jeder Anbindung mitplanen: Antwortet der Modell-Dienst nicht oder dauert es zu lange, bleibt die Seite bedienbar und zeigt den Weg über Suche, Navigation oder Kontaktformular. Die buchbaren Leistungen dahinter sind KI & Automation und KI-Chatbots; die Anbindung selbst gehört zur Schnittstellenentwicklung. Wie wir KI in unserer eigenen Entwicklungsarbeit einsetzen, ist ein anderes Kapitel und steht unter KI-gestützte Entwicklung.

// technik · 6 details

Die Technik im Detail.

konzepte statt produktnamen

Was hier steht, beschreibt Bausteine und ihre Funktion — keine Modellnamen, keine Parametergrößen, keine Werte aus Vergleichstests. Der Grund ist unspektakulär: Diese Angaben altern in Monaten, und was für dein Projekt gilt, entsteht in deinem Projekt. Die Bausteine darunter sind dagegen stabil.

// d-01grundlage

Gewichte & Laufzeitumgebung.

Zwei Teile gehören zusammen: die Gewichte als Datei und ein Programm, das sie lädt und Anfragen beantwortet. Das Programm ist austauschbar, die Gewichte sind es auch — nur beide zusammen ergeben eine Funktion. Welche Kombination in ein Projekt geht, entscheidet die Aufgabe.

zweck: das modell ausführen

// d-02recht

Lizenz & Nutzungsrechte.

Verfügbare Gewichte sind noch keine Erlaubnis. Die Open Source Initiative trennt offene Gewichte von quelloffener KI, für die ihre Definition zusätzlich Trainingscode und Angaben zu den Trainingsdaten verlangt. Kommerzielle Nutzung, Weitergabe und ausgeschlossene Anwendungsfälle stehen in der jeweiligen Lizenz — und die lesen wir vorher.

zweck: darf ich das überhaupt

// d-03zugang

Der eigene Endpunkt.

Zwischen Website und Modell steht immer ein eigener serverseitiger Endpunkt. Er prüft die Anfrage, begrenzt Häufigkeit und Länge, hängt den Kontext an und gibt die Antwort zurück. Der Modell-Dienst selbst bleibt im internen Netz und ist von außen nicht erreichbar.

zweck: prüfen · begrenzen · weiterreichen

// d-04wissen

Kontext aus dem eigenen Bestand.

Das Modell kennt deine Inhalte nicht. Suchindex oder CMS liefern zur Frage die passenden Ausschnitte, und erst daraus formuliert das Modell eine Antwort mit Quelle. Diese Kette entscheidet über die Qualität — deutlich mehr als die Wahl des Modells.

zweck: antworten mit beleg

// d-05last

Antwortzeit & Auslastung.

Wie schnell eine Antwort kommt, hängt bei diesem Weg an deiner Maschine — nicht an einem Dienst, der beliebig skaliert. Mehrere gleichzeitige Anfragen teilen sich dieselbe Hardware. Deshalb gehören eine Warteschlange, eine Obergrenze und eine sichtbare Rückmeldung an den Besucher zum Bau dazu.

zweck: verhalten unter last

// d-06wechsel

Modellwechsel ohne Umbau.

Weil der eigene Endpunkt die Website vom Modell trennt, ist ein Wechsel eine Konfigurationsfrage und kein Umbau. Neu prüfen muss man trotzdem: Ein anderes Modell antwortet anders, also gehören Anweisungen und Beispielfälle danach noch einmal auf den Tisch.

zweck: unabhängig bleiben

Daten, die das Haus nicht verlassen.

Das ist der Punkt, wegen dem dieser Weg meistens gewählt wird, und er ist sachlich richtig: Bei einem selbst gehosteten Modell geht keine Anfrage an einen externen Anbieter. Was ein Besucher in ein Chatfenster tippt, was in einer Bewerbung steht, was in einem internen Dokument zusammengefasst wird — all das bleibt auf Servern, über die du bestimmst. Die Klärung, die bei einer fremden Schnittstelle den größten Teil ausmacht, entfällt an dieser Stelle.

Zu tun bleibt trotzdem etwas, und das gehört genauso deutlich hierher. Auch im eigenen Haus entstehen Daten: Protokolle des Endpunkts, Zwischenstände in Caches, Auswertungen zur Auslastung. Wir legen deshalb fest, was protokolliert wird, wie lange es liegen bleibt und wer auf dem Server Zugriff hat — dieselbe Sorgfalt wie bei jeder anderen Verarbeitung. Datensparsamkeit heißt hier: In eine Anfrage geht der Ausschnitt, der für die Antwort gebraucht wird, und sonst nichts.

Wie das mit dem Rest der Auslieferung zusammenpasst, steht im Stack unter Sicherheit & Datenschutz. Was wir nicht tun: dir bescheinigen, dass ein Aufbau die Vorgaben der DSGVO erfüllt. Das ist keine Zurückhaltung aus Höflichkeit, sondern schlicht nicht unsere Rolle — eine Rechtsberatung ist das ausdrücklich nicht.

// integration

Ein selbst gehostetes Modell in deine Website integrieren.

drei systeme · ein muster

Der Aufbau ist derselbe wie bei einer fremden Schnittstelle — und das ist die gute Nachricht dieses Kapitels. Die Website spricht nie direkt mit dem Modell. Dazwischen steht immer ein eigener serverseitiger Endpunkt: Er nimmt die Anfrage aus dem Browser entgegen, prüft sie, begrenzt Häufigkeit und Länge, hängt den Kontext aus Suchindex oder CMS an, reicht das Ganze weiter und gibt die Antwort zurück. Diese Trennung ist kein Umweg, sondern der Grund, warum aus einer KI-Funktion keine offene Tür wird.

Der Unterschied liegt allein darin, wo das Modell läuft: auf einem Server, den du kontrollierst, statt bei einem Anbieter. Für das CMS ändert sich dadurch fast nichts — anders ist nur die Adresse, die in der Konfiguration steht, und dass diese Adresse ins interne Netz zeigt. Wer heute über eine fremde Schnittstelle arbeitet und später wechseln will, tauscht deshalb die Konfiguration und nicht die Anbindung. Was die drei Systeme unterscheidet, ist nur, wo Route, Controller und Konfiguration jeweils hingehören.

// cms-01typo3

Selbst gehostet in TYPO3.

Wir bauen die Anbindung als eigene Extension. Darin liegt eine Controller-Route, die der Browser aufruft — sie prüft die Anfrage, holt den Kontext aus den Inhalten und spricht dann den Modell-Dienst an. Adresse und Zugangsdaten des Modell-Dienstes stehen in der Extension-Konfiguration und werden nie in ein Template gereicht. Chatfenster, Eingabe und Antwortausgabe rendern wir in Fluid, damit die Funktion im Design der Website steht und nicht daneben. Mehrsprachigkeit läuft über die Sprachlogik des Systems, damit der Kontext in der richtigen Sprache im Prompt landet.

typo3 im stack →

// cms-02wordpress

Selbst gehostet in WordPress.

Die Anbindung entsteht als eigenes Plugin und nicht als Theme-Code — so überlebt sie einen Theme-Wechsel. Darin registrieren wir eine eigene REST-Route als den einen Endpunkt, den das Frontend kennt; sie prüft, begrenzt und reicht weiter. Adresse und Zugangsdaten des Modell-Dienstes stehen in der wp-config.php oder als Umgebungsvariable, nicht in der Datenbank und nicht im Frontend-Skript. Für die Oberfläche kommen Template-Dateien und ein Block für den Editor dazu, damit die Redaktion die Funktion selbst platzieren kann, wo sie hingehört.

wordpress im stack →

// cms-03statamic

Selbst gehostet in Statamic.

Unter Statamic liegt Laravel, und das macht die Sache geradlinig: eine Route plus Controller als Endpunkt, davor die Bordmittel für Prüfung und Begrenzung, dahinter der Aufruf des Modell-Dienstes. Adresse und Zugangsdaten stehen in der .env und damit außerhalb des Quelltexts. Welche Felder als Kontext mitgehen dürfen, gibt der Blueprint vor — so bleibt nachvollziehbar, was in einer Anfrage landet. Antlers oder Blade rendern Eingabe, Antwort und Quellenhinweis.

statamic im stack →

// betrieb

Was der Betrieb verlangt.

der preis der kontrolle

Hier steht der ehrliche Teil, weil er sonst später als Überraschung kommt. Ein selbst gehostetes Modell ist kein Dienst, den man einschaltet und vergisst — es ist eine Maschine im Betrieb. Sie braucht Ausstattung, Pflege, Beobachtung und eine Zuständigkeit. Das ist kein Nachteil dieses Weges, sondern schlicht der Preis der Kontrolle. Man sollte ihn nur kennen, bevor man ihn bezahlt.

Hardware & Antwortzeit.

Ein Modell muss vollständig in den Speicher passen, um zu antworten. Kleinere Modelle laufen auf Arbeitsspeicher, größere brauchen eine Grafikkarte — welche genau, hängt am gewählten Modell und wird im Projekt bestimmt, nicht auf einer Agenturseite. Konkrete Zahlen nennen wir hier deshalb bewusst nicht: Sie wären geraten, und geraten hilft niemandem bei der Budgetplanung.

Daraus folgt der zweite Punkt: Antwortzeiten hängen von der Maschine ab. Ein gehosteter Dienst verteilt Last über viele Rechner; deine Maschine tut das nicht. Mehrere gleichzeitige Anfragen teilen sich dieselbe Hardware, und ab einem gewissen Punkt wird gewartet. Wir bauen deshalb von Anfang an eine Warteschlange, eine Obergrenze und eine Anzeige ein, die dem Besucher zeigt, dass gearbeitet wird — und wir messen, bevor die Funktion live geht.

Pflege & Zuständigkeit.

Ein Modell-Dienst ist Software und altert wie Software. Betriebssystem, Laufzeitumgebung und Modellstand wollen aktualisiert werden, und jedes Update ist ein kleiner Wiederholungstest: Ein anderer Stand kann anders antworten. Dazu kommt die Überwachung — Auslastung, Speicher, Antwortzeiten, Fehlerrate. Ohne sie merkt man einen Engpass erst an der Beschwerde, und das ist der teuerste Zeitpunkt.

Und es braucht jemanden, der das im Alltag macht. Wie wir Auslieferung und Umgebungen aufsetzen, steht im Stack unter Deployment & Betrieb. Wenn diese Zuständigkeit bei uns liegen soll, ist das die buchbare Leistung Betrieb, Wartung & Support. Soll sie im Haus bleiben, klären wir vorher, wer sie übernimmt — diese Frage gehört ins Konzept und nicht in die Woche nach dem Launch.

// entscheidung

Wann selbst hosten — und wann eine fremde Schnittstelle.

zuordnung statt rangliste

Die nützliche Frage lautet nicht „was ist besser“, sondern „welche Daten sind im Spiel, wie oft wird gefragt, und wer betreibt das im Alltag“. Drei Antworten, drei Zuordnungen — und alle drei baut siteway mit derselben Sorgfalt. Was von der Website aus passiert, sieht in allen Fällen gleich aus.

// e-01daten

Wenn Daten im Haus bleiben sollen.

Bewerbungen, Patientenanfragen, Vertragsentwürfe, interne Dokumente — oder eine interne Vorgabe, die einen Aufruf nach draußen ausschließt. Dann spricht viel für den eigenen Betrieb, weil bei diesem Weg keine Anfrage an einen externen Anbieter geht.

selbst gehostet

// e-02volumen

Wenn das Volumen hoch ist.

Bei hoher und gleichmäßiger Nutzung dreht sich die Kostenlogik: Die Maschine kostet, nicht die einzelne Anfrage. Dazu kommt Unabhängigkeit von Preis- und Modelländerungen eines Anbieters — das Modell auf deinem Server bleibt das Modell, das du geprüft hast.

planbar statt nutzungsabhängig

// e-03gelegentlich

Wenn es gelegentlich gebraucht wird.

Eine Funktion mit überschaubarer Nutzung, ein schneller Start, keine Betriebsmannschaft im Rücken: Dann ist eine fremde Schnittstelle der pragmatischere Weg — etwa über Anthropic, OpenAI oder Perplexity.

fremde schnittstelle

Was vorher geklärt wird.

Fünf Fragen entscheiden die Richtung, und sie lassen sich in einem Gespräch beantworten. Welche Daten gehen in die Anfragen — und dürfen die das Haus verlassen? Wie oft wird die Funktion voraussichtlich genutzt, und wie gleichmäßig? Wie schnell muss eine Antwort da sein? Gibt es interne Vorgaben, die eine Richtung vorgeben? Und wer betreut die Maschine im Alltag, wenn ein Update ansteht?

Die Antworten stehen im Konzept, bevor gebaut wird — mit Begründung, damit die Entscheidung später nachvollziehbar bleibt. Die buchbaren Leistungen dahinter sind KI & Automation für Abläufe im Hintergrund und KI-Chatbots für die sichtbare Funktion auf der Seite. Wie eine Anbindung technisch entsteht, beschreibt Schnittstellen & Integration.

// faq

Häufige Fragen.

Was bedeutet „Open-Source-Modell, selbst gehostet“?

Offene Modelle sind Modelle, deren Gewichte verfügbar sind — die Datei also, in der das Gelernte steckt. Selbst gehostet heißt: Diese Datei liegt auf einem Server, den du kontrollierst, und wird dort von einem Programm ausgeführt, das Anfragen entgegennimmt und Antworten zurückgibt. Der Unterschied zu einer fremden Schnittstelle ist damit nicht die Funktion, sondern der Ort. Es geht keine Anfrage an einen externen Anbieter, weil das Modell im eigenen Haus läuft.

Warum betreibt man ein Sprachmodell auf eigener Infrastruktur?

Vier Gründe, die sich in der Praxis meist überschneiden. Erstens bleiben die Daten im Haus: Was in eine Anfrage geht — Kundentexte, Bewerbungen, interne Dokumente — verlässt die eigene Infrastruktur nicht. Zweitens ist die Kostenseite planbar, weil die Maschine kostet und nicht die einzelne Anfrage; bei hohem und gleichmäßigem Volumen dreht sich dadurch die Rechnung. Drittens macht es unabhängig von Preis- und Modelländerungen eines Anbieters, denn das Modell auf deinem Server bleibt genau das Modell, das du geprüft hast. Und viertens gibt es Häuser mit internen Vorgaben, die einen Aufruf nach draußen schlicht nicht zulassen.

Sind offene Modelle frei nutzbar — auch kommerziell?

Das gehört vorher geprüft, denn die Lizenzen unterscheiden sich stark. Verfügbare Gewichte bedeuten nicht automatisch, dass jede Nutzung erlaubt ist: Manche Modelle stehen unter Bedingungen, die kommerzielle Nutzung einschränken oder bestimmte Anwendungsfälle ausschließen. Die Open Source Initiative unterscheidet dafür ausdrücklich zwischen offenen Gewichten und quelloffener KI — für Letztere verlangt ihre Definition zusätzlich den Trainingscode und ausreichende Angaben zu den Trainingsdaten. Wir klären die Lizenz deshalb im Konzept, bevor ein Modell in ein Projekt geht, und nicht danach.

Wann lohnt sich Selbsthosting — und wann ist eine fremde Schnittstelle der pragmatischere Weg?

Das ist eine Zuordnung, keine Rangliste. Für den eigenen Betrieb spricht viel, wenn sensible Daten im Spiel sind, wenn das Anfragevolumen hoch und gleichmäßig ist oder wenn interne Vorgaben einen Aufruf nach draußen ausschließen. Eine fremde Schnittstelle ist der pragmatischere Weg, wenn eine Funktion nur gelegentlich gebraucht wird, wenn schnell gestartet werden soll oder wenn niemand da ist, der eine Maschine im Alltag betreut. Beide Wege bauen wir, und beide sehen von der Website aus fast gleich aus. Welcher passt, entscheiden wir im Konzept anhand von Daten, Volumen und Betrieb.

Weiß ein selbst gehostetes Modell etwas über meine Website?

Nein, und daran ändert der eigene Server nichts. Ein Modell kennt deine Inhalte nicht — es hat sie nie gesehen und kann sie auch nicht von sich aus nachschlagen. Wer belegbare Antworten will, muss die passenden Ausschnitte mitgeben: Der Suchindex oder das CMS liefern zur Frage die Handvoll Textstellen, die dazu passen, und das Modell formuliert daraus die Antwort samt Quelle. Diese Kette ist der eigentliche Bauteil, nicht das Modell. Ein Suchdienst, den man ebenfalls selbst betreibt, passt hier besonders gut, weil dann auch die Suche die eigene Infrastruktur nicht verlässt.

Was braucht der Betrieb eines selbst gehosteten Modells?

Vier Dinge, die man vorher einplant. Hardware: Modelle brauchen Arbeitsspeicher, größere brauchen eine Grafikkarte — welche genau, hängt vom gewählten Modell ab und wird im Projekt bestimmt. Updates: Betriebssystem, Laufzeitumgebung und Modellstand wollen gepflegt werden wie jede andere Software auch. Überwachung: Auslastung, Antwortzeiten und Fehler müssen sichtbar sein, sonst merkt man einen Engpass erst an der Beschwerde. Und Zuständigkeit: Es braucht jemanden, der das im Alltag betreut. Das ist kein Nachteil, sondern der Preis der Kontrolle — man sollte ihn nur kennen, bevor man ihn bezahlt.

Ist ein selbst gehostetes Modell damit automatisch datenschutzkonform?

Der Vorteil ist real, aber er ist kein Freibrief. Real ist er, weil bei diesem Weg tatsächlich keine Anfrage an einen externen Anbieter geht — der Punkt, an dem sonst die meiste Klärung nötig ist, fällt weg. Zu klären bleibt trotzdem, was in die Anfragen hineingeht, was protokolliert wird, wie lange Protokolle liegen bleiben und wer auf dem Server Zugriff hat. Wie wir das einordnen, steht im Stack unter Sicherheit & Datenschutz. Eine Rechtsberatung ist das ausdrücklich nicht, und eine Zusicherung, dass ein Aufbau die Vorgaben der DSGVO erfüllt, geben wir nicht — das gehört zwischen dich und deine Rechtsberatung.

Lässt sich ein selbst gehostetes Modell in TYPO3, WordPress oder Statamic integrieren?

Ja, in allen drei Systemen — und der Aufbau ist derselbe wie bei einer fremden Schnittstelle. Die Website spricht nie direkt mit dem Modell, sondern mit einem eigenen serverseitigen Endpunkt, der die Anfrage prüft, begrenzt und weiterreicht. Für das CMS ändert sich dadurch fast nichts; anders ist nur die Adresse, die in der Konfiguration steht. In TYPO3 entsteht dafür eine eigene Extension mit einer Controller-Route, mit Adresse und Zugangsdaten des Modell-Dienstes in der Extension-Konfiguration und der Ausgabe in Fluid. In WordPress bauen wir ein eigenes Plugin statt Theme-Code, mit einer eigenen REST-Route und der Konfiguration in der wp-config.php oder als Umgebungsvariable. In Statamic liegt Laravel darunter: eine Route plus Controller, die Konfiguration in der .env, die Ausgabe in Antlers oder Blade.

// KI-Funktion, bei der die Daten im Haus bleiben?

Projekt anfragen