Найти в Дзене
КиберMamedov 💻🔥

Создаем свои персонажи на базе API нейросети Character.AI

Оглавление

Введение:

Нейронные сети стали одной из самых инновационных и захватывающих технологий в области искусственного интеллекта. Они могут выполнять множество задач, от распознавания образов до автоматического перевода языка. Однако, одним из наиболее захватывающих применений нейронных сетей является создание персонажей, которые могут взаимодействовать и общаться с людьми.

Character.ai - это одна из передовых компаний, которая разрабатывает нейронные сети для создания виртуальных персонажей. Используя передовые методы машинного обучения и глубокого обучения, Character.ai стремится создать персонажей, которые могут проявлять эмоции, иметь свои уникальные личности и вести естественные диалоги с пользователями.

В этой статье мы узнаем, как можно программно получить доступ к Character.ai и использовать это в своих проектах: боты, помощники и т.д.

Что такое Character.ai:

Если вы работали с данным сервисом и у вас уже есть учетная запись там, то сразу переходите к разделу “Начинаем программировать”.

Character.ai - это компания, специализирующаяся на разработке передовых нейронных сетей для создания виртуальных персонажей. С помощью передовых методов машинного обучения и глубокого обучения, Character.ai стремится преодолеть границы между реальностью и виртуальным миром, создавая персонажей, которые обладают уникальными личностями и могут взаимодействовать с людьми на более естественном уровне.

Но что делает Character.ai особенной? Одной из ключевых особенностей компании является ее способность создавать персонажей, которые могут проявлять эмоции и иметь выраженные эмоциональные реакции. Нейронные сети Character.ai обучаются распознавать и генерировать эмоциональные выражения, что позволяет персонажам отображать широкий спектр эмоций, включая радость, грусть, страх и гнев.

Давай зайдем и посмотрим, как работать с этим сервисом.

Окно приветствия
Окно приветствия

Нажми кнопку Accept и можешь сразу поменять язык на русский.

Выбор языка
Выбор языка

Теперь переходи к регистрации, т.к. нам понадобится учетная запись.

Переход к регистрации
Переход к регистрации

Воспользуйтесь для оперативности регистрации одной из учетных записей ваших социальных сетей или регистрируйтесь через свою почту.

Главная страница с персонажами
Главная страница с персонажами

Ты зарегистрировался и теперь можешь работать без ограничений. На главной странице тебе сразу рекомендуют самых популярных персонажей. Выбери любого и давай протестируем.

Чат с выбранным персонажем
Чат с выбранным персонажем

Как только ты открываешь страницу чата, то персонаж приветствует тебя сообщением, которое было заложено на этапе создания персонажа. Чаще всего это английский текст, но все персонажи разговаривают на русском. Достаточно лишь спросить у персонажа кто он или попросить рассказать о себе.

Мой выбранный персонаж является поклонником Linux 🙂
Мой выбранный персонаж является поклонником Linux 🙂

Персонажей очень много, от учителей до известных личностей. У каждого из них своя легенда, которой он придерживается. На данном этапе можно закончить знакомство с сервисом и переходить к программированию собственного бота, который будет работать с персонажами из character.ai.

Начинаем программировать:

В заголовке статьи написано, что мы будем использовать API character.ai, но у него нет открытого API. Однако есть библиотека для Python, которую создали добрые разработчики.

Тема достаточно объемная, поэтому я сделаю цикл статей на базе этого сервиса и библиотеки. Сегодня нашей целью является написать программу, которая будет иметь возможность отправлять сообщение конкретному персонажу и получать от него ответ.

Начнем с того, что установим библиотеку.

pip install characterai

После установки переходим на страницу документации данной библиотеки.

Здесь достаточно много особенностей, о которых не говорится в документации, но вы с этим столкнетесь и вам предстоит это решать. Поэтому внимательно читайте статью, чтобы все было без проблем, т.к. в ней учтены все нюансы. Вот первый момент. Копируй этот код и вставляй его в свой заранее созданный рабочий файл.

В статье будет затрагиваться только синхронный подход
В статье будет затрагиваться только синхронный подход

По коду все просто: мы импортируем класс PyCAI и создаем его экземпляр, где нужно указать TOKEN. Вопрос лишь в том “а где взять токен?”, здесь придется провести некоторые манипуляции.

Переходите на страницу https://beta.character.ai/ и открывайте инструмент разработчика нажав на клавишу F12. Далее открывайте раздел Хранилище (В Google Chrome этот раздел называется Application) ⇒ Локальное хранилище ⇒ выбираем там единственный пункт ⇒ находим поле char_token ⇒ копируем значение от ключа value.

Как получить токен.
Как получить токен.

Теперь аргумент класса PyCAI('TOKEN') вместо слова TOKEN вставляем скопированное значение.

Отлично! Теперь переходим ко второй части кода из документации. Копируй и вставляй себе.

Вторая часть кода
Вторая часть кода

В этой части кода в первую очередь, в данной строчке кода char = input('Enter CHAR: ') выбирается персонаж, с которым вы хотите начать беседу.

Думаю на этапе написания программы можно убрать запрос, чтобы не тратить время на постоянный ввод идентификатора, давай уберем input и вставим идентификатор персонажа один раз. Остается только узнать, а как же получить идентификатор персонажа.

Вновь возвращайся на https://beta.character.ai/ и выбери любого персонажа. После того, как откроешь с ним чат, то посмотри в адресную строку браузера, там есть переменная char, в которой хранится идентификатор персонажа.

Идентификатор персонажа в адресной строке
Идентификатор персонажа в адресной строке

Скопируй его и вставь в виде значения переменной.

Убрали input и вставили идентификатор как значение.
Убрали input и вставили идентификатор как значение.

Следующая часть из этого участка кода может создать у вас проблему. Вы в любом случае получите ошибку, т.к. общение с персонажами на сервере и через библиотеку никак не сохраняется в истории. Поэтому вот эта строчка кода chat = client.chat.get_chat(char) вызовет ошибку. Здесь вызывается метод get_chat, в него передается идентификатор персонажа, который мы сохранили в переменной char.

Метод get_chat загружает историю сообщений с персонажем по его идентификатору. Но так как вы с этим персонажем еще не общались используя данную библиотеку, то вам необходимо сделать первый вход через другой метод new_chat, т.е. создать новый чат.

Давай напишем проверку, если выпадет исключение, то создаем новый чат, а если все хорошо, то загружаем историю и продолжаем общаться.

Сделали проверку на ошибки
Сделали проверку на ошибки

Осталось скопировать заключительную часть кода из документации.

Заключительная часть кода
Заключительная часть кода

Здесь бесконечный цикл каждый раз запрашивает от вас ввод сообщения для персонажа, затем его отправляет. Полученный ответ разделяет на имя (name) и текст ответа (text). В результате выводится ответ в формате “Имя автора: текст сообщения” в последней строке кода print(f"{name}: {text}").

Все, теперь запускай и проверяй. Там где ты должен написать сообщение будет ожидание со словом You:.

Общение с персонажем
Общение с персонажем

Ура! Все получилось. В следующей статье рассмотрим дополнительные возможности данного сервиса и библиотеки.

Убедительная просьба, поставь лайк, если статья была полезной, напиши комментарий, если есть желание и подпишись на канал, если не хочешь ничего пропускать. Спасибо за прочтение!