GithubHelp home page GithubHelp logo

Comments (6)

PawanOsman avatar PawanOsman commented on May 13, 2024 1

this is an example on how you can get conversations, you don't need to load the saved file,
also, you must create the bot instance a single time, so you need to create it outside the bardUnofficalChat function

const { Bard } = await import("googlebard")

let cookies = `__Secure-1PSID=${process.env.BARD_AUTH}`;

let bot = new Bard(cookies, {
  inMemory: false, // optional: if true, it will not save conversations to disk
  savePath: "./chatjson/conversations.json", // optional: path to save conversations
});

const bardUnofficalChat = async (req, res) => {
  let { message, isfirst } = req.body

  let conversationId = ''; // optional: to make it remember the conversation

  if (isfirst) {
    conversationId = Date.now()
  } else {
    let allConversations = bot.getAllConversations()
    conversationId = allConversations[allConversations.length - 1].id
  }

  let response = await bot.ask(message, conversationId); // conversationId is optional
  console.log(response);
  res.json({
    data: response
  })
}

module.exports = {
  bardUnofficalChat
}

however its better to use a static conversation id instead of getting the last conversation id
like this example, instead of isfirst it will send a unique id with the request and it will be remain in the same conversation

const { Bard } = await import("googlebard")

let cookies = `__Secure-1PSID=${process.env.BARD_AUTH}`;

let bot = new Bard(cookies, {
  inMemory: false, // optional: if true, it will not save conversations to disk
  savePath: "./chatjson/conversations.json", // optional: path to save conversations
});

const bardUnofficalChat = async (req, res) => {
  let { message, convId } = req.body

  let response = await bot.ask(message, convId); // conversationId is optional
  console.log(response);
  res.json({
    data: response
  })
}

module.exports = {
  bardUnofficalChat
}

from googlebard.

mehul-srivastava avatar mehul-srivastava commented on May 13, 2024

Hi @boygoboy! The contextual dialogue feature works just fine with me. Let me have a look at your code.

from googlebard.

boygoboy avatar boygoboy commented on May 13, 2024

Hi @boygoboy! The contextual dialogue feature works just fine with me. Let me have a look at your code.

Thank you, haha ​​I understand, the conversationId of the same group of contextual conversations cannot be changed, I thought this conversationId was the id of the previous conversation

from googlebard.

mehul-srivastava avatar mehul-srivastava commented on May 13, 2024

Thank you, haha ​​I understand, the conversationId of the same group of contextual conversations cannot be changed, I thought this conversationId was the id of the previous conversation

So now is it fixed?

from googlebard.

boygoboy avatar boygoboy commented on May 13, 2024

Thank you, I understand. I read the usage of bing before (https://github.com/waylaidwanderer/node-chatgpt-api/blob/main/demos/use-bing-client.js) and misunderstood that bard also needs a dialogue messageId

from googlebard.

boygoboy avatar boygoboy commented on May 13, 2024

Sorry for the delay @boygoboy! I refactored your code a bit and the contextual dialogue things works for me. Let me know if it does for you too.

const chatjson = require("../../chatjson/conversations.json");

const bardUnofficalChat = async (req, res) => {
  let { message, isfirst } = req.body;
  const { Bard } = await import("googlebard");

  let cookies = `__Secure-1PSID=${process.env.BARD_AUTH}`;

  let bot = new Bard(cookies, {
    inMemory: false,
    savePath: "../../chatjson/conversations.json", //both paths should be same
  });

  let conversationId = "";
  if (isfirst) {
    conversationId = Date.now();
  } else {
    conversationId =
      chatjson.conversations.rows[chatjson.conversations.rows.length - 1].id;
  }

  let response = await bot.ask(message, conversationId);
  console.log(response);
  res.json({
    data: response,
  });
};

module.exports = {
  bardUnofficalChat,
};

One improvement I can think of is to use the built-in bot.getAllConversations() as mentioned by @/PawanOsman method instead of using the json file yourself.

Hope this answer resolves your issue!

chatjson.conversations.rows[chatjson.conversations.rows.length - 1].id;

The conversationId obtained by the above writing method is always the first conversation id, which is actually equivalent to the static conversation id written by the author. It is better to use the static conversation id written by the author.

from googlebard.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.