KI in der IDE: Erster Eindruck vom IONOS-Model-Hub in Eclipse Theia

In den letzten Beiträgen haben wir uns damit beschäftigt, wie KI unseren Software-Entwickleralltag verändert – von automatisierten Code-Vorschlägen bis hin zu neuen Möglichkeiten durch Modelle, die in Europa gehostet werden. Wir haben über Sprachmodelle und deren Verfügbarkeit in deutschen und europäischen Umgebungen gesprochen, sowie über IDEs und Tools, die KI-Support integrieren.

Genau an dieser Stelle setzen wir heute an: Wie sieht eigentlich eine Entwicklungsumgebung aus, in der KI nicht bloß additiv wirkt, sondern integraler Bestandteil ist – speziell wenn man auf europäische Cloud-Lösungen und Datenschutz achtet? Im Fokus steht das KI-Angebot von IONOS, der Model-Hub, in Verbindung mit Eclipse Theia – eine Kombination, die verspricht, das Beste aus beiden Welten zu liefern: KI-Unterstützung direkt in der IDE und Hosting, das den Anforderungen europäischer Datenschutzstandards gerecht wird.

Eclipse Theia installieren

Die Theia IDE kann auf der Internetseite theia-ide.org heruntergeladen werden. Wer möchte, kann alternativ auch die Online-Version ausprobieren: https://try.theia-cloud.io/ – hierfür ist allerdings ein Account-Login notwendig. Passend zum Thema Datenschutz findet sich auf der Website folgender Hinweis:

We only need your login data for preventing misuse. We never contact you via your e-mail and will never use it for any other marketing purposes.

Mit einem Blick auf die kommenden Beiträge empfehle ich allerdings, die Desktop-Version zu installieren. Da ich persönlich seit Jahren zufriedener Linux-User bin, habe ich mich für die Snap-Image-Variante entschieden. Es stehen aber auch Varianten für Windows oder MacOS zur Verfügung.

Grafisch ist die Theia-IDE erst einmal kaum von Microsoft’s Visual Studio Code zu unterscheiden.

Ein Screenshot der Eclipse Theia IDE

Dies ist auch nicht weiter verwunderlich, da sich Eclipse Theia und Visual Studio Code technisch sehr ähnlich sind. Beide verwenden den Monaco-Editor, das Language Server Protocol und Debug Adapter Protocol. Während VS Code von Microsoft entwickelt wird und durch sein riesiges Erweiterungs-Ökosystem, polierte Features und breite Community punktet, ist es teilweise proprietär und mit Telemetrie verknüpft. Theia hingegen ist vollständig Open Source unter der Eclipse Foundation, modular aufgebaut und besonders anpassbar. Es unterstützt viele VS-Code-Erweiterungen über den Open-VSX-Standard, bietet aber zusätzlich eigene Erweiterungsmöglichkeiten und mehr Kontrolle bei Datenschutz und Infrastruktur.

Ein erster Eindruck der AI Chat View

Nach dem erstmaligen Start sind standardmäßig erst einmal keine KI-Funktionen aktiviert. Dies kann der Nutzer entweder über den Hinweis auf dem Startbildschirm, die Einstellungen des Editors oder über den Aufruf der KI-Chat-Ansicht direkt nachholen:

Position der KI-Chat-Ansicht in Eclipse Theia

Sobald die Aktivierung erfolgt ist, hat der Nutzer die Möglichkeit der IDE Fragen zu stellen. Interessant dabei ist der Hinweis auf die KI-Agenten. Von Hause aus bietet Theia acht Agenten. Der Coder unterstützt beim Programmieren direkt im Workspace, der Universal-Agent beantwortet allgemeine Fragen, und der Orchestrator wählt automatisch den passenden Helfer. Der Command Agent hilft bei Theia-Befehlen, während der Architect bei Projektstruktur und Planung berät. Dazu kommen Code Completion für Inline-Vorschläge, Terminal Assistance für Befehle im Terminal und der App Tester für End-to-End-Tests von Webanwendungen. Einfach drauf los tippen ist dabei leider nicht möglich.

