API для управления каталогами на основе Alexa Alexa - PullRequest
0 голосов
/ 23 марта 2020

Это означает, что c говорит: «С помощью API управления каталогами на основе ссылок вы можете создать пользовательский тип слота, который ссылается на внешний источник данных, чтобы получить значения типа слота. Этот API позволяет вам создать и поддерживать каталог значений типов слотов независимо от вашего навыка Alexa. "

Тем не менее, когда вы копаетесь в нем, он не предоставляет некоторых необходимых сведений о том, как на самом деле настроить каталог на конечной точке, такой как s3.

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

Итак, для API управления каталогами на основе ссылок: в документах говорится, что он должен быть в формате JSON, и предлагаются ингредиенты. json в качестве примера. Однако я использовал это напрямую, и это не удалось (см. Ниже). Кроме того, он не описывает, какой формат должен включать синонимы. Пожалуйста, опишите это.

Я могу успешно создать каталог с помощью '/ v1 / skill / api / custom / InteractionModel / catalogs /' и получить взамен catalogId. Тем не менее, создание версии каталога через '/ skill / api / custom / InteractionModel / catalogs / {catalogId} / версии' завершается неудачно. Я получаю «Сайт временно недоступен», когда я выдаю POST.

Вот структура тела запроса, которую я включаю в этот пост:

data: {

  "source": {

      "type": "URL",

      "url": "https://s3.amazonaws.com/..../ingredients.json"

  },

  "description": "test S3 bucket"

}

Кроме того, должна ли конечная точка S3 быть опубликованным c? Я попробовал это обоими способами, казалось, не имело значения. Если он действительно должен быть опубликован c, как вы справляетесь с безопасностью?

Спасибо за помощь.

1 Ответ

0 голосов
/ 23 марта 2020

В то время как вызов API завершается неудачно, я заставил это работать, используя подход CLI.

ask api create-model-catalog-version -c {catalogID} -f {filename}

Файл должен быть JSON со следующей структурой:

{
  "type": "URL",
  "url": "[your catalog url]"
}

Остается открытым вопрос, как заставить работать подход API, поэтому любые ответы приветствуются. Возможно, это ошибка, потому что я указываю точно такое же определение «источника» в структуре данных вызова API, как и в файле JSON, используемом командой CLI.

Вот то, что я узнал как Я получил его для работы с CLI:

Да, конечная точка S3 должна быть сделана publi c, чтобы успешно выполнить задание create-model-catalog-version. Это кажется мне проблемой, я хотел бы видеть возможность обернуть некоторую безопасность вокруг этих конечных точек.

Вот формат JSON, который вы захотите использовать, включая использование синонимов, которое не описано в официальном примере Amazon . Обратите внимание, что вам не нужно включать идентификатор, как показано в этом примере.

{                
  "values": [
      {
          "name": {
              "value": "hair salon",
              "synonyms": [
                  "hairdresser",
                  "beauty parlor"
              ]
          }
      },
      {
          "name": {
              "value": "hospital",
              "synonyms": [
                  "emergency room",
                  "clinic"
              ]
          }
      },
  ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...