# Functions e ChatGPT

O [ChatGPT](https://openai.com/blog/chatgpt) pode ser usado em quase todas as tarefas que envolvem o entendimento ou a geração de linguagem natural ou código. No ambiente de desenvolvimento, é uma ferramenta usada para aumentar a produtividade dos desenvolvedores, ajudando-os a:

- Explicar o código que está sendo implementado.
- Gerar código.
- Refatorar um código pré-existente.

---

## Como funciona a integração entre Functions e o ChatGPT?

O **Functions Code Editor** é integrado às APIs do ChatGPT, para que você possa usar um conjunto de recursos dentro do editor, sem a necessidade de abrir outra guia. Os recursos vão desde refatorar o código até gerar um novo código com base na entrada informada pelo prompt.

Primeiro, é necessário configurar suas credenciais registradas na plataforma OpenAI e gerar uma chave de API e o ID da organização:

- [Gerar chave da API ChatGPT](https://platform.openai.com/account/api-keys)
- [Gerar ID da organização do ChatGPT](https://platform.openai.com/account/org-settings)

Com suas credenciais em mãos, cole-as em seu código-fonte como um comentário, como exemplificado abaixo:

```js
    /*
    ChatGPTKey=key // Your ChatGPT key
    ChatGPTOrg=org // The org
    */
```

Agora, com suas credenciais definidas, você pode usar a integração para desenvolver mais rapidamente e ter seu código revisado sempre que quiser.

---

## Recursos

### Explicação de código

Um recurso disponível nesta integração é o **Code Explanation**. Ele se mostra útil quando você tem que depurar uma função, ou simplesmente revisá-la. Também é útil quando você está trabalhando em código legado.

### Geração de código

A Geração de Código funciona com base no prompt informado. Por exemplo, digamos que você queira retornar uma página `HTML`, com uma tabela contendo o nome, número de telefone e endereço.

**Prompt**:

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

Depois de escrever o prompt dentro do editor de código, clique com o botão direito e selecione `ChatGPT: Generate`

**Saída**:

```js
    <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

Outra opção é pedir ao ChatGPT para refatorar o código. Para fazer isso, você deve selecionar o pedaço de código que você deseja ter refatorado, clicar com o botão direito sobre ele e selecionar `ChatGPT: Refactor`. Depois disso, seu código será refatorado automaticamente.

**Dica**: é sempre uma boa ideia testar e garantir que o código refatorado esteja funcionando conforme o esperado, evitando problemas inesperados no futuro.

---

## Implementação

Veja uma implementação da integração entre Functions e o ChatGPT:

| Implementação | Descrição |
| --- | --- |
| [Como criar uma API com Functions e ChatGPT](/pt-br/documentacao/produtos/guias/edge-functions/api-builder/) | Veja como construir uma API e visualizar sua resposta em JSON no Azion Preview Provider, com o auxílio do ChatGPT |




---