Vor dem Einsatz, muss Theia für den Betrieb mit dem gewünschten LLM-Provider angepasst werden. Die IDE unterstützt dabei derzeit verschiedene Anbieter in unterschiedlichen Reifegraden. Als „public“ gekennzeichnet sind OpenAI, OpenAI-API-kompatible-Anbieter, Azure und Mistral. Die Unterstützung von Anthropic befindet sich in der Beta-, die Ollama-Einbindung in der Alpha-Phase. Als experimentell markiert sind dabei Vercel AI, Google AI, LlamaFile und Hugging Face.

IONOS GPT und die Registrierung für den Datacenter Designer

Die Einbindung von Anbietern mit einer OpenAI-kompatible-API ermöglicht es, das IONOS-Angebot zu nutzen. Der AI Model Hub ist eine vollständig verwaltete Plattform, die Unternehmen den Zugriff auf führende Open-Source-KI-Modelle ermöglicht, ohne sich um Infrastruktur oder Hosting kümmern zu müssen. Die Modelle werden in deutschen Rechenzentren gehostet, was höchste Datensicherheit und DSGVO-Konformität gewährleistet. Ich habe die Plattform für diese Artikel-Reihe gewählt, da nicht nur die Registrierung einfach ohne einen Sales-Agenten möglich ist, sondern das Angebot bis Ende September auch noch kostenlos genutzt werden kann. Standardmäßig bietet die Plattform eine grafische Oberfläche, die sehr an das Open-Webui-Projekt erinnert. Ähnlich wie Theia selbst, bietet auch IONOS dem Nutzer acht verschiedene KIs zur Auswahl an.

 und die acht angebotenen Agenten

Etwas nervig: Meldet man sich für IONOS-GPT an, wird man scheinbar auch gleich in den Newsletter-Versand aufgenommen. Von Juli bis September erhielt ich dabei sage und schreibe 31 E-Mails. Ganz von Marcell Davis trennen, kann sich das Unternehmen aus Montabaur anscheinend nicht. Bestellt den Newsletter also am Besten gleich ab. Für die Nutzung der API des IONOS-Modell-Hubs ist allerdings eine tiefgreifendere Registrierung bei dem Anbieter nötig. Der Nutzer stößt hier dabei auf eines meiner persönlichen Ärgernisse bei der Anmeldung bei Online-Diensten. Die Länge des Passwortes ist beschränkt. Warum ich im Zeitalter von Passwort-Managern kein beliebig langes Kennwort verwenden kann, ist mit absolut unklar. Nach der Registrierung muss noch die Vollversion des „Data Center Designers“, kurz DCD, aktviert und ein Benutzer sowie ein passender Schlüssel eingerichtet werden. Für die Vollversion muss der Kunde leider seine vollständige Adresse und eine Kreditkarte hinterlegen. Die Freischaltung wird dann innerhalb von 24 Stunden überprüft. Einen E-Mail-Hinweis zur erfolgreichen Prüfung habe ich aber leider nicht erhalten. Statt eines neuen Nutzers, wäre an dieser Stelle IMHO ein Serviceaccount wünschenswert, denn für den zweiten Benutzer – der eigentlich ja nur ein „technischer“ ist – wird zudem eine E-Mail-Adresse & ein Passwort benötigt. Verwendet man die gleiche E-Mail wie für den Admin-Account, so führt dies zu einem Fehler.

Da wir uns anders als bei den Assistenten von Google und Microsoft nicht mit einem Login-Flow direkt aus dem Editor anmelden können, wähle ich für die Lebenszeit meines Tokens die längste Möglichkeit – 365 Tage.

IONOS-KI-Hub mit Theia verbinden

Nachdem wir den Token generiert haben, können wir Theia nun als nächstes mit dem KI-Angebot von Ionos verbinden. Der AI-Model-Hub bietet derzeit Zugriff auf insgesamt 13 Modelle, wobei einzig ein dezidiertes Coding-Modell („Code Llama 13B“) angeboten wird. Zudem stehen sieben Modelle für die Textgenerierung, zwei Modelle für die Erstellung von Bildern und drei Embedding-Modelle zur Verfügung. Die vollständige Übersicht findet sich in der Dokumentation des Anbieters.

