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)
if (userData) {
const { conversationID, responseID, choiceID, _reqID } = userData;
const userChat = new Bard.Chat({ conversationID, responseID, choiceID, _reqID });
const response = await userChat.ask(prompt, { useJSON: true });
const ID = userChat.export();
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: ID.conversationID,
responseID: ID.responseID,
choiceID: ID.ids.choiceID,
_reqID: ID._reqID,
});
return modifiedResponse;
} else {
const newChat = new Bard.Chat();
const response = await newChat.ask(prompt, { useJSON: true });
const ID = newChat.export();
const images = response.images ? response.images.map((image) => image.url) : [];
const contentWithoutImages = response.content?.replace(/\!\[.*?\]\([^)]+\)\n*/g, "") || response.content;
const newUser = {
uid: uid,
conversationID: ID.conversationID,
responseID: ID.responseID,
choiceID: ID._reqIDchoiceID,
_reqID: ID._reqID,
};
await createUserData(newUser);
const modifiedResponse = {
content: contentWithoutImages,
...(images.length > 0 && { images }),
};
return modifiedResponse;
}
} 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 };