# AI APIs
 #### ai_generate
**描述**： 使用大语言模型生成文本，并将生成结果作为新列添加到Dataset中。model_name需已注册。
**语法格式**：
```
ai_generate(prompt, on, as_col, model_name, model_parameters=None)
```
**输入参数**：
| 参数              | 是否必选 | 参数类型      | 描述                              |
|:---|:---|:---|:---|
| prompt           | 是   | str        | 文本生成的提示词模板。输入列的内容将被追加到此提示词后。     |
| on                | 是   | ir.Column | 包含待处理输入数据的Dataset列。              |
| as_col             | 是    | str      | 存储生成文本的新列名称。                   |
| model_name       | 是    | str        | 用于文本生成的大语言模型名称。                    |
| model_parameters | 否  | str       | 大语言模型的额外参数，以JSON格式字符串提供。默认为None。 |
   
**返回值类型**： 包含新生成列的Dataset。
**示例**：
```
>>> from aura_frame.multimodal import ai_lake
>>> con = ai_lake.connect(
...     aura_endpoint='*',
...     access_key='*',
...     secret_key='*'
...     ...
... )
>>> ds = con.load_dataset("demo_table_text", database='my_schema')
>>> ds
| id | text_content          |
| -- | --------------------- |
| int| string                |
| -- | --------------------- |
| 1  | You're a good man.   |
| 2  | You're a bad man.     |
# 使用带模型参数的AI生成
>>> ds.ai_generate(
...     prompt="Is this a positive review? Just reply with 'Yes' or 'No'.",
...     on=ds.text_content,
...     as_col="judgement",
...     model_name="gpt-4",
...     model_parameters='{"temperature": 0.7, "max_tokens": 100}'
... )
| id | text_content          | judgement        |
| -- | --------------------- | --------------- |
| int| string                | string          |
| -- | --------------------- | --------------- |
| 1  | You're a good man.    | Yes             |
| 2  | You're a bad man.     | No              |
```
 #### create_model
**描述**：创建一个抽象本地模型，用于绑定到远程LLM服务。
**语法格式**：
```
create_model(model_name, base_url, api_key, remote_model_name, description=None, database=None)
```
**输入参数**：
| 参数               | 是否必选 | 参数类型 | 描述              |
|:---|:---|:---|:---|
| model_name         | 是      | str     | 抽象本地模型的名称。       |
| base_url        | 是     | str  | 远程LLM服务的基础URL。  |
| api_key            | 是      | str    | 连接远程LLM服务所需的API密钥。 |
| remote_model_name | 是    | str  | 远程LLM服务的模型名称。    |
| description        | 否     | str    | 可选参数，抽象本地模型的描述信息。  |
| database            | 否     | str   | 可选参数，模型所属的数据库名称。  |
   
**返回值类型**：无。
 #### list_models
**描述**：查看指定数据库或默认数据库中的所有模型。
**语法格式**：
```
list_models(database=None)
```
**输入参数**：
| 参数      | 是否必选 | 参数类型 | 描述                               |
|:---|:---|:---|:---|
| database | 否     | str  | 要查看的模型所在的数据库名称。如果为None，则使用默认数据库。 |
   
**返回值类型**：list\[tuple\] ，为包含模型名称元组的列表。
 #### drop_model
**描述**：删除与模型名称对应的抽象本地模型。
**语法格式**：
```
drop_model(model_name)
```
**输入参数**：
| 参数           | 是否必选 | 参数类型 | 描述         |
|:---|:---|:---|:---|
| model_name | 是      | str  | 抽象本地模型的名称。 |
   
**返回值类型**：无
 #### describe_model
**描述**：查看指定的模型的详细信息。
**语法格式**：
```
describe_model(model_name, database=None)
```
**输入参数**：
| 参数          | 是否必选 | 参数类型 | 描述                     |
|:---|:---|:---|:---|
| model_name | 是    | str  | 要查看的模型名称。               |
| database   | 否  | str | 预留参数，模型所在的数据库名称，默认为None。 |
   
**返回值类型**：查看的模型的详细信息。
