Важно! Если Вы не читали предыдущей статьи, то понять данный материал будет очень сложно. Обязательно прочитайте первую статью и возвращайтесь сюда.
У нас сейчас есть определенная особенность в нашей программе, там выбран один персонаж, который зашит в переменной char.
Если помните, то в документации предлагался input, где необходимо было при каждом запуске программы вводить идентификатор персонажа. Я думаю, что это совсем плохая идея. У меня есть предложение, сделать чат-рулетку, где случайно выбираются персонажи, которые общаются с тобой на разные темы, в соответствии со своей легендой.
В таком случае необходимо получить список идентификаторов персонажей, которые есть на сервисе character.ai. Получить абсолютно всех будет достаточно сложно, но самых популярных можем. Как это сделать? Все просто, идем в документацию библиотеки.
Есть специальный метод, который называется trending(). Он возвращает словарь с одни ключом, значением которого является список.
Предлагаю разгрузить наш основной файл и создать отдельный файл под названием information.py в папке с проектом. Там создадим класс под названием Trending. Также создадим метод для инициализации объекта и объявляем аргумент, который будет принимать экземпляр класса PyCAI. Назовем его также, как и в основном файле client. Сам метод будет содержать две строки:
В первой строке данного метода мы получаем, посредством метода trending заявленный ранее словарь. Во второй строке создается поле list_characters, в которое присваивается значение от метода get_list_characters.
Можно было без него и сразу в этой строке писать, но давайте держать код в чистоте, чтобы дальше можно было его легко читать. Поэтому создаем отдельный метод.
В данном методе мы просто возвращаем список, который доступен по ключу trending_characters, а сам находится в поле info_characters.
Инициализация закончилась, экземпляр класса будет создан успешно. А теперь нужно задуматься о том, чтобы получить случайный элемент. Поэтому нам необходимо подключить библиотеку random.
Теперь можно смело приступать к созданию метода, который возвращает идентификатор случайного персонажа. Давайте так и назовем метод get_random_character_id.
Его задача получить случайный элемент, а затем взять из этого элемента значение, которое хранится под ключом external_id.
На этом создание данного класса можно считать законченны. Теперь переходим в наш основной файл и импортируем класс Trending.
Теперь создаем его экземпляр.
В заключении присваиваем случайный идентификатор вместо того, который у нас сейчас введен руками.
Давай проверять. Запускай и сразу спрашивай кто этот персонаж и пусть он представится. Так как ты теперь не знаешь кто это такой.
Очень хорошо, все работает, но есть небольшая проблема. Каждый раз нам необходимо вводить руками вопрос о том, чтобы персонаж представился и рассказал о себе. Я предлагаю сделать так, чтобы при запуске персонаж сразу сказал о себе. Сделаем это простым действием: перед бесконечным циклом отправим ему заранее подготовленное сообщение и выведем ответ.
Теперь запускаем и смотрим.
Отлично! Все работает. Теперь у нас есть мини чат-рулетка. Продолжение будет в следующих статьях.
Если понравилось, подпишись на канал и побалуй автора лайком и добрым комментарием.