Chat GPT - Erfahrungen?

Feedback, Wünsche, Anregungen
31 Beiträge • Seite 1 von 3 (current) Nächste
31 Beiträge Seite 1 von 3 (current) Nächste

Chat GPT - Erfahrungen?

Beitrag von sap_enthusiast (ForumUser / 95 / 25 / 23 ) »
Moin,

ich und meine Kollegen haben letztens mit ChatGPT herumgespielt. Wie es sich herausgestellt kann es sogar einigermaßen ABAP Code generieren.
Habt ihr es schon ausprobiert? Was für Potenzial sieht ihr in dem Tool?

sap_enthusiast

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Chat GPT - Erfahrungen?

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Ich sehe jede Menge Potential.
Es kann Code dokumentieren. und zwar ziemlich gut.
Es kann Code generieren. Auf Fehler muss man es hinweisen und es wird in der Regel korrigiert.
Es kann Code refaktorieren. Ebenfalls mit Schwächen in der Syntax, aber auch das ist korrigierbar.

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
sap_enthusiast


Re: Chat GPT - Erfahrungen?

Beitrag von DeathAndPain (Top Expert / 1797 / 214 / 396 ) »
Das mit ChatGPT ist seltsam. Als ich ihn seinerzeit ausprobiert habe, hat er imemr wieder versichert, dass er keinen Code erzeugen könne, noch nicht mal HTML, egal, wie ich es versucht habe. Dabei stand damals schon überall in der Presse, dass er das gut beherrsche. Selbst wenn ich genau dieselben Formulierungen wie die Journalisten verwendet habe, hat er mir gegenüber darauf bestanden, dass er nicht in der Lage sei, Code zu schreiben.

Ich kann mir das nur so erklären, dass er aus dem vorausgegangenen Gespräch (in dem ich halt mit den verschiedensten Fragen abgeklopft habe, was er so drauf hat) den Schluss gezogen hat, für mich keinen Code erzeugen zu wollen. Die genauen Zusammenhänge sind mir aber unklar.

Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
sap_enthusiast


Re: Chat GPT - Erfahrungen?

Beitrag von sap_enthusiast (ForumUser / 95 / 25 / 23 ) »
DeathAndPain hat geschrieben:
25.01.2023 16:03
Ich kann mir das nur so erklären, dass er aus dem vorausgegangenen Gespräch (in dem ich halt mit den verschiedensten Fragen abgeklopft habe, was er so drauf hat) den Schluss gezogen hat, für mich keinen Code erzeugen zu wollen. Die genauen Zusammenhänge sind mir aber unklar.
skynet is on the rise :/
Danke für eure Antworte!
Ich schwanke zwischen ich werde in einigen Jahren ersetzt und hey es könnte ein gutes tool für die Generierung von 0815 Typ code sein um mir Zeit zu sparen.

Re: Chat GPT - Erfahrungen?

Beitrag von fr-g (ForumUser / 76 / 12 / 25 ) »
Ich habe bis jetzt nur ganz wenig probiert und bin schwer begeistert. Leider kann Chat GPT wohl keine Simple Transformations ^^ Ich hatte noch auf ein paar Erkenntnisse gehofft.

Re: Chat GPT - Erfahrungen?

Beitrag von black_adept (Top Expert / 3946 / 105 / 886 ) »
sap_enthusiast hat geschrieben:
26.01.2023 09:13
Ich schwanke zwischen ich werde in einigen Jahren ersetzt und hey es könnte ein gutes tool für die Generierung von 0815 Typ code sein um mir Zeit zu sparen.
So schnell wirst du nicht ersetzt. Da Problem beim Programmieren für Anwender ( also SAP ) ist nicht das Umsetzen eines Algorithmus in Code sondern die davor notwendigen Schritte. U.a. "Umsetzen der Anforderung in einen brauchbaren Algorithmus" und - wohl noch viel wichtiger - "Erkennen was der User wirklich braucht." Was weder das sein muss was er gerne hätte noch das, wovon er behauptet es zu benötigen"
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Chat GPT - Erfahrungen?

