Perguntas práticas de codificação respondidas por GPT3: está pronto para o horário nobre?

Pode facilmente experimentar o GPT3 para si próprio, basta registar-se para uma conta OpenAI, e receberá (no momento em que o escrever) 18 USD de crédito. Siga para o seguinte link:

https://platform.openai.com/playground

Aqui pode introduzir a sua pergunta, e submetê-la. GPT3 irá responder na mesma caixa de texto.

Há três parâmetros de interesse imediato:

  • Modelo - Sugiro que deixe este texto publicitário -davinci-003. Também pode experimentar o códice, código-davinci-002
  • Temperatura - 0,7 é o valor que utilizo normalmente (controla a aleatoriedade da resposta / como o GPT3 "criativo" vai ficar)
  • Comprimento máximo - quantos tokens deve o modelo gerar ao máximo? Nota, a quantidade total de fichas que introduzir contará também contra o limite técnico - actualmente 4000 fichas para text-davinci-003

Os tokens, a propósito, são a unidade básica "moeda", pode-se pensar neles como palavras ou partes de palavras. As palavras curtas e comuns em inglês serão normalmente uma ficha, enquanto as palavras mais longas serão divididas em várias fichas.

Utilizar o GPT3 para acelerar a sua codificação

Cada desenvolvedor sabe que muito do desenvolvimento inclui procurar bibliotecas, ler como utilizar as APIs, e como trabalhar com diferentes objectos.

Tenho começado a usar o GPT3 como ajuda, enquanto codificava o JavaScript, e experimentei-o também no Crystal Lang.

(partes do PiCockpit são codificadas em Crystal Lang - porque sou fã da linguagem Ruby, e Crystal lang pretende ter uma sintaxe parecida com Ruby, e uma performance parecida com C).

Tem sido útil em várias ocasiões, por exemplo, para resolver questões como se eu deveria incluir espaços na sintaxe do JSON entre chaves e valores. Ou como converter "requerer" para "importar" sintaxe para JavaScript.

É bom a responder a perguntas, e muito raramente lhe dirá que não pode responder à pergunta. O principal a ter em mente, no entanto, é que se trata de uma máquina estatística com a qual está a lidar.

E por vezes as respostas parecerão plausíveis, mas desfazem-se quando se tenta o código.

Exemplo de ajuda JavaScript GPT3

Para um projecto, precisava de validar endereços de correio electrónico usando o node.js. GPT3 sugeriu a biblioteca "emailvalidator", e deu um simples código de exemplo. Quando tentei geri-la, falhei.

Revi então a documentação da biblioteca "emailvalidator", que de facto existe. Acontece que esta biblioteca (em meu entender) requer Redis, e uma configuração mais complicada em geral. Exagero para a minha simples aplicação. O GPT3 não me avisou desse facto no seu código de amostra.

No entanto, a biblioteca npm, igualmente chamada de "validador de e-mail", faz exactamente o que eu preciso.

Exemplo de sucesso da consulta Crystal lang GPT3

crystal lang try except block give code example

começar
  # código que pode levantar uma excepção
rescue SomeError => e
  # código para lidar com a excepção
senão
  # código a ser executado se não forem levantadas excepções
garantir
  # código sempre executado, quer tenham ou não sido levantadas excepções
fim

É bom para refrescar a sua memória - não é necessário utilizar o Google, clicar numa página, percorrer a documentação - tem a resposta na ponta dos seus dedos. Poupando alguns segundos aqui e ali, irá reduzir os minutos todos os dias, e os dias e talvez até a(s) semana(s) todos os anos de desenvolvimento.

Além disso, obter as respostas num formato mais conciso permite-lhe manter o seu fluxo de pensamento - muito importante enquanto programa!

Exemplo 1 de falha da ajuda GPT3 Crystal lang

Crystal lang, Kemal. Como posso excluir um caminho de antes_tudo?

Pode excluir um caminho do gancho de antes_tudo utilizando a opção :except. Esta opção toma um conjunto de caminhos como argumento e excluirá esses caminhos do gancho de antes_da_série. Por exemplo, para excluir o caminho '/admin/' do before_all, chamaria o before_all com o seguinte código:

antes_tudo :excepto => ['/admin/'] fazer
  # O seu código aqui
fim

Cuidado: o código acima não funciona!

Kemal é um router para Crystal Lang, pode-se imaginar que seja uma coisa semelhante a Sinatra, ou para expressar.

O código parece algo plausível, já o experimentei e não é compilado. Depois procurei na documentação da Kemal, e no código fonte, e nas edições abertas da KemaL. Nenhuma menção a este mito :excepto a chave.

O GPT3 acabou de inventar isto.

Esta é a forma correcta de codificar uma excepção ao before_all em Kemal:

before_all do |env|env
  next if env.request.path == "/admin/"
  # O seu código aqui
fim

Encontrei esta informação num bilhete kemal.cr. Este código é testado por mim e compilado de facto.

Cristal lang GPT3 exemplo 2 de falha de ajuda

Também precisava de converter o Tempo actual (UTC) para uma época unix.

crystal lang: como posso converter o Time.utc para o unix timestamp?

Pode usar o método Time#to_i para converter um objecto Time para um carimbo de tempo Unix.

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

Cuidado: O código acima, mais uma vez, faz não compilar!

Embora possa ser plausível a existência de tal método, não existe tal método no Crystal Lang API para o tempo.

O código correcto é:

unix_timestamp = Time.utc.to_unix

Conclusão: O GPT3 é útil, mas teste a sua saída!

O GPT3 é de facto útil na resolução de questões comuns de programação. Pode sugerir bibliotecas, responder a perguntas sobre a sintaxe, melhores práticas e muito mais.

Trata-o como um programador experiente, que cita coisas de memória, e ocasionalmente confunde as coisas ou as inventa. Essa é a natureza das respostas estatísticas - como nós, humanos, como criadores de APIs, tendemos a fazer a "coisa esperada" em código (que outros programadores esperam nas APIs que consomem) - estas respostas irão muitas vezes funcionar.

Além disso, enquanto aprende através do enorme corpus de dados em linha, o GPT3 viu MUITOS exemplos de códigos e códigos. Aprendeu uma série de padrões válidos.

Tal como um humano que é forçado a citar de memória, em vez de procurar coisas / saber onde procurar coisas, o GPT3 fará estes deslizes ocasionais.

Mas ainda lhe poupará tempo, e muitas vezes indica-lhe a direcção certa.

GPT3, ChatGPT e OpenAI API consultoria

Oferecemos serviços de consultoria para estes APIs de IA - desde casos de utilização empresarial, até soluções completas "chave na mão". Entre em contacto hoje para discutir as suas necessidades e para uma consulta inicial gratuita sobre GPT3, ChatGPT e outras IA APIs modernas!