So wechselst du vom US-KI-Anbieter zu EU-Inference

Melious

Dienstagnachmittag. Um vier ist Sprint-Review, und jemand aus der Rechtsabteilung stellt im Team-Channel eine Frage. Nicht „Nutzen wir KI?“, das wissen sie. Die Frage lautet: Welche sensiblen Daten schicken wir da eigentlich hin?

Du fängst an zu zählen. Der Support-Bot bekommt das komplette Ticket, mit Name, E-Mail-Adresse und Bestellhistorie der Kundin. Der Coding-Agent liest große Teile des Repositorys als Kontext. Jemand aus der Buchhaltung kopiert Verträge rein, um eine Zusammenfassung zu bekommen. Nichts davon ist abstrakt „ein Prompt“. Das sind Kundendaten, Quellcode und vertrauliche Dokumente, und gerade geht alles an einen US-Anbieter.

Die nächste Frage liegt auf der Hand: Wie viel Aufwand wäre es, das zu ändern? Der technische Teil ist kleiner, als die meisten Teams erwarten. Melious spricht das API-Format von OpenAI und von Anthropic, die Code-Änderung ist also eine Base-URL, ein Key und ein Modellname. Schwieriger ist alles drumherum: wissen, welche Daten wohin fließen, das passende Ersatzmodell wählen und umstellen, ohne ein Release zu gefährden. Dieser Guide geht das in der Reihenfolge durch, in der wir es selbst machen würden.

1. Aufschreiben, wohin deine sensiblen Daten gehen

Bevor du Code anfasst, sortier deinen KI-Traffic danach, was er transportiert, nicht danach, welches Feature er antreibt. Vier Fragen decken das meiste ab.

Welche sensiblen Daten stecken in den Anfragen? Geh jede Integration durch und notier, was im Request Body landet: personenbezogene Daten von Kunden oder Mitarbeitenden, Quellcode, Verträge, interne Dokumente, Zugangsdaten, die in eine Config gerutscht sind. Diese Liste bestimmt deine Prioritäten. Die Integration mit den sensibelsten Daten zieht zuerst um, auch wenn sie nicht die größte ist.

Welches API-Format? Wenn dein Code das OpenAI-SDK nutzt oder etwas, das darauf aufbaut, bist du im OpenAI-Format. Wenn er das Anthropic-SDK nutzt oder du Coding-Agents wie Claude Code einsetzt, bist du im Anthropic-Format. Melious nimmt beide unter derselben Base-URL mit demselben Key an. Gemischte Stacks sind also kein Problem.

Welche Modelle? Liste jeden Modellnamen aus Code und Config auf. Melious betreibt keine proprietären OpenAI-Modelle, und es gibt keinen automatischen Ersatz dafür. Jeder gpt-*-Name braucht also eine bewusste Entscheidung. Anthropic-Modellnamen laufen anders (dazu gleich mehr).

Welche anbieterspezifischen Features? Hier hakt es bei Migrationen meistens. Streaming, Tool Calling, Vision, Structured Outputs und Embeddings funktionieren mit denselben Request- und Response-Formaten. Anbieterspezifische Extras lassen sich nicht eins zu eins übertragen. Die Assistants API kommt in der Migrations-Doku nicht vor. Melious hat eigene serverseitige Tools (Websuche, URL-Scraping, Code-Ausführung und weitere), die laufen aber über eine separate Tools-API mit eigener Schnittstelle. Wenn du heute auf gehostete Extras setzt, plan diesen Wechsel bewusst ein.

Vergiss bei dieser Liste die Embeddings nicht. Wenn du Retrieval über interne Dokumente betreibst, gehen die Dokumente selbst durch den Embedding-Endpoint, nicht nur die Frage am Ende.

2. Das Ersatzmodell wählen

Das ist die Entscheidung, auf die es wirklich ankommt, und sie liegt bei dir. Melious betreibt Open-Weight-Modelle (GLM, DeepSeek, Qwen, Kimi und weitere) in europäischen Rechenzentren. Du findest sie im Model Hub oder über GET /v1/models.

Open-Weight-Modelle liegen bei manchen Aufgaben noch hinter der geschlossenen Frontier. Bei den meisten alltäglichen Coding- und Text-Aufgaben merkst du davon nichts. Ob dein Workload auf der anderen Seite dieser Linie liegt, können wir dir vorher nicht sagen. Genau dafür gibt es Schritt 4.

