Pessoal, dica rápida: para quem usa a função LABS.GENERATIVEAI no Excel e quer zerar os custos da API do ChatGPT, recomendo testar o Groq. Fiz uma pesquisa e ele funciona perfeitamente como uma alternativa gratuita e de alta performance.
Compartilho abaixo o código VBA para quem quiser implementar.
⚠️ Atenção à configuração: No código, deixei apenas o início da Chave de API (API Key) como exemplo. Para funcionar, vocês precisam gerar a própria chave no site do Groq e completar essa parte no código.
Se usarem depois me contem se ajudou no dia a dia.
CÓDIGO V.B.A
*Function GROQ(prompt As String) As String
Dim http As Object
Dim url As String
Dim apiKey As String
Dim body As String
Dim response As String
Dim startPos As Long, endPos As Long
' ==========================================
' COLE SUA CHAVE AQUI EMBAIXO (DENTRO DAS ASPAS)
' ==========================================
apiKey = "gsk Adicione Aqui sua API KEY"
' ==========================================
' Trava de segurança para evitar erro de espaço
If InStr(apiKey, " ") > 0 Then
GROQ = "Erro: A chave contem espaços. Apague os espaços no código VBA."
Exit Function
End If
url = "https://api.groq.com/openai/v1/chat/completions"
Set http = CreateObject("MSXML2.XMLHTTP")
' ATUALIZADO: Usando o modelo Llama 3.3 (Mais inteligente e ATIVO)
' Se ficar lento, você pode trocar por "llama-3.1-8b-instant"
body = "{""model"": ""llama-3.3-70b-versatile"", ""messages"": [{""role"": ""user"", ""content"": """ & Replace(prompt, """", "\""") & """}]}"
On Error GoTo ErroHandler
With http
.Open "POST", url, False
.setRequestHeader "Content-Type", "application/json"
.setRequestHeader "Authorization", "Bearer " & apiKey
.send body
response = .responseText
End With
' Verifica se a Groq devolveu erro (ex: chave errada ou modelo inexistente)
If InStr(response, "error") > 0 Then
GROQ = "Erro da API: " & response
Exit Function
End If
' Extrai apenas o texto da resposta (Limpeza do JSON)
startPos = InStr(response, """content"":""") + 11
If startPos > 11 Then
endPos = InStr(startPos, response, """}")
GROQ = Mid(response, startPos, endPos - startPos)
' Limpa caracteres especiais de formatação
GROQ = Replace(GROQ, "\n", vbCrLf) ' Quebra de linha
GROQ = Replace(GROQ, "\"" ", """") ' Aspas
GROQ = Replace(GROQ, "\t", " ") ' Tabulação
Else
GROQ = "Erro ao ler resposta."
End If
Exit Function
ErroHandler:
GROQ = "Erro de Conexão com a Internet ou VBA."
End Function
*