Я обнаружил, почему это (и решения) не работает для меня. Я надеюсь, что смогу помочь другим, кто столкнулся с этой проблемой.
Синтаксис, упомянутый выше Sophiac , был правильным. Поэтому в моем случае я использовал «metadata_storage_path» в качестве входных данных в наборе навыков:
{
"@odata.type": "#Microsoft.Skills.Custom.WebApiSkill",
"description": "Our new substring custom skill",
"uri": "https://customskillsubstring.azurewebsites.net/api/Translate?code=OkzL7G3wX----jCqQylUyJJPaggSaFQCaQ==",
"batchSize":1,
"context": "/document",
"inputs": [
{
"name": "text", "source": "/document/metadata_storage_path"
}
],
"outputs": [
{
"name": "text",
"targetName": "metadata_storage_path_wathever"
}
]
}
Проблема была в индексаторе. Я сопоставил в поле сопоставление «metadata_storage_path» с чем-то другим (в моем случае «blob_uri»). Проблема в том, что на самом деле это не отображение, а скорее замена. Таким образом, metadata_storage_path был пуст в наборе навыков, потому что он уже был заменен.
Но если я использую "blob_uri", это работает.
Решение состоит в том, что вы можете сопоставить один вход с более чем одним в индексаторе:
"fieldMappings" : [
{
"sourceFieldName" : "metadata_storage_name",
"targetFieldName" : "id",
"mappingFunction" :
{ "name" : "base64Encode" }
},
{
"sourceFieldName" : "content",
"targetFieldName" : "content"
},
{
"sourceFieldName" : "metadata_storage_path",
"targetFieldName" : "blob_uri"
},
{
"sourceFieldName" : "metadata_storage_path",
"targetFieldName" : "metadata_storage_path"
}
],
Теперь я могу использовать «blob_uri» и «metadata_storage_path» в качестве входных данных для моего пользовательского навыка.