1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-XiaoV

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Поскольку Smart QQ с 1 января 2019 года прекратил обслуживание, этот проект также больше не поддерживается!

XiaoV Build Status

Введение

XiaoV (小薇) — это Java-программа для создания чат-бота, который может использоваться для взаимодействия в социальных сетях:

  • Слушает сообщения из нескольких групп QQ и, если находит «интересное» содержание, отвечает с помощью искусственного интеллекта от Turing, Baidu или Molly;
  • Может быть настроен на отправку сообщений из QQ-групп на другие интерфейсы;
  • Другие системы могут вызывать XiaoV для отправки сообщений в QQ, например, когда на форуме появляется новая тема, она автоматически отправляется в QQ;
  • После добавления XiaoV в друзья можно использовать секретный код (key), чтобы она отправляла сообщения в группу.

В общем, если вам нужен бот, который связывает группы QQ с другими системами, XiaoV — хороший выбор!

Запуск

  1. Установите JDK 1.8 и Maven 3.
  2. Клонируйте этот проект и выполните mvn install в корневом каталоге проекта.
  3. Выполните mvn jetty:run.

После этого XiaoV запустится, и вы сможете войти, следуя инструкциям на экране.

Кроме того, если вы хотите запустить XiaoV на сервере (но мы не рекомендуем это делать, см. FAQ пункт 2):

  1. Создайте war-файл и разверните его на своём контейнере, изменив latke.props так, чтобы serverHost был вашим публичным IP-адресом, а serverPort — портом, на котором слушает ваш контейнер. Если вы используете обратный прокси, то serverHost, вероятно, будет вашим доменным именем, а serverPort будет равен 80. Короче говоря, эти два значения будут теми же, что и при окончательном доступе к интерфейсу.
  2. Используйте /login для доступа к QR-коду.

Конфигурация

Конфигурационный файл находится в src/main/resources/xiaov.properties:

  • turing.api & turing.key определяют API-адрес и пароль для искусственного интеллекта Turing;
  • baidu.cookie определяет cookie, необходимый для доступа к Baidu AI (необходимо авторизоваться на Baidu, затем перехватить запрос);
  • qq.bot.type определяет тип искусственного интеллекта, 1 — Turing, 2 — Baidu;
  • qq.bot.name определяет имя искусственного интеллекта. Оно используется для определения того, является ли сообщение из группы «интересным», например, для сообщения «XiaoV, ты ела?» с именем искусственного интеллекта XiaoV, искусственный интеллект обработает его;
  • qq.bot.key определяет пароль для управления сообщениями, которые отправляются в группы или из других систем. Сообщение должно начинаться с этого пароля, после чего оно будет отправлено в группу;
  • qq.bot.pushGroups определяет группы, в которые будут отправляться сообщения. Можно разделить несколько групп с помощью ,; также можно установить * для отправки во все группы;
  • qq.bot.pushGroupUserCnt определяет минимальное количество людей в группе, которое необходимо для отправки сообщения;
  • bot.follow.keywords определяет ключевые слова, которые будут отслеживаться при получении сообщений из группы. При обнаружении этих слов искусственный интеллект будет обрабатывать их, например, для сообщения «Как можно освоить Java за 3 дня?» с ключевым словом Java, искусственный интеллект обработает его;
  • bot.follow.keywordAnswer определяет шаблон ответа на сообщения из группы после обнаружения ключевых слов;
  • third.api & third.key определяют адрес API и пароль для других систем, которым XiaoV будет отправлять сообщения;

FAQ

Как правильно использовать XiaoV QQ Chatbot?

См. статью на форуме по ссылке.

Почему было решено создать отдельный веб-сервис, а не просто зависимость jar?

Создание зависимости jar было бы более удобным для разработки, но есть серьёзная проблема: приложение обычно развёртывается в облаке, а вход с использованием QR-кода происходит локально, что может привести к проблеме с аутентификацией в разных местах и другим проблемам.

Поэтому XiaoV должен быть развёрнут локально, чтобы гарантировать, что после запуска XiaoV и мобильного приложения аутентификация QQ будет успешной. Однако это также требует решения проблемы обеспечения возможности «проникновения через внутренний сетевой барьер», например, с помощью ngrok. Подробнее см. здесь.

Почему возникает ошибка «Отправка не удалась, Api вернул код [1202]»?

Эта проблема связана с тем, как QQ сервер обрабатывает сообщения и возвращает код ошибки. Подробнее см. в issue.

Что делать с ошибкой «Api вернул код [103]»?

Сначала остановите XiaoV, войдите на w.qq.com, затем выйдите из системы в настройках и снова запустите XiaoV. После этого вы должны получить код 103.

Почему появляется ошибка «Group list error [groupId=xxxx], пожалуйста, сообщите об этой ошибке разработчику...»?

Следуйте тем же шагам, что и для ошибки 103.

Почему в журнале появляются искажённые символы?

Это связано с кодировкой консоли. Вы можете добавить log4j.appender.stdout.Encoding=UTF-8 в файл src/main/resources/log4j.properties, чтобы решить эту проблему.

Куда сообщать об ошибках?

API

Отправка сообщений из других систем в QQ группы

  • Функция: XiaoV предоставляет HTTP-интерфейс для вызова другими системами для отправки сообщений из этих систем в QQ группы.
  • URL: /qq
  • Method: POST
  • Body: key={qq.bot.key}&msg={msgcontent}
  • Пример: /qq?key=123456&msg=Hello

Отправка сообщений из QQ групп в другие системы

  • Функция: другие системы предоставляют HTTP-интерфейсы для вызова XiaoV для отправки сообщений из групп QQ в эти системы (эта функция должна быть реализована в системе, здесь приводится только способ вызова и параметры XiaoV).
  • URL: {third.api}
  • Method: POST
  • Body: key={third.key}&msg={msgcontent}&user={hexuserid}
  • Пример: /xiaov?key=123456&msg=Hello&user=0a

Благодарности

XiaoV появился благодаря следующим открытым проектам/продуктам:

  • Smart QQ Java — оболочка для API SmartQQ (WebQQ), которая реализует связь с QQ;
  • Turing AI — предоставляет XiaoV интеллектуальные возможности;
  • Baidu AI — ещё раз предоставляет XiaoV интеллектуальные возможности;
  • Molly AI — ещё раз предоставляет XiaoV интеллектуальные возможности (говорят, что он очень грязный :joy:);
  • Latke — лаконичный и эффективный Java Web framework.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-XiaoV.git
git@api.gitlife.ru:oschina-mirror/mirrors-XiaoV.git
oschina-mirror
mirrors-XiaoV
mirrors-XiaoV
master