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

[JS] Sem cotinuidade na conversa API openAI

Bom dia!
Estou fazendo um projetinho que é implementado a API do openAI para que tenha uma conversa em estilo chat, porém a conversa nao é continua, parece que cada vez que escrevo algo o chat reseta e acaba nao tendo um contexto na conversa.

//SCRIPT DO SERVIDOR NODE

const bodyParser = require('body-parser')
const express = require('express')
const app = express()
const { Configuration, OpenAIApi } = require("openai");

const configuration = new Configuration({
    apiKey: '', //apaguei minha apikey por segurança
});
const openai = new OpenAIApi(configuration);

app.use(bodyParser.json());

app.get('/', (req,res) => {
    res.sendFile(__dirname + '/index.html')
})

app.post('/enviar', async (req,res) => {
    const txt = req.body.text
    const response = await openai.createCompletion({
        model: "text-davinci-003",
        prompt: txt,
        temperature: 0.9,
        max_tokens: 150,
        top_p: 1,
        frequency_penalty: 0.0,
        presence_penalty: 0.6,
        stop: [" Human:", " AI:"],
    });
    const resp = response.data.choices[0].text
    res.status(200).json({body: {text: resp}})
})


app.listen(3000,() => console.log('servidor aberto'), )

//SCRIPT DO CLIENTE HTML

 <input type="text" id="text">
    <button id="button">ok</button>
    <div id="chat"></div>
    
    <script>
        var botao = document.querySelector('#button');
        var text = document.querySelector('#text');
        var chat = document.querySelector('#chat');

        function enviar(){
            chat.innerHTML += `<li>EU: ${text.value} <li>`
            fetch('/enviar', {
                method: 'POST',
                headers:{
                    'Content-Type': 'application/json'
                },
                body: JSON.stringify({text: text.value})  
            })
            .then( res => res.json())
            .then( data => {
                let txt = data.body.text
                chat.innerHTML += `<li>IA: ${txt} <li>`
            })
        }
        botao.addEventListener('click', enviar)
Carregando publicação patrocinada...
1

Onde você está salvado o retorno anterior?. Deseja salvar em um banco de dados ou no local storage. Me parece que você está recebendo novos dados e subscrevendo os antigos

1
1

Se você estiver usando um array para armazenar, basicamente ao fazer a pergunta tu faz um get na api, esse array recebe o novo valor. Remove o antigo da (tela se tiver no front) e mostra o array inteiro na tela com os novos valores

0