Executando verificação de segurança...
1

Primeiramente parabens pelo belo trabalho, Sensacional !

Estou usando a alguns dias e esta funcionando beleza.

No momento estou "sofrendo" tentando migrar para a versao GPT3.5-Turbo .. mas nao estou conseguindo. Tentei varias sugestoes que obtive na web mas nada para em pé. Creio que devido ao fato de usar bibliotecas com whatsapp, axion, etc, pois os exemplos que obtive são codigos em terminal de Node.js e Phyton.

Sera que voce poderia me dar alguma dica de que caminho seguir ?

Agradeço antecipadamente... Como exemplo copiei o codigo do index.js abaixo que no momento estou tentando fazer funcionar mas sem sucesso...


// Using GPT-3.5-Turbo
const { Configuration, OpenAIApi } = require('openai');
const API_KEY = process.env.OPENAI_KEY;
const configuration = new Configuration({ apiKey: API_KEY });
const openai = new OpenAIApi(configuration);
const model = 'gpt-3.5-turbo-0301';
const temp = 0.5;
const tokens = 1024;

const { Client, MessageMedia, LocalAuth } = require('whatsapp-web.js')
const qrcode = require('qrcode-terminal')
const axios = require('axios')
require('dotenv').config()

const client = new Client({
authStrategy: new LocalAuth()
})

let conversationHistory = [];

client.on('qr', qr => {
qrcode.generate(qr, {small: true})
});

client.on('authenticated', (session) => console.log(Autenticado))

client.on('ready', () => console.log('O zap-gpt está pronto 😋 Não esquece da estrelinha no repo ⭐ by: Victor Harry 🧙‍'))

client.on('message_create', message => {
if (conversationHistory.length >= 3) {
conversationHistory.shift();
}
conversationHistory.push({from: 'user', text: message.body});
commands(message);
})

client.initialize();

const headers = {
'Authorization': Bearer ${API_KEY},
'Content-Type': 'application/json'
}

const axiosInstance = axios.create({
baseURL: 'https://api.openai.com/',
timeout: 120000,
headers: headers
});

const TurboGPT = async (prompt) => {
try {
const completion = await openai.createChatCompletion({
model: model,
messages: [
{ role: 'system', content: 'You are omnipotent and always compassionate' },
{ role: 'assistant', content: 'How else may I help' },
{ role: 'user', content: prompt },
],
temperature: temp,
max_tokens: tokens,
top_p: 1,
frequency_penalty: 0,
presence_penalty: 0,
n: 1,
stop: '',
});

    const botAnswer = completion.data.choices[0].message.content;
    return `Bestfriend 🤖 ${botAnswer}`
} catch (e) {
    return `❌ OpenAI Response Error`
}

}

const getDalleResponse = async (clientText) => {
const body = {
prompt: clientText, // Descrição da imagem
n: 1, // Número de imagens a serem geradas
size: "256x256", // Tamanho da imagem
}

try {
    const { data } = await axiosInstance.post('v1/images/generations', body)
    return data.data[0].url
} catch (e) {
    return `❌ OpenAI Response Error`
}

}

const commands = async (message) => {
const iaCommands = {
davinci3: "/teste"
}

let firstWord = message.body.substring(0, message.body.indexOf(" "))
const sender = message.from.includes(process.env.PHONE_NUMBER) ? message.to : message.from
switch (firstWord) {
    case iaCommands.davinci3:
        const question = message.body.substring(message.body.indexOf(" "));
        TurboGPT(question).then(async (response) => {
            const contact = await message.getContact()
            client.sendMessage(sender, `${response}\n\n_Generated by @${contact.id.user}_`, { mentions: [contact] })
            if (conversationHistory.length >= 3) {
                conversationHistory.shift();
            }
            conversationHistory.push({from: 'bot', text: response});
        })
        break
}

}

Carregando publicação patrocinada...
1

Cara, muito bom MESMO este post! Ficou show, parabéns!
Não era exatamente o que queria, estava procurando alternativas à API do WhatsApp, mas o post me deu uma ótima ideia para outro projeto.

"fui em busca de cobre e encontrei ouro" 😂😂