Comments (6)
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.
Hi @boygoboy! The contextual dialogue feature works just fine with me. Let me have a look at your code.
from googlebard.
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.
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.
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.
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)
- TypeError: Cannot read properties of undefined (reading '0') HOT 7
- how to change language HOT 1
- The proxy does not work HOT 3
- Cookie Validity HOT 2
- Confirmation of validity
- API gives unexpected/bad responses HOT 2
- Google Bard's Reverse Engineering Ineffectiveness after Update
- Google Bard encountered an error HOT 1
- Request fails without the __Secure-1PSIDTS cookie HOT 8
- Empty response when the query includes a url
- Traceback HOT 1
- Sometimes response country code. HOT 3
- How to get the cookie HOT 2
- Add the ability to send message for Bard
- how to use in commonJS HOT 1
- __Secure-1PSIDTS is also needed HOT 3
- My account number is 0 HOT 2
- Error in Response
- ERR_REQUIRE_ESM HOT 1
- SWML_DESCRIPTION_FROM_YOUR_INTERNET_ADDRESS HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from googlebard.