Реализация условия в наборе навыков поиска Azure AI

Мы используем навыки Azure для определения кода языка, а затем выполняем распознавание документов с неизвестным кодом языка. Может ли кто-нибудь дать рекомендации по реализации этого условного кода? Я сталкиваюсь с ошибками и, возможно, применяю их неправильно.

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
90
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам не нужно извлекать документы, по умолчанию индексатор делает это и предоставляет контент и метаданные в контексте /document.

Для получения кода языка вы можете указать имя поля как /document/metadata_language .

Вы передаете это как входные данные для условного навыка и выполняете распознавание текста для дальнейшего улучшения.

Измените условный навык, как показано ниже.

{
  "@odata.type": "#Microsoft.Skills.Util.ConditionalSkill",
  "name": "Language Check",
  "description": "Check if language code is 'Unknown'",
  "context": "/document",
  "inputs": [
    {
      "name": "condition",
      "source": "= $(/document//document/metadata_language) == '(Unknown)'"
    },
    {
      "name": "whenTrue",
      "source": "/document/normalized_images/*"  //here you can also use  /document/content
    },
    {
      "name": "whenFalse",
      "source": "= null"
    }
  ],
  "outputs": [
    {
      "name": "output",
      "targetName": "imagesForOcr"
    }
  ]
},

Примечание. Обязательно укажите конфигурацию индексатора для извлечения контента и метаданных. Ниже приведено определение индексатора.

{
  "@odata.context": "https://jgsaisearch.search.windows.net/$metadata#indexers/$entity",
  "@odata.etag": "\"0x8DC91AC57C625BF\"",
  "name": "azureblob-indexer",
  "description": "",
  "dataSourceName": "ds",
  "skillsetName": "skillset1718943474465",
  "targetIndexName": "azureblob-index",
  "disabled": null,
  "schedule": null,
  "parameters": {
    "batchSize": null,
    "maxFailedItems": 0,
    "maxFailedItemsPerBatch": 0,
    "base64EncodeKeys": null,
    "configuration": {
      "dataToExtract": "contentAndMetadata",
      "parsingMode": "default"
    }
  },
  "fieldMappings": [
    {
      "sourceFieldName": "metadata_storage_path",
      "targetFieldName": "metadata_storage_path",
      "mappingFunction": {
        "name": "base64Encode",
        "parameters": null
      }
    }
  ],
  "outputFieldMappings": [
    {
      "sourceFieldName": "/document/myLanguageCode",
      "targetFieldName": "lang_code"
    }
  ],
  "cache": null,
  "encryptionKey": null
}

Выход:

Привет @JayashankarGS Я попробовал твой путь. Кажется, он работает, но теперь возникает проблема с извлеченным_контентом, я получаю ноль. Можете ли вы помочь здесь, потому что если вы видите Edit2, я включил индексатор и набор навыков json и сеанс отладки o/ps.

noobie_ 22.06.2024 07:01

Раньше я думал, что, возможно, изображений нет в папке imagesForOcr, но в сеансе отладки я проверил, есть ли изображения, что означает, что я могу ожидать извлеченный_контент не в том месте, но я попробовал все это - /document/imagesForOcr/extracted_content и /document/extracted_content и /document/imagesForOcr/extracted_content/* я вижу ноль, единственный o/p

noobie_ 22.06.2024 07:04

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

JayashankarGS 22.06.2024 13:45

Привет @JayashankarGS Я мог что-то пропустить, объясняя, может быть..... здесь целью было извлечение контента (как из известного, так и из неизвестного pdf-файла с кодом задержки), когда он неизвестен (то есть pdf-файл состоит из изображений), а затем для извлечения контента, который нам нужно использовать OCR, потому что в противном случае он не будет работать дальше, когда по методу по умолчанию известно, как индексатор выполняет извлечение ... в зависимости от того, что возможно ... это моя цель. Раньше я достиг этого, используя 4 шага (Edit1) - DocumentExtractionSkill -> LangDetectionSkill - > ConditionSkil -> OCR, но я знаю, что это неэффективно.

noobie_ 23.06.2024 09:11

Цель: извлечь контент в обоих случаях...........Когда неизвестно – используйте OCR для извлечения..иначе, по умолчанию извлекает содержимое так же, как извлекает lang. код?

noobie_ 23.06.2024 09:13

хорошо. Для текущего кода вы либо получите контент, если язык имеет значение de, иначе — нулевые значения. Так что условное умение здесь не пригодится. Итак, моя идея состоит в том, чтобы сначала выполнить OCR для всех документов, затем передать /document/content, /document/imagesForOcr и /document/metadata_language пользовательскому веб-API, где вы проверяете условие и возвращаете значения.

JayashankarGS 24.06.2024 14:24

я могу это сделать, но проблема в том, что у меня есть файлы такого типа: appx. 100, остальные 10000 проблем не вызывают. Только представьте, сколько мне будет стоить увеличения времени, если я сделаю распознавание всех 10100 файлов. Вот почему я просто думаю о том, чтобы справиться с этим через условие.

noobie_ 25.06.2024 20:26

Видите ли, то, что вы думаете об условном умении, неверно. он либо дает вам удовлетворенные записи, либо ноль. Например, у вас есть 100 ppx, и в условном навыке, если язык неизвестен или имеет значение null, тогда содержимое этих 100 ppx, иначе null. здесь вы получите только контент размером 100 пикселей, а для остальных 10 000 установлено значение null.

JayashankarGS 26.06.2024 07:11

Хорошо, я понял, есть ли способ обойтись без customwebskill? @JayashankarGS

noobie_ 26.06.2024 07:28

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

JayashankarGS 26.06.2024 07:39

Да, отмечено завершенным! @JayashankarGS

noobie_ 26.06.2024 07:51

хорошо. Либо я, либо сообщество подскажем решение.

JayashankarGS 26.06.2024 07:55

Другие вопросы по теме

Похожие вопросы

Функции Azure не принимают значение в кодировке URL-адреса в качестве параметра запроса?
Есть ли способ автоматически создать сценарий в Azure SQL, содержащий инструкции по созданию для каждой таблицы в базе данных?
Как отображать документы PDF/изображения, хранящиеся в хранилище Azure, с помощью Flask + Flutter
Azure SignalR: ни один из транспортных средств, поддерживаемых клиентом, не поддерживается сервером
Присутствие не обновляется в Microsoft Teams с использованием конечной точки setUserPreferredPresence API Graph
Azure WebApp LogStream отображает один и тот же журнал несколько раз и отображает все журналы как [ОШИБКА], даже если они имеют уровень [INFO]
KQL-запрос Application Insights — нет в подзапросе
Использование DefaultAzureCredentials с секретом клиента
Ошибка типа: невозможно прочитать свойства неопределенного типа (чтение «вид»)
У пользователя нет разрешения на вызов метода Discover