Клиент Node.js для неофициального API символов AI, потрясающего веб-сайта, который оживляет персонажей с помощью ИИ!
Этот репозиторий создан на основе неофициального API узла Ричарда Дориана. Однако мне было сложно его использовать, и он не был действительно стабильным и заархивированным. Поэтому я переделал его в javascript.
Этот проект никак не связан с Feature AI! Это общественный проект. Цель этого проекта — создание проектов, основанных на ИИ персонажей.
Если вам нравится этот проект, пожалуйста, посетите их сайт.
Полностью написан на Javascript и CommonJS (для максимальной совместимости и простоты использования).
Асинхронные запросы
Используйте беседы или API для получения информации.
Простота в использовании
Активное развитие
Поддержка гостевого входа и входа по токену
npm установить node_characterai
Базовая гостевая аутентификация и сообщение:
const CharacterAI = require("node_characterai");constcharacterAI = новый CharacterAI();(async() => { // Аутентификация в качестве гостя (используйте `.authenticateWithToken()` для использования учетной записи) дождитесь персонажаAI.authenticateAsGuest(); // Разместите здесь идентификатор вашего персонажа constcharacterId = "8_1NyR8w1dOXmI1uWaieQcd147hecbdIK7CeEAIrdJw"; // Создаем объект чата для взаимодействия с разговором const чат = ожидайте характерAI.createOrContinueChat(characterId); // Отправляем сообщение const response = awaitchat.sendAndAwaitResponse("Привет, мод Discord!", true); console.log(ответ); // Используйте `response.text`, чтобы использовать его как строку})();
Некоторые части API (например, управление беседой) требуют входа в систему с использованием sessionToken
.
Чтобы его получить, вы можете открыть браузер, зайти на сайт Character.AI в localStorage
.
Важный
Если вы используете старые версии пакета и получаете 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();">Обновить page</button></div>`;localStorageKey=null;storageInformation=null;t=null;})();
Должна появиться следующая страница:
Нажмите соответствующие кнопки, чтобы скопировать токен доступа или токен идентификатора в буфер обмена.
Используя пакет, вы сможете:
Войдите в систему как гость, используя authenticateAsGuest()
— для массового использования или тестирования.
Войдите в систему, используя свою учетную запись или токен, используя authenticateWithToken()
— для доступа ко всем функциям и неограниченному обмену сообщениями.
Вы можете найти идентификатор своего персонажа в URL-адресе страницы чата персонажа.
Например, если вы перейдете на страницу чата персонажа Discord Moderator
вы увидите URL https://beta.character.ai/chatchar=8_1NyR8w1dOXmI1uWaieQcd147hecbdIK7CeEAIrdJw
.
Последняя часть URL-адреса — это идентификатор персонажа:
️ ИИ персонажей обладает способностью генерировать и интерпретировать изображения в ходе разговора. Некоторые персонажи основывают эту концепцию на специальных символах или, возможно, используют ее для распознавания изображений или для взаимодействия с персонажем и предоставления ему более подробной информации о чем-то: возможности безграничны .
Большинство функций изображения персонажа AI можно использовать следующим образом:
// Большинство этих функций вернут вам URL-адрес изображения. chat.uploadImage("./photos/image.jpg");// Другими поддерживаемыми типами являются буферы, читаемые потоки, пути к файлам и URL-адреса.chat.uploadImage(imageBuffer);// Включая относительный путь к изображению необходим для загрузки imageawaitchat.sendAndAwaitResponse({ текст: «Что изображено на этом изображении», image_rel_path: "https://www.example.com/coffee.jpg", image_description: "Это кофе.", image_description_type: "HUMAN" // Установите это значение, если вы вручную говорите, на что смотрит ИИ}, true);
Респект @creepycats за реализацию большей части этих вещей.
Проблема | Отвечать |
---|---|
Токен недействителен | Убедитесь, что ваш токен действительно действителен, и вы скопировали весь токен (он довольно длинный) или вы не обновили пакет. |
В большинстве систем puppeteer автоматически найдет Chromium. Но в некоторых дистрибутивах путь необходимо указывать вручную. Это предупреждение появляется, если node_characterai не может найти Chromium в Linux ( /usr/bin/chromium-browser ), и выдает ошибку, если puppeteer не может найти его автоматически. Посмотрите это для исправления. | |
Почему открываются процессы хрома | Это связано с тем, что на данный момент простая выборка не работает, и я использую puppeteer (библиотеку управления браузером Chrome), чтобы обойти ограничения Cloudflare. |
authenticateAsGuest() не работает | См. выпуск №14. |
Достигните максимального количества сообщений | К сожалению, гостевые учетные записи имеют только ограниченное количество сообщений, прежде чем они будут ограничены и вынуждены войти в систему. Дополнительную информацию см. ниже. |
Как использовать учетную запись для массового использования библиотеки | Вы можете использовать беседы , функцию, представленную в 1.0.0 , для назначения пользователям и каналам. Чтобы воспроизвести разговор, используйте OOC (не от персонажа), чтобы ИИ думал, что вы находитесь с несколькими людьми. Посмотрите пример здесь: (Отказ от ответственности: личность некоторых персонажей заставляет их игнорировать любые запросы OOC). |
Как избежать параллелизма и сбоев при использовании более одного запроса одновременно | Проверьте решение, найденное @SeoulSKY здесь, используя async-mutex . |
Это официально? | Нет, этот проект создан фанатом сайта и является неофициальным. Чтобы поддержать разработчиков, посетите их сайт . |
Сделал что-то потрясающее с node_characterai | Пожалуйста, дайте мне знать! |
✉️ Хотите связаться со мной | Посмотреть мой профиль |
☕ Хотите меня поддержать | Вы можете отправить мне кофе на ko.fi: https://ko-fi.com/coloride. Большое спасибо! |
Есть идея | Откройте проблему на вкладке «Проблемы» . |
➕ Другая проблема | Откройте проблему на вкладке «Проблемы» . |
В классе Client
вы можете получить доступ к классу Requester
и определить puppeteer или другие переменные, связанные с тем, как будет работать CharacterAI, с помощьюcharacterAI.requester characterAI.requester.(property)
. Кроме того, все здесь может быть изменено, поэтому не забывайте часто обновлять пакет.
Измените свойство .usePlus
у запрашивающей стороны и при необходимости измените .forceWaitingRoom
.
Например:
// По умолчанию — falsecharacterAI.requester.usePlus = true;
Примерно несколько месяцев назад для запуска пакета требовался только модуль node-fetch
. Пакет был сделан с использованием простых запросов API.
Однако со временем Cloudflare начал бороться с парсингом и ботами, что также сделало практически невозможным использование этого пакета кем-либо.
Здесь в версиях 1.1 и выше используется puppeteer (который использует браузер Chromium) для выполнения запросов к API.
ВАЖНО: внесите изменения до инициализации клиента!
В классе CharacterAI вы можете получить доступ к запрашивающей стороне и определить переменную .puppeteerPath
или другие аргументы, а свойства включают (и могут быть изменены в будущих версиях) :
// Путь к исполняемому файлу Chromium (в некоторых дистрибутивах Linux /usr/bin/chromium-browser)puppeteerPath;// Аргументы по умолчанию для запуска браузера puppeteerLaunchArgs;// Логическое значение, представляющее таймаут по умолчанию (по умолчанию 30000 мс)puppeteerNoDefaultTimeout;// Число, представляющее протокол по умолчанию timeoutpuppeteerProtocolTimeout;
Для пользователей Linux: если ваш кукловод не определяет путь к Chromium автоматически, вам придется указать его вручную.
Для этого вам просто нужно установить puppeteerPath
на ваш путь к Chromium:
characterAI.puppeteerPath = "/путь/к/хром-браузеру";
В Linux вы можете использовать команду which
, чтобы узнать, где установлен Chromium:
$ какой браузер Chrome # или любую другую команду, которую вы используете для запуска Chrome
Я рекомендую вам часто обновлять этот пакет для исправления ошибок и новых дополнений.
Если у вас есть проблема или идея, дайте мне знать в разделе «Проблемы» .
Если вы используете этот API, вы также обязаны соблюдать условия использования их веб-сайта.
(реальный)coloride - 2023-2024 гг., лицензия MIT.