
# 操作指导
创建模型服务：
```
CREATE LLM RERANK MODEL mod_r using model = 'BAAI/bge-reranker-v2-m3', url = 'https://ip:port/v1/rerank', api_key='api_key'; --创建rerank模型服务
CREATE LLM QUERY MODEL mod_q USING model = 'Qwen/Qwen2.5-7B-Instruct', url ='https://ip:port/v1/chat/completions', api_key='api_key', extra_params='{"max_tokens": 5, "temperature": 0.1}'; --创建大语言模型服务
CREATE LLM EMBED MODEL mod_e USING MODEL = 'Qwen/gte-Qwen2-1.5B-instruct', url ='https://ip:port/v1/embeddings', api_key='api_key'; --创建embedding模型服务
```
删除模型服务：
```
drop llm model mod_r;
drop llm model mod_q;
drop llm model mod_e;
```
模型服务创建详细语法如下：
```
CREATE LLM QUERY MODEL gs_model_name
USING
    MODEL = 'remote_model_name',
    URL = 'https://example.com:443/path/to/api',
    API_KEY = 'api_key'
    [, SYSTEM_PROMPT = 'prompt_string' ]
    [, EXTRA_PARAMS = '{JSON}' ];
CREATE LLM EMBED MODEL gs_model_name
USING
    MODEL = 'remote_model_name',
    URL = 'https://example.com:443/path/to/api',
    API_KEY = 'api_key'
    [, EXTRA_PARAMS = '{JSON}' ];
CREATE LLM RERANK MODEL gs_model_name
USING
    MODEL = 'remote_model_name',
    URL = 'https://example.com:443/path/to/api',
    API_KEY = 'api_key'
    [, EXTRA_PARAMS = '{JSON}' ];
```
参数说明如下表所示：
表1gs_model_name参数说明 
| 参数名           | 类型     | 描述                                                                                                                                |
|:---|:---|:---|
| gs_model_name | string | gs_model_name是模型服务在GaussDB中的名称。该名称作为标识符，在以后的语义函数中作为参数输入，不超过63字节。输入大小写不敏感，在系统中自动转写至小写字母存储，只支持数字、字母和下划线'_'符号，且不能以数字开头，如果超过长度则会自动截断。 |
   
USING语句下包括下面五个参数：
表2USING语句下的参数说明 
| 参数名           | 类型     | 是否必选 | 描述                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| model         | text   | 必选   | 在外部模型服务中需要指定的模型名称，长度不超过64字节。在支持OpenAI标准的API的模型服务中，需要在请求体中指定模型名。                                                                                                                                                            |
| url           | text   | 必选   | 模型服务的地址，不超过256字节。                                                                                                                                                                                                          |
| api_key       | text   | 必选   | 认证所需的API KEY，长度16到256字节。模型服务往往需要通过API KEY进行认证，通过认证才可以返回结果。模型注册时指定API KEY，之后每次模型调用直接复用。                                                                                                                                     |
| system_prompt | text   | 可选   | 可选，OpenAI v1/chat/completions API中输入的参数。对应给模型服务输入的系统提示词，代表给模型提前输入的系统指令。如果system_prompt长度超过模型最大tokens范围则模型侧会拒绝服务并返回异常信息。                                                                                                    |
| extra_params  | JSON字典 | 可选   | 其他需要透传到模型服务的参数。OpenAI 的API规范中，可以在请求体内添加支持的参数。详细的支持参数请参照待添加的模型服务对应的API文档，各模型服务可能存在差异，通过JSON字典的字符串格式输入，在数据库侧会校验json格式的合法性，除了创建大语言模型时会校验temperature和max_tokens的范围之外，其余参数会被直接透传到模型服务上，如果属于模型参数范围则会生效，否则会忽略该参数，不合法参数会返回模型侧异常信息。 |
   
EXTRA_PARAMS选项的典型参数如下表所示：
表3EXTRA_PARAMS选项的参数说明 
| 参数名         | 类型   | 是否必选 | 描述                                                               | 取值范围                                                                                                     |
|:---|:---|:---|:---|:---|
| temperature | text | 可选   | OpenAI v1/chat/completions API中输入的temperature参数。代表模型输出的随机程度。     | \[0, 2\]。                                                                                                |
| max_tokens  | text | 可选   | OpenAI v1/chat/completions API中输入的max_tokens参数。模型服务输出的最大token数量。 | 正整数，范围\[1,8192\]。 如果该值为1.0，2.0等后面为0的浮点数，则会强制转为整数类型，否则会报错。 |
   
![](https://support.huaweicloud.com/centralized-devg-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
1. 模型服务还有其他参数，本功能在使用时仅对temperature参数进行范围校验，其他参数通过模型自身进行合法性校验。
2. 每个模型有其自身token处理上限，如果超过模型上限则模型服务会报错。
 
模型删除命令：
```
DROP LLM model gs_model_name;
```
其中参数 gs_model_name表示以前已经注册过的某个模型服务的名称。当该名称存在时，从系统表中删除对应的记录。
该命令为DDL命令，返回结果为成功或失败。
