Le GPT3 répond à des questions pratiques sur le codage : est-il prêt pour le "prime time" ?

Vous pouvez facilement essayer GPT3 par vous-même, il vous suffit de vous inscrire pour un compte OpenAI, et vous recevrez (au moment où j'écris ces lignes) 18 USD de crédit. Rendez-vous sur le lien suivant :

https://platform.openai.com/playground

Ici, vous pouvez saisir votre question et la soumettre. GPT3 répondra dans la même zone de texte.

Trois paramètres présentent un intérêt immédiat :

  • Modèle - Je suggère de laisser cette annonce texte-davinci-003. Vous pouvez également expérimenter avec codex, code-davinci-002
  • Température - 0,7 est la valeur que j'utilise habituellement (contrôle le caractère aléatoire de la réponse / le degré de "créativité" du GPT3).
  • Longueur maximale - combien de jetons le modèle doit-il générer au maximum ? Remarque : le nombre total de jetons que vous entrez sera également pris en compte dans la limite technique - actuellement 4000 jetons pour text-davinci-003.

Les jetons sont l'unité de base de la "monnaie", vous pouvez les considérer comme des mots ou des parties de mots. Les mots anglais courts et courants constituent généralement un seul jeton, tandis que les mots plus longs sont divisés en plusieurs jetons.

Utiliser le GPT3 pour accélérer le codage

Tout développeur sait qu'une grande partie du développement consiste à rechercher des bibliothèques, à apprendre à utiliser les API et à travailler avec différents objets.

J'ai commencé à utiliser GPT3 comme aide, en codant JavaScript, et je l'ai également essayé sur Crystal Lang.

(certaines parties de PiCockpit sont codées en Crystal Lang - parce que je suis un fan du langage Ruby, et que Crystal lang vise à avoir une syntaxe semblable à Ruby, et une performance semblable à C).

Il s'est avéré utile à plusieurs reprises, par exemple pour résoudre des questions telles que celle de savoir si je dois inclure des espaces dans la syntaxe JSON entre les clés et les valeurs. Ou comment convertir la syntaxe "require" en syntaxe "import" pour JavaScript.

Il sait répondre aux questions et ne vous dira que très rarement qu'il ne peut pas y répondre. La principale chose à garder à l'esprit est qu'il s'agit d'une machine statistique.

Et parfois, les réponses semblent plausibles, mais s'effondrent lorsque vous essayez le code.

Exemple d'échec de la demande d'aide JavaScript GPT3

Pour un projet, j'avais besoin de valider des adresses électroniques en utilisant node.js. GPT3 m'a suggéré la bibliothèque "emailvalidator" et m'a donné un exemple de code simple. Lorsque j'ai essayé de l'exécuter, il a échoué.

J'ai ensuite consulté la documentation de la bibliothèque "emailvalidator", qui existe effectivement. Il s'avère que cette bibliothèque (d'après ce que j'ai compris) nécessite Redis, et une configuration plus compliquée en général. C'est trop pour mon application simple. GPT3 ne m'a pas informé de ce fait dans son exemple de code.

La bibliothèque npm "email-validator", qui porte le même nom, fait exactement ce dont j'ai besoin.

Exemple de réussite de la requête GPT3 de Crystal lang

crystal lang try except block give code example

commencer
  Code # susceptible de soulever une exception
rescue SomeError => e
  code # pour gérer l'exception
else
  code # à exécuter si aucune exception n'a été levée
ensure
  code # toujours exécuté, que des exceptions aient été soulevées ou non
fin

Il est bon de se rafraîchir la mémoire - pas besoin de chercher sur Google, de cliquer sur une page, de parcourir la documentation - vous avez la réponse à portée de main. En gagnant quelques secondes ici et là, vous gagnerez des minutes par jour, des jours et peut-être même des semaines par année de développement.

De plus, le fait d'obtenir les réponses dans un format plus concis vous permet de garder le fil de votre pensée, ce qui est très important lorsque vous programmez !

Crystal lang GPT3 help failure example 1

Crystal lang, Kemal. Comment exclure un chemin d'accès de before_all ?

Vous pouvez exclure un chemin du crochet before_all en utilisant l'option :except. Cette option prend un tableau de chemins comme argument et exclut ces chemins du crochet before_all. Par exemple, pour exclure le chemin '/admin/' de before_all, vous devez appeler before_all avec le code suivant :

before_all :except => ['/admin/'] do
  # Votre code ici
fin

Attention : le code ci-dessus ne fonctionne pas !

Kemal est un routeur pour Crystal Lang, on peut imaginer que c'est un peu la même chose pour Sinatra, ou pour Express.

Le code semble assez plausible, je l'ai essayé et il ne compile pas. J'ai ensuite consulté la documentation de Kemal, le code source et les questions ouvertes de KemaL. Aucune mention de cette mythique clé :except.

GPT3 vient de l'inventer.

Voici la bonne façon de coder une exception à before_all dans Kemal :

before_all do |env|
  next if env.request.path == "/admin/"
  # Votre code ici
fin

J'ai trouvé cette information dans un billet kemal.cr. Ce code a été testé par mes soins et se compile effectivement.

Crystal lang GPT3 help failure example 2

Je devais également convertir le temps actuel (UTC) en une époque Unix.

crystal lang : comment convertir Time.utc en timestamp unix ?

Vous pouvez utiliser la méthode Time#to_i pour convertir un objet Time en timestamp Unix.

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

Attention : Le code ci-dessus, encore une fois, fait pas compilez !

Bien qu'il soit plausible qu'une telle méthode existe, il n'y a pas de méthode de ce type dans l'Union européenne. Crystal Lang API pour le temps.

Le code correct est le suivant :

unix_timestamp = Time.utc.to_unix

Conclusion : GPT3 est utile, mais testez sa production !

GPT3 est en effet utile pour résoudre les questions de programmation les plus courantes. Il peut suggérer des bibliothèques, répondre à des questions sur la syntaxe, les meilleures pratiques et bien plus encore.

Traitez-le comme un programmeur expérimenté, qui cite des choses de mémoire et qui, à l'occasion, confond des choses ou les invente. C'est la nature des réponses statistiques - comme nous, les humains, en tant que développeurs d'API, avons tendance à faire la "chose attendue" dans le code (que les autres programmeurs attendront dans les API qu'ils consomment) - ces réponses fonctionneront souvent.

En outre, en apprenant à travers l'énorme corpus de données en ligne, GPT3 a vu BEAUCOUP de code et d'exemples de code. Il a appris un grand nombre de modèles valables.

Tout comme un être humain qui est obligé de citer de mémoire, au lieu de chercher ou de savoir où chercher, le GPT3 commettra ces erreurs occasionnelles.

Mais il vous fera gagner du temps et vous orientera souvent dans la bonne direction.

GPT3, ChatGPT et consultation de l'API OpenAI

Nous proposons des services de conseil pour ces API d'IA - des cas d'utilisation commerciale aux solutions complètes clés en main. Contactez-nous dès aujourd'hui pour discuter de vos besoins et obtenir une première consultation gratuite sur GPT3, ChatGPT et d'autres API d'IA modernes.!