Preguntas prácticas sobre codificación respondidas por GPT3: ¿está listo para el prime time?

Puedes probar fácilmente GPT3 por ti mismo, simplemente regístrate en una cuenta OpenAI, y obtendrás (en el momento de escribir esto) 18 USD de crédito. Dirígete al siguiente enlace:

https://platform.openai.com/playground

Aquí puede introducir su pregunta y enviarla. GPT3 responderá en el mismo cuadro de texto.

Hay tres parámetros de interés inmediato:

  • Modelo - Sugiero dejar este anuncio texto-davinci-003. También puede experimentar con el códice, código-davinci-002
  • Temperatura - 0.7 es el valor que utilizo normalmente (controla la aleatoriedad de la respuesta / lo "creativo" que será GPT3)
  • Longitud máxima - ¿cuántos tokens debe generar el modelo como máximo? Tenga en cuenta que la cantidad total de tokens que introduzca contará también para el límite técnico - actualmente 4000 tokens para text-davinci-003

Las fichas, por cierto, son la unidad básica de "moneda", se puede pensar en ellas como palabras o partes de palabras. Las palabras cortas y comunes en inglés suelen ser una sola ficha, mientras que las palabras más largas se dividen en varias fichas.

Utilizar GPT3 para acelerar la codificación

Todo desarrollador sabe que gran parte del desarrollo incluye buscar bibliotecas, leer cómo utilizar las API y cómo trabajar con diferentes objetos.

He estado empezando a utilizar GPT3 como ayuda, mientras que la codificación de JavaScript, y lo intentó en Crystal Lang, también.

(partes de PiCockpit están codificadas en Crystal Lang - porque soy un fan del lenguaje Ruby, y Crystal lang pretende tener una sintaxis como Ruby, y un rendimiento como C).

Me ha sido útil en varias ocasiones, por ejemplo para resolver dudas como si debo incluir espacios en la sintaxis JSON entre claves y valores. O cómo convertir la sintaxis "require" en "import" para JavaScript.

Responde bien a las preguntas y muy rara vez te dirá que no puede responder a la pregunta. Sin embargo, lo más importante que hay que tener en cuenta es que se trata de una máquina estadística.

Y a veces las respuestas parecen plausibles, pero se desmoronan al probar el código.

JavaScript GPT3 help prompt failure ejemplo

Para un proyecto, necesitaba validar direcciones de e-Mail usando node.js. GPT3 me sugirió la librería "emailvalidator", y me dio un sencillo código de ejemplo. Cuando intenté ejecutarlo, falló.

Luego revisé la documentación de la librería "emailvalidator", que efectivamente existe. Resulta, que esta librería (a mi entender) requiere Redis, y una configuración más complicada en general. Excesivo para mi simple aplicación. GPT3 no me advirtió de este hecho en su código de ejemplo.

Sin embargo, la biblioteca npm "email-validator", de nombre similar, hace exactamente lo que necesito.

Ejemplo de consulta exitosa de Crystal lang GPT3

crystal lang try except block dar ejemplo de código

comenzar
  Código # que puede lanzar una excepción
rescue CiertoError => e
  Código # para manejar la excepción
else
  Código # a ejecutar si no se produce ninguna excepción
garantizar
  Código # que se ejecuta siempre, se hayan producido excepciones o no
fin

Es bueno para refrescar la memoria: no hace falta buscar en Google, hacer clic en una página, desplazarse por la documentación... tienes la respuesta al alcance de la mano. Ahorrar un par de segundos aquí y allá te ahorrará minutos cada día, y días e incluso semanas cada año de desarrollo.

Además, obtener las respuestas en un formato más conciso te permite mantener la fluidez de pensamiento, algo muy importante mientras programas.

Crystal lang GPT3 ayuda fallo ejemplo 1

Crystal lang, Kemal. ¿Cómo puedo excluir una ruta de before_all?

Puede excluir una ruta del gancho before_all utilizando la opción :except. Esta opción toma un array de rutas como argumento y excluirá esas rutas del gancho before_all. Por ejemplo, para excluir la ruta '/admin/' de before_all, llamaría a before_all con el siguiente código:

before_all :except => ['/admin/'] do
  # Su código aquí
end

Cuidado: el código anterior no funciona

Kemal es un enrutador para Crystal Lang, se puede imaginar que es una cosa similar a Sinatra, o para expresar.

El código parece algo plausible, lo he probado y no compila. Luego he mirado la documentación de Kemal, y el código fuente, y los temas abiertos de KemaL. Ninguna mención de este mítico :excepto la clave.

GPT3 se lo acaba de inventar.

Esta es la forma correcta de codificar una excepción a before_all en Kemal:

before_all do |env|
  next if env.request.path == "/admin/"
  # Su código aquí
end

Encontré esta información en un billete kemal.cr. Este código es probado por mí y realmente compila.

Crystal lang GPT3 ayuda fallo ejemplo 2

También necesitaba convertir la hora actual (UTC) a una época unix.

crystal lang: ¿cómo puedo convertir Time.utc al timestamp de unix?

Puede utilizar el método Time#to_i para convertir un objeto Time en una marca de tiempo Unix.

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

Cuidado: El código anterior, de nuevo, hace no ¡Compila!

Aunque podría ser plausible que existiera un método de este tipo, no existe en la API Crystal Lang para el tiempo.

El código correcto es:

unix_timestamp = Time.utc.to_unix

Conclusión: GPT3 es útil, ¡pero comprueba su rendimiento!

GPT3 es realmente útil para resolver preguntas comunes de programación. Puede sugerir bibliotecas, responder preguntas sobre sintaxis, mejores prácticas y mucho más.

Trátalo como un programador experimentado, que está citando cosas de memoria, y ocasionalmente confunde cosas o se las inventa. Esa es la naturaleza de las respuestas estadísticas -como los humanos, como desarrolladores de APIs, tendemos a hacer lo "esperado" en el código (lo que otros programadores esperarán en las APIs que consumen)- estas respuestas a menudo funcionarán.

Además, mientras aprendía a través del enorme corpus de datos en línea, GPT3 ha visto MUCHO código y ejemplos de código. Ha aprendido un montón de patrones válidos.

Al igual que un ser humano que se ve obligado a citar de memoria, en lugar de buscar las cosas / saber dónde buscarlas, GPT3 cometerá estos deslices ocasionales.

Pero le ahorrará tiempo y, a menudo, le indicará la dirección correcta.

GPT3, ChatGPT y consultoría de la API OpenAI

Ofrecemos servicios de consultoría para estas API de IA, desde casos de uso empresarial hasta soluciones completas llave en mano. Póngase en contacto con nosotros hoy mismo para hablar de sus necesidades y recibir una consulta inicial gratuita sobre GPT3, ChatGPT y otras API de inteligencia artificial modernas.!