Um Theia nun den Zugriff auf die Modelle zu geben, müssen die Einstellungen angepasst werden. Ich habe keinen Weg gefunden, dies über die „grafischen“ Einstellung zu tun. Stattdessen habe ich auf die JSON-Variante zurückgreifen müssen. Diese lässt sich in den Einstellungen durch einen Klick auf die zwei geschweiften Klammern oben rechts in der Ecke öffnen. Die IONOS-Dokumentation hilft dabei, die richtigen Eigenschaften zu bestimmen. Dementsprechend müssen nun folgende Werte hinzugefügt werden.

{
   "ai-features.openAiCustom.customOpenAiModels": [
       {
           "model": "meta-llama/CodeLlama-13b-Instruct-hf",
           "url": "https://openai.inference.de-txl.ionos.com/v1",
           "id": "IONOS Code Llama 13b",
           "apiKey": "eyJ0eXAiOi...Rest...Des...Tokens...Des...KI-Nutzers...aus...dem...DCD...",
           "developerMessageSettings": "developer"
       }
   ]
}

Im nächsten Schritt müssen wir noch festlegen, welches Modell die Theia-Agenten standardmäßig verwenden sollen. Dies kann entweder über die Settings-UI, oder aber eben auch in der JSON-Ansicht konfiguriert werden. Wichtig hierbei ist, dass wir die Modelle nicht nach ihrem technischen Namen, sondern der „id“ die wir oben verwendet haben, benennen.

"ai-features.languageModelAliases":{
        "default/code": {
            "selectedModel": "IONOS Code Llama 13b"
        },
        "default/code-completion": {
            "selectedModel": "IONOS Code Llama 13b"
        },
        "default/summarize": {
            "selectedModel": "IONOS Code Llama 13b"
        },
        "default/universal": {
            "selectedModel": "IONOS Code Llama 13b"
        },
    },

Theoretisch haben wir so die Möglichkeit, verschiedene Modelle aus dem Model-Hub für verschiedene Aufgaben zu verwenden. Für den Moment, verlassen wir uns auf „Code Llama“. So zumindest war das Ganze gedacht. Leider scheiterte die erste Anfrage im KI-Chat mit folgender Fehlermeldung:

400 litellm.BadRequestError: OpenAIException - Error code: 400 - {'object': 'error', 'message': '', 'type': 'BadRequestError', 'param': None, 'code': 400} Received Model Group=meta-llama/CodeLlama-13b-Instruct-hf Available Model Group Fallbacks=None

Ah…ha. Ändern wir das ausgewählte Modell auf OpenAIs 120B-OSS-Modell („openai/gpt-oss-120b“), funktioniert es hingegen. Auch ein Versuch mit dem souveränen, deutschen Modell „Teuken 7B“ schlug fehl, ebenso wie der Zugriff auf MistralAIs „Nemo 12B“ und „Mistral Small 24B“. In der Web-UI des Model-Hub von IONOS, können jedoch alle Modelle verwendet werden. Der Verdacht, dass die Modelle in der Dokumentation gegebenenfalls falsch identifiziert sind, konnte ein Blick auf die API mit Hilfe des Aufrufs

curl https://openai.inference.de-txl.ionos.com/v1/models -H "Authorization: Bearer ey..."

entkräftet werden. Auch ein direkter Aufruf der Textgenerierung verlief erfolgreich:

curl https://openai.inference.de-txl.ionos.com/v1/chat/completions \
  -H "Authorization: Bearer ey..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "meta-llama/CodeLlama-13b-Instruct-hf",
    "messages": [
      {"role": "system", "content": "Du bist ein hilfreicher Assistent."},
      {"role": "user", "content": "Schreibe eine Python-Funktion, die eine Liste sortiert."}
    ]
  }'

Auch hier hilft es, dass Theia open-source ist. Es ist keine teure Support-Anfrage an einen Dienstleister nötig, stattdessen habe ich auf GitHub eine Diskussion eröffnet. Da ich anders als bei einem kommerziellen Anbieter keine direkte Antwort erwarte, werde ich für meine weiteren Tests erst einmal das Modell von OpenAI nutzen. Mehr dazu im nächsten Teil.