python-wechaty: быстрая разработка чат-бота с автоматическими ответами и групповыми ключевыми словами

Python

Большинство новичков запускают чат-боты с двумя основными функциями: автоматический ответ и группировка ключевых слов.Здесь я расскажу, как использовать python-wechaty для быстрой реализации этих двух функций.

1. Установка и настройка

python-wechatyПлатформе чат-бота нужно только указать версию пакета и протокол.tokenВсе, процесс установки и настройки очень простой, просто копипаст без мозгов.

1.1 Установите пакеты зависимостей

# 安装python-wechaty包
pip install wechaty
# 安装插件库
pip install wechaty-plugin-contrib

1.2 Настройка токена

Токены могут быть настроены различными способами:

Способ 1: настроить через переменные среды

*export* WECHATY_PUPPET_HOSTIE_TOKEN='your-token'

Способ 2: настроить через код Python

import os
os.environ['WECHATY_PUPPET_HOSTIE_TOKEN'] = 'your-token'

Как получить долгосрочные токены? Подробнее см.:Everything-about-Wechaty

2. Группировка ключевых слов

Разработать функцию группировки ключевых слов на основе python-wechaty очень просто, вам нужно только использовать библиотеку плагинов:RoomInviterPluginплагин.

Метод использования следующий:

import asyncio
from typing import Dict
from wechaty import Wechaty
from wechaty_plugin_contrib.contrib import (
    RoomInviterOptions,
    RoomInviterPlugin
)
from wechaty_plugin_contrib.matchers import (
    MessageMatcher,
    RoomMatcher
)

async def run():
    """async run method"""
    rules: Dict[MessageMatcher, RoomMatcher] = {
        MessageMatcher('wechaty'): RoomMatcher('Wechaty开发者群(1)'),
				MessageMatcher('python-wechaty'): RoomMatcher('Python-Wechaty开发者群(2)')
    }
    plugin = RoomInviterPlugin(options=RoomInviterOptions(
        name='python-wechaty关键字入群插件',
        rules=rules,
        welcome='欢迎入群 ~'
    ))
    bot = Wechaty().use(plugin)
    await bot.start()

asyncio.run(run())

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

3. Автоматический ответ

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

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

import asyncio
from wechaty import Wechaty, MiniProgram  # type: ignore
from wechaty_puppet import (    # type: ignore
    FileBox
)

from wechaty_plugin_contrib import (
    AutoReplyRule,
    AutoReplyPlugin,
    AutoReplyOptions,
)

from wechaty_plugin_contrib.matchers import ContactMatcher

async def run():
    """async run method"""
    img_url = 'https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy' \
              '/it/u=1257042014,3164688936&fm=26&gp=0.jpg'
    plugin = AutoReplyPlugin(options=AutoReplyOptions(
        rules=[
            AutoReplyRule(keyword='ding', reply_content='dong'),
            AutoReplyRule(keyword='七龙珠', reply_content='七龙珠'),
            AutoReplyRule(
                keyword='七龙珠',
                reply_content=FileBox.from_url(img_url, name='python.png')
            ),
            AutoReplyRule(
                keyword='网易-李白',
                reply_content=MiniProgram.create_from_json({...})
            )
        ],
        matchers=[
            ContactMatcher('秋客'),
        ]
    ))
    bot = Wechaty().use(plugin)
    await bot.start()

asyncio.run(run())

Код очень прост (дизайн API очень удобен для пользователя), и я полагаю, что каждый может понять его с первого взгляда, поэтому я не буду объяснять его здесь слишком подробно.

4. Резюме

python-wechaty имеет очень удобный API и имеет множество встроенных библиотек подключаемых модулей с высокочастотными функциями, что дает разработчикам возможность быстро разрабатывать свои собственные небольшие приложения.

Цель всей беседы — создать общий фреймворк для чат-ботов для всех мессенджеров, вы тоже можете обратить на это внимание и использовать.python-wechatyРамка.