非公式 Character AI API 用の Node.js クライアント。AI でキャラクターに命を吹き込む素晴らしい Web サイトです。
このリポジトリは、RichardDorian の非公式ノード API からインスピレーションを得ています。ただし、使いにくく、安定性もアーカイブ性もあまり高くありませんでした。ということでJavaScriptで作り直しました。
このプロジェクトはCharacter AIとは一切関係ありません。コミュニティプロジェクトです。このプロジェクトの目的は、Character AI を活用したプロジェクトを実現し、構築することです。
このプロジェクトが気に入ったら、ぜひウェブサイトをチェックしてください。
完全に Javascript と CommonJS で書かれています (最大限の互換性と使いやすさを実現するため)
非同期リクエスト
会話を使用するか、API を使用して情報を取得します
使いやすい
積極的な開発
ゲストおよびトークンログインのサポート
npm インストール node_characterai
基本的なゲスト認証とメッセージ:
const CharacterAI = require("node_characterai");const CharacterAI = new CharacterAI();(async () => { // ゲストとして認証します (アカウントを使用するには `.authenticateWithToken()` を使用します) 文字 AI.authenticateAsGuest() を待ちます。 // ここにキャラクターのIDを入れます const CharacterId = "8_1NyR8w1dOXmI1uWaieQcd147hecbdIK7CeEAIrdJw"; // 会話と対話するためのチャット オブジェクトを作成します const chat = 待機characterAI.createOrContinueChat(characterId); // メッセージを送信する const response = await chat.sendAndAwaitResponse("Hello discord mod!", true); console.log(応答); // 文字列として使用するには `response.text` を使用します})();
API の一部 (会話の管理など) では、 sessionToken
使用してログインする必要があります。
これを入手するには、ブラウザを開いて、 localStorage
にある Character.AI Web サイトにアクセスします。
重要
古いバージョンのパッケージを使用していて、 Authentication token is invalid
メッセージが表示された場合は、認証のために再びsessionToken
必要になります (アップデート1.2.5
以降)。以下を参照してください。
パッケージを使用しているものを使用していて、しばらく最新バージョンに更新していない場合は、 npm update node_characterai
実行するか、ファイルを手動でコピーするか、パッケージのそれぞれの問題を開くことでパッケージを更新してください (パッケージに問題がある場合)。 1つ)。
ブラウザで Character.AI Web サイトを開きます (https://beta.character.ai)
開発者ツールを開きます ( F12 、 Ctrl+Shift+I 、またはCmd+J )
Application
タブに移動します
Storage
セクションに移動し、 Local Storage
をクリックします。
char_token
キーを探します
オブジェクトを開き、値を右クリックしてセッション トークンをコピーします。
ブラウザの OLD インターフェイス (https://old.character.ai/) で Character.AI Web サイトを開きます。
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()
を使用したトークンでログイン -フル機能と無制限のメッセージングを実現
キャラクター ID はキャラクターのチャット ページの URL で確認できます。
たとえば、キャラクターDiscord Moderator
のチャット ページに移動すると、URL https://beta.character.ai/chatchar=8_1NyR8w1dOXmI1uWaieQcd147hecbdIK7CeEAIrdJw
が表示されます。
URL の最後の部分はキャラクター ID です。
️ キャラクター AI は、会話の中でイメージを生成し、解釈する機能を備えています。一部のキャラクターは、この概念を特殊文字に基づいて作成したり、画像を認識したり、キャラクターと対話して何かについての詳細を与えるために使用したりします。可能性は無限です。
Character AI の画像機能のほとんどは次のように使用できます。
// これらの関数のほとんどは、画像への URL を返しますawait chat.generateImage("dolphins swim in green Water");await chat.uploadImage("https://www.example.com/image.jpg");await chat.uploadImage("./photos/image.jpg");// サポートされているその他のタイプは、バッファー、読み取り可能なストリーム、ファイル パス、および 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 が自動的に Chromium を見つけられなかった場合はエラーになります。修正についてはこれを参照してください。 | |
なぜクロムプロセスがオープンになるのか | これは、現時点では単純なフェッチが機能しておらず、Cloudflare の制限を回避するために puppeteer (Chrome ブラウザ制御ライブラリ) を使用しているためです。 |
authenticateAsGuest() が機能しない | 問題 #14 を参照してください。 |
メッセージの最大量に達する | 残念ながら、ゲスト アカウントが保持できるメッセージの量は限られており、制限されてログインが強制されます。詳細については以下を参照してください |
アカウントを使用してライブラリを一括使用する方法 | 1.0.0 で導入された機能である会話を使用して、ユーザーとチャネルに割り当てることができます。会話を再現するには、OOC (Out of Character) を使用して、AI に複数の人と一緒にいると思わせます。ここで例を参照してください。 (免責事項: 一部のキャラクターでは、その性格により OOC リクエストを無視する場合があります)。 |
一度に複数のリクエストを使用するときに同時実行とクラッシュを回避するにはどうすればよいですか | ここで @SeoulSKY がasync-mutex 使用して見つけた解決策を確認してください。 |
これは公式ですか | いいえ、このプロジェクトはウェブサイトのファンによって作成されたものであり、非公式です。開発者をサポートするには、Web サイトをチェックしてください。 |
node_characterai で素晴らしいことができました | 私にお知らせください! |
✉️連絡したい | 私のプロフィールを見てください |
☕応援したい | ko.fi: https://ko-fi.com/coloride でコーヒーを送っていただけます。ありがとうございました! |
アイデアがある | 「問題」タブで問題を開きます |
➕その他の問題 | 「問題」タブで問題を開きます |
Client
クラスでは、 Requester
クラスにアクセスし、 characterAI.requester.(property)
を使用して、CharacterAI の動作方法に関連する puppeteer またはその他の変数を定義できます。また、ここに記載されている内容は変更される可能性があるため、パッケージを頻繁に更新してください。
リクエスタからプロパティ.usePlus
変更し、必要に応じて.forceWaitingRoom
を変更します。
例えば:
// デフォルトは `false`characterAI.requester.usePlus = true;
数か月ほど前、このパッケージではnode-fetch
モジュールの実行のみが必要でした。パッケージは単純な API リクエストを使用して作成されました。
しかし、時間の経過とともに、Cloudflare はスクレイピングやボットとの戦いを始めたため、誰もがこのパッケージを使用することはほぼ不可能になりました。
ここで、バージョン 1.1 以降では、API でリクエストを行うために puppeteer (Chrome ブラウザを使用) が使用されます。
重要: クライアントを初期化する前に変更を行ってください。
CharacterAI クラスでは、リクエスターにアクセスして.puppeteerPath
変数またはその他の引数を定義できます。プロパティには次のものが含まれます(将来のバージョンで変更される可能性があります) 。
// Chromium 実行可能パス (一部の Linux ディストリビューションでは、/usr/bin/chromium-browser)puppeteerPath;// ブラウザ起動時のデフォルト引数puppeteerLaunchArgs;// デフォルトのタイムアウトを表すブール値 (デフォルトは 30000ms)puppeteerNoDefaultTimeout;// を表す数値デフォルトのプロトコルタイムアウトpuppeteerProtocolTimeout;
Linux ユーザーの場合、Puppeteer が Chromium へのパスを自動的に検出しない場合は、手動でパスを指定する必要があります。
これを行うには、 puppeteerPath
Chromium パスに設定するだけです。
CharacterAI.puppeteerPath = "/パス/to/chromium-browser";
Linux では、 which
コマンドを使用して Chromium がインストールされている場所を見つけることができます。
$ どの chromium-browser # または chrome の起動に使用するコマンド
バグ修正や新しい追加のためにこのパッケージを頻繁に更新することをお勧めします。
問題やアイデアがある場合は、 「問題」セクションでお知らせください。
この API を使用すると、その Web サイトの使用条件にも従うことになります。
(real)coloride - 2023 ~ 2024 年、MIT ライセンス。