JavaScript 的 Azure 文本翻译 REST 客户端库
Azure文本翻译是由Azure翻译服务提供的一种以云为基础的REST API. 它利用神经机翻译技术,在所有支持的语文中提供准确、贴切和准确的实时文本翻译.
客户端库提供几个关键功能:
-
获取用于翻译和转写操作的支持语言列表,以及可用于翻译的LLM模型.
-
执行从指定源语言到目标语言的决定性文本翻译,带有可配置参数,以确保精确性并保持上下文完整性.
-
通过将文字从原始脚本转换为可替代的脚本表示来进行转写.
-
使用LLM模型来制作有调子和性别意识的翻译输出变体.
请多多依靠我们 REST 客户端文件 使用此库
密钥链接 :
开始
目前得到支持的环境
- 节点.js的LTS版本
- Edge、Chrome、Safari和Firefox的最新版本
先决条件
- 你一定有一个 Azure 订阅 用于使用此软件包.
- 现有翻译服务或认知服务资源.
安装 @azure-rest/ai-translation-text 软件包
为 JavaScript 安装 Azure 文本翻译 REST 客户端 REST 客户端库 npm数字 :
npm install @azure-rest/ai-translation-text
创建翻译服务资源
您可以在下面创建翻译资源 创建翻译资源。 。 。 .
浏览器支持
Java 脚本套装
要在浏览器中使用此客户端库,首先需要使用捆绑器. 关于如何做到这一点的详情,请参见我们 捆绑文件。 。 。 .
认证客户端
使用客户端库与服务的互动始于创建实例 文本翻译 课。 你需要一个 API 密钥 或者说 TokenCredential 以即时化客户端对象。 关于使用认知服务认证的更多信息,请参见: 向翻译处认证请求。 。 。 .
获取 API 密钥
你可以得到这个 endpoint, (中文(简体) ), API key 财务报告和审定财务报表 Region 翻译服务资源信息 Azure 门户。 。 。 .
或者,使用 阿苏尔CLI 下面的片段可以从翻译服务资源获取 API 密钥.
az cognitiveservices account keys list --resource-group <your-resource-group-name> --name <your-resource-name>
创建一个 TextTranslationClient 使用 Azure 活动目录证书
用一个 Azure 活动目录( AAD) 证书, (中文(简体) ), 提供从下列来源获得的所需证书类型的实例: @azure/身份 图书馆.
要认证 AAD , 您必须首先 npm 安装 @azure/identity
设置后,您可以选择哪种类型 证书 从 @azure/identity 用来使用.
举例来说, 默认标记
可用于认证客户端.
创建一个 TextTranslationClient 使用 API 密钥和区域证书
一旦您对 API 密钥和区域有值, 请创建一个 TranslatorCredential。 。 。 .
与价值 TranslatorCredential 您可以创建 文本翻译数字 :
import TextTranslationClient, { TranslatorCredential } from "@azure-rest/ai-translation-text";
const endpoint = "https://api.cognitive.microsofttranslator.com";
const key = "YOUR_SUBSCRIPTION_KEY";
const region = "westus";
const credential: TranslatorCredential = {
key,
region,
};
const translationClient = TextTranslationClient(endpoint, credential);
实例
下一节提供了若干使用 client 上方创建,并覆盖此客户端库中的主要功能.
获得支持的语言
获得翻译器其他操作目前支持的一组语言.
import TextTranslationClient, {
TranslatorCredential,
isUnexpected,
} from "@azure-rest/ai-translation-text";
const endpoint = "https://api.cognitive.microsofttranslator.com";
const key = "YOUR_SUBSCRIPTION_KEY";
const region = "westus";
const credential: TranslatorCredential = {
key,
region,
};
const translationClient = TextTranslationClient(endpoint, credential);
const langResponse = await translationClient.path("/languages").get();
if (isUnexpected(langResponse)) {
throw langResponse.body.error;
}
const languages = langResponse.body;
if (languages.translation) {
console.log("Translated languages:");
for (const [key, translationLanguage] of Object.entries(languages.translation)) {
console.log(`${key} -- name: ${translationLanguage.name} (${translationLanguage.nativeName})`);
}
}
if (languages.transliteration) {
console.log("Transliteration languages:");
for (const [key, transliterationLanguage] of Object.entries(languages.transliteration)) {
console.log(
`${key} -- name: ${transliterationLanguage.name} (${transliterationLanguage.nativeName})`,
);
}
}
if (languages.models) {
console.log("Available LLM Models:");
for (const model in languages.models) {
console.log(model);
}
}
请参考服务文件,以进行概念性讨论 语言。 。 。 .
翻译
将单一源语言文本与多个目标语言文本合并,并同时提出单一请求.
import TextTranslationClient, {
TranslatorCredential,
isUnexpected,
} from "@azure-rest/ai-translation-text";
const endpoint = "https://api.cognitive.microsofttranslator.com";
const key = "YOUR_SUBSCRIPTION_KEY";
const region = "westus";
const credential: TranslatorCredential = {
key,
region,
};
const translationClient = TextTranslationClient(endpoint, credential);
const input = {
text: "This is a test.",
targets: [{ language: "cs" }],
language: "en",
};
const translateResponse = await translationClient.path("/translate").post({
body: { inputs: [input] },
});
if (isUnexpected(translateResponse)) {
throw translateResponse.body.error;
}
const translations = translateResponse.body.value;
for (const translation of translations) {
console.log(
`Text was translated to: '${translation?.translations[0]?.language}' and the result is: '${translation?.translations[0]?.text}'.`,
);
}
请参考服务文件,以进行概念性讨论 翻译。 。 。 .
翻译
将源语言的字符或字母转换为目标语言的相应字符或字母.
import TextTranslationClient, {
TranslatorCredential,
isUnexpected,
} from "@azure-rest/ai-translation-text";
const endpoint = "https://api.cognitive.microsofttranslator.com";
const key = "YOUR_SUBSCRIPTION_KEY";
const region = "westus";
const credential: TranslatorCredential = {
key,
region,
};
const translationClient = TextTranslationClient(endpoint, credential);
const inputText = [{ text: "这是个测试。" }];
const parameters = {
language: "zh-Hans",
fromScript: "Hans",
toScript: "Latn",
};
const transliterateResponse = await translationClient.path("/transliterate").post({
body: { inputs: inputText },
queryParameters: parameters,
});
if (isUnexpected(transliterateResponse)) {
throw transliterateResponse.body.error;
}
const transliterations = transliterateResponse.body.value;
for (const transliteration of transliterations) {
console.log(
`Input text was transliterated to '${transliteration?.script}' script. Transliterated text: '${transliteration?.text}'.`,
);
}
请参考服务文件,以进行概念性讨论 转写。 。 。 .
解决问题
当您使用文本翻译客户端库与翻译处互动时,翻译处返回的错误对应为REST API请求返回的相同的HTTP状态代码.
例如,如果您提交翻译请求时没有目标翻译语言,a 400 返回错误,表示“坏请求”.
日志
允许伐木可能有助于发现有关失败的有用信息。 为了查看 HTTP 请求和回复的日志,设置 AZURE_LOG_LEVEL 环境变量改为 info。或者,可以在运行时拨打 setLogLevel 输入 @azure/logger数字 :
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
关于如何启用日志的更详细指示,您可以查看 @ azure/ logger 包文件。 。 。 .