Node.js-Client für die inoffizielle Character AI API, eine tolle Website, die Charaktere mit KI zum Leben erweckt!
Dieses Repository ist von der inoffiziellen Node-API von RichardDorian inspiriert. Allerdings fand ich es schwierig zu verwenden und es war nicht wirklich stabil und archiviert. Also habe ich es in Javascript neu gemacht.
Dieses Projekt ist in keiner Weise mit Character AI verbunden! Es ist ein Gemeinschaftsprojekt. Der Zweck dieses Projekts besteht darin, Projekte zu entwickeln und zu erstellen, die auf Charakter-KI basieren.
Wenn Ihnen dieses Projekt gefällt, schauen Sie bitte auf deren Website nach.
Vollständig in Javascript und CommonJS geschrieben (für maximale Kompatibilität und Benutzerfreundlichkeit)
Asynchrone Anfragen
Nutzen Sie Konversationen oder nutzen Sie die API, um Informationen abzurufen
Einfach zu bedienen
Aktive Entwicklung
Unterstützung für Gast- und Token-Anmeldung
npm installiere node_characterai
Grundlegende Gastauthentifizierung und Nachricht:
const CharacterAI = require("node_characterai");const CharacterAI = new CharacterAI();(async () => { // Als Gast authentifizieren (verwenden Sie „.authenticateWithToken()“, um ein Konto zu verwenden) warte auf CharakterAI.authenticateAsGuest(); // Platziere hier die ID deines Charakters const CharacterId = "8_1NyR8w1dOXmI1uWaieQcd147hecbdIK7CeEAIrdJw"; // Erstellen Sie ein Chat-Objekt, um mit der Konversation zu interagieren const chat = warte auf CharacterAI.createOrContinueChat(characterId); // Eine Nachricht senden const Response = Warte chat.sendAndAwaitResponse("Hallo Discord Mod!", true); console.log(response); // „response.text“ verwenden, um es als String zu verwenden})();
Für einige Teile der API (z. B. das Verwalten einer Konversation) müssen Sie mit einem sessionToken
angemeldet sein.
Um es zu erhalten, können Sie Ihren Browser öffnen und die Character.AI-Website in localStorage
aufrufen.
Wichtig
Wenn Sie alte Versionen des Pakets verwenden und ein Authentication token is invalid
erhalten, benötigen Sie jetzt erneut ein sessionToken
zur Authentifizierung (ab Update 1.2.5
und höher). Siehe unten.
Wenn Sie etwas verwenden, das das Paket verwendet und seit einiger Zeit nicht auf die neueste Version aktualisiert wurde, stellen Sie sicher, dass Sie das Paket aktualisieren, indem Sie npm update node_characterai
ausführen oder die Dateien manuell kopieren oder eine entsprechende Ausgabe für ihr Paket öffnen (falls vorhanden). eins).
Öffnen Sie die Character.AI-Website in Ihrem Browser (https://beta.character.ai)
Öffnen Sie die Entwicklertools ( F12 , Strg+Umschalt+I oder Befehl+J ).
Gehen Sie zur Registerkarte Application
Gehen Sie zum Abschnitt Storage
und klicken Sie auf Local Storage
Suchen Sie nach dem char_token
-Schlüssel
Öffnen Sie das Objekt, klicken Sie mit der rechten Maustaste auf den Wert und kopieren Sie Ihr Sitzungstoken.
Öffnen Sie die Character.AI-Website in Ihrem Browser auf der ALTEN Benutzeroberfläche (https://old.character.ai/).
Öffnen Sie die URL-Leiste, schreiben Sie javascript:
(Groß-/Kleinschreibung beachten) und fügen Sie Folgendes ein:
(function(){let e=window.localStorage["char_token"];if(!e){alert("Sie müssen sich zuerst anmelden!");return;}let t=JSON.parse(e).value ;document.documentElement.innerHTML=`<div><i><p>bereitgestellt von node_characterai - <a href="https://github.com/realcoloride/node_characteraitab=readme-ov-file#using-an-access-token">Klicken Sie hier für weitere Informationen</a></p></i><p> Hier ist Ihr Sitzungstoken:</p><input value="${t}" readonly><p><strong>Teilen Sie dies nicht mit anderen, es sei denn, Sie wissen, was Sie tun gestohlen oder von jemandem angefordert, den Sie nicht kennen Vertrauen, sie könnten ohne Ihre Zustimmung auf Ihr Konto zugreifen; wenn ja, schließen Sie bitte sofort die Seite.</strong></p><button id="copy" onclick="navigator.clipboard.writeText('${t}' ); warning('In die Zwischenablage kopiert!')">Sitzungstoken in die Zwischenablage kopieren</button><button onclick="window.location.reload();">Aktualisieren Sie die page</button></div>`;localStorageKey=null;storageInformation=null;t=null;})();
Die folgende Seite sollte erscheinen:
Klicken Sie auf die entsprechenden Schaltflächen, um Ihr Zugriffstoken oder ID-Token in Ihre Zwischenablage zu kopieren.
Wenn Sie das Paket verwenden, können Sie:
Melden Sie sich mit authenticateAsGuest()
als Gast an – für Massennutzung oder Testzwecke
Melden Sie sich mit Ihrem Konto oder einem Token mit authenticateWithToken()
an – für alle Funktionen und unbegrenztes Versenden von Nachrichten
Sie finden Ihre Charakter-ID in der URL der Chat-Seite eines Charakters.
Wenn Sie beispielsweise auf die Chat-Seite des Charakters Discord Moderator
gehen, sehen Sie die URL https://beta.character.ai/chatchar=8_1NyR8w1dOXmI1uWaieQcd147hecbdIK7CeEAIrdJw
.
Der letzte Teil der URL ist die Zeichen-ID:
️ Charakter-KI hat die Fähigkeit, Bilder in einem Gespräch zu erzeugen und zu interpretieren. Einige Charaktere basieren dieses Konzept auf Sonderzeichen oder verwenden es möglicherweise zum Erkennen von Bildern oder um mit einem Charakter zu interagieren und ihm mehr Details zu etwas zu geben: Die Möglichkeiten sind endlos .
Die meisten Bildfunktionen der Charakter-KI können wie folgt verwendet werden:
// Die meisten dieser Funktionen geben Ihnen eine URL zum Bild zurückawait chat.generateImage("Delfine schwimmen im grünen Wasser");await chat.uploadImage("https://www.example.com/image.jpg");await chat.uploadImage("./photos/image.jpg");// Weitere unterstützte Typen sind Puffer, lesbare Streams, Dateipfade und URLsawait chat.uploadImage(imageBuffer);// Das Einschließen des relativen Bildpfads ist erforderlich Laden Sie ein Bild hoch und warten Sie auf chat.sendAndAwaitResponse({ Text: „Was ist in diesem Bild“, image_rel_path: „https://www.example.com/coffee.jpg“, image_description: „Das ist Kaffee.“, image_description_type: „HUMAN“ // Legen Sie dies fest, wenn Sie manuell sagen, was die KI sieht}, true);
Vielen Dank an @creepycats für die Umsetzung der meisten dieser Dinge
Problem | Antwort |
---|---|
Token war ungültig | Stellen Sie sicher, dass Ihr Token tatsächlich gültig ist und dass Sie den gesamten Token kopiert haben (er ist ziemlich lang) oder dass Sie das Paket nicht aktualisiert haben. |
Auf den meisten Systemen findet Puppeteer Chromium automatisch. Bei bestimmten Distributionen muss der Pfad jedoch manuell angegeben werden. Diese Warnung tritt auf, wenn node_characterai Chromium unter Linux ( /usr/bin/chromium-browser ) nicht finden konnte, und gibt eine Fehlermeldung aus, wenn Puppeteer es nicht automatisch finden kann. Hier finden Sie eine Lösung. | |
Warum werden Chromprozesse eröffnet? | Das liegt daran, dass das einfache Abrufen derzeit nicht funktioniert und ich Puppeteer (eine Chromium-Browser-Steuerelementbibliothek) verwende, um die Einschränkungen von Cloudflare zu umgehen. |
authenticateAsGuest() funktioniert nicht | Siehe Ausgabe Nr. 14. |
Erreichen Sie die maximale Anzahl an Nachrichten | Leider verfügen Gastkonten nur über eine begrenzte Anzahl an Nachrichten, bevor sie eingeschränkt und zur Anmeldung gezwungen werden. Weitere Informationen finden Sie weiter unten |
So verwenden Sie ein Konto für die Massennutzung der Bibliothek | Sie können Konversationen , eine in 1.0.0 eingeführte Funktion, verwenden, um sie Benutzern und Kanälen zuzuweisen. Um ein Gespräch zu reproduzieren, verwenden Sie OOC (Out of Character), um der KI den Eindruck zu vermitteln, dass Sie mit mehreren Personen zusammen sind. Sehen Sie hier ein Beispiel: (Haftungsausschluss: Bei einigen Charakteren werden sie aufgrund ihrer Persönlichkeit jede OOC-Anfrage ignorieren.) |
Wie vermeide ich Parallelität und Abstürze, wenn mehr als eine Anfrage gleichzeitig verwendet wird? | Überprüfen Sie hier die von @SeoulSKY gefundene Lösung mit async-mutex . |
Ist das offiziell? | Nein, dieses Projekt wurde von einem Fan der Website erstellt und ist inoffiziell. Um die Entwickler zu unterstützen, schauen Sie sich bitte deren Website an . |
Habe etwas Großartiges mit node_characterai gemacht | Bitte lassen Sie es mich wissen! |
✉️ Möchten Sie mit mir Kontakt aufnehmen? | Siehe mein Profil |
☕ Möchte mich unterstützen | Du kannst mir auf ko.fi einen Kaffee schicken: https://ko-fi.com/coloride. Vielen Dank! |
Haben Sie eine Idee | Öffnen Sie ein Problem auf der Registerkarte „Probleme“. |
➕ Anderes Problem | Öffnen Sie ein Problem auf der Registerkarte „Probleme“. |
In der Client
-Klasse können Sie auf die Requester
-Klasse zugreifen und Puppeteer- oder andere Variablen definieren, die sich auf die Funktionsweise von CharacterAI beziehen, indem Sie characterAI.requester.(property)
verwenden. Außerdem kann sich hier alles ändern. Stellen Sie daher sicher, dass Sie das Paket regelmäßig aktualisieren.
Ändern Sie die Eigenschaft .usePlus
des Anforderers und ändern Sie bei Bedarf .forceWaitingRoom
.
Zum Beispiel:
// Standard ist `false`characterAI.requester.usePlus = true;
Vor etwa ein paar Monaten benötigte das Paket nur das node-fetch
-Modul, um ausgeführt zu werden. Das Paket wurde mithilfe einfacher API-Anfragen erstellt.
Mit der Zeit begann Cloudflare jedoch, gegen Scraping und Bots zu kämpfen, was es auch für jedermann nahezu unmöglich machte, dieses Paket zu nutzen.
Hier wird in den Versionen 1.1 und höher Puppeteer verwendet (der einen Chromium-Browser verwendet), um Anfragen mit der API zu stellen.
WICHTIG: Nehmen Sie die Änderungen vor, bevor Sie Ihren Client initialisieren!
In der CharacterAI-Klasse können Sie auf den Requester zugreifen und die Variable .puppeteerPath
oder andere Argumente definieren. Zu den Eigenschaften gehören (und können in zukünftigen Versionen geändert werden) :
// Pfad der ausführbaren Chromium-Datei (in einigen Linux-Distributionen /usr/bin/chromium-browser)puppeteerPath;// Standardargumente für den Start des BrowserspuppeteerLaunchArgs;// Boolescher Wert, der das Standard-Timeout darstellt (Standard ist 30000 ms)puppeteerNoDefaultTimeout;// Zahl, die darstellt das Standardprotokoll timeoutpuppeteerProtocolTimeout;
Für Linux-Benutzer: Wenn Ihr Puppenspieler den Pfad zu Chromium nicht automatisch erkennt, müssen Sie ihn manuell angeben.
Dazu müssen Sie nur puppeteerPath
auf Ihren Chromium-Pfad setzen:
CharacterAI.puppeteerPath = "/path/to/chromium-browser";
Unter Linux können Sie den Befehl which
verwenden, um herauszufinden, wo Chromium installiert ist:
$ which chromium-browser # oder welcher Befehl auch immer Sie verwenden, um Chrome zu starten
Ich empfehle Ihnen, dieses Paket regelmäßig zu aktualisieren, um Fehler zu beheben und neue Ergänzungen zu erhalten.
Wenn Sie ein Problem oder eine Idee haben, teilen Sie mir dies im Abschnitt „Probleme“ mit.
Wenn Sie diese API nutzen, sind Sie auch an die Nutzungsbedingungen der Website gebunden.
(Echte) Farbe – 2023–2024, lizenziertes MIT.