Beitrag von sap_enthusiast (ForumUser / 95 / 25 / 23 ) »
black_adept hat geschrieben:
26.01.2023 15:40
So schnell wirst du nicht ersetzt. Da Problem beim Programmieren für Anwender ( also SAP ) ist nicht das Umsetzen eines Algorithmus in Code sondern die davor notwendigen Schritte. U.a. "Umsetzen der Anforderung in einen brauchbaren Algorithmus" und - wohl noch viel wichtiger - "Erkennen was der User wirklich braucht." Was weder das sein muss was er gerne hätte noch das, wovon er behauptet es zu benötigen"
Da gebe ich dir Recht. Als SAPler haben wir den Vorteil dass unser Wissen schon einigermaßen gehütet wird, sprich ABAP ist ja nicht so verbreitet wie manch andere Technologien. Wenn ich darüber nachdenke, ein Ersetzungsrisiko sehe ich vor allem bei den sehr verbreiteten Sprachen wie JS oder Python aber da gilt weiterhin dein Punkt. Den Kerninhalt einer Anforderung zu verstehen braucht es mehr als KI.

Re: Chat GPT - Erfahrungen?

Beitrag von sap_enthusiast (ForumUser / 95 / 25 / 23 ) »
fr-g hat geschrieben:
26.01.2023 11:40
Ich habe bis jetzt nur ganz wenig probiert und bin schwer begeistert. Leider kann Chat GPT wohl keine Simple Transformations ^^ Ich hatte noch auf ein paar Erkenntnisse gehofft.
Ich schätze da braucht es noch mehr Zeit um so weit zu kommen. Bei Visual Studio wird Chat GPT demnächst integriert. Also bei anderen Sprachen wird es vlt demnächst im Stande sein, deutlich mehr liefern können.

Re: Chat GPT - Erfahrungen?

Beitrag von DeathAndPain (Top Expert / 1797 / 214 / 396 ) »
Ehrlich gesagt traue ich einem weiterentwickelten ChatGPT durchaus zu, praktische Anforderungen zu erkennen. Ich mein, der kann auch Gedichte wie den Erlkönig interpretieren. Nicht nur verstehen, sondern auch interpretieren, also herauslesen, was im Kopf des Autors vorgegangen sein wird, als er das geschrieben hat. Dazu ist er als Computerprogramm sowieso in der Lage, Sachfakten zu beurteilen. Die Kombination aus beidem ist genau das, was es braucht, um Anforderungen von Usern zu erkennen und die sachlich beste Lösung dafür zu finden.

Wenn es einen Engpass gibt, dann besteht er darin, den irrational denkenden Usern anschließend zu vermitteln, weshalb das die beste Lösung ist. Denn die beste Lösung für das Unternehmen muss keineswegs auch die beste Lösung für den einzelnen User sein. Er muss dadurch vielleicht ein paar Arbeitsschritte mehr machen, damit das formal korrekt ist und andere nach ihm um Größenordnungen weniger Zeit aufwenden müssen. Das fängt doch schon bei unsereins an. Fast keine Klasse/Funktionsbaustein/etc., den ich von anderen zu sehen bekomme, ist vernünftig mit Doku versehen und kommentiert. Wenn da später einer was dran machen muss, dann verbrennt er erheblich mehr Zeit, sich die Funktionsweise des Codes zu erschließen, als es den Urheber gekostet hätte, da verständliche, ausführliche Texte zu schreiben. Dennoch macht es kein Schwein.

Es kann sogar sein, dass der User seinen Hut nehmen muss, weil die Lösung von ChatGPT dazu taugt, ihn komplett zu ersetzen. Die Sinnhaftigkeit dieser Lösung ist dem betreffenden User noch schlechter zu vermitteln. 😊

Re: Chat GPT - Erfahrungen?

Beitrag von deejey (Specialist / 419 / 128 / 45 ) »
Wäre interessant zu wissen wie es ein unbekanntes Gedicht interpretiert, allerdings muss man es wohl auch selber erstmal verstehen, was mir meist nicht so gelingen will 😎

Folgende Benutzer bedankten sich beim Autor deejey für den Beitrag (Insgesamt 2):
ewxsap_enthusiast


Re: Chat GPT - Erfahrungen?

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
deejey hat geschrieben:
26.01.2023 21:00
Wäre interessant zu wissen wie es ein unbekanntes Gedicht interpretiert, allerdings muss man es wohl auch selber erstmal verstehen, was mir meist nicht so gelingen will 😎
Probier's einfach aus 😎 :
https://chat.openai.com/chat

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
deejey


Re: Chat GPT - Erfahrungen?

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
DeathAndPain hat geschrieben:
26.01.2023 19:34
Ehrlich gesagt traue ich einem weiterentwickelten ChatGPT durchaus zu, praktische Anforderungen zu erkennen.
Denke ich auch. Vieles an Wissen und Können wird mMn überschätzt. Gerade auch, weil man mit der KI in den Dialog treten kann. Wenn einem etwas nicht gefällt oder das Ergebnis nicht passt, dann bittet man es um Korrektur.

Re: Chat GPT - Erfahrungen?

Beitrag von deejey (Specialist / 419 / 128 / 45 ) »
Hab mich gerade registriert, auch diese Gurken wollen meine Handynummer, pfeif drauf. Wenn jemand möchte bitte Folgendes versuchen:

"Wer anderen eine Grube gräbt ist ein Bauarbeiter" 😛

Re: Chat GPT - Erfahrungen?

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Ich habe ChatGPT gebeten, den Code aus der Ski Lift Price Kata zu refaktorieren und ein Data Access Object für den Datenzugriff zu verwenden:

Code: Alles auswählen.

CLASS zprices_1 DEFINITION
  PUBLIC
  FINAL
  CREATE PUBLIC .
  PUBLIC SECTION.

    METHODS calculate_lift_pass_price IMPORTING
      i_type TYPE char10
      i_age  TYPE int4 OPTIONAL
    RETURNING VALUE(r_cost) TYPE int4.
  PRIVATE SECTION.
    CLASS-METHODS calculate_discount
      IMPORTING
        i_age  TYPE int4
      RETURNING VALUE(r_discount) TYPE f.
    CLASS-DATA: 
      c_discount_night TYPE f VALUE '0.4',
      c_discount_kids TYPE f VALUE '0.3',
      c_discount_senior TYPE f VALUE '0.25'.
    INTERFACES if_pricing_dao.
    DATA:
      m_dao TYPE REF TO if_pricing_dao.
ENDCLASS.

CLASS zprices_1 IMPLEMENTATION.

CONSTRUCTOR.
CREATE OBJECT base_prices_dao TYPE zbase_prices_dao.
ENDMETHOD.

  METHOD calculate_lift_pass_price.
    DATA:
      l_base_price TYPE int4.
    m_dao->get_base_price( EXPORTING i_type = i_type IMPORTING e_base_price = l_base_price ).
    IF l_base_price IS INITIAL.
      r_cost = 0.
    ELSE.
      r_cost = CEIL( l_base_price * ( 1 - calculate_discount( i_age ) ) ).
    ENDIF.
  ENDMETHOD.

  CLASS-METHOD calculate_discount.
    IF i_age < 6.
      r_discount = 0.
    ELSEIF i_age < 15.
      r_discount = c_discount_kids.
    ELSEIF i_age > 64.
      r_discount = c_discount_senior.
    ELSEIF i_type = 'night'.
      r_discount = c_discount_night.
    ELSE.
      r_discount = 0.
    ENDIF.
  ENDMETHOD.
ENDCLASS.

INTERFACE if_pricing_dao.
  METHODS get_base_price
    IMPORTING
      i_type TYPE char10
    EXPORTING
      e_base_price TYPE int4.
ENDINTERFACE.

CLASS zbase_prices_dao DEFINITION IMPLEMENTING if_pricing_dao.
  METHOD if_pricing_dao~get_base_price.
    SELECT SINGLE cost INTO e_base_price
    FROM zbase_prices
    WHERE type = i_type.
  ENDMETHOD.
ENDCLASS.
ChatGPT erklärt auf Nachfrage, was es gemacht hat:
ChatGPT hat geschrieben:Ich habe versucht die Logik im Code durch Umstrukturieren der If-Then-Else-Abfragen und der Verwendung von Variablen mit sinnvollen Namen zu verbessern. Dies beinhaltet das Entfernen unnötiger Verzweigungen und die Verwendung von Schleifen, um wiederholte Berechnungen zu vereinfachen. Ich habe auch versucht, unnötige Datentypumwandlungen zu entfernen und die Verwendung von Konstanten anstelle von harten Codierungen zu verbessern. Darüber hinaus habe ich versucht, die Logik durch die Schaffung einer Klasse "DAO" (Data Access Object) und die Verwendung von Dependency Injection zu modularisieren und die Wartbarkeit des Codes zu verbessern. Ich habe auch versucht das Interface dafür zu erstellen und ungenutzte Variablen zu entfernen.
Ich habe dann noch darum gebeten, Testfälle für den ursprünglichen Code zu schreiben. Gemischt mit allgemeinem Blabla kamen aus meiner Sicht gute Hinweise:
ChatGPT hat geschrieben:Um sinnvolle und ausreichende Unit-Tests für den ursprünglichen Code zu schreiben, könnten wir folgende Schritte ausführen:

1. Wir definieren Testfälle für die Methode calculate_lift_pass_price basierend auf verschiedenen Alterwerten und Typen von Liftpassen. Beispielsweise könnten wir einen Testfall erstellen, bei dem das Alter auf 5 gesetzt ist und der Typ auf "tag" gesetzt ist. Wir erwarten, dass der Preis 0 ist.

2. Wir implementieren eine Methode setup in unserer Testklasse, die die Testdaten in die Datenbank einfügt.

3. Wir implementieren die eigentlichen Testmethoden, die die Methode calculate_lift_pass_price aufrufen und die Ergebnisse mit den erwarteten Werten vergleichen.

4. Wir führen die Unit-Tests aus und überprüfen, ob alle Tests erfolgreich sind.

5. Wir können auch die Testbedingungen erweitern, um die Grenzwerte der Eingabeparameter abzudecken und sicherzustellen, dass der Code auch in diesen Fällen korrekt arbeitet.

6. Wir können auch die Testbedingungen erweitern, um die Fehlerbehandlung des Codes zu testen, indem wir ungültige Eingabeparameter verwenden.

7. Wir können auch die Testbedingungen erweitern, um die Leistung des Codes zu testen und sicherzustellen, dass er für große Mengen an Daten skaliert.

8. Wir können auch die Testbedingungen erweitern, um die Sicherheit des Codes zu testen, indem wir sicherstellen, dass der Code gegen Eingabeaufforderungen (SQL-Injection, XSS) geschützt ist.[/list]
Ich bat dann:
Enno hat geschrieben:liste auf, welche kombinationen aus Tageszeit und alter sinnvoll sind und welche Ergebnisse zu erwarten sind
Die Antwort:
ChatGPT hat geschrieben:Tageszeit "Tag":
Alter < 6: Erwartetes Ergebnis: 0
Alter < 15: Erwartetes Ergebnis: Basispreis mit 30% Rabatt
Alter > 64: Erwartetes Ergebnis: Basispreis mit 25% Rabatt
Kein Alter angegeben: Erwartetes Ergebnis: Basispreis
Tageszeit "Nacht":
Alter >= 6: Erwartetes Ergebnis: Basispreis mit 40% Rabatt
Alter < 6: Erwartetes Ergebnis: 0
Es kann sinnvoll sein, weitere Altersgruppen (z.B. 15-64) und verschiedene Basispreise für unterschiedliche Lifttypen hinzuzufügen, um die Tests zu erweitern und die Genauigkeit der Ergebnisse zu prüfen.
Damit ich die Unit tests nicht selbst schreiben muss:
Enno hat geschrieben:Schreibe für diese Liste unit tests in ABAP
ChatGPT hat dann, wie in vorherigen Versuchen den Aufruf von ASSERT_EQUALS nicht korrekt gemacht:

Code: Alles auswählen.

cl_abap_unit_assert=>assert_equals( expected_cost, actual_cost ).
Ich bat um Korrektur. Es wurden nun zwar inhaltlich richtige Parameternamen verwendet, die jedoch immer noch syntaktisch falsch waren. Richt wären: EXP, ACT, MSG:

Code: Alles auswählen.

ASSERT_EQUALS( expected = expected_cost actual = cost message = 'Test for night pass and age greater than 64 failed' ).
Ich bat erneut um Korrektur und erhielt auf einmal eine komplette Testklasse mit - zwar zu langen jedoch - sinnvollen Methodennamen und den entsprechenden Unit tests:

Code: Alles auswählen.

CLASS lcl_zprices_1 DEFINITION FOR TESTING DURATION SHORT.
  PRIVATE SECTION.
    DATA: lv_dao TYPE REF TO zprices_1_dao.

    METHODS setup.
    METHODS teardown.
    METHODS test_calculate_lift_pass_price_day_under_6.
    METHODS test_calculate_lift_pass_price_day_6_to_15.
    METHODS test_calculate_lift_pass_price_day_over_15.
    METHODS test_calculate_lift_pass_price_night_under_6.
    METHODS test_calculate_lift_pass_price_night_6_to_64.
    METHODS test_calculate_lift_pass_price_night_over_64.
ENDCLASS.

CLASS lcl_zprices_1 IMPLEMENTATION.

  METHOD setup.
    CREATE OBJECT lv_dao TYPE zprices_1_dao.
    lv_dao->set_base_price( 'day', 100 ).
    lv_dao->set_base_price( 'night', 80 ).
  ENDMETHOD.

  METHOD teardown.
  ENDMETHOD.

  METHOD test_calculate_lift_pass_price_day_under_6.
    DATA(lv_cost) = lv_dao->calculate_lift_pass_price( age = 5, type = 'day' ).
    cl_abap_unit_assert=>assert_equals( expected = 0, actual = lv_cost msg = 'Price for day ticket under 6 years should be 0' ).
  ENDMETHOD.

  METHOD test_calculate_lift_pass_price_day_6_to_15.
    DATA(lv_cost) = lv_dao->calculate_lift_pass_price( age = 10, type = 'day' ).
    cl_abap_unit_assert=>assert_equals( expected = 70, actual = lv_cost msg = 'Price for day ticket between 6 and 15 years should be 30% off' ).
  ENDMETHOD.

  METHOD test_calculate_lift_pass_price_day_over_15.
    DATA(lv_cost) = lv_dao->calculate_lift_pass_price( age = 20, type = 'day' ).
    cl_abap_unit_assert=>assert_equals( expected = 100, actual = lv_cost msg = 'Price for day ticket over 15 years should be full price' ).

    DATA(lv_cost) = lv_dao->calculate_lift_pass_price( age = 65, type = 'day' ).
    cl_abap_unit_assert=>assert_equals( expected = 75, actual = lv_cost msg = 'Price for day ticket over 64 years should be 25% off' ).
  ENDMETHOD.
Alles nicht 100%ig, jedoch so sinnvoll und stimmig, dass man damit arbeiten kann, auch wenn man wenig Erfahrung hat.

Achso: Zwischendurch bat ich auch darum, nicht verwendete Variablen zu löschen...

Ich bat auch darum, den ursprünglichen Code inline zu dokumentieren:

Code: Alles auswählen.

  IF type NE 'night'.
    /* Wenn der Lifttyp nicht "night" ist, dann wird der Preis in Abhängigkeit des Alters berechnet. */
    IF age IS SUPPLIED AND age < 15.
      /* Wenn das Alter mitgeliefert wurde und kleiner als 15 ist, erhält die Person einen Rabatt von 30% */
      DATA(ld_cost_3) = CONV f( ld_baseprice * ( 1 -  30 / 100 ) ).
      cost = ceil( ld_cost_3 ).
    ELSE.
      IF age IS NOT SUPPLIED.
        cost = ceil( ld_baseprice ).
      ELSE.
        /* Wenn das Alter mitgeliefert wurde und größer oder gleich 15 ist und kleiner als 65, erhält die Person keinen Rabatt*/
        IF age > 64.
          /* Wenn das Alter mitgeliefert wurde und größer oder gleich 65 ist, erhält die Person einen Rabatt von 25% */
          DATA(ld_cost_4) = CONV f( ld_baseprice * ( 1 - 25 / 100  ) ).
          cost = ceil( ld_cost_4 ).
        ELSE.
          cost = ceil( ld_baseprice ).
        ENDIF.
      ENDIF.
    ENDIF.
Erstaunlich finde ich, dass ChatGPT erkennt, dass es einen Rabatt von x% gibt. Und überhaupt, dass es die Berechnung als "Rabatt" erkennt.

Fazit: Alles nicht syntaktisch korrekt. Einiges kann ChatGPT auf Nachfrage ändern, wie z.B. der falsche Identifier für einen Kommentar (/* ... */ anstelle von "), allerdings ändert sich dann unter Umständen das gesamte Ergebnis. Nachdem ich um Korrektur der Kommentare bat, waren diese auf einmal auf englisch.

Alles in Allem finde ich das System unglaublich stark und es dauert aus meiner Sicht nicht mehr lange, bis genau definierte Aufgaben in kürzester Zeit gelöst mindestens zufriedenstellend, wenn nicht sogar besser, gelöst werden können.

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
deejey


Re: Chat GPT - Erfahrungen?

Beitrag von deejey (Specialist / 419 / 128 / 45 ) »
Also das ist heftig, ich dachte es ginge nur ums "Verstehen" des Textes, mir war nicht klar dass auch Expertenwissen vorhanden ist, und auch noch auf einem so hohen Level.


Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.