自定义翻译器不适用于 Azure 翻译器

Custom Translator not applied with Azure Translator

我正在尝试为我的公司设置带有短语词典的自定义翻译器。 我遵循了官方文档和本教程:https://soltisweb.com/blog/detail/2019-08-13-using-a-custom-translator-with-azure-co.

当我翻译时,它似乎没有使用我的自定义模型,这是我的设置:

1 位 Azure 翻译人员:

自定义翻译器中的 1 个 Worspace,连接到上面的 Azure 翻译器:

我创建了一个项目:

我上传了与教程中相同的短语词典(短语词典):

EN ES
one uno
two dos
three tres
four cuatro
five cinco
six seis
seven siete
eight ocho
nine nueve
ten diez
hi hola
hello buenos dias

我已经生成了一个模型并将其部署到任何地方(美国、欧洲、亚洲),没有出现任何错误。

我尝试使用以下 C# 代码翻译“hello”:

                // Input and output languages are defined as parameters.
            string route = "/translate?api-version=3.0&category=*MyWorkspaceId*-GENERAL&from=en&to=es&allowFallback=true";
            string textToTranslate = "hello";
            object[] body = new object[] { new { Text = textToTranslate } };
            var requestBody = JsonConvert.SerializeObject(body);

            using (var client = new HttpClient())
            using (var request = new HttpRequestMessage())
            {
                // Build the request.
                request.Method = HttpMethod.Post;
                request.RequestUri = new Uri("https://api.cognitive.microsofttranslator.com/" + route);
                request.Content = new StringContent(requestBody, Encoding.UTF8, "application/json");
                request.Headers.Add("Ocp-Apim-Subscription-Key", subscriptionKey);
                request.Headers.Add("Ocp-Apim-Subscription-Region", "global");

                // Send the request and get response.
                HttpResponseMessage response = await client.SendAsync(request).ConfigureAwait(false);
                // Read response as a string.
                string result = await response.Content.ReadAsStringAsync();
                Console.WriteLine(result);
            }

结果是:

[{"translations":[{"text":"Hola","to":"es"}]}]

结果应该是“buenos dias”。

我可能遗漏了一些非常基本的东西...我已经尝试从头开始重新创建所有内容但没有成功。

更新 1

将 allowFallback=true 切换为 allowFallback=false。

{Method: POST, RequestUri: 'https://api.cognitive.microsofttranslator.com//translate?api-version=3.0&category=***-GENERAL&from=en&to=es&allowFallback=false',
 Version: 1.1,
 Content: System.Net.Http.StringContent,
 Headers:
{
  Ocp-Apim-Subscription-Key: ***
  Ocp-Apim-Subscription-Region: global
  Content-Type: application/json; charset=utf-8
}}

输入:

"one, two, three, four, five, six, seven, eight, nine, ten, hi, hello, My name is Doe."

输出:

[{"translations":[{"text":"uno, dos, tres, cuatro, cinco, seis, siete, ocho, nueve, diez, hola, hola, Mi nombre es Doe.","to":"es"}]}]

感谢您的支持, 西里尔

您可能没有击中您的自定义模型。那么,让我们首先对您的 API 调用做一些小改动。

&allowFallback=false 以确保如果您不点击您的自定义模型,调用将失败,而不是从我们的标准模型获得服务。

最好的, 穆罕默德

我们推出了热修复。现在应该解决问题。抱歉给您带来不便。