使用 tencentdb_ai 插件调用大模型

最近更新时间:2025-02-19 18:48:12

我的收藏
当前无论是基础大模型还是 AI 应用开发都发展迅速,云数据库 PostgreSQL 提供了 tencentdb_ai 插件,方便您在云数据库 PostgreSQL 实例中轻松调用网络可通的大模型 API,完成各种场景的应用开发。本插件支持大版本为 PostgreSQL 17 的实例。
说明:
使用 tencentdb_ai 的前提是您已经创建完成了大版本为 PostgreSQL 17 的实例。
创建 tencentdb_ai 插件会关联创建 pgcrypto 插件,请知悉。

tencentdb_ai 插件函数说明

新增模型

add_model 函数定义如下:
tencentdb_ai.add_model(
model_name NAME,
version TEXT,
region TEXT,
json_path JSONPATH
);
参数解释如下:
model_name:模型名称,如 hunyuan-litedeepseek-r1 等。
version:该模型的公共参数 version,如该模型不需要 version 参数则可以不填写。
region:该模型的公共参数 region,如该模型不需要 region 参数则可以不填写。
json_path:为调用该模型时,指定如何对模型的JSON响应进行提取。相当于对模型输出调用jsonb_path_query_first函数。如果不指定该参数,默认原样输出模型的原始响应。

查看已注册模型

list_models 函数定义如下:
tencentdb_ai.list_models(void);

更新模型

update_model_attr 函数定义如下:
tencentdb_ai.update_model_attr(
model_name NAME,
attr_name text,
attr_value text
);
参数解释如下:
model_name:模型名称。
attr_name:需要更新的模型属性。可更新的模型属性有 version、region、json_path、SecretId、SecretKey
attr_value:需要更新的属性的值。
具体 SecretId 和 SecretKey 请查看 访问管理

删除模型

delete_model 函数定义如下:
tencentdb_ai.delete_model(
model_name NAME
);
参数解释如下:
model_name:模型名称。

模型调用

call_model 函数定义如下:
tencentdb_ai.call_model(
model_name NAME,
common_params TEXT[],
api_params TEXT[]
);
参数解释如下:
model_name:模型名称。
common_params:需要调用模型的公共参数,例如ARRAY['Action: ChatCompletions', 'Version: 2023-09-01']
api_params:需要调用模型的专有参数,例如ARRAY['"Stream": false', '"Model": "hunyuan-lite"', '"Messages": [{"Role": "user", "Content": "您好"}]']
除了使用 call_model 函数来进行模型调用之外,您还可以使用如下几个接口来进行特定场景的模型调用。

固定场景接口

对话

chat_completions 函数定义如下:
tencentdb_ai.chat_completions(
model_name NAME,
content TEXT,
args TEXT[] default NULL
);
参数解释如下:
model_name:模型名称。
content:对话内容。
args:调用模型的其他参数,默认为 NULL。
调用示例:
SELECT tencentdb_ai.chat_completions('hunyuan-lite', '您好');
chat_completions
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
----------------------------------
{"Response":{"RequestId":"*******-****-****-****-***********","Note":"以上内容为AI生成,不代表开发者立场,请勿删除或修改本标记","Choices":[{"Index":0,"Message":{"Role":"assistant","Co
ntent":"您好呀!很高兴能和您聊天,今天有什么想和我分享的吗"},"FinishReason":"stop"}],"Created":1739786393,"Id":"*******-****-****-****-*********","Usage":{"PromptTokens":3,"Completio
nTokens":17,"TotalTokens":20}}}
(1 row)

文本转向量

get_embedding 函数定义如下:
tencentdb_ai.get_embedding(
model_name NAME,
content TEXT[]
);
参数解释如下:
model_name:模型名称。
content:转化内容。
调用示例:
damoxing1=> SELECT tencentdb_ai.get_embedding('hunyuan-embedding',ARRAY['您好', 'PostgreSQL']);

文本排序

run_rerank 函数定义如下:
tencentdb_ai.run_rerank(
model_name NAME,
query TEXT,
documents TEXT[],
args TEXT[] DEFAULT NULL
);
参数解释如下:
model_name:模型名称。
query:文本排序的问题。
documents:待文本排序的内容。
args:特定模型的指定参数。
damoxing1=> SELECT COUNT(*) FROM tencentdb_ai.run_rerank('lke-reranker-base', '知识引擎大模型', ARRAY['混元大模型', '腾讯知识引擎']);
count
-------
2
(1 row)

插件使用示例

下面为您一一描述插件使用过程:
1. 创建插件
damoxing=> CREATE EXTENSION tencentdb_ai CASCADE;
NOTICE: installing required extension "pgcrypto"
CREATE EXTENSION
检查插件创建完成
damoxing=> SELECT * FROM pg_extension;
oid | extname | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition
-------+--------------+----------+--------------+----------------+------------+-----------+--------------
14275 | plpgsql | 10 | 11 | f | 1.0 | |
16440 | pgcrypto | 16437 | 2200 | t | 1.3 | |
16477 | tencentdb_ai | 16437 | 2200 | t | 1.0 | {16479} | {""}
(3 rows)
2. 添加大模型
damoxing=> SELECT tencentdb_ai.add_model('hunyuan-lite','2023-09-01', NULL, NULL);
add_model
-----------
(1 row)
3. 添加大模型 API 调用的 SecretId 和 SecretKey
具体 SecretId 和 SecretKey 请查看 访问管理
damoxing=> SELECT tencentdb_ai.update_model_attr('hunyuan-lite', 'SecretId', 'AKID***************');
update_model_attr
-------------------
(1 row)
damoxing=> SELECT tencentdb_ai.update_model_attr('hunyuan-lite', 'SecretKey', '********************');
update_model_attr
-------------------
(1 row)
4. 查看当前添加的模型列表
damoxing=> SELECT * FROM tencentdb_ai.list_models();
-[ RECORD 1 ]--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
model_name | hunyuan-lite
json_path |
secretid | ***************************
secretkey | ***************************
version |
region |
id_random | 516234453022
key_random | 134577899689
5. 调用大模型
聊天场景下,您可以使用 call_model 接口。
damoxing=> SELECT tencentdb_ai.call_model('hunyuan-lite',
ARRAY['Action: ChatCompletions', 'Version: 2023-09-01'],
ARRAY['"Stream": false', '"Model": "hunyuan-lite"', '"Messages": [{"Role": "user", "Content": "您好"}]']);damoxing(> damoxing(>
call_model
--------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------
{"Response":{"RequestId":"*******-****-****-****-***********","Note":"以上内容为AI生成,不代表开发者立场,请勿删除或修改本标记","Ch
oices":[{"Index":0,"Message":{"Role":"assistant","Content":"您好!很高兴与您交流。请问有什么我可以帮助您的吗?无论是关于生活、工作、学
习还是其他方面的问题,我都会尽力为您提供帮助。"},"FinishReason":"stop"}],"Created":1739793838,"Id":"*******-****-****-****-***********
","Usage":{"PromptTokens":3,"CompletionTokens":33,"TotalTokens":36}}}
(1 row)

damoxing=>