【问题标题】:Microsoft Translator Text not raising error when wrong params passed with custom engine使用自定义引擎传递错误参数时,Microsoft Translator Text 不会引发错误
【发布时间】:2020-03-27 01:22:01
【问题描述】:

我注意到 2 种情况,其中 Microsoft Translator Text 在使用自定义引擎时应该引发错误,但却出现了意外行为。

正常情况

我使用 POST 方法发送请求。
网址 = https://api.cognitive.microsofttranslator.com/translate
参数:
- api版本=3.0
- textType=plain
- 类别=my_engine_id
- 来自=de
- to=zh

Headers={"Ocp-Apim-Subscription-Key": my_key,'Content-type': 'application/json'}

正文(JSON 格式):

[{"Text": "Klicken Sie in jedem Bildschirm auf das Textbeispiel, das am besten lesbar ist."},
{“文本”:“Verschiedene Themen aus den Bereichen Wortschatz,Satzbau,Kohärenz,Textwiedergabe,
Kommasetzung und Orthographie werden anhand von Textbeispielen und Übungen vorgestellt。"},
{"Text": "„Auch wenn zwei Staaten in Deutschland exists, sind sie doch füreinander nicht Ausland; ihre Beziehungen zueinander können nur von besonderer Art sein."},
{"Text": "Mit dieser Formel bricht der neue Kanzler ein jahrzehntelanges Tabu."},
{“文本”:“Bislang wird der östliche Teil Deutschlands von den bundesdeutschen Politikern als SBZ, Zone oder „sogenannte DDR“ bezeichnet.”}]

反应如预期:

[{“翻译”:
[{"text": "在每个屏幕上,单击最易读的文本示例。",
"to": "zh"}]},
{“翻译”:
[{"text": "从词汇、排版、连贯性、文本复制、逗号设置和正字法等领域的各种主题通过文本示例和练习呈现。",
"to": "zh"}]},
等等

案例一

我将 URL 中的参数更改为=fr(而不是“en”)。

响应显示文本已被翻译成法语,虽然自定义引擎仅从DE>EN训练(因此我认为使用了通用引擎,但没有信息在HTTP 响应)!

[{"translations":[{"text":"Sur chaque écran, cliquez sur l'échantillon de texte le plus lisible.","to":"fr"}]},{"translations":[ {"text":"Divers sujets des domaines du vocabulaire, du typage, de la cohérence, de la replication du texte, du décor de virgule et de l'orthographe sont présentés à l'aide d'exemples de textes et d'exercices .","to":"fr"}]},{"translations":[{"text":"\"Même si deux Éta​​ts existent en Allemagne, ils ne sont pas étrangers l'un à l'autre; Leurs 关系 les uns avec les autres ne peuvent être que d'un Generial particulier.","to":"fr"}]},{"translations":[{"text":"Avec cette formule, le nouveau Chanlier brise un tabou de dix ans.","to":"fr"}]},{"translations":[{"text":"Jusqu'à présent, la partie orientale de l'Allemagne est appelée par les politiciens fédéraux allemands SBZ, zone ou « soi-disant DDR ».","to":"fr"}]}]

我预计 HTTP 响应中会出现错误,而不是这种行为:
400075 The language pair and category combination is not valid.

案例 2

我更改了 URL 中的参数 from=da(而不是“de”)。

响应显示翻译只是源文本的副本,尽管它表明它被翻译成“en”!

[{"translations":[{"text":"Klicken Sie in jedem Bildschirm auf das Textbeispiel, das am besten lesbar ist.","to":"en"}]},{"translations":[ {"text":"Verschiedene Themen aus den Bereichen Wortschatz, Satzbau, Kohärenz, Textwiedergabe, Kommasetzung und Orthographie werden anhand von Textbeispielen und Übungen vorgestellt.","to":"en"}]},{"translations":[{ "text":"\"Auch wenn zwei Staaten in Deutschland exists, sind sie doch füreinander nicht Ausland; ihre Beziehungen zueinander können nur von besonderer Art sein.\"","to":"en"}]},{"translations":[{"text":"Mit dieser Formula bricht der neue Kanzler ein jahrzehntelanges Tabu.", "to":"en"}]},{"translations":[{"text":"Bislang wird der östliche Teil Deutschlands von den bundesdeutschen Politikern als SBZ, Zone oder \"sogenannte DDR\" bezeichnet.","to ":"zh"}]}]

与案例 1 相同,我预计 HTTP 响应中会出现错误,而不是这种行为:
400075 The language pair and category combination is not valid.

这两种情况我没有收到错误是正常的吗?以前有没有其他人遇到过这种行为?

实际上我想使用这些错误代码,或者在发送翻译请求之前检查语言对是否对应于自定义引擎,你知道有什么方法吗?

【问题讨论】:

    标签: microsoft-translator


    【解决方案1】:

    对于 case1,翻译在两跳中完成 - de>en,en>fr。第一跳使用自定义引擎,第二跳使用我们的通用模型。如果您希望在这种情况下翻译失败,您可以将参数 allowFallback 设置为 false

    allowFallback 可选参数。 指定当自定义系统不存在时允许服务回退到通用系统。可能的值为:真(默认)或假。 docs

    在第二种情况下,请求包含德语文本,但标记为丹麦语。除了返回输入之外,我们在这里无能为力。如果您希望 api 检测 from 语言,请将其从参数中省略,api 将对文本运行自动检测。

    如果未指定 from 参数,则应用自动语言检测来确定源语言。

    【讨论】:

    • 谢谢,确实当我添加allowFallback=false 参数并提供错误的语言ID(源或目标)时,我收到以下错误:{"error":{"code":400079,"message":"The custom system requested for translation between from and to language does not exist."}} :-)
    • allowFallback 默认为 true 的原因是,您可以编写可以采用类别参数的应用程序,而不必担心确保您为每个用户可能请求的语言对都有一个自定义系统。自定义系统将用于它存在的每个语言对,并回退到它不存在的通用系统。如果指定类别的任何语言对不存在自定义系统,则调用将失败。
    猜你喜欢
    • 2021-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    • 2015-12-08
    • 2015-07-14
    • 1970-01-01
    相关资源
    最近更新 更多