非官方角色 AI API 的 Node.js 客户端,这是一个很棒的网站,它通过 AI 让角色栩栩如生!
该存储库的灵感来自 RichardDorian 的非官方节点 API。不过,我发现它很难使用,而且它也不是很稳定和存档。所以我用javascript重新制作了它。
这个项目与Character AI没有任何关系!这是一个社区项目。该项目的目的是引入和构建由角色 AI 驱动的项目。
如果您喜欢这个项目,请查看他们的网站。
完全用 Javascript 和 CommonJS 编写(以实现最大兼容性和易用性)
异步请求
使用对话或使用 API 来获取信息
便于使用
积极发展
访客和令牌登录支持
npm 安装node_characterai
基本访客身份验证和消息:
constCharacterAI = require("node_characterai");constcharacterAI = newCharacterAI();(async () => { // 以访客身份进行身份验证(使用 `.authenticateWithToken()` 使用帐户) 等待 characterAI.authenticateAsGuest(); // 将你的角色的 id 放在这里 const 字符 ID = "8_1NyR8w1dOXmI1uWaieQcd147hecbdIK7CeEAIrdJw"; // 创建一个聊天对象来与对话交互 const chat =等待characterAI.createOrContinueChat(characterId); // 发送消息 const response = wait chat.sendAndAwaitResponse("Hello discord mod!", true); 控制台.log(响应); // 使用 `response.text` 将其用作字符串})();
API 的某些部分(例如管理对话)要求您使用sessionToken
登录。
要获取它,您可以打开浏览器,转到localStorage
中的 Character.AI 网站。
重要的
如果您使用的是旧版本的软件包并且收到Authentication token is invalid
,您现在再次需要sessionToken
进行身份验证(从更新1.2.5
及更高版本开始)。见下文。
如果您使用的东西正在使用该包并且有一段时间没有更新到最新版本,请确保通过执行npm update node_characterai
或手动复制文件或打开其包的相应问题来更新包(如果它们有一)。
在浏览器中打开Character.AI网站(https://beta.character.ai)
打开开发人员工具( F12 、 Ctrl+Shift+I或Cmd+J )
转到Application
选项卡
转到Storage
部分并单击Local Storage
查找char_token
键
打开该对象,右键单击值并复制您的会话令牌。
在旧界面上的浏览器中打开Character.AI网站(https://old.character.ai/)
打开 URL 栏,编写javascript:
区分大小写)并粘贴以下内容:
(function(){let e=window.localStorage["char_token"];if(!e){alert("您需要先登录!");return;}let t=JSON.parse(e).value ;document.documentElement.innerHTML=`<div><i><p>由node_characterai提供 - <a href="https://github.com/realcoloride/node_characteraitab=readme-ov-file#using-an-access-token">点击此处了解更多信息</a></p></i><p>这是您的会话令牌:</p><input value="${t}" readonly><p><strong>除非您知道自己在做什么,否则请勿与任何人共享此令牌!被盗或被您不信任的人请求,他们可以访问您的未经您同意,请立即关闭页面。</strong></p><button id="copy" onclick="navigator.clipboard.writeText('${t}');alert('已复制到剪贴板!')">将会话令牌复制到剪贴板</button><button onclick="window.location.reload();">刷新页面</button></div>`;localStorageKey=null;storageInformation=null;t=null;})();
应出现以下页面:
单击相应的按钮将您的访问令牌或 ID 令牌复制到剪贴板。
使用该包时,您可以:
使用authenticateAsGuest()
以访客身份登录 -用于大规模使用或测试目的
使用您的帐户或使用authenticateWithToken()
令牌登录 -以获得完整功能和无限制的消息传递
您可以在角色聊天页面的 URL 中找到您的角色 ID。
例如,如果您转到角色Discord Moderator
的聊天页面,您将看到 URL https://beta.character.ai/chatchar=8_1NyR8w1dOXmI1uWaieQcd147hecbdIK7CeEAIrdJw
。
URL 的最后一部分是角色 ID:
️ 角色 AI 能够在对话中生成和解释图像。有些角色将这个概念融入特殊字符中,或者可能用它来识别图像,或者与角色交互并为其提供更多细节:可能性是无限的。
大多数角色 AI 图像功能都可以像这样使用:
// 大多数这些函数都会返回图像的 URLawait chat.generateImage("dolphins Swing in green water");await chat.uploadImage("https://www.example.com/image.jpg");await chat.uploadImage("./photos/image.jpg");// 其他支持的类型有Buffers、Readable Streams、File Paths、URLsawait chat.uploadImage(imageBuffer);// 包括图片相对路径为需要上传图像await chat.sendAndAwaitResponse({ 文本:“这张图片里有什么”, image_rel_path: "https://www.example.com/coffee.jpg", image_description: "这是咖啡。", image_description_type: "HUMAN" // 如果您手动说出 AI 正在查看的内容,请设置此项}, true);
支持 @creepycats 实现大部分内容
问题 | 回答 |
---|---|
令牌无效 | 确保您的令牌实际上有效,并且您复制了整个令牌(相当长),或者您尚未更新包。 |
在大多数系统上,puppeteer 会自动定位 Chromium。但在某些发行版上,必须手动指定路径。如果node_characterai 无法在 linux ( /usr/bin/chromium-browser ) 上找到 Chromium,则会出现此警告,并且如果 puppeteer 无法自动找到它,则会出错。请参阅此修复。 | |
为什么铬工艺要开放 | 这是因为截至目前,简单的获取已被破坏,我使用 puppeteer(一个 chromium 浏览器控制库)来绕过 cloudflare 的限制。 |
authenticateAsGuest() 不起作用 | 请参阅第 14 期。 |
达到消息最大数量 | 遗憾的是,访客帐户在受到限制并被迫登录之前只有有限数量的消息。请参阅下文了解更多信息 |
如何使用账号批量使用图书馆 | 您可以使用对话( 1.0.0 中引入的功能)来分配用户和频道。要重现对话,请使用 OOC(out of character)让 AI 认为您与多人在一起。请参阅此处的示例: (免责声明:对于某些角色,他们的个性会让他们忽略任何 OOC 请求)。 |
一次使用多个请求时如何避免并发和崩溃 | 使用async-mutex 检查@SeoulSKY 找到的解决方案。 |
这是官方的吗 | 不,这个项目是由该网站的粉丝制作的,并且是非官方的。为了支持开发人员,请查看他们的网站。 |
用node_characterai 做了一些很棒的事情 | 请告诉我! |
✉️想要联系我 | 查看我的个人资料 |
☕想要支持我 | 您可以在 ko.fi 上给我寄一杯咖啡:https://ko-fi.com/coloride。非常感谢! |
有一个想法 | 在“问题”选项卡中打开问题 |
➕其他问题 | 在“问题”选项卡中打开问题 |
在Client
类中,您可以访问Requester
类并使用characterAI.requester.(property)
定义 puppeteer 或与 CharacterAI 如何工作相关的其他变量。此外,这里的任何内容都可能会发生变化,因此请确保经常更新软件包。
更改请求者的属性.usePlus
,如果需要,更改.forceWaitingRoom
。
例如:
// 默认为“false”characterAI.requester.usePlus = true;
大约几个月前,该软件包只需要node-fetch
模块即可运行。该包是使用简单的 API 请求制作的。
然而,随着时间的推移,Cloudflare 开始与抓取和机器人作斗争,这也使得任何人几乎不可能使用这个软件包。
在 1.1 及更高版本中,这是使用 puppeteer(使用 chromium 浏览器)通过 API 发出请求的地方。
重要提示:在初始化客户端之前进行更改!
在CharacterAI类中,您可以访问请求者并定义.puppeteerPath
变量或其他参数,属性包括(并且在未来版本中可能会更改) :
// Chromium 可执行文件路径(在某些 linux 发行版中,为 /usr/bin/chromium-browser)puppeteerPath;// 浏览器启动时的默认参数 puppeteerLaunchArgs;// 代表默认超时的布尔值(默认为 30000ms)puppeteerNoDefaultTimeout;// 代表数字默认协议超时puppeteerProtocolTimeout;
对于 Linux 用户,如果您的 puppeteer 没有自动检测到 Chromium 的路径,您将需要手动指定它。
为此,您只需将puppeteerPath
设置为您的 Chromium 路径:
characterAI.puppeteerPath = "/path/to/chromium-browser";
在 Linux 上,您可以使用which
命令查找 Chromium 的安装位置:
$ which chromium-browser # 或用于启动 chrome 的任何命令
我建议您经常更新此软件包以修复错误和添加新内容。
如果您有问题或想法,请在问题部分告诉我。
如果您使用此 API,您还必须遵守其网站的使用条款。
(真实)coloride - 2023-2024,麻省理工学院许可。