Closed Nessie-Dev closed 1 year ago
Please provide an MRE
Closing otherwise. We respond to issues regarding bard-ai
, we are not necessarily responsible for how you use it specifically unless it's a clear issue on our part.
It's related to bard-ai when i export chat and then import it it to get responses from bard-ai I get is, means I can't use the ID's of the chat to continue an old chat "Google Bard encountered an error )]}'
39 [["wrb.fr",null,null,null,null,[13]]] 58 [["di",8769],["af.httprm",8768,"6620395296999733811",0]] 25 [["e",4,null,null,134]] . at queryBard (file:///home/runner/XaviaBot/node_modules/bard-ai/index.js:88:15) at processTicksAndRejections (node:internal/process/task_queues:96:5)"
It works for me? Ensure you are giving Chat a JSON (not stringified) when importing. It will not work if your input is stringified.
It worked before, but does not works after the update last update came.
Go ahead and purge cookies, then log in again to your Google account. Get the new PSID, and it should be all fixed!
did but same error brother, can you give me an example again I tried same as shown as on the docs
It works? Are you sure you are using __Secure-PSID1?
Yes, it works when i create new chat everytime for response, but not works with the chat export and import IDs
Can you show me what you are exporting and importing? Make sure its raw JSON and not stringified or changed in any way shape or form.
here's my code:const userData = await getUserData(uid);
if (userData) {
const { conversationID, responseID, choiceID, _reqID } = userData;
const userChat = new Bard.Chat({
conversationID: conversationID,
responseID: responseID,
choiceID: choiceID,
_reqID: _reqID,
});
const response = await userChat.ask(prompt, { useJSON: true });
const images = response.images ? response.images.map((image) => image.url) : [];
const contentWithoutImages = response.content?.replace(/\!\[.*?\]\([^)]+\)\n*/g, "") || response.content;
const modifiedResponse = {
content: contentWithoutImages,
...(images.length > 0 && { images }),
};
await updateUserData(uid, {
conversationID: response.ids.conversationID,
responseID: response.ids.responseID,
choiceID: response.ids.choiceID,
_reqID: response.ids._reqID,
});
return modifiedResponse;
} else {
const newChat = new Bard.Chat();
const response = await newChat.ask(prompt, { useJSON: true });
const images = response.images ? response.images.map((image) => image.url) : [];
const contentWithoutImages = response.content?.replace(/\!\[.*?\]\([^)]+\)\n*/g, "") || response.content;
const newUser = {
uid: uid,
conversationID: response.ids.conversationID,
responseID: response.ids.responseID,
choiceID: response.ids.choiceID,
_reqID: response.ids._reqID,
};
await createUserData(newUser);
const modifiedResponse = {
content: contentWithoutImages,
...(images.length > 0 && { images }),
};
return modifiedResponse;
}
If you just use the most basic example, does it work? (Please join Slack, its a lot easier to talk there 😄)
Any updates? Closing otherwise...
Closing for now, feel free to reopen if you deem necessary.
I'm facing the same issue, can't figure out why.
I'm facing the same issue, can't figure out why.
could you show us an MRE of your code?
@EvanZhouDev i suspect it’s an issue with cookies
@ThatXliner It seems to work fine when I write an example and run it in the terminal. I'm trying to using this package in a chrome extension which gives this error (It works the first time when result.bardConversationIds
is undefined
).
Bard.init(bardKey)
.then(() => chrome?.storage?.local?.get('bardConversationIds'))
.then((result) => new Bard.Chat(result.bardConversationIds))
.then(async (conversation) => {
const response = await conversation.ask("Hello world");
chrome?.storage?.local?.set({bardConversationIds: conversation.export()});
return response;
})
.then((response) => console.log(response));
ids
object and it seems like it's being stored and retrieved correctly.
ids
object in the constructor but it still gave the same error.
.then((result) => new Bard.Chat({
conversationID: 'c_e29fe6192981cfe1',
responseID: 'r_e29fe6192981c15a',
choiceID: 'rc_e29fe6192981c8b7',
_reqID: 100000
}))
Why console.log(response)
giving an object? IIRC it should’ve been a string unless the json config was set
The object is logged when I do console.log(result.bardConversationIds)
. The response string gets logged properly when result.bardConversationIds
is undefined
, in this case it never gets to the response.
Could it be browser cookies from bard.google.com interfering with this? I noticed even when I don't specify a bardKey
, it still works since I'm signed in to bard in my browser.
Note: I'm using this package with a chrome extension.
the issue hasn't been fixed yet, also now i changed my cookies more than 10 times by logging the Gmail, and then logging in it says my cookie isn't valid.
the issue hasn't been fixed yet, also now i changed my cookies more than 10 times by logging the Gmail, and then logging in it says my cookie isn't valid.
On "change cookie," did you copy+paste the new cookie into your code?
Also, you need to make sure you clear your cookies, not just logging in and out of Gmail... not sure if that was implied?
Have you tried using v2
? It should be better.
Let me know if you have any updates, I will close if not...
I get an error while trying to build my project. This error doesn't show up in v.1.5.4.
Module not found: Error: Can't resolve 'fs' in '/Users/sujit/Documents/My Projects/chrome-ext-litcode-solver/node_modules/bard-ai'
I get an error while trying to build my project. This error doesn't show up in v.1.5.4.
Module not found: Error: Can't resolve 'fs' in '/Users/sujit/Documents/My Projects/chrome-ext-litcode-solver/node_modules/bard-ai'
Please create a new issue. also, this is probably because this project is currently uses the nodejs fs module
when i use old chat export it only returns "Google Bard encountered an error )]}'
39 [["wrb.fr",null,null,null,null,[13]]] 58 [["di",8769],["af.httprm",8768,"6620395296999733811",0]] 25 [["e",4,null,null,134]] . at queryBard (file:///home/runner/XaviaBot/node_modules/bard-ai/index.js:88:15) at processTicksAndRejections (node:internal/process/task_queues:96:5)"here's my code:import Bard from "bard-ai"; import sqlite3 from "sqlite3"; import fetch from 'node-fetch' global.fetch = fetch;
Bard.init("YAgdpqonMlUB0ELzDB_hFNjqXtv-4iXn29DaSsr-abQGyVy8rvehwyE8Q0EfyvBGbOCmQw.");
const db = new sqlite3.Database("database.db");
db.run(
CREATE TABLE IF NOT EXISTS users ( uid TEXT PRIMARY KEY, conversationID TEXT, responseID TEXT, choiceID TEXT, _reqID TEXT )
);async function generateResponse(prompt, uid) { prompt = decodeURIComponent(prompt);
if (!prompt) { throw new Error("Please provide a prompt."); }
if (!uid) { const response = await Bard.askAI(prompt, { useJSON: true }); const images = response.images ? response.images.map((image) => image.url) : []; const contentWithoutImages = response.content?.replace(/![.?]([^)]+)\n/g, "") || response.content; const modifiedResponse = { content: contentWithoutImages, ...(images.length > 0 && { images }), };
}
try { const userData = await getUserData(uid); console.log(userData)
} catch (error) { console.error("Failed to generate response:", error); throw new Error("Failed to generate response."); } }
async function getUserData(uid) { return new Promise((resolve, reject) => { db.get("SELECT * FROM users WHERE uid = ?", uid, (err, row) => { if (err) { console.error("Failed to retrieve user data:", err); reject(err); } else { resolve(row); } }); }); }
async function createUserData(userData) { return new Promise((resolve, reject) => { db.run( "INSERT INTO users (uid, conversationID, responseID, choiceID, _reqID) VALUES (?, ?, ?, ?, ?)", [userData.uid, userData.conversationID, userData.responseID, userData.choiceID, userData._reqID], (err) => { if (err) { console.error("Failed to create user data:", err); reject(err); } else { resolve(); } } ); }); }
async function updateUserData(uid, userData) { return new Promise((resolve, reject) => { db.run( "UPDATE users SET conversationID = ?, responseID = ?, choiceID = ?, _reqID = ? WHERE uid = ?", [userData.conversationID, userData.responseID, userData.choiceID, userData._reqID, uid], (err) => { if (err) { console.error("Failed to update user data:", err); reject(err); } else { resolve(); } } ); }); }
async function resetChat(uid) { try { await deleteUserData(uid); } catch (error) { console.error("Failed to reset chat:", error); throw new Error("Failed to reset chat."); } }
async function deleteUserData(uid) { return new Promise((resolve, reject) => { db.run("DELETE FROM users WHERE uid = ?", uid, (err) => { if (err) { console.error("Failed to delete user data:", err); reject(err); } else { resolve(); } }); }); }
export { generateResponse, resetChat };