转换 Azure Database for PostgreSQL 中的数据

已完成

azure_ai 扩展中的翻译

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

azure_cognitive.translate() 函数

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

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

名字 说明
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;

此命令为每个语言返回一行,包括目标语言和输出文本的单独列。