非官方角色 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 >除非您知道自己在做什麼,否則請勿與任何人分享此資訊!是這樣,請關閉頁面。 )">將會話令牌複製到剪貼簿</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");// 其他支援的類型包括緩衝區、可讀流、檔案路徑和URLsawait chat.uploadImage(imageBuffer);// 上傳映像時需要包含圖片相對路徑imageawait 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,麻省理工學院許可。