技术原理
系统表实现
本特性在GaussDB中复用系统表GS_MODEL_WAREHOUSE,记录创建的外部模型服务相关信息。通过新添加的CREATE LLM和DROP LLM命令,实现对模型服务的管理。
系统表GS_MODEL_WAREHOUSE具体描述请参见《参考》中“系统表和系统视图 > 系统表 > AI > GS_MODEL_WAREHOUSE”章节。
在CREATE LLM语句中指定的参数会在系统表的下列字段存储,其余参数置为空或默认值,对应关系如下表1:
| 表字段 | 对应模型信息 |
|---|---|
| modelname | gs_model_name,数据库中模型服务的名称。 |
| modeltype | 模型服务的类型。llm_query/llm_embed/llm_rerank三类函数中可以调用的模型服务分别记录为 llm_query_api/llm_embed_api/llm_rerank_api。 |
| hyperparametersnames | 必选和选填的所有参数的名字会被记录在这个字段。 |
| hyperparametersvalues | 必填和选填的所有参数的值会被记录在这个字段。顺序必须与hyperparametersnames一致。 |
| hyperparametersoids | 必填和选填的所有参数的类型对应的OID会被记录在这个字段。顺序必须与hyperparametersnames一致。 |
创建模型服务时,模型侧的api_key信息在存入系统表之前会进行加密,本特性复用OBS传输使用的密钥文件:
obsserver.key.cipher
加密时读取该密钥文件,使用aes128算法生成API KEY对应的密文,并将密文存于系统表中对应的字典里。
DDL实现
本特性为支持模型服务管理,新增CREATE LLM和DROP LLM命令。以CREATE LLM为例,其时序图如图图1 模型创建序列图所示:
其执行顺序可分解如下:
- 用户在输入CREATE LLM命令之后,系统会将其解析成一个新增的CREATE LLM的DDL语句,并触发SQL引擎调用对应的执行逻辑。
- 系统对参数进行解析和校验,并将API KEY进行加密处理。上一步校验通过后,可进入下一步校验模型服务的可用性。
- GaussDB内核对模型服务发送模拟请求,当收到正常反馈之后则表示校验成功。成功之后会将command模块添加进系统表,并将命令执行成功的提示返回给用户。
