自定义翻译器不适用于 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 翻译人员:
- 位置:全球
- 定价等级:S1
自定义翻译器中的 1 个 Worspace,连接到上面的 Azure 翻译器:
- 订阅名称:****
- 订阅类型:文本翻译
- 定价层:S1
- 订阅地区:全球
我创建了一个项目:
- 类别:全球
- 语言对:英语 - 西班牙语
我上传了与教程中相同的短语词典(短语词典):
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 以确保如果您不点击您的自定义模型,调用将失败,而不是从我们的标准模型获得服务。
最好的,
穆罕默德
我们推出了热修复。现在应该解决问题。抱歉给您带来不便。
我正在尝试为我的公司设置带有短语词典的自定义翻译器。 我遵循了官方文档和本教程:https://soltisweb.com/blog/detail/2019-08-13-using-a-custom-translator-with-azure-co.
当我翻译时,它似乎没有使用我的自定义模型,这是我的设置:
1 位 Azure 翻译人员:
- 位置:全球
- 定价等级:S1
自定义翻译器中的 1 个 Worspace,连接到上面的 Azure 翻译器:
- 订阅名称:****
- 订阅类型:文本翻译
- 定价层:S1
- 订阅地区:全球
我创建了一个项目:
- 类别:全球
- 语言对:英语 - 西班牙语
我上传了与教程中相同的短语词典(短语词典):
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 以确保如果您不点击您的自定义模型,调用将失败,而不是从我们的标准模型获得服务。
最好的, 穆罕默德
我们推出了热修复。现在应该解决问题。抱歉给您带来不便。