Как обрабатывать большие входы в текстовый переводчик Api? - PullRequest
0 голосов
/ 08 января 2019

Я работаю над набором когнитивных навыков в Поиске Azure, и мне нужно добавить функциональность Text Translator в проект. В настоящее время весь текст переведен правильно, если только количество символов не превышает максимальное значение. В этом случае API возвращает ноль.

В настоящее время я использую документ / контент в качестве входных данных для переводчика текста, но я также пытался использовать выходные данные предопределенного навыка разделения. Когда я пропускаю файлы через навык разделения (по страницам) до навыка переводчика, индексатор разрывается, и все файлы не индексируются (даже те, которые не нужно переводить)

Этот код взят из моего skillset.json, который переводит все файлы ниже предела отсечения символов.

{
    "@odata.type": "#Microsoft.Skills.Custom.WebApiSkill",
    "description": "Our new translator custom skill",
    "uri": "[my-uri]",
    "batchSize":1,
    "context": "/document",
    "inputs": [
      {
        "name": "text",
        "source": "/document/content"
      },
      {
        "name": "language",
        "source": "/document/languageCode"
      }
    ],
    "outputs": [
      {
        "name": "text",
        "targetName": "translatedText"
      }
    ]
  }

Это моя попытка разбить текст по страницам перед передачей текста через api переводчика. Это приводит к ошибке 501.

{
  "@odata.type": "#Microsoft.Skills.Text.SplitSkill",
  "textSplitMode" : "pages", 
  "maximumPageLength": 4000,
  "inputs": [
  {
    "name": "text",
    "source": "/document/content"
  },
  { 
    "name": "languageCode",
    "source": "/document/languageCode"
  }
],
"outputs": [
  {
        "name": "textItems",
        "targetName": "pages"
  }
]
 }, 
{
    "@odata.type": "#Microsoft.Skills.Custom.WebApiSkill",
    "description": "Our new translator custom skill",
    "uri": "[my-uri]",
    "batchSize":1,
    "context": "/document/pages/*",
    "inputs": [
      {
        "name": "text",
        "source": "/document/pages/*"
      },
      {
        "name": "language",
        "source": "/document/languageCode"
      }
    ],
    "outputs": [
      {
        "name": "text",
        "targetName": "translatedText"
      }
    ]
  }

Я использую ту же самую реализацию для Навыка распознавания именованных объектов (используя document / pages / * в качестве входных данных), и она отлично работает. Я не уверен, какая разница будет с навыком «Переводчик текста».

...