Wie wir in unserem Blogbeitrag zur Ankündigung von RAD Studio 12.2 geschrieben haben, „wird die Nutzung von KI-LLMs für die Programmierung immer beliebter und die Qualität dieser Tools wird immer besser. Aus diesem Grund führt RAD Studio 12.2 eine offene Architektur für KI-Plug-ins ein, die sofort einsatzbereite Unterstützung für drei Online-Lösungen (OpenAI, Gemini von Google und Claude von Anthropic) und eine Offline-Lösung (Ollama) bietet.
Table of Contents
In diesem Blogbeitrag werden wir einige weitere Details und Informationen bereitstellen, da dies der erste Einstieg von RAD Studio in den KI-Bereich ist und wir eine erste Unterstützung bieten, die wir in Zukunft ausbauen wollen. Derzeit investiert Embarcadero nicht direkt in seine eigenen KI-Backend-Tools, sondern konzentriert sich darauf, einige der besten Branchentools direkt für unsere Kunden verfügbar zu machen, mit einer direkten Integration in die IDE.
Die KI-Unterstützung von RAD Studio lautet „Smart CodeInsight“ und basiert auf einer offenen Architektur, die von neuen Schnittstellen in der IDE ToolsAPI unterstützt wird. Diese API ermöglicht es Entwicklern, zusätzliche KI-Engines zu integrieren und auch eine benutzerdefinierte Benutzeroberfläche für eine davon zu erstellen. Wir werden darauf gegen Ende dieses Blogbeitrags zurückkommen. Neben der API bieten wir auch darauf basierende, einsatzbereite Funktionen an. Tatsächlich bieten wir eine IDE-Integration mit:
- Ein KI-Chat-Fenster
- Befehle im Editor-Menü zum Aufrufen von KI-Operationen
Was spezifische Plugins betrifft, bieten wir, wie bereits erwähnt, gebrauchsfertige Unterstützung für die folgenden APIs a:
- OpenAI
- Gemini von Google
- Claude von Anthropic
- Ollama
Bitte beachten Sie, dass wir die Integration mit diesen Diensten bereitstellen, für die Sie deren Bedingungen zustimmen, von einem der Anbieter einen API-Schlüssel erhalten (die in der Regel mit einem Pay-per-Use-Vertrag zur Verfügung gestellt werden) und Sie diesen Schlüssel in die RAD Studio-Konfiguration eingeben müssen. Beachten Sie bitte ebenfalls, dass es schwierig sein kann, das richtige Konto auf den Websites dieser Anbieter zu erstellen. Einige Anbieter neigen dazu, Sie dazu zu verleiten, eine monatliche Gebühr zu abonnieren, um ihre Website nutzen zu können, aber das gibt Ihnen keinen Zugriff auf die APIs. Stellen Sie daher sicher, dass Sie sich für diese API-Angebote anmelden (in der Vergangenheit haben sich mehrere Personen versehentlich für das falsche Angebot angemeldet):
- Für Open AI das API-Produkt bei openai.com/api/ und die Preise befinden sich bei openai.com/api/pricing/
- Für Claude befinden sich die Produkt-Informationen bei www.anthropic.com/api und die Preise befinden sich bei www.anthropic.com/pricing#anthropic-api
- Für Gemini finden Sie alles auf der Seite unter ai.google.dev/gemini-api/ und die Preise befinden sich bei ai.google.dev/pricing (Google bietet einen kostenlosen Tarif an, aber beachten Sie, dass dieser im Gegensatz zur kostenpflichtigen Lösung auf der Grundlage der Eingabeaufforderungen und des von Ihnen übermittelten Codes trainiert wird, wie auf deren Website zum Zeitpunkt der Erstellung dieses Artikels angegeben.)
Die einzige Ausnahme in Bezug auf Konten und Zahlungen ist Ollama, das lokal (oder auf einem Server Ihrer Wahl) installiert und offline verwendet werden kann, ohne dass eine Servicegebühr anfällt. Weitere Informationen zu Ollama und Codellama finden Sie weiter unten in diesem Blogbeitrag.
Bitte beachten Sie auch, dass wir keinen Support für andere beliebte Lösungen anbieten, die wir in Betracht gezogen haben (und die von unseren Kunden angefragt wurden), da diese keine offene REST-API bieten, sondern vom KI-Anbieter eine benutzerdefinierte IDE-Integration erfordern. Wir gehen davon aus, dass andere KI-Anbieter in Zukunft REST-APIs bereitstellen werden.
Entwickler haben die vollständige Kontrolle
Wir bieten unseren Kunden erweiterte Konfigurationsmöglichkeiten und volle Kontrolle über den Datenschutz auf verschiedene Weise:
- Falls Sie LLMs nicht vertrauen oder sie Ihnen egal sind, können Sie die gesamte KI-Funktion mit einer einzigen globalen Einstellung deaktivieren.
- Jede der vier Engines kann aktiviert oder deaktiviert werden (sie sind standardmäßig nicht aktiviert).
- Sie können auswählen, welche Engine standardmäßig von den verschiedenen UI-Elementen (Chat- und Editor-Menü) verwendet wird.
- Wir speichern die API-Schlüssel in einem verschlüsselten Format.
- Wir bieten die Möglichkeit, eine lokale Offline-Engine zu verwenden.
Bitte beachten Sie, dass Embarcadero keine Anfragen an eine Suchmaschine unserer Wahl sendet, dass Embarcadero keine Anfragen über unsere Server vermittelt und dass das Unternehmen keinen bestimmten Dienst anbietet, für den Sie bezahlen müssen. Es handelt sich um eine offene Architektur, bei der Sie die volle Kontrolle haben.
Die Smart CodeInsight-Konfiguration
Tie RAD Studio KI-Integration kann im Optionen-Dialog unter Editor > Smart CodeInsight konfiguriert werden. Wie bereits erwähnt, gibt es:
- Eine allgemeine Checkbox zum Aktivieren der gesamten Funktion.
- Eine Checkbox zum Aktivieren der einzelnen Engines.
- Zwei Kombinationsfelder zum Festlegen der Standard-Engine für jedes UI-Element.
Wie Sie im folgenden Dialog sehen können, gibt es für jede Engine eine Registerkarte mit einem anderen Satz von Konfigurationsparametern:
Die empfohlenen Konfigurationsoptionen für jede Engine, einschließlich der API BaseURL und anderer Konfigurationen, sind auf der RAD Studio DocWiki-Seite hier aufgeführt.
Die Smart CodeInsight UI-Elemente
In der Version 12.2 von RAD Studio stellt die IDE die KI-Tools auf zwei verschiedene Arten dar: in einem universellen Chat-Fenster, in das Sie eine benutzerdefinierte Eingabeaufforderung verwenden können, und in einigen Editor-Menüs, über die Sie bestimmte Vorgänge für den aktuell ausgewählten Quellcode aufrufen können.
Das Chat-Fenster
Das KI-Chat-Fenster ist ein andockbares IDE-Formular, das wie jedes LLM-Chat-Fenster funktioniert. Sie können eine Anfrage eingeben, eine Engine auswählen (es sei denn, Sie möchten die Standard-Engine verwenden) und auf die Informationen warten. Hier ist ein kurzes Beispiel, in dem ChatGpt nach dem Öffnen einer Textdatei gefragt wird:
Dieses Chat-Fenster verfügt über ein Fragen-Feld als Memo, das wie eine einfache Befehlszeile verwendet werden kann. Folgende Sonderbefehle stehen zur Verfügung:
Wechseln Sie die aktive KI-Engine zu einer anderen Engine, die Sie aktiviert haben (Sie können die Engine auch auf der Chat-Seite über das Auswahlfeld unten wechseln):
1 2 3 4 |
chatgpt> + Eingabe gemini> + Eingabe claude> + Eingabe ollama> + Eingabe |
Löschen Sie das Antwortmemo; Beenden Sie die Generierung der Antwort (entspricht dem Klicken auf die Schaltfläche „Stopp“); Starten Sie die Generierung der Antwort (entspricht dem Klicken auf die Schaltfläche „Start“); jeweils mit:
1 2 3 |
clear> + Eingabe stop> + Eingabe Ctrl + Eingabe |
Das Editor-Menü
Das Editor-Menü bietet einige voreingestellte Vorgänge für den im Editor ausgewählten Code, wobei das von der LLM-Engine zurückgegebene Ergebnis nach der Auswahl in einem Kommentar im Editor selbst hinzugefügt wird. Dies ist schneller, als den Code in die Chat-Anfrage zu kopieren und das Ergebnis in den Editor einzufügen. Die Idee besteht darin, einen Teil des Quellcodes Ihrer Anwendung zur Analyse zu senden.
Dies sind die verfügbaren Befehle:
- KI-Chat: Öffnet das Chat-Fenster
- Fehler suchen: Versucht, mögliche Fehler im ausgewählten Code zu finden
- Den Code erklären: Erklärt den ausgewählten Code
- Kommentar hinzufügen: Fügt Kommentare zum ausgewählten Code hinzu
- Den Code vervollständigen: Vervollständigt den ausgewählten Code
- Code optimieren: Optimiert den ausgewählten Code
- Unit-Test hinzufügen: Fügt Unit-Tests für den ausgewählten Code hinzu
- In Assembler konvertieren: Konvertiert den ausgewählten Code zu Assembler-Code
- In Delphi konvertieren: Konvertiert den ausgewählten Code zu Delphi-Code (von C++ oder Assembler)
- In C++ konvertieren: Konvertiert den ausgewählten Code zu C++Builder Code
Nachfolgend befindet sich ein Beispiel eines erklärten Codes:
Erweiterung von Smart CodeInsight mit der ToolsAPI
Wir bieten Ihnen auf zwei Arten umfassende Unterstützung beim Schreiben Ihrer eigenen KI-Plugins und haben für beide Szenarien Demos zu unserem offiziellen Demos-Repository hinzugefügt. Hier ist leider nicht genug Platz für alle Details, aber wir möchten trotzdem die Links zu den Demos auf GitHub (sie sind auch im Produkt enthalten) für zwei Arten von Plugins bereitstellen:
- Unterstützung bei der Implementierung eines alternativen KI-Anbieters: github.com/Embarcadero/RADStudio12Demos/tree/main/Object%20Pascal/ToolsAPI/AIEngine%20Demos/CohereAI_Plugin
- Erstellung benutzerdefinierter IDE-Funktionen, die eines der verfügbaren Plugins verwenden: github.com/Embarcadero/RADStudio12Demos/tree/main/Object%20Pascal/ToolsAPI/AIEngine%20Demos/AI_Consumer_CodeSample
Zusatzbemerkung zu Ollama
Während Sie für die drei Online-Lösungen ein Konto erstellen und in der Regel für die Nutzung bezahlen müssen, haben wir Ollama in unsere Liste aufgenommen. Weitere Informationen finden Sie unter ollama.com/. Wie Sie in deren GitHub repository sehen können, hat diese Engine eine MIT-Lizenz. Ollama ist die Engine, aber Sie benötigen ein tatsächliches Modell. Wir empfehlen Codellama, ein Modell für Entwickler von Meta, das mit einer eigenen Lizenzvereinbarung und Nutzungsbedingungen zur Verfügung gestellt wird.
Diese Engine wird in der Regel über Docker installiert und funktioniert auch auf dem Windows Linux Subsystem (WLS) einwandfrei. Wir haben Sie mehrfach auf unseren Windows-Testsystemen installiert. Einige Informationen finden Sie auf der Ollama-Konfigurationsseite im DocWiki. Sie können zwar das offizielle Ollama-Docker-Repository verwenden und Codellama darauf installieren, aber wir stellen auch ein einsatzbereites Docker-Image mit der einsatzbereiten Konfiguration zur Verfügung, das mit einem einzigen Docker-Befehl heruntergeladen und ausgeführt werden kann. Konfigurieren Sie RAD Studio dann einfach mit der URL, die auf localhost oder den Computer verweist, auf dem Sie die Engine installiert haben, und schon kann es ohne weitere Probleme losgehen. Die Leistung einer lokalen Engine kann je nach Hardware variieren und sie kann langsamer sein als Online-Lösungen, aber Sie werden gute Ergebnisse erzielen.
Die Verwendung des einsatzbereiten Embarcadero-Docker wird im DocWiki behandelt und das Image wird unter dem Docker-Link: hub.docker.com/r/radstudio/codellama gehostet (beachten Sie, dass das vollständige Image einschließlich des vorinstallierten Modells 4,26 GB groß ist).
Intelligenter und sicherer Programmieren mit Smart CodeInsight
Eine LLM-Integration in die IDE kann Ihnen dabei helfen, schneller zu programmieren, Code-Skelette zu schreiben, diese auf Korrektheit zu überprüfen, mehr Informationen zu erhalten als bei einer allgemeinen Websuche und Code, durch den Sie navigieren, besser zu verstehen … aber wie wir wissen, machen LLMs auch Fehler und man sollte ihnen nicht blind vertrauen. Überprüfen Sie das Ergebnis sorgfältig, bevor Sie es in Ihren Code integrieren. Seien Sie auch vorsichtig in Bezug auf das geistige Eigentum an dem vorgeschlagenen Code und/oder Ihrem eigenen Code, wenn Sie den Quellcode mit einer Engine teilen. Die kostenpflichtige Lösung, die wir anbieten, ist nicht auf Ihren Code spezialisiert, aber die genauen Details können vom Angebot abhängen: Lesen Sie daher unbedingt das Kleingedruckte.
Wir sehen bereits weitere Möglichkeiten, wie diese Tools nützlich werden können. Verfolgen Sie dieses spannende Thema bitte weiterhin und lassen Sie uns wissen, wenn Sie eine Erweiterung mit der ToolsAPI schreiben, die Sie mit der Community teilen möchten.
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition