Praktische Fragen zur Kodierung werden von GPT3 beantwortet: Ist es bereit für die Primetime?

Sie können GPT3 ganz einfach selbst ausprobieren. Registrieren Sie sich einfach für ein OpenAI-Konto, und Sie erhalten (zum Zeitpunkt der Erstellung dieses Artikels) 18 USD Guthaben. Gehen Sie auf den folgenden Link:

https://platform.openai.com/playground

Hier können Sie Ihre Frage eingeben und abschicken. GPT3 antwortet in demselben Textfeld.

Es gibt drei Parameter, die von unmittelbarem Interesse sind:

  • Modell - Ich schlage vor, diese Anzeige text-davinci-003 zu lassen. Sie können auch mit Codex, Code-davinci-002 experimentieren
  • Temperatur. 0,7 ist der Wert, den ich normalerweise verwende (steuert die Zufälligkeit der Antwort / wie "kreativ" GPT3 wird)
  • Maximale Länge - wie viele Token soll das Modell maximal erzeugen? Beachten Sie, dass die volle Anzahl von Token, die Sie eingeben, auch auf das technische Limit angerechnet wird - derzeit 4000 Token für text-davinci-003

Token sind übrigens die grundlegende "Währungseinheit", man kann sie sich als Wörter oder Teile von Wörtern vorstellen. Kurze und gebräuchliche englische Wörter sind normalerweise ein Token, während längere Wörter in mehrere Token aufgeteilt werden.

Verwendung von GPT3 zur Beschleunigung Ihrer Codierung

Jeder Entwickler weiß, dass ein großer Teil der Entwicklungsarbeit darin besteht, nach Bibliotheken zu suchen, zu lesen, wie man APIs verwendet und wie man mit verschiedenen Objekten arbeitet.

Ich habe begonnen, GPT3 als Hilfe bei der Programmierung von JavaScript zu verwenden, und habe es auch bei Crystal Lang ausprobiert.

(Teile von PiCockpit sind in Crystal Lang kodiert - weil ich ein Fan der Sprache Ruby bin, und Crystal Lang eine Ruby-ähnliche Syntax und eine C-ähnliche Performance haben soll).

Sie hat sich bei verschiedenen Gelegenheiten als nützlich erwiesen, z. B. bei der Klärung von Fragen wie der, ob ich in der JSON-Syntax Leerzeichen zwischen Schlüsseln und Werten einfügen sollte. Oder wie man die Syntax von "require" in "import" für JavaScript umwandelt.

Sie ist gut darin, Fragen zu beantworten, und sie wird Ihnen nur sehr selten sagen, dass sie die Frage nicht beantworten kann. Das Wichtigste ist jedoch, dass Sie es mit einer statistischen Maschine zu tun haben.

Und manchmal sehen die Antworten zwar plausibel aus, fallen aber auseinander, wenn man den Code ausprobiert.

Beispiel für eine fehlgeschlagene JavaScript-GPT3-Hilfeaufforderung

Für ein Projekt musste ich E-Mail-Adressen mit node.js validieren. GPT3 schlug die Bibliothek "emailvalidator" vor und gab einen einfachen Beispielcode an. Als ich versuchte, ihn auszuführen, schlug er fehl.

Ich habe mir dann die Dokumentation der "emailvalidator"-Bibliothek angesehen, die tatsächlich existiert. Es stellte sich heraus, dass diese Bibliothek (nach meinem Verständnis) Redis und eine kompliziertere Einrichtung im Allgemeinen erfordert. Ein Overkill für meine einfache Anwendung. GPT3 hat mich in seinem Beispielcode nicht auf diese Tatsache hingewiesen.

Die ähnlich benannte npm-Bibliothek "email-validator" tut jedoch genau das, was ich brauche.

Beispiel für eine erfolgreiche Crystal lang GPT3-Abfrage

crystal lang try except block give code example

beginnen
  #-Code, der eine Ausnahme auslösen kann
rescue SomeError => e
  #-Code zur Behandlung der Ausnahme
else
  #-Code, der ausgeführt wird, wenn keine Ausnahmen ausgelöst wurden
sicherstellen
  #-Code wird immer ausgeführt, unabhängig davon, ob Ausnahmen aufgetreten sind oder nicht
Ende

Gut, um Ihrem Gedächtnis auf die Sprünge zu helfen - Sie brauchen nicht zu googeln, auf eine Seite zu klicken, durch die Dokumentation zu blättern - Sie haben die Antwort direkt zur Hand. Wenn Sie hier und da ein paar Sekunden einsparen, sparen Sie jeden Tag Minuten, jedes Jahr Tage und vielleicht sogar Wochen an Entwicklungszeit.

Wenn Sie die Antworten in einem prägnanteren Format erhalten, können Sie außerdem Ihren Gedankenfluss beibehalten - sehr wichtig beim Programmieren!

Crystal lang GPT3 Hilfe Ausfall Beispiel 1

Kristall lang, Kemal. Wie kann ich einen Pfad von before_all ausschließen?

Sie können einen Pfad vom before_all-Hook ausschließen, indem Sie die Option :except verwenden. Diese Option nimmt ein Array von Pfaden als Argument und schließt diese Pfade vom before_all-Hook aus. Um zum Beispiel den Pfad '/admin/' von before_all auszuschließen, würden Sie before_all mit dem folgenden Code aufrufen:

before_all :except => ['/admin/'] do
  # Ihr Code hier
end

Vorsichtig: der obige Code funktioniert nicht!

Kemal ist ein Router für Crystal Lang, man kann sich vorstellen, dass es eine ähnliche Sache wie Sinatra ist, oder zu drücken.

Der Code sieht einigermaßen plausibel aus, ich habe ihn ausprobiert und er lässt sich nicht kompilieren. Ich habe dann die Kemal-Dokumentation, den Quellcode und die offenen Fragen von KemaL durchgesehen. Keine Erwähnung dieses mythischen :außer Schlüssel.

GPT3 hat sich das gerade ausgedacht.

Hier ist der richtige Weg, um eine Ausnahme zu before_all in Kemal zu codieren:

before_all do |env|
  next if env.request.path == "/admin/"
  # Ihr Code hier
end

Ich fand diese Informationen in einer kemal.cr Ticket. Dieser Code wurde von mir getestet und lässt sich tatsächlich kompilieren.

Crystal lang GPT3 Hilfe Ausfall Beispiel 2

Außerdem musste ich die aktuelle Zeit (UTC) in eine Unix-Epoche umrechnen.

crystal lang: Wie kann ich Time.utc in den Unix-Zeitstempel umwandeln?

Sie können die Methode Time#to_i verwenden, um ein Time-Objekt in einen Unix-Zeitstempel zu konvertieren.

time = Time.utc(2020, 5, 15, 10, 10, 0)
unix_Zeitstempel = time.to_i # 1589492200

Vorsichtig: Der obige Code macht wiederum nicht kompilieren!

Obwohl es plausibel sein könnte, dass es eine solche Methode gibt, gibt es keine solche Methode in der Crystal Lang API für Zeit.

Der richtige Code lautet:

unix_Zeitstempel = Time.utc.to_unix

Schlussfolgerung: GPT3 ist hilfreich, aber testen Sie seine Leistung!

GPT3 ist in der Tat hilfreich bei der Lösung von allgemeinen Programmierfragen. Es kann Bibliotheken vorschlagen, Fragen zu Syntax, Best Practices und vielem mehr beantworten.

Behandeln Sie sie wie einen erfahrenen Programmierer, der Dinge aus dem Gedächtnis zitiert und gelegentlich Dinge durcheinanderbringt oder erfindet. Das liegt in der Natur von statistischen Antworten - da wir Menschen als API-Entwickler dazu neigen, im Code das "Erwartete" zu tun (was andere Programmierer in den von ihnen genutzten APIs erwarten), werden diese Antworten oft funktionieren.

Außerdem hat GPT3 beim Lernen durch den riesigen Korpus von Online-Daten eine MENGE Code und Code-Beispiele gesehen. Es hat eine Menge gültiger Muster gelernt.

Genau wie ein Mensch, der gezwungen ist, aus dem Gedächtnis zu zitieren, anstatt nachzuschlagen bzw. zu wissen, wo man etwas nachschlagen kann, wird auch GPT3 diese gelegentlichen Fehler machen.

Aber es spart Ihnen trotzdem Zeit und weist Ihnen oft den richtigen Weg.

GPT3, ChatGPT und OpenAI API Beratung

Wir bieten Beratungsdienste für diese KI-APIs an - von geschäftlichen Anwendungsfällen bis hin zu schlüsselfertigen Komplettlösungen. Setzen Sie sich noch heute mit uns in Verbindung, um Ihre Anforderungen zu besprechen und eine kostenlose Erstberatung über GPT3, ChatGPT und andere moderne KI-APIs zu erhalten.!