GoogleBard
一个用于创建GoogleBard聊天机器人的NPM模块,使用Bard的逆向工程API。通过逆向工程API功能,它使开发人员能够充分发挥Bard的潜力。
## 目录 - [功能](#功能) - [前提条件](#前提条件---如何获取cookies) - [安装](#安装) - [文档](#文档) - [示例](#示例)
功能
- 模拟响应流: 该包模拟响应流,使您能够在响应可用时立即获取。
- 多重对话: 该包支持多重对话,允许您与聊天机器人进行多个并行对话。
- 代理支持: 该包支持代理,允许您从任何位置使用聊天机器人。
- 轻量级: 该包非常轻量,易于使用和集成到您的项目中。
前提条件 - 如何获取cookies?*
- 安装 Cookie-Editor 扩展。
- 前往 https://bard.google.com 并登录。
- 点击扩展图标,复制以
__Secure-{account_number}PSID
开头的cookie。- 例如,
__Secure-1PSID
- 确保您复制的是与账号编号对应的正确cookie,账号编号可以在URL中找到,如
bard.google.com/u/{account_number}
。 - 如果您的账号编号是
/u/2
,请搜索名为__Secure-2PSID
的cookie。 - 如果您的账号编号是
/u/3
,请搜索名为__Secure-3PSID
的cookie。
- 例如,
- 将cookie粘贴到您的代码中。
安装
要安装该包,请运行以下命令:
npm install googlebard
文档
1. 如何初始化机器人?
import { Bard } from "googlebard";
let cookies = `__Secure-1PSID=<YOUR_COOKIE>`;
let bot = new Bard(cookies);
// 其他代码 - 滚动下方查看可用的不同功能
2. 如何使用可选设置配置机器人?
inMemory
: 可选 - 如果为true,将不会将对话保存到磁盘savePath
: 可选 - 保存对话的路径(例如 './conversations.json')proxy
: 可选 - 处理代理配置
import { Bard } from "googlebard";
let cookies = `__Secure-1PSID=<YOUR_COOKIE>`;
let bot = new Bard(cookies, {
inMemory: false,
savePath: "./conversations.json",
proxy: {
host: process.env.PROXY_HOST,
port: process.env.PROXY_PORT,
auth: {
username: process.env.PROXY_USERNAME,
password: process.env.PROXY_PASSWORD,
},
protocol: "http",
},
});
// 其他代码
3. 如何向机器人提问?
要向机器人提问,您可以使用 bot.ask(<prompt>, <conversation_id>:可选)
功能。以下是使用示例:
import { Bard } from "googlebard";
let cookies = `__Secure-1PSID=<YOUR_COOKIE>`;
let bot = new Bard(cookies);
let conversationId = "some_random_id"; // 可选:使其记住对话
let response = await bot.ask("我的名字是什么?", conversationId); // conversationId 是可选的
console.log(response);
>> 我不知道你的名字。我是一个大型语言模型,也称为对话式AI或聊...
再次使用相同的 conversation_id
将允许机器人记住您在对话中之前说过的内容
import { Bard } from "googlebard";
let cookies = `__Secure-1PSID=<YOUR_COOKIE>`;
let bot = new Bard(cookies, {
inMemory: false,
savePath: "./conversations.json", // 这样做是为了保存关于对话的关键信息,以便机器人记住它
});
let conversationId = "test_id";
let response = await bot.ask("我的名字是Mehul", conversationId);
console.log(response);
>> 你好Mehul,很高兴认识你!我是Bard...
import { Bard } from "googlebard";
let cookies = `__Secure-1PSID=<YOUR_COOKIE>`;
let bot = new Bard(cookies, {
inMemory: false,
savePath: "./conversations.json",
});
let conversationId = "test_id";
let response = await bot.ask("我的名字是什么?", conversationId)
console.log(response);
>> 我知道你的名字是Mehul。你之前告诉我的。
4. 如何向机器人提问并模拟响应流?
要向机器人提问并模拟响应流,您可以通过自定义逻辑实现,或使用内置的 bot.askStream(<callback>, <content>, <conversation_id>:可选)
。以下是使用示例:
import { Bard } from "googlebard";
let cookies = `__Secure-1PSID=<YOUR_COOKIE>`;
let bot = new Bard(cookies, {
inMemory: false,
savePath: "./conversations.json",
});
let conversationId = "test_id";
await bot.askStream(
(res) => {
console.log(res);
}, // 返回响应
"你好?",
conversationId,
);
>> 你
的
名
字
是
Mehul。
我
会
记
住
这
个
信
息
以
便
下
次
我
们
交
谈
时
使
用。
响应流功能用于显示机器人自己在打字的效果
5. 如何重置对话?
要重置对话,您可以使用 bot.resetConversation(<conversation_id>)
功能。此功能允许用户使机器人忘记之前的对话,前提是这些对话都在同一个 conversation_id
下。以下是使用示例:
import { Bard } from "googlebard";
let cookies = `__Secure-1PSID=<YOUR_COOKIE>`;
let bot = new Bard(cookies, {
inMemory: false,
savePath: "./conversations.json",
});
let conversationId = "test_id"; // 注意id与上面示例中使用的相同
let response = await bot.ask("我的名字是什么?", conversationId);
console.log(response);
>> 你告诉我你的名字是Mehul。
import { Bard } from "googlebard";
let cookies = `__Secure-1PSID=<YOUR_COOKIE>`;
let bot = new Bard(cookies, {
inMemory: false,
savePath: "./conversations.json",
});
let conversationId = "test_id";
bot.resetConversation(conversationId) // 重置对话
let response = await bot.ask("我的名字是什么?", conversationId);
console.log(response);
>> 我理解你是想让我说出你的名字,但是...
6. 如何获取所有以前的对话?
为了检索所有的对话,您可以通过自定义逻辑实现功能,或者简单地使用内置的 bot.getAllConversations()
。以下是使用示例:
import { Bard } from "googlebard";
let cookies = `__Secure-1PSID=<YOUR_COOKIE>`;
let bot = new Bard(cookies, {
savePath: "./conversations.json",
});
let response = bot.getAllConversations()
console.log(response) // 返回不同对话的数组
7. 如何通过ID获取单个对话?
import { Bard } from "googlebard";
let cookies = `__Secure-1PSID=<YOUR_COOKIE>`;
let bot = new Bard(cookies, {
inMemory: false,
savePath: "./conversations.json",
});
let conversationId = "test_id";
await bot.waitForLoad();
let response = bot.getConversationById(conversationId);
console.log(response); // 返回一个对象
示例
在 examples
目录中添加了一个简单的示例,展示了如何使用GoogleBard创建CLI聊天机器人。更多此类示例将陆续添加,敬请期待!