domingo, 12 de fevereiro de 2023

Que tal usar um Chat GPT-3 no WhatsApp?

Nesse passo a passo estarei mostrando um exemplo de como integrar um chat bot GPT-3 que é uma API da OPENAI, que criou o ChatGPT.  

Integrando Chat GPT com WhatsApp

Para fazer esse procedimento estou usando um servidor com Debian (mas já testei o funcionamento com ubuntu 18...). A integração está sendo feita com: node.js venom-bot api da openai OBS IMPORTANTE: Nos testes que realizei, criei um servidor apenas para essa finalidade, se você não tiver conhecimento técnico suficiente para entender o que está sendo feito, sugiro que instale em uma maquina virtual. Neste exemplo, estou utilizando usuário "root" para fazer todo procedimento.  

Instalando o node.js e atualizando o servidor

Vamos começar atualizando o sistema e instalando node.js no servidor:
sudo apt-get update -y && apt-get upgrade -y
curl -fsSL https://deb.nodesource.com/setup_current.x | sudo -E bash -
sudo apt-get update
sudo apt install nodejs -y
Depois disso, vamos instalar as dependências no servidor:
sudo apt-get update
sudo apt-get install -y gconf-service libasound2 libatk1.0-0 libatk-bridge2.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget libgbm-dev
Após a instalações dessas bibliotecas, considere reiniciar o servidor.
Prosseguindo, agora vamos instalar o venom-bot que será responsavel por conectar o chatbot ao WhatsApp:
cd /root
mkdir chatbot-whatsapp
cd chatbot-whatsapp
touch index.js
npm i venom-bot
No arquivo index, você vai colocar esse código:
const venom = require('venom-bot');
venom
.create()
.then((client) => start(client));
function start(client)
client.onMessage((message) => message.body === 'Oi')
client
.sendText(message.from, 'Estou pronto!')
.then((result) =>
console.log('Result: ', result); //retorna um objeto de successo
)
.catch((erro) =>
console.error('Erro ao enviar mensagem: ', erro); //return um objeto de erro
);
);
Agora teste o funcionamento e veja se o chatbot está funcionando digitando esse comando abaixo no terminal do servidor:
node index.js
Se estiver tudo certo, será exibido um QRCode para você autorizar o navegador dessa aplicação a usar o seu WhatsApp
[caption id="attachment_1011" align="alignnone" width="300"]Exemplo de QRCode do chatbot Exemplo de QRCode do chatbot[/caption]
Depois disso, poderá testar digitando um "Olá" ou "Oi" para o WhatsApp conectado ao chatbot.
E ele deverá responder pra você "Estou pronto!"
[caption id="attachment_1012" align="alignnone" width="300"]Exemplo de resposta do chatbot Exemplo de resposta do chatbot[/caption]
Se até essa etapa está tudo ok, podemos prosseguir.
 

Instalando a API do OPenAI e integrando com WhatsApp

Agora vamos para integração com a api do openai, vamos fazer a integração do gpt-3 com o WhatsApp
Para isso, vamos instalar a api do openai:
cd /root/chatbot-whatsapp
npm i openai
Deverá criar um arquivo chamado ".env" com suas credenciais de acesso do openai (organização e api de acesso).
OBS IMPORTANTE: é necessário se cadastrar no site da openai.com
Depois disso poderá adquirir as informações nos seguintes links:
OPENAI_API_KEY=https://platform.openai.com/account/api-keys
ORGANIZATION_ID=https://platform.openai.com/account/org-settings
Já o "PHONE_NUMBER=" é o numero do WhatsApp que você vai colocar no qrcode.
touch .env
echo "OPENAI_API_KEY=COLEAQUISUAAPI" >> /root/chatbot-whatsapp/.env echo "ORGANIZATION_ID=COLEAQUISUAORGANIZACAO" >> /root/chatbot-whatsapp/.env
echo "PHONE_NUMBER=5511998765432@c.us" >> /root/chatbot-whatsapp/.env
Agora você pode substituir o código do arquivo index, ou criar um novo arquivo para testar, neste exemplo estou criando um novo arquivo:
touch gpt.js
E deverá colocar o seguinte código nele:
const venom = require('venom-bot'); const dotenv = require('dotenv'); const Configuration, OpenAIApi = require("openai");
dotenv.config();
venom.create( session: 'bot-whatsapp', multidevice: true ) .then((client) => start(client)) .catch((error) => console.log(error); );
const configuration = new Configuration( organization: process.env.ORGANIZATION_ID, apiKey: process.env.OPENAI_API_KEY, );
const openai = new OpenAIApi(configuration);
const getGPT3Response = async (clientText) => const options = model: "text-davinci-003", prompt: clientText, temperature: 1, max_tokens: 4000
try const response = await openai.createCompletion(options) let botResponse = "" response.data.choices.forEach(( text ) => botResponse += text ) return `Chat GPT ??

$botResponse.trim()`
catch (e) return `? OpenAI Response Error: $e.response.data.error.message`
const commands = (client, message) => const iaCommands = davinci3: "/bot",
let firstWord = message.text.substring(0, message.text.indexOf(" ")); switch (firstWord) case iaCommands.davinci3: const question = message.text.substring(message.text.indexOf(" ")); getGPT3Response(question).then((response) => /* * Faremos uma validação no message.from * para caso a gente envie um comando * a response não seja enviada para * nosso próprio número e sim para * a pessoa ou grupo para o qual eu enviei */ client.sendText(message.from === process.env.PHONE_NUMBER ? message.to : message.from, response) ) break;
async function start(client) client.onAnyMessage((message) => commands(client, message));
Agora teste o funcionamento e veja se a integração está funcionando digitando esse comando abaixo no terminal do servidor:
node gpt.js
Se estiver tudo certo, será exibido um QRCode para você autorizar o navegador dessa aplicação a usar o seu WhatsApp
Depois disso, poderá testar digitando qualquer frase ou pergunta iniciando por "/bot"
Então o bot vai responder você com a inteligência artificial configurada no código do arquivo gpt.js
[caption id="attachment_1014" align="alignnone" width="300"]Resposta do chat gpt-3 Resposta do chat gpt-3[/caption]
Bom é isso, espero que esse passo a passo ajude você. Reiterando que utilizei um servidor somente para essa finalidade, ou seja, para fins de testes. Referencias para publicação desse passo a passo: https://github.com/victorharry/zap-gpt https://platform.openai.com https://github.com/orkestral/venom
https://blog.atarweb.com.br/que-tal-usar-um-chat-gpt-3-no-whatsapp/?feed_id=61&_unique_id=63e8e78768bed

Nenhum comentário:

Postar um comentário