通义千问大模型数据推理和交互

PolarDB for AI已将阿里云通义千问大模型部署至PolarDB集群。您可以通过SQL语句直接调用内置的通义千问大模型,从而对PolarDB集群中的数据进行推理和交互。

例如,使用情感分析模型(_polar4ai_tongyi_sa)对数据表中的内容进行情感分析,或者使用聊天模型(_polar4ai_tongyi)根据指定内容生成相应的答案。

情感分析模型

/*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_tongyi_sa, SELECT content FROM textinfo LIMIT 1) WITH ();
-- 数据库表中内容:这个东西只是看着还行,实际体验上非常的不好,不推荐大家购买。 
输出:负向

聊天模型

/*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_tongyi, SELECT '你是谁') WITH ();
输出:我是来自阿里云的大规模语言模型,我叫通义千问。

应用场景

模型

场景

情感分析模型

分析一句话的情感倾向。

聊天模型

根据一段内容生成答案。

总结模型

根据一篇内容,生成对这篇文章的总结。

翻译模型

将一篇中文内容翻译为英文,或将一篇其他语言(包括英文)内容翻译为中文。

正面/负面评价模型

根据一篇内容,生成正面/负面的评价。

使用限制

  • 为了确保查询性能,在线推理仅支持单条数据的处理,而离线推理则支持对多条数据进行批量处理。

  • 目前通义千问大模型的最大上下文长度(Token数)为8000。然而,由于模型在计算资源上的限制,如果结果无法在10秒内生成,则将不会产生最终结果。在这种情况下,您可以增加AI节点以提升性能。

使用说明

语法说明

调用内置的通义千问大模型进行推理可分为在线推理和离线推理两种方式。具体的语法说明如下。更多信息,请参见模型推理

--在线推理
/*polar4ai*/SELECT * FROM PREDICT (MODEL modelname, SELECT columnname FROM tablename) with ()
/*polar4ai*/SELECT * FROM PREDICT (MODEL modelname, SELECT text) with ()

--离线推理
/*polar4ai*/SELECT * FROM PREDICT (MODEL modelname, SELECT columnname FROM tablename) with (mode='async')
/*polar4ai*/SELECT * FROM PREDICT (MODEL modelname, SELECT text) with (mode='async')

参数说明

参数名称

参数说明

modelname

模型名称,需要根据应用场景指定。取值如下:

  • 情感分析模型:_polar4ai_tongyi_sa

  • 正面/负面评价模型:

    • 正面评价模型:_polar4ai_tongyi_p_comment

    • 负面评价模型:_polar4ai_tongyi_n_comment

  • 总结模型:_polar4ai_tongyi_summarize

  • 翻译模型:

    • 翻译成中文:_polar4ai_tongyi_tran_2_zh

    • 翻译成英文:_polar4ai_tongyi_tran_2_en

  • 聊天模型:_polar4ai_tongyi

tablename

表名。

columnname

表的列名。同时也是模型的输入。

text

纯文本。同时也是模型的输入。

无需创建数据表,即可直接执行,适用于接口调用场景。

mode

推理模式。

  • 取值为async时,表示离线推理。

  • 不设置该参数时,表示在线推理。

使用示例

1. 环境准备

  1. 增加AI节点,并设置AI节点的连接数据库账号:开启PolarDB for AI功能

    若您在购买集群时已添加AI节点,则可以直接为AI节点设置连接数据库的账号。
  2. 使用集群地址连接PolarDB集群:登录PolarDB for AI

2. 数据准备

  1. 创建一个名为textinfo的表。

    CREATE TABLE IF NOT EXISTS textinfo (
        id INT NOT NULL,
        content TEXT NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  2. textinfo表中添加如下数据。

    INSERT INTO textinfo (id,content) VALUES (1,"这个东西只是看着还行,实际体验上非常的不好,不推荐大家购买。");
    INSERT INTO textinfo (id,content) VALUES (2,"华为最新手机Mate 60 Pro自开卖后销售火爆,目前已缺货。知名分析师郭明錤周一发文称,大幅提升Mate 60 Pro的出货量预期,华为对于产业和股市的影响力不可忽视,这种影响力正在回归中。");
    INSERT INTO textinfo (id,content) VALUES (3,"近年来,中国电影市场逐渐倾向于现实题材。2018年的《我不是药神》以31亿票房成为暑期档冠军。随后,《扫毒2》、《怒火·重案》和《中国医生》等影片也取得了成功。今年暑期档,现实题材如《消失的她》、《八角笼中》和《孤注一掷》等电影大受欢迎,反映了观众对贴近生活内容的兴趣。");
    INSERT INTO textinfo (id,content) VALUES (4,"你是谁");
    INSERT INTO textinfo (id,content) VALUES (5,"This item only looks decent; the actual experience is very poor. I do not recommend purchasing it.");

3. 调用通义千问大模型

在线推理

在线推理仅支持单条数据的处理。

情感分析模型

分析一句话的情感倾向。主要应用于电商评论分析、新闻报道的倾向性分析以及舆情分析等领域。

/*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_tongyi_sa, SELECT content FROM textinfo WHERE id = 1) WITH (); 

返回结果:

负向

正面/负面评价模型

根据一篇内容,生成正面或者负面的评价。

  • 生成正面评价:

    /*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_tongyi_p_comment, SELECT content FROM textinfo WHERE id = 2) WITH ();

    返回结果:

    华为Mate 60 Pro自开卖后销售火爆,显示出消费者对于华为品牌的认可和支持。华为作为中国知名科技企业,其在手机市场上的表现一直备受关注。郭明錤的发文进一步证实了华为在产业和股市上的影响力,这表明华为正在逐步回归到其应有的地位。华为的影响力不仅体现在其产品销售上,还体现在其对于整个科技产业和股市的推动作用。我们应该鼓励和支持像华为这样的优秀企业,促进中国科技产业的持续发展。
  • 生成负面评价:

    /*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_tongyi_n_comment, SELECT content FROM textinfo WHERE id = 2) WITH ();

    返回结果:

    虽然华为Mate 60 Pro的销售情况看似乐观,但从市场多样性和竞争角度出发,单一产品的火爆可能掩盖了消费者对其他选择的需求。过度集中于某一款产品可能会限制市场的创新动力,导致其他潜在优秀产品得不到足够的关注和发展机会。

总结模型

根据一篇内容,生成对这篇文章的总结。

/*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_tongyi_summarize, SELECT content FROM textinfo WHERE id = 3) WITH ();

返回结果:

近年来,中国电影市场越来越青睐现实题材。2018年,《我不是药神》以31亿票房成为暑期档冠军。之后,《扫毒2》《怒火·重案》和《中国医生》等片也大获成功。今年暑期档,《消失的她》《八角笼中》和《孤注一掷》等现实题材电影备受观众喜爱,反映出人们对贴近生活的影片内容有浓厚兴趣。

翻译模型

  • 将一篇中文内容翻译为英文。

    /*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_tongyi_tran_2_en, SELECT content FROM textinfo WHERE id = 1) WITH ();

    返回结果:

    This item only looks decent; the actual experience is very poor. I do not recommend purchasing it.
  • 将一篇其他语言(包括英文)内容翻译为中文。

    /*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_tongyi_tran_2_zh, SELECT content FROM textinfo WHERE id = 5) WITH ();

    返回结果:

    这件商品看起来还不错,实际体验却很差。我不推荐购买。

聊天模型

根据一段内容生成答案。这个内容可包含一些显式的提示(prompt),答案将依据这些提示(prompt)生成。

/*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_tongyi, SELECT content FROM textinfo WHERE id = 4) WITH ();

返回结果:

我是来自阿里云的大规模语言模型,我叫通义千问。

此外,您也可以直接输入text纯文本获取答案。

/*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_tongyi, SELECT '你是谁') WITH ();

返回结果:

我是来自阿里云的大规模语言模型,我叫通义千问。

离线推理

离线推理支持对多条数据进行批量处理,此处以情感分析模型为例:

/*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_tongyi_sa, SELECT content FROM textinfo) WITH (mode='async');

执行结果如下:

+--------------------------------------+
| task_id                              |
+--------------------------------------+
| 6227479c-1e82-11f0-b7cb-xxxxxxxxxxxx |
+--------------------------------------+

以上查询结果返回该任务的task_id,您可以通过该任务ID查询任务状态以及对应结果的下载地址。

/*polar4ai*/SHOW TASK `6227479c-1e82-11f0-b7cb-xxxxxxxxxxxx`;

执行结果如下,当返回的taskStatusfinish时,表示任务已完成。

+------------+---------------------------------------------------------------------------------------------------------------------------------------------+---------+----------------+----------------+--------+--------------+----------+
| taskStatus | filePath                                                                                                                                    | results | startTime      | endTime        | errMsg | successBatch | allBatch |
+------------+---------------------------------------------------------------------------------------------------------------------------------------------+---------+----------------+----------------+--------+--------------+----------+
| finish     | ["http://db4ai-xxx.aliyuncs.com/final_results/_polar4ai_tongyi_sa/xxx.csv?security-token=xxx&OSSAccessKeyId=xxx&Expires=xxx&Signature=xxx"] |         | 2025-04-21 xxx | 2025-04-21 xxx |        | 5            | 5        |
+------------+---------------------------------------------------------------------------------------------------------------------------------------------+---------+----------------+----------------+--------+--------------+----------+
说明

filePath的有效时间为100分钟,您可以通过filePath中的Expires参数查看链接是否在有效期内。如果您需要访问该链接,请在有效期内进行访问。

4. (可选)将推理结果写回数据库

为了避免AI模型对数据库的频繁写入,PolarDB含有AI模型推理列的数据表(PolarDB for AI Augmented Table,AAT)作为外部表存储在对象存储OSS上。因此您需先开启冷数据归档功能。

  1. 开启冷数据归档

    请前往PolarDB控制台配置与管理 > 数据与生命周期 > 冷数据归档(冷数据)页面开启冷数据归档功能。

  2. 创建数据库并授权账号权限。

    您需创建一个新的数据库polar4ai,系统自动生成的AAT将存储于数据库polar4ai中。在创建数据库时,请选择字符集utf8mb4,并选择AI节点的连接数据库账号进行授权,授予该账号读写权限。

  3. 使用情感分析模型进行离线推理,自动生成AAT。

    /*polar4ai*/SELECT * FROM PREDICT (MODEL _polar4ai_tongyi_sa, SELECT content FROM textinfo) WITH (x_cols='content', mode='async', into_type='db') INTO tongyi_sa_predict_in_db;

    执行结果如下:

    +--------------------------------------+
    | task_id                              |
    +--------------------------------------+
    | e61aefa8-42af-11f0-92d0-xxxxxxxxxxxx |
    +--------------------------------------+

    以上查询结果返回该任务的task_id,您可以通过该任务ID查询任务状态。

    /*polar4ai*/SHOW TASK `e61aefa8-42af-11f0-92d0-xxxxxxxxxxxx`;

    执行结果如下,当返回的taskStatusfinish时,表示任务已完成。

    +------------+------------+---------+----------------+----------------+--------+--------------+----------+
    | taskStatus | filePath   | results | startTime      | endTime        | errMsg | successBatch | allBatch |
    +------------+------------+---------+----------------+----------------+--------+--------------+----------+
    | finish     | []         |         | 2025-04-21 xxx | 2025-04-21 xxx |        | 5            | 5        |
    +------------+------------+---------+----------------+----------------+--------+--------------+----------+
  4. 查看数据库polar4ai下自动生成的AAT表信息。

    SHOW CREATE TABLE polar4ai.tongyi_sa_predict_in_db;

    执行结果如下:

    +--------------------------+-------------------------------------------------------------------------------------------------------------+
    | Table                    | Create Table                                                                                                |
    +--------------------------+-------------------------------------------------------------------------------------------------------------+
    | tongyi_sa_predict_in_db  | CREATE TABLE `tongyi_sa_predict_in_db` (
      `content` text,
      `content_result` text
    ) ENGINE=CSV DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /*!99990 800010128 NULL_MARKER='NULL' */ CONNECTION='default_oss_server' |
    +--------------------------+-------------------------------------------------------------------------------------------------------------+
  5. 查看AAT表中的数据。

    SELECT * FROM polar4ai.tongyi_sa_predict_in_db;

    执行结果如下:

    +-------------------------------------------------------------+----------------+
    | content                                                     | content_result |
    +-------------------------------------------------------------+----------------+
    | 这个东西只是看着还行,实际体验上非常的不好,不推荐大家购买。          | 负向            |
    | 华为最新手机Mate 60 Pro自开卖后销售火爆,目前已缺货。知名分析师郭... | 正向            |
    | 近年来,中国电影市场逐渐倾向于现实题材。2018年的《我不是药神》以31... | 中立            |
    | 你是谁                                                       | 中立            |
    | This item only looks decent; the actual experience is ve... | 负向            |
    +-------------------------------------------------------------+-----------------+