KI Coding Plugin: Unterschied zwischen den Versionen

Aus expecco Wiki (Version 25.x)
Zur Navigation springen Zur Suche springen
Inhalt gelöscht Inhalt hinzugefügt
Sv (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
(Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt)
Zeile 2: Zeile 2:


Das KI Coding Plugin bindet einen Large Language Model (LLM) basierten
Das KI Coding Plugin bindet einen Large Language Model (LLM) basierten
KI-Assistenten in den Activity-Editor (Aktivitäten-Code) und in den
KI-Assistenten in den Activity-Editor (Aktivitäten-Code), den
Compound-Netzwerk-Editor, den Dokumentations-Editor und in den
ST/X Class Browser ein. Das Plugin unterstützt zwei Anbieter, die im
ST/X Class Browser ein. Das Plugin unterstützt zwei Anbieter, die im
Einstellungsdialog umschaltbar sind:
Einstellungsdialog umschaltbar sind:
Zeile 8: Zeile 9:
* '''Anthropic Claude''' (claude-opus-4-7, claude-sonnet-4-6, claude-haiku-4-5)
* '''Anthropic Claude''' (claude-opus-4-7, claude-sonnet-4-6, claude-haiku-4-5)
* '''OpenAI ChatGPT''' (gpt-4o, gpt-4o-mini, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, o1, o3)
* '''OpenAI ChatGPT''' (gpt-4o, gpt-4o-mini, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, o1, o3)
* '''Ollama''' (codellama:7b, codellama:13b)

Je nach gewähltem Anbieter erscheint die Toolbar-Schaltfläche als
Je nach gewähltem Anbieter erscheint die Toolbar-Schaltfläche als
'''"Ask Claude"''' bzw. '''"Ask ChatGPT"'''; das Einstellungs-Tab
'''"Ask Claude"''' bzw. '''"Ask ChatGPT"'''; das Einstellungs-Tab
Zeile 24: Zeile 25:
* Generate doc-comment — generiert eine Aktivitäts-Dokumentation inklusive Pin-Kommentaren und füllt den Documentation-Tab
* Generate doc-comment — generiert eine Aktivitäts-Dokumentation inklusive Pin-Kommentaren und füllt den Documentation-Tab
* Custom prompt... — freier Prompt; der Aktivitäts-Code wird als Kontext mitgesendet
* Custom prompt... — freier Prompt; der Aktivitäts-Code wird als Kontext mitgesendet
* Set API key...Schlüssel des aktiven Anbieters setzen
* Set model Untermenü mit den Modellen des aktiven Anbieters (das aktuell aktive ist mit ''(active)'' markiert)
* Set provider ▸ — nur sichtbar, wenn API-Schlüssel für mehr als einen Anbieter konfiguriert sind; Untermenü zum Umschalten zwischen Claude und ChatGPT


Code-Vorschläge können mit '''[Apply]''' im Chat direkt in den
Code-Vorschläge können mit '''[Apply]''' (direkt am jeweiligen
Code-Block im Chat oder über die obere Apply-Schaltfläche) in den
Aktivitäts-Body übernommen werden. Vom KI gelieferte Smalltalk/X
Aktivitäts-Body übernommen werden. Vom KI gelieferte Smalltalk/X
Hilfsmethoden (Form: <code>Klasse >> selector</code>) werden nach
Hilfsmethoden (Form: <code>Klasse >> selector</code>) werden nach
Zeile 35: Zeile 38:
Auf der Toolbar von Compound-Worksheets erscheint dieselbe
Auf der Toolbar von Compound-Worksheets erscheint dieselbe
Schaltfläche, beschränkt auf die für Netze sinnvollen Aktionen
Schaltfläche, beschränkt auf die für Netze sinnvollen Aktionen
(Open KI Window, Generate doc-comment, Set API key).
(Open KI Window, Generate doc-comment) ebenfalls mit den
Untermenüs '''Set model''' und ggf. '''Set provider'''.

== Dokumentations-Editor ==

Der Dokumentations-Tab der Block-Description (Editor für Test-Cases,
Test-Plans und Aktivitäten) trägt dieselbe Toolbar-Schaltfläche
"Ask Claude" / "Ask ChatGPT" mit den Einträgen
'''Open KI Window''', '''Generate doc-comment''' sowie den
Untermenüs '''Set model''' und ggf. '''Set provider'''.
'''Generate doc-comment''' analysiert den aktuellen Block (Name,
vorhandene Beschreibung, Eingangs-/Ausgangs-Pins, Sub-Steps eines
Compound-Netzes, referenzierte Environment-Variablen) und schlägt
eine vollständige Block- und Pin-Dokumentation vor.

Ist der Block schreibgeschützt (importierte Library, RTL-Lizenz),
fragt '''[Apply]''' nach, ob der Block freigeschaltet und die
Dokumentation eingetragen werden soll.


== Class Browser (ST/X) ==
== Class Browser (ST/X) ==
Zeile 44: Zeile 64:
Quelltext werden als Kontext mitgesendet). '''[Apply]''' kann das
Quelltext werden als Kontext mitgesendet). '''[Apply]''' kann das
Resultat direkt in die Methode der aktiven Klasse einbauen.
Resultat direkt in die Methode der aktiven Klasse einbauen.
Auch hier sind '''Set model''' und ggf. '''Set provider''' als
Untermenüs verfügbar.


