Neste artigo aprenda como usar a API do ChatGPT no Excel com VBA com a planilha gratuita para download.
O ChatGPT é um sistema de inteligência artificial criado pela OpenAI, ele usa o modelo de deep learning GPT-3 que foi treinado com uma enorme quantidade de texto para criar respostas.
Nesta planilha você verá como podemos usar gratuitamente o ChatGPT no Excel à partir do consumo da sua API e uso do VBA no Excel.
No vídeo você aprenderá detalhes do código fonte, abaixo tem também o código fonte de como foi conectar com a API e download do artigo da planliha.
Importante que este exemplo serve também para conexão com outras API’s com VBA no Excel. Então pode ser facilmente adaptado.
Planilha de API ChatGPT no Excel com VBA
Este projeto funciona da seguinte forma:
- É digitado na célula de Texto a pergunta para o ChatGPT.
- Ao clicar em Enviar é enviada a mensagem para a API do ChatGPT com VBA
- O retorno que temos é a resposta do ChatGPT, o mesmo que vemos no link: https://chat.openai.com/
- Assim temos os cálculos retornados na célula de resposta, é então preenchida a pergunta e a resposta e quando fazemos novas perguntas vai adicionando a pergunta e a resposta na célula de resposta.
Como Criar um Código de API no ChatGPT
Para usar a planilha você precisa primeiro criar um código de API para o ChatGPT.
Crie o código da API no link: https://platform.openai.com/account/api-keys.
No momento é gratuito, então você consegue criar o código ali, copie ele no momento da geração.
Na configuração da planilha você cola o código da API do ChatGPT criada no site.
Nele você vê também os links do chatgpt, para a criação de conta do API key e também o link de referência para a comunicação, caso queira aprender mais sobre a API.
Código VBA para API do ChatGPT no Excel
Abaixo temos a estrutura de leitura e comunicação do VBA com a API.
Veja que abaixo temos o módulo criado e também o jsonlib que é uma biblioteca para ler um retorno json.
No Módulo1 temos o código VBA que realiza a comunicação com a API do ChatGPT.
Para o projeto é necessário usar uma biblioteca chamada Microsoft XML, v6.0.
Clique em Ferramentas->Referências e marque a opção Microsoft XML, v6.0.
O código VBA que realiza a comunicação com o VBA é o seguinte:
Option Explicit
Global lCodigo As Long
Sub lsEnviarAPIChatGPT()
Dim xmlHttp As MSXML2.XMLHTTP60
Dim jsonText As String
Dim APiKey As String
Dim lstrRetorno As String
If base.Range("Texto").Value = "" Then
Exit Sub
End If
APiKey = Configuracao.Range("api").Value 'varivel com a chave
Set xmlHttp = New MSXML2.XMLHTTP60
' API endpoint URL
xmlHttp.Open "POST", "https://api.openai.com/v1/completions", False
xmlHttp.setRequestHeader "Authorization", "Bearer " + APiKey
xmlHttp.setRequestHeader "Content-Type", "application/json"
' Request body
jsonText = "{""model"":""text-davinci-003""," & _
"""prompt"":""" & base.Range("Texto").Value & """," & _
"""max_tokens"":2048," & _
"""temperature"":0}"
lCodigo = lCodigo + 1
xmlHttp.send (jsonText)
If xmlHttp.Status = 200 Then
If base.Range("Resposta").Value = "" Then
base.Range("Resposta").Value = lCodigo & ". " & base.Range("Texto").Value
base.Range("Resposta").Value = base.Range("Resposta").Value & lfLerJson(xmlHttp.responseText)
Else
base.Range("Resposta").Value = base.Range("Resposta").Value & vbCrLf & lCodigo & ". " & base.Range("Texto").Value
base.Range("Resposta").Value = base.Range("Resposta").Value & lfLerJson(xmlHttp.responseText)
End If
Else
MsgBox "Request failed with status code: " & xmlHttp.Status
End If
base.Range("texto").Value = ""
Set xmlHttp = Nothing
End Sub
Public Function lfLerJson(ByVal lTexto As String) As String
Dim j As JsonLib
Dim i As Long
Dim o As Object
Set j = New JsonLib
Set o = j.parse(lTexto)
lfLerJson = lfLerJson & o("choices")(1)("text") & vbCrLf
End Function
Public Sub lsLimpar()
lCodigo = 0
base.Range("texto").Value = ""
base.Range("resposta").Value = ""
End Sub
Além disso o código VBA é explicado também no vídeo ao topo do artigo e o download está no botão abaixo, bastando colocar o código da API.
Download da Planilha API ChatGPT
Clique no botão abaixo para realizar o download do arquivo de exemplo: