Azure Microsoft 翻译文本,长输入导致 HTTP 414

标签 azure translate microsoft-translator

问题:Microsoft Translate 对长文本翻译请求返回 HTTP 414

问题:有没有办法解决这个问题来限制错误?

背景

我正在尝试通过此 API http://docs.microsofttranslator.com/text-translate.html#!/default/get_Translate 在新的 Azure 云中通过 Microsoft Translate Text API 一次翻译多个文本段落。该 API 似乎仅支持通过 http GET 和查询参数 ?text= 发送文本。通常,我希望能够通过 POST 正文来完成此操作,但 API 似乎只支持 GET。有一个 TranslateArray POST,但它仍然根据测试/swagger 通过查询参数获取 texts

API 文档指定了 10,000 个字符的限制,但我经常收到小于该大小的 HTTP 414 Request-URI Too Long 错误响应,我假设是由于 URL 很长,其中还包括JWT token 。

我正在寻找解决此问题的方法,以降低 Microsoft Translate 的错误率。

我考虑过将文本分割成多个 block ,但如果没有良好的母语分词器,我认为我可能会面临破坏上下文/含义并扭曲翻译的风险。

最佳答案

翻译 API 支持 POST,其中文本(或多个文本)位于正文中。请参阅Example for TranslateArray

例子是:

<TranslateArrayRequest>
  <AppId />
  <From>language-code</From>
  <Options>
    <Category xmlns="http://schemas.datacontract.org/2004/07/Microsoft.MT.Web.Service.V2" >string-value</Category>
    <ContentType xmlns="http://schemas.datacontract.org/2004/07/Microsoft.MT.Web.Service.V2">text/plain</ContentType>
    <ReservedFlags xmlns="http://schemas.datacontract.org/2004/07/Microsoft.MT.Web.Service.V2" />
    <State xmlns="http://schemas.datacontract.org/2004/07/Microsoft.MT.Web.Service.V2" >int-value</State>
    <Uri xmlns="http://schemas.datacontract.org/2004/07/Microsoft.MT.Web.Service.V2" >string-value</Uri>
    <User xmlns="http://schemas.datacontract.org/2004/07/Microsoft.MT.Web.Service.V2" >string-value</User>
  </Options>
  <Texts>
    <string xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">string-value</string>
    <string xmlns="http://schemas.microsoft.com/2003/10/Serialization/Arrays">string-value</string>
  </Texts>
  <To>language-code</To>
</TranslateArrayRequest>

关于Azure Microsoft 翻译文本,长输入导致 HTTP 414,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42090615/

相关文章:

python - key 错误 : 'IDENTITY_ENDPOINT' error in Azure environment

c - 将这个简单的 C 代码转换为 VBA

microsoft-translator - 如何调用 https ://api. datamarket.azure.com/Services/My/Datasets 获取 ResourceBalance

Swift Realm 'RLMException' ,原因 : 'Index 0 is out of bounds (must be less than 0)

XAML 数据网格数据模板

java - Microsoft Translator API 检索翻译时出错

mongodb - 如何使用 MongoDB API 在 Azure CosmosDB 上创建插入触发器

azure - 在 Azure WebApp 中使用环境变量引用时如何解析 secret

azure - FunctionApp 中的 ExpiredAuthenticationToken

comments - 自动将(非英语)评论翻译成英语?