KI-Plugin erstellen und implementieren

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Smart CodeInsight


KI-Plugin erstellen

In RAD Studio können Sie ein eigenes KI-Plugin zusätzlich zu den bereitgestellten AIEngine und ToolsAPI.AI implementieren.

Mithilfe der neuen Interfaces in der Unit ToolsAPI.AI können Sie die verfügbaren KI-Plugins (EN) nutzen oder ein eigenes Plugin erstellen (EN). Dazu müssen Sie ein Delphi-Standard-Package (bpl) anhand dieser Schritte erstellen:

  1. Führen Sie diese Schritte aus, um ein neues Package zu erstellen:
    1. Öffnen Sie RAD Studio.
    2. Wählen Sie Datei > Neu > Package - Delphi aus.
    3. Geben Sie einen Namen für das Package ein.
    4. Klicken Sie auf OK.
  2. Fügen Sie erforderliche Units hinzu. Die Projektstruktur kann folgendermaßen aussehen:
    • MyPlugin.Main.pas
      Achtung: Bitte beachten Sie beim Einrichten dieser Unit die folgenden wichtigen Punkte:
      • Die Unit muss eine Klasse enthalten, die das Interface IOTAAIPlugin aus ToolsAPI.AI implementiert.
      • Die folgenden Funktionen und Prozeduren müssen korrekt implementiert werden:
        • function GetName: string;
        • function GetFeatures: TAIFeatures;
        • function GetEnabled: Boolean;
        • function GetSettingFrame(AOwner: TComponent): IOTAAIPluginSetting;
        • function AddNotifier(const ANotifier: IOTAAIServicesNotifier): Integer;
        • procedure RemoveNotifier(const AIndex: Integer);
      • Das Plugin muss sich selbst mit der Prozedur "Register" bei AIEngine registrieren.
    • MyPlugin.Setting.pas und MyPlugin.Setting.dfm, wobei es sich um einen TFrame handelt.
      Achtung: Bitte beachten Sie beim Einrichten dieser Frames die folgenden wichtigen Punkte (MyPlugin.Setting):
      • Die Klasse TFrame muss das Interface IOTAAIPluginSetting aus ToolsAPI.AI implementieren.
      • Die Prozeduren SaveSettings und LoadSettings sind obligatorisch.
        Tipp: Sie müssen implementiert werden, um die Einstellungen reibungslos und effizient zu speichern und wiederherzustellen. Sie können dies nach Belieben durchführen, beispielsweise durch Speichern in der Windows-Registrierung, in einer INI-Datei oder sogar in einer SQLite-Datenbank.
      • Verwenden Sie die Funktion ParameterValidations, um Ihre Parameter zu überprüfen und eine Fehlfunktion Ihres Plugins und damit auch der IDE zu verhindern.
    • Eine Unit zur Behandlung von REST-Anforderungen und -Antworten.
    • Alle anderen optionalen UI- oder Nicht-UI-Elemente.
  3. Erzeugen und installieren Sie Ihr Package.
  4. Starten Sie RAD Studio neu.
  5. Suchen Sie Ihr Plugin auf der Seite Optionen für Smart CodeInsight und konfigurieren Sie es.
  6. Verwenden Sie es für KI-Befehle im Chatfenster oder Editor.

KI-Backend implementieren

Erstellen Sie eine Klasse, die IOTAAIPlugin implementiert. Dabei handelt es sich um das öffentliche (und für die IDE bestimmte) Interface, das KI-Plugins benötigen, um KI-Funktionen zu implementieren und zu abstrahieren. Implementieren Sie GetFeatures, um einen Satz von TAIFeatures zurückzugeben, die das von Ihnen erstellte Plugin unterstützen.

Registrieren Sie das neue Plugin über RegisterPlugin, damit ein Plugin-Index zurückgegeben wird. Entfernen Sie es beim Schließen mit UnregisterPlugin, indem Sie denselben Index übergeben.

Hier ist ein Beispiel des Anthropic Claude-Plugins :

class procedure TClaudePlugin.ProductStartup(Sender: TObject);
begin
  if Supports(BorlandIDEServices, IOTAAIEngineService, AIEngineService) then
  begin
	ClaudePlugin := TClaudePlugin.Create;
	PluginIndex := AIEngineService.RegisterPlugin(ClaudePlugin);
  end;
end;
class procedure TClaudePlugin.ProductFinish(Sender: TObject);
begin
  if Assigned(AIEngineService) and (PluginIndex <> -1) then
	AIEngineService.UnregisterPlugin(PluginIndex);
end;

Diese Methoden werden in den Initialisierungs- und Finalisierungsklauseln aufgerufen.

Die Methode GetSettingFrame enthält die Einstellungen und gibt eine IOTAAIPluginSetting zurück. Diese Eigenschaft wird beim Laden in die UI aus dem Plugin (LoadSettings) oder beim Verschieben aus der UI in das Plugin (SaveSettings) benachrichtigt. Außerdem kann über GetModified ein boolescher Wert zurückgegeben werden, der angibt, ob Änderungen vorgenommen wurden. Dies hat Einfluss darauf, ob eine Aufforderung angezeigt wird, das Dialogfeld Optionen zu schließen, ohne die Einstellungen zu speichern.


Siehe auch