== Chat-Fenster ==
== Chat-Fenster ==
Zeile 53: Zeile 75:
das gewählte Modell hinterlegt sind. Anbieter- und Modellwechsel
das gewählte Modell hinterlegt sind. Anbieter- und Modellwechsel
im Einstellungsdialog werden live übernommen.
im Einstellungsdialog werden live übernommen.

Das Transkript ist als vertikales Panel von "Karten" aufgebaut:

* '''Prosa-Karten''' enthalten den fließenden Text der Antwort; Zeilen werden auf die Fenster-Breite umgebrochen.
* '''Code-Karten''' (eingerahmt) entstehen aus markdown-Code-Blöcken (<code>```...```</code>) und sind als '''Workspace''' editierbar — das Standard-Smalltalk-Popup-Menü bietet doIt / printIt / inspectIt, ein <code>TestCase</code>-<code>simulatedSelf</code> ist gesetzt, so dass <code>self assert:... equals:...</code> direkt ausgeführt werden kann. Lange Blöcke scrollen innerhalb der Karte. Rechts oben sitzen die Schaltflächen '''[Apply]''' (sofern für den Kontext sinnvoll) und '''[⎘ Copy]'''; links wird der Sprachtag (smalltalk, python, …) angezeigt.
* '''Doku-Karten''' (volle Breite, Prosa) entstehen aus dem speziellen <code>```doc</code>-Block, den der Dokumentations-Generator anfordert; Inhalt ist die Vorschlags-Dokumentation für Block- und Pin-Beschreibungen.

Scroll-Lock: solange der Anwender bereits am unteren Ende des
Transkripts steht, folgt die Anzeige neu eintreffenden Karten
automatisch; nach manuellem Hochscrollen bleibt die Position stehen.


Bilder können als Anhang versendet werden (Screenshot oder
Bilder können als Anhang versendet werden (Screenshot oder
Zeile 64: Zeile 96:


* '''Provider''' — Anthropic oder OpenAI. Beim Wechsel werden API-URL und Default-Modell entsprechend angepasst; der gespeicherte API-Schlüssel des jeweiligen Anbieters wird geladen.
* '''Provider''' — Anthropic oder OpenAI. Beim Wechsel werden API-URL und Default-Modell entsprechend angepasst; der gespeicherte API-Schlüssel des jeweiligen Anbieters wird geladen.
* '''API Key''' — Schlüssel des aktuell gewählten Anbieters. Die Schlüssel werden pro Anbieter getrennt gespeichert (<code>#claudeApiKey_anthropic</code> bzw. <code>#claudeApiKey_openai</code>), so dass zwischen den Anbietern ohne erneute Eingabe gewechselt werden kann.
* '''API Key''' — Schlüssel des aktuell gewählten Anbieters. Die Schlüssel werden pro Anbieter getrennt gespeichert (<code>#claudeApiKey_anthropic</code> bzw. <code>#claudeApiKey_openai</code>), so dass zwischen den Anbietern ohne erneute Eingabe gewechselt werden kann. Das Setzen des Schlüssels erfolgt ausschließlich über diesen Dialog.
* '''Model''' — ein Modell aus der Liste des aktiven Anbieters oder ein selbst eingegebener Modellname.
* '''Model''' — ein Modell aus der Liste des aktiven Anbieters oder ein selbst eingegebener Modellname. Kann auch direkt über das '''Set model'''-Untermenü in den Editor-Toolbars umgeschaltet werden.
* '''Max output tokens''' — maximale Antwortlänge.
* '''Max output tokens''' — maximale Antwortlänge.
* '''API URL''' — nur zu ändern für eigene Proxies / Gateways. Standard: <code>https://api.anthropic.com/v1/messages</code> bzw. <code>https://api.openai.com/v1/chat/completions</code>.
* '''API URL''' — nur zu ändern für eigene Proxies / Gateways. Standard: <code>https://api.anthropic.com/v1/messages</code> bzw. <code>https://api.openai.com/v1/chat/completions</code>.
Zeile 80: Zeile 112:
<code>api.openai.com</code>. Es gibt keinen eXept-seitigen Proxy oder
<code>api.openai.com</code>. Es gibt keinen eXept-seitigen Proxy oder
Zwischenspeicher. Mit dem Aktivitäts-Quelltext bzw. den Methoden-
Zwischenspeicher. Mit dem Aktivitäts-Quelltext bzw. den Methoden-
Quelltexten werden auch Pin-Beschreibungen und Sub-Step-Namen aus
Quelltexten werden auch Pin-Beschreibungen, Sub-Step-Namen und
dem Block-Description-Modell als Kontext versendet.
referenzierte Environment-Variablen aus dem Block-Description-Modell
als Kontext versendet.


Bei Benutzung von Anthropic API-Tokens - wie hier der Fall - werden laut Anthropic die Daten nicht zum Training des KI-Modells genutzt ([https://privacy.claude.com/de/articles/7996868-werden-meine-daten-fur-das-modelltraining-verwendet Anthropic Erkärung dazu]).
Bei Benutzung von Anthropic API-Tokens - wie hier der Fall - werden laut Anthropic die Daten nicht zum Training des KI-Modells genutzt ([https://privacy.claude.com/de/articles/7996868-werden-meine-daten-fur-das-modelltraining-verwendet Anthropic Erkärung dazu]).
Zeile 88: Zeile 121:


* '''Mehrere Konversationen''': der Chat ist ein Singleton — eine neue Anfrage über ein Browser-/Editor-Menü startet jedesmal eine '''neue''' Konversation. Folge-Fragen (Klärung, Vertiefung) gehen über das Eingabefeld in derselben Konversation.
* '''Mehrere Konversationen''': der Chat ist ein Singleton — eine neue Anfrage über ein Browser-/Editor-Menü startet jedesmal eine '''neue''' Konversation. Folge-Fragen (Klärung, Vertiefung) gehen über das Eingabefeld in derselben Konversation.
* '''Vorsicht:''' Die Größe der übertragenen Daten (auch die aus dem Chatfenster) geht in die Kostenberechnung ein. Deshalb immer eine neue Konversation starten, wenn es um ein neues Thema geht.
* '''Vorsicht:''' Die Größe der übertragenen Daten (auch die aus dem Chatfenster) geht in die Kostenberechnung ein. Deshalb immer eine neue Konversation starten, wenn es um ein neues Thema geht.
* '''Modell wechseln''': Für schnelle Routine-Antworten Sonnet, für schwierige Refactorings Opus. Über '''Set model…''' im Menü oder in den Settings.
* '''Modell wechseln''': Für schnelle Routine-Antworten Sonnet, für schwierige Refactorings Opus. Über das '''Set model'''-Untermenü direkt aus der Toolbar oder über die Settings.
* '''Anbieter wechseln''': Sind Schlüssel für beide Anbieter konfiguriert, schaltet das '''Set provider'''-Untermenü ohne Umweg über den Settings-Dialog um.
* '''Code direkt ausführen''': In Code-Karten kann markierter Smalltalk-Code per doIt / printIt / inspectIt direkt evaluiert werden — praktisch z.B. um vom Modell vorgeschlagene SUnit-Asserts gleich auszuprobieren, ohne den Code erst in einen Workspace zu kopieren.
* '''Custom prompt''' eignet sich gut für „warum macht Methode X es so und nicht so?" oder „schreib mir einen ParameterizedTest dazu mit folgenden Daten: …".
* '''Custom prompt''' eignet sich gut für „warum macht Methode X es so und nicht so?" oder „schreib mir einen ParameterizedTest dazu mit folgenden Daten: …".



Aktuelle Version vom 25. Mai 2026, 14:27 Uhr

KI Coding Plugin

Das KI Coding Plugin bindet einen Large Language Model (LLM) basierten KI-Assistenten in den Activity-Editor (Aktivitäten-Code), den Compound-Netzwerk-Editor, den Dokumentations-Editor und in den ST/X Class Browser ein. Das Plugin unterstützt zwei Anbieter, die im Einstellungsdialog umschaltbar sind:

  • Anthropic Claude (claude-opus-4-7, claude-sonnet-4-6, claude-haiku-4-5)
  • OpenAI ChatGPT (gpt-4o, gpt-4o-mini, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, o1, o3)
  • Ollama (codellama:7b, codellama:13b)

Je nach gewähltem Anbieter erscheint die Toolbar-Schaltfläche als "Ask Claude" bzw. "Ask ChatGPT"; das Einstellungs-Tab heißt "AI Coding".

Aktivitäten-Editor

Im Aktivitäten-Code-Editor erscheint in der Toolbar eine Schaltfläche "Ask Claude" / "Ask ChatGPT" mit folgenden Aktionen:

  • Open KI Window — öffnet das eigenständige Chat-Fenster
  • Explain code — erklärt den Code der aktuellen Aktivität
  • Suggest improvement — schlägt Verbesserungen vor
  • Find bugs — sucht nach Fehlern, Race Conditions, nil-Handling-Problemen
  • Generate doc-comment — generiert eine Aktivitäts-Dokumentation inklusive Pin-Kommentaren und füllt den Documentation-Tab
  • Custom prompt... — freier Prompt; der Aktivitäts-Code wird als Kontext mitgesendet
  • Set model ▸ — Untermenü mit den Modellen des aktiven Anbieters (das aktuell aktive ist mit (active) markiert)
  • Set provider ▸ — nur sichtbar, wenn API-Schlüssel für mehr als einen Anbieter konfiguriert sind; Untermenü zum Umschalten zwischen Claude und ChatGPT

Code-Vorschläge können mit [Apply] (direkt am jeweiligen Code-Block im Chat oder über die obere Apply-Schaltfläche) in den Aktivitäts-Body übernommen werden. Vom KI gelieferte Smalltalk/X Hilfsmethoden (Form: Klasse >> selector) werden nach Rückfrage in die genannte Klasse compiliert.

Compound (Netzwerk) Editor

Auf der Toolbar von Compound-Worksheets erscheint dieselbe Schaltfläche, beschränkt auf die für Netze sinnvollen Aktionen (Open KI Window, Generate doc-comment) — ebenfalls mit den Untermenüs Set model und ggf. Set provider.

Dokumentations-Editor

Der Dokumentations-Tab der Block-Description (Editor für Test-Cases, Test-Plans und Aktivitäten) trägt dieselbe Toolbar-Schaltfläche "Ask Claude" / "Ask ChatGPT" mit den Einträgen Open KI Window, Generate doc-comment sowie den Untermenüs Set model und ggf. Set provider. Generate doc-comment analysiert den aktuellen Block (Name, vorhandene Beschreibung, Eingangs-/Ausgangs-Pins, Sub-Steps eines Compound-Netzes, referenzierte Environment-Variablen) und schlägt eine vollständige Block- und Pin-Dokumentation vor.

Ist der Block schreibgeschützt (importierte Library, RTL-Lizenz), fragt [Apply] nach, ob der Block freigeschaltet und die Dokumentation eingetragen werden soll.

Class Browser (ST/X)

Im Class Browser stehen die Aktionen unter dem AI-Untermenü sowie im Selektor-Kontextmenü zur Verfügung. Die Aktionen operieren auf der aktuell ausgewählten Methode (Klasse + Selektor + Quelltext werden als Kontext mitgesendet). [Apply] kann das Resultat direkt in die Methode der aktiven Klasse einbauen. Auch hier sind Set model und ggf. Set provider als Untermenüs verfügbar.

Chat-Fenster

Das eigenständige Chat-Fenster trägt den Titel AI Coding [<Produkt> / <Modell>] (z.B. "AI Coding [Claude / claude-opus-4-7]") und zeigt nach jedem Turn den Tokenverbrauch und die kumulierten Kosten — sofern Preise für das gewählte Modell hinterlegt sind. Anbieter- und Modellwechsel im Einstellungsdialog werden live übernommen.

Das Transkript ist als vertikales Panel von "Karten" aufgebaut:

  • Prosa-Karten enthalten den fließenden Text der Antwort; Zeilen werden auf die Fenster-Breite umgebrochen.
  • Code-Karten (eingerahmt) entstehen aus markdown-Code-Blöcken (```...```) und sind als Workspace editierbar — das Standard-Smalltalk-Popup-Menü bietet doIt / printIt / inspectIt, ein TestCase-simulatedSelf ist gesetzt, so dass self assert:... equals:... direkt ausgeführt werden kann. Lange Blöcke scrollen innerhalb der Karte. Rechts oben sitzen die Schaltflächen [Apply] (sofern für den Kontext sinnvoll) und [⎘ Copy]; links wird der Sprachtag (smalltalk, python, …) angezeigt.
  • Doku-Karten (volle Breite, Prosa) entstehen aus dem speziellen ```doc-Block, den der Dokumentations-Generator anfordert; Inhalt ist die Vorschlags-Dokumentation für Block- und Pin-Beschreibungen.