Im Anthropic-Format kannst du claude-*-Modellnamen im Code lassen. Melious mappt sie auf ein Open-Weight-Modell, und die Antwort gibt den ursprünglichen Namen zurück, damit clientseitige Checks weiter funktionieren. Praktisch für den ersten Test. Sobald du weißt, welche Modelle du willst, solltest du aber explizite Model-IDs festlegen.

3. Die Verbindung umstellen

Im OpenAI-Format sieht der Client gegen Melious so aus:

from openai import OpenAI

client = OpenAI(
    api_key="sk-mel-<YOUR_API_KEY>",
    base_url="https://api.melious.ai/v1",
)

response = client.chat.completions.create(
    model="<MODEL_ID>",
    messages=[{"role": "user", "content": "Name three Hanseatic cities."}],
)
print(response.choices[0].message.content)

Key, base_url und Model-ID ändern sich. Import, Aufruf und Antwortformat bleiben. Melious ergänzt zwei Felder in der Antwort (environment_impact und billing_cost), die das OpenAI-SDK ignoriert.

Beim Anthropic-SDK lautet die Base-URL https://api.melious.ai, ohne /v1, weil das SDK seinen eigenen Versions-Pfad anhängt. Coding-Agents verdienen hier besondere Aufmerksamkeit, weil sie deinen Quellcode als Kontext mitschicken. Für Claude Code folgst du dem Claude-Code-Integrations-Guide. Andere OpenAI- oder Anthropic-kompatible Tools wie Cursor, Codex und Cline funktionieren nach demselben Muster.

4. Parallel testen

Neue Accounts bekommen 5 EUR Guthaben. Nutz es für das, was dir kein Blogartikel abnehmen kann: deine eigene Test- oder Eval-Suite gegen Melious laufen lassen und die Ergebnisse mit deinem aktuellen Anbieter vergleichen.

Schau pro Lauf auf drei Dinge: Output-Qualität bei deinen echten Workloads, Latenz und Kosten. Wie weit die 5 EUR reichen, hängt von der Länge der Anfragen und der Anzahl der Testfälle ab (eine Zahl für deinen Workload raten wir lieber nicht). Wenn die Ergebnisse passen, hast du deine Antwort. Wenn ein Aufgabentyp abfällt, weißt du genau wo und kannst entscheiden, ob du erst alles andere umstellst.

5. Die Frage nach den sensiblen Daten beantworten

Zurück zum Dienstagnachmittag. Die Rechtsabteilung hat nicht nach Modellen oder SDKs gefragt. Sie wollte wissen, was mit den sensiblen Daten passiert. Hier zählt Präzision mehr als Begeisterung.

Jede Inference-Anfrage läuft bei einem Provider innerhalb der EU, und Request Body und Antwort verlassen sie nicht. Es gibt keinen US- oder APAC-Fallback, wenn die europäische Kapazität knapp wird. Melious loggt keine Inhalte von Prompts oder Antworten, nur Betriebs-Metadaten wie Token-Zahlen, Modell und Provider. Kein Provider im Netzwerk trainiert auf deinem Traffic, und ein Provider, der diese Policy ändert, fliegt von der Liste. Hochgeladene Dateien sind im Ruhezustand verschlüsselt.

Die Details stehen unter Privacy and data residency. Diese Seite ist kein Auftragsverarbeitungsvertrag. Gib deinem DPO also auch die Vertragsunterlagen, zusammen mit deiner Liste aus Schritt 1. Diese Liste ist oft das nützlichere der beiden Dokumente.

Fang mit deiner eigenen Test-Suite an

Wenn die Rechtsabteilung schon fragt, welche Daten über deinen KI-Stack das Unternehmen verlassen, ist ein paralleler Test der günstigste Weg, mit der Antwort anzufangen. Neue Accounts starten mit 5 EUR Guthaben.

API-Key holen

Lock-in bei LLM-APIs ist meistens eine Geschichte, die sich Teams selbst erzählen. Das Format ist dasselbe, die SDKs nehmen eine Base-URL, und die eigentliche Arbeit ist zu wissen, wohin deine sensiblen Daten fließen. Die meisten Teams haben das nie aufgeschrieben, weil niemand gefragt hat. Am Dienstagnachmittag hat es jemand getan.