jeyroik/extas-alice 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

jeyroik/extas-alice

Composer 安装命令:

composer require jeyroik/extas-alice

包简介

Yandex.Alice Extas package

README 文档

README

Библиотека для создания навыков для голосового помощника Алисы от компании Яндекс.

Данная библиотека поддерживает сценарии (см. руководство ниже).

Установка

composer require jeyroik/extas-alice:1.*

Использование

Пример использования библиотеки смотрите в репозитории alice-extas-example

Реализация навыка

  • Регистрируем навык в Яндекс.Диалогах (https://dialogs.yandex.ru/developer/).
  • Получаем идентификатор навыка (skill_id).
  • Добавялем запись о навыке в extas.json в секцию skills:
"skills": [
  {
    "id": "идентификатор навыка, полученный в Яндекс.Диалогах",
    "name": "алиас навыка, по нему будет организовываться связка со сценариями",
    "description": "описание навыка, нигде не используется, заполняется только для понимания"
  }
]
  • Добавляем в extas.json шаги, которые потребуются для навыка:
"steps": [
  {
    "name": "Имя шага, по нему будут запускаться плагины (см. ниже)",
    "title": "Название шага, используется только для понимания",
    "description": "Описание шага, используется для понимания"
  }
]
  • Добавляем в extas.json сценарии навыка:
"scenarios": [
  {
    "name": "Имя сценария, используется для запуска плагинов",
    "title": "Название сценария, используется для понимания",
    "description": "Описание сценария, используется для понимания",
    "skill_name": "алиас навыка - см. skills:name",
    "schema": {
      "message_1": [{
        "condition": "имя класса для проверки условия, оставить пустым для обязателнього запуска данной реакции",
        "step": "имя шага, см. steps:name"
      }],
      "message_x": [{
        "condition": "",
        "step": "demo.help"
      }, {
        "condition": "extas\\components\\yandex\\skills\\conditions\\ConditionTest",
        "step": "demo.test"
      }]
    }
  }
]
- В схеме доступны два варианта идентификаторов сообщения: 
    - N, где N - целое число, идентификатор сообщения (см. детали https://yandex.ru/dev/dialogs/alice/doc/protocol-docpage/ описание по message_id)
        - Пример: message_1, message_2
    - x - для реакции на все сообщения пользователя;
        - Пример: message_x
  • При необходимости можно также заранее прописать карточки и кнопки (см. extas.json для примера).
  • Устанавливаем навык: alice-extas# vendor/bin/extas i
  • Запускаем навык: alice-extas# php -S 0.0.0.0:8080 -t resources
    • См. resources/index.php для примера запуска.

Использование сценария

  • Сценарий состоит из реакций.
  • Реакция состоит из проверки условий и имени шага.
  • Шаг состоит из имени и описания.

Шаги можно установить предварительно.

Установка шагов

{
    "steps": [
        {
          "name": "demo.help",
          "title": "Помощь",
          "description": "Пользователь запросил помощь"
        },
        {
          "name": "demo.start",
          "title": "Начало использования",
          "description": "На этом шаге приветствуем пользователя"
        }
      ]
}

Как видно, шаги не зависят от сценария и могут переиспользоваться. По каждому шагу запускается следующие стадии (события):

  • step.<name шага>
  • <name сценария>.step.<name шага>
  • <name навыка>.<name сценария>.step.<name шага>

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

Установка сценария

"scenarios": [
    {
      "name": "demo",
      "title": "Демонстрационный сценарий",
      "description": "Это демонстрационный сценарий",
      "skill_name": "test",
      "schema": {
        "message_1": [{
          "condition": "",
          "step": "demo.start"
        }],
        "message_x": [{
          "condition": "",
          "step": "demo.help"
        }]
      }
    }
  ]

Схема сценария может содержать следующие секции:

  • message_N, где N - любое целое число, представляющее идентификатор сообщения (см. документацию по навыкам). Данная секция содержит реакции на конкретное по порядку сообщение.
  • message_x - данная секция содержит реакции для вариативных по порядку сообщений.

Каждая реакция состоит из

  • condition - проверка условия. Если данная реакция должна применяться всегда, поле оставляется пустым, в противном случае здесь указывается имя класса. Класс реакции должен реализовывать метод __invoke(IAliceCall $call) и возвращать bool (true или false). Если true, то будет запущен соответствующий реакции шаг.
  • step - имя шага, который нужно запустить, если условия подходят.

jeyroik/extas-alice 适用场景与选型建议

jeyroik/extas-alice 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 81 次下载、GitHub Stars 达 6, 最近一次更新时间为 2020 年 03 月 17 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 jeyroik/extas-alice 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 jeyroik/extas-alice 我们能提供哪些服务?
定制开发 / 二次开发

基于 jeyroik/extas-alice 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 81
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 6
  • 点击次数: 6
  • 依赖项目数: 2
  • 推荐数: 0

GitHub 信息

  • Stars: 6
  • Watchers: 1
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2020-03-17