Данный проект является форком оригинального проекта Riona-AI-Agent
Riona-AI-Agent-Russian - это русскоязычная версия инструмента автоматизации на базе искусственного интеллекта, разработанная для взаимодействия с различными социальными платформами, такими как Instagram, Twitter и GitHub. Он использует продвинутые модели ИИ для генерации интересного контента, автоматизации взаимодействий и эффективного управления аккаунтами в социальных сетях.
Важные улучшения в нашей версии:
- Оптимизированная работа с русскоязычным контентом
- Автодетекция языка поста и генерация комментариев на соответствующем языке
- Улучшенная обработка комментариев
- Улучшенный механизм нахождения элементов интерфейса Instagram
Перед использованием функций автоматизации вы можете обучить агента персонализированным контентом. Вы можете загрузить свой контент через любой из следующих источников:
- Ссылка на YouTube видео 🎥
- Аудио файл 🎙️
- Портфолио или ссылка на веб-сайт 🌐
- Поддерживаемые форматы файлов: PDF, DOC, DOCX, TXT 📄
- Автоматизация Instagram: Автоматический вход, лайки постов и оставление продуманных комментариев.
- Автоматизация Threads: Автоматический вход, взаимодействие с постами, лайки и комментарии.
- Автоматизация Twitter: (Скоро) Автоматические твиты, ретвиты и лайки твитов.
- Автоматизация GitHub: (Скоро) Автоматическое управление репозиториями, задачами и пул-реквестами.
- Генерация контента на основе ИИ: Использование Google Generative AI для создания привлекательных комментариев и постов.
- Поддержка прокси: Использование прокси для управления несколькими аккаунтами и избежания ограничений по частоте запросов.
- Управление cookies: Сохранение и загрузка cookies для поддержания сессий при перезапусках.
-
Клонировать репозиторий:
git clone https://github.com/wsgp2/Riona-AI-Agent-Russian.git cd Riona-AI-Agent-Russian -
Установить зависимости:
npm install
-
Настроить переменные окружения: Переименуйте файл
.env.exampleв.envв корневой директории и добавьте ваши учетные данные и API ключи. Обратитесь к файлу.env.exampleдля ознакомления с необходимыми переменными.# Учетные данные Instagram IGusername=ваше_имя_пользователя_instagram IGpassword=ваш_пароль_instagram # Учетные данные Twitter Xusername=ваше_имя_пользователя_twitter Xpassword=ваш_пароль_twitter
- Запуск агента:
npm start
- src/client: Содержит основную логику для взаимодействия с платформами социальных сетей.
- src/config: Конфигурационные файлы, включая настройку логгера.
- src/utils: Утилитарные функции для обработки ошибок, cookies и т.д.
- src/schema: Определения схем для контента, генерируемого ИИ.
Проект использует пользовательский логгер для записи информации, предупреждений и ошибок. Логи сохраняются в директории logs.
Настроены обработчики ошибок процессного уровня для перехвата необработанных отклонений промисов, непойманных исключений и предупреждений процесса. Ошибки записываются с использованием пользовательского логгера.
Приглашаем к сотрудничеству! Пожалуйста, форкните репозиторий и отправьте пул-реквест с вашими изменениями.
Этот проект лицензирован под лицензией MIT. Смотрите файл LICENSE для получения деталей.
- Google Generative AI за предоставление моделей ИИ.
- Puppeteer за автоматизацию браузера.
- puppeteer-extra за дополнительные плагины и улучшения.
В процессе разработки мы обнаружили и решили ряд проблем, связанных с автоматизацией входа в Threads:
-
Проблема с кнопкой "Войти": В отличие от стандартных веб-форм, в Threads кнопка "Войти" не является элементом
<button>, а представляет собой<div>с белым фоном. -
Надёжное решение: Мы обнаружили, что самый надёжный способ выполнить вход - это просто нажать клавишу ENTER после ввода пароля. Этот метод оказался более надёжным, чем попытки найти и нажать на кнопку по селекторам.
-
Дополнительная информация: Если вам требуется использовать селекторы для кнопки "Войти", можно использовать следующие XPath селекторы:
- Текст "Войти":
//div[@class='xwhw2v2 x1xdureb'] - Белая кнопка:
//div[@class='x6s0dn4 xrvj5dj xofrnu2 x1o2pa38 xh8yej3']
- Текст "Войти":
Вот как выглядит наш рабочий код для авторизации в Threads:
// Заполняем поля юзернейма и пароля
await typeWithHumanSpeed(page, 'input[type="text"]', IGusername);
await typeWithHumanSpeed(page, 'input[type="password"]', IGpassword);
// Делаем паузу перед отправкой формы (имитация человека)
await new Promise(resolve => setTimeout(resolve, 1000 + Math.random() * 1000));
// Нажимаем ENTER для отправки формы входа
await page.keyboard.press('Enter');Наш форк проекта включает в себя следующие улучшения:
- Оптимизированная работа с русскоязычным контентом
- Улучшенные алгоритмы обработки комментариев
- Улучшенный механизм нахождения элементов интерфейса Instagram и Threads
- Анализ языка поста и генерация комментариев на соответствующем языке
- Дополнительные меры для обхода ограничений автоматизации
Автор русской версии: SergD (Telegram)
Если у вас возникли вопросы по использованию или есть предложения по улучшению, пожалуйста, свяжитесь с автором.