O formato de diálogo permite que o ChatGPT responda a perguntas de acompanhamento, admita seus erros, conteste premissas incorretas e rejeite solicitações inadequadas. O ChatGPT é um modelo irmão do InstructGPT , que é treinado para seguir uma instrução em um prompt e fornecer uma resposta detalhada.
Amostras
No exemplo a seguir, o ChatGPT faz as perguntas de esclarecimento para depurar o código.Amostra 1 de 4 Anterior PróximaDo utilizador
este código não está funcionando como eu esperava – como faço para corrigi-lo?
resultWorkerErr := make(chan error)
defer close(resultWorkerErr)
go func() {
defer cancel()
resultWorkerErr <- b.resultWorker(ctx)
}()
err := b.worker(ctx)
cancel()
if err == nil {
return <-resultWorkerErr
}
return multierror.Append(err, <-resultWorkerErr)
ChatGPT
É difícil dizer o que há de errado com o código sem mais contexto. Você pode fornecer mais informações sobre o que o código deve fazer e o que não está funcionando conforme o esperado? Além disso, este é o código inteiro ou apenas uma parte dele?Do utilizador
apenas parte dele – o erro nunca aparece. Acho que tem algo errado com o canalChatGPT
É difícil dizer sem mais informações sobre o que o código deve fazer e o que está acontecendo quando é executado. Um possível problema com o código que você forneceu é que o resultWorkerErr
canal nunca é fechado, o que significa que o código pode travar se o resultWorkerErr
canal nunca for gravado. Isso pode acontecer se b.resultWorker
nunca retornar um erro ou se for cancelado antes de ter a chance de retornar um erro.
Para corrigir esse problema, você pode fechar o resultWorkerErr
canal depois de escrever nele. Por exemplo, você pode adicionar a seguinte linha de código após a linha que envia o erro no canal:
close(resultworkerErr)
Isso garantiria que o resultWorkerErr
canal esteja sempre fechado, mesmo que b.resultWorker
nunca retorne um erro. Novamente, é difícil dizer se esse é o problema que você está enfrentando sem mais informações sobre o problema que está enfrentando. Você pode fornecer mais detalhes