翻译 Azure Database for PostgreSQL 中的数据

已完成

azure_ai 扩展中的翻译

Azure AI 语言服务提供了强大的工具和模型来处理文本数据。 通过 azure_ai 扩展的 azure_cognitive 架构中的集成,可获得能直接从数据库访问的一组丰富的自然语言理解和处理功能。 其中一项功能提供使用 translate() 函数翻译文本的能力。

azure_cognitive.translate() 函数

azure_cognitive.translate() 函数中提供了语言翻译。 此函数接受输入文本和一个或多个你要将该文本翻译成的语言。 此函数会自动检测源语言,你也可以为输入文本分配源语言。

此函数返回基于 Azure AI 翻译服务的响应正文生成的表。 此响应包括以下列:

名称 描述
translations 一个 JSON 对象,其中每个目标语言和翻译文本的组合都有一个元组。
detected_language 语言基于自动语言检测。 如果使用 source_language 输入参数指定语言,则此参数设置为 NULL。
source_text 一个对象,其中包含源语言的默认脚本中的输入文本。 仅当表述输入时采用的脚本不是该语言的通用脚本时,此选项才可用。 例如,如果泰语文本是用拉丁语脚本编写的。

设置翻译服务终结点、键和区域

若要使用 azure_ai 扩展成功地对语言服务进行调用,必须提供服务的终结点和键。 以下命令演示如何将设置添加到 azure_ai.settings 配置表。

SELECT azure_ai.set_setting('azure_cognitive.endpoint','{endpoint}');
SELECT azure_ai.set_setting('azure_cognitive.subscription_key', '{key}');
SELECT azure_ai.set_setting('azure_cognitive.region', '{region}');

调用 azure_cognitive.translate() 函数

通过下面的 SQL 语句,可以将示例英语短语翻译成等效的德语短语。 此翻译要求已存在 azure_ai 扩展和必需的扩展设置。

SELECT a.translations
FROM azure_cognitive.translate('Congratulations on successfully configuring Azure AI Translation!', 'de') a;

此命令会返回如下响应。

                     translations                     
------------------------------------------------------------------------------------------------
 {"(de,\"Herzlichen Glückwunsch zur erfolgreichen Konfiguration der Azure AI-Übersetzung!\",)"}
(1 row)

还可以通过传入输出语言数组,在一次调用中执行多种语言的翻译。

SELECT (unnest(a.translations)).TARGET_LANGUAGE, (unnest(a.translations)).TEXT
FROM azure_cognitive.translate(text=>'Congratulations on successfully configuring Azure AI Translation!', target_language=>array['de', 'fr']) a;

此命令为每种语言返回一行,目标语言和输出文本放在单独的列中。