我正在使用Azure搜索中的认知技能组,并且需要向项目添加文本翻译器功能。当前,除非字符数超过最大值,否则所有文本均已正确翻译。在这种情况下,api返回null。
我目前正在使用文档/内容作为文本翻译器的输入,但是我也尝试使用预定义的拆分技能的输出。当我在翻译技巧之前通过拆分技巧(按页面)传递文件时,索引器中断,所有文件都无法索引(甚至不需要翻译的文件)
此代码取自我的skillet.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"
}
]
}
我对命名实体识别技能使用了完全相同的实现方式(使用文档/页面/ *作为输入),并且效果很好。我不确定文本翻译器技能会有什么不同。