# Integração com ChatGPT

O [editor de código](/pt-br/documentacao/plataforma/functions/code-editor/) de uma função chama as APIs do [ChatGPT](https://openai.com/blog/chatgpt). A integração explica, gera e refatora JavaScript dentro do editor, para que você não precise abrir outra guia. Ela é executada com as credenciais da sua própria conta OpenAI, que você declara no código-fonte da função.

---

## Credenciais

A integração com ChatGPT se autentica com uma chave de API da OpenAI e um ID de organização da OpenAI. Gere os dois na plataforma da OpenAI:

- [Chaves de API da OpenAI](https://platform.openai.com/account/api-keys)
- [Configurações de organização da OpenAI](https://platform.openai.com/account/org-settings)

Declare os dois valores como um comentário no código-fonte da função:

```javascript
/*
ChatGPTKey=[TOKEN VALUE]
ChatGPTOrg=<your-organization-id>
*/
```

---

## Explicação de código

A explicação de código retorna uma descrição do código que está no editor. Use-a quando você depurar uma função, quando revisar uma função antes de uma alteração ou quando ler um código que você não escreveu.

---

## Geração de código

A geração de código transforma um comentário em JavaScript. O comando **ChatGPT: Generate**, no menu de contexto do editor, lê o comentário selecionado como prompt e retorna o código gerado.

Este prompt pede uma tabela HTML com três colunas:

```javascript
// generate an html table with name, phone number and address
```

A integração retorna a marcação:

```html
<body>
  <table>
    <thead>
      <tr>
        <th>Name</th>
        <th>Phone Number</th>
        <th>Address</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>John Smith</td>
        <td>(123) 456-7890</td>
        <td>123 Main St, Anytown, USA</td>
      </tr>
      <tr>
        <td>Jane Doe</td>
        <td>(987) 654-3210</td>
        <td>456 Oak St, Anytown, USA</td>
      </tr>
      <tr>
        <td>Bob Johnson</td>
        <td>(555) 555-1212</td>
        <td>789 Maple St, Anytown, USA</td>
      </tr>
    </tbody>
  </table>
</body>
```

---

## Refatoração de código

A refatoração de código reescreve um bloco de JavaScript. O comando **ChatGPT: Refactor**, no menu de contexto do editor, refatora o código que você seleciona.

> **dica**
>
> Teste o código que a integração retorna antes que a função atenda tráfego. O [Preview deployment](/pt-br/documentacao/plataforma/functions/preview-deployment/) retorna a resposta do código gerado ou reescrito sem um deployment.

---

## Depuração

A integração também cobre depuração. Para os sintomas de uma função que falha em tempo de execução, e o remédio de cada um, consulte [Solução de problemas](/pt-br/documentacao/plataforma/functions/solucao-de-problemas/).

---

## Recursos relacionados

- [Editor de código](/pt-br/documentacao/plataforma/functions/code-editor.md): O editor em que a integração é executada e o restante dos recursos dele.
- [Preview deployment](/pt-br/documentacao/plataforma/functions/preview-deployment.md): Leia a resposta do código gerado antes que ele atenda tráfego.
- [Crie uma função de API com ChatGPT](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/functions-e-runtime/api-builder.md): Um exemplo prático que gera um objeto e o retorna como JSON.
- [Como funciona](/pt-br/documentacao/plataforma/functions/como-funciona.md): O que acontece com o código depois que uma regra invoca a função.
- [Solução de problemas](/pt-br/documentacao/plataforma/functions/solucao-de-problemas.md): Encontre a causa quando uma função falha ou não retorna nada.
- [Agent setup](/pt-br/documentacao/agent-setup.md): Use o seu próprio agente ou editor com a documentação da Azion.