Scroll-Lock: solange der Anwender bereits am unteren Ende des Transkripts steht, folgt die Anzeige neu eintreffenden Karten automatisch; nach manuellem Hochscrollen bleibt die Position stehen.

Bilder können als Anhang versendet werden (Screenshot oder PNG/JPG-Datei). Anhänge funktionieren mit beiden Anbietern; bei OpenAI nur mit vision-fähigen Modellen (gpt-4o-Familie).

Einstellungen (AI Coding)

Im Einstellungsdialog unter Plugins → AI Coding (bzw. unter Tools → AI Coding im Smalltalk-Launcher) werden konfiguriert:

  • Provider — Anthropic oder OpenAI. Beim Wechsel werden API-URL und Default-Modell entsprechend angepasst; der gespeicherte API-Schlüssel des jeweiligen Anbieters wird geladen.
  • API Key — Schlüssel des aktuell gewählten Anbieters. Die Schlüssel werden pro Anbieter getrennt gespeichert (#claudeApiKey_anthropic bzw. #claudeApiKey_openai), so dass zwischen den Anbietern ohne erneute Eingabe gewechselt werden kann. Das Setzen des Schlüssels erfolgt ausschließlich über diesen Dialog.
  • Model — ein Modell aus der Liste des aktiven Anbieters oder ein selbst eingegebener Modellname. Kann auch direkt über das Set model-Untermenü in den Editor-Toolbars umgeschaltet werden.
  • Max output tokens — maximale Antwortlänge.
  • API URL — nur zu ändern für eigene Proxies / Gateways. Standard: https://api.anthropic.com/v1/messages bzw. https://api.openai.com/v1/chat/completions.

API-Schlüssel beschaffen

Datenschutz / Datenfluss

Bei aktivem Anbieter Anthropic gehen die Anfragen direkt an api.anthropic.com, bei OpenAI direkt an api.openai.com. Es gibt keinen eXept-seitigen Proxy oder Zwischenspeicher. Mit dem Aktivitäts-Quelltext bzw. den Methoden- Quelltexten werden auch Pin-Beschreibungen, Sub-Step-Namen und referenzierte Environment-Variablen aus dem Block-Description-Modell als Kontext versendet.

Bei Benutzung von Anthropic API-Tokens - wie hier der Fall - werden laut Anthropic die Daten nicht zum Training des KI-Modells genutzt (Anthropic Erkärung dazu).

Tipps

  • Mehrere Konversationen: der Chat ist ein Singleton — eine neue Anfrage über ein Browser-/Editor-Menü startet jedesmal eine neue Konversation. Folge-Fragen (Klärung, Vertiefung) gehen über das Eingabefeld in derselben Konversation.
  • Vorsicht: Die Größe der übertragenen Daten (auch die aus dem Chatfenster) geht in die Kostenberechnung ein. Deshalb immer eine neue Konversation starten, wenn es um ein neues Thema geht.
  • Modell wechseln: Für schnelle Routine-Antworten Sonnet, für schwierige Refactorings Opus. Über das Set model-Untermenü direkt aus der Toolbar oder über die Settings.
  • Anbieter wechseln: Sind Schlüssel für beide Anbieter konfiguriert, schaltet das Set provider-Untermenü ohne Umweg über den Settings-Dialog um.
  • Code direkt ausführen: In Code-Karten kann markierter Smalltalk-Code per doIt / printIt / inspectIt direkt evaluiert werden — praktisch z.B. um vom Modell vorgeschlagene SUnit-Asserts gleich auszuprobieren, ohne den Code erst in einen Workspace zu kopieren.
  • Custom prompt eignet sich gut für „warum macht Methode X es so und nicht so?" oder „schreib mir einen ParameterizedTest dazu mit folgenden Daten: …".



Copyright © 2014-2024 eXept Software AG