创建Prompt模板
更新时间:2024-09-23
注意:
- 为提升开发者使用体验,推荐使用Prompt工程V2版本接口,功能更全面、且接口更规范,详见Prompt工程API列表。
- Prompt工程V1版本接口功能不再升级,本文档于2024年8月5日下线;由于V1版本接口后续可能下线停止服务,为避免影响使用,建议接入Prompt工程V2版本接口。
功能介绍
本接口用于创建Prompt模板。
在线调试
平台提供了 API在线调试平台-示例代码 ,用于帮助开发者调试接口,平台集成快速检索、查看开发文档、查看在线调用的请求内容和返回结果、复制和下载示例代码等功能,简单易用,更多内容请查看API在线调试介绍。
SDK调用
创建 Prompt 模板最简单的方式是直接使用 Prompt.create 方法,传入 Prompt 名称和模板内容即可创建 Prompt,模板中通过 {} 表示待填充的变量名。返回结果可以通过 ['result']['templateid'] 字段获取模板 ID。
使用说明
调用本文API,需使用安全认证AK/SK鉴权,调用流程及鉴权介绍详见SDK安装及使用流程。
调用示例
import os
from qianfan.resources import Prompt
# 使用安全认证AK/SK鉴权,通过环境变量方式初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
os.environ["QIANFAN_ACCESS_KEY"] = "your_iam_ak"
os.environ["QIANFAN_SECRET_KEY"] = "your_iam_sk"
resp = Prompt.create(
name="test_sdk04",
# 变量必须字母开头,仅包含字母、数字和下划线,长度 2-30
template="example template {var1}",
)
print(resp)
SDK 也提供了其他参数,能够根据需求创建 Prompt,例如通过 identifier 字段指定识别变量的符号,示例如下。
import os
os.environ["QIANFAN_ACCESS_KEY"] = "your_ak"
os.environ["QIANFAN_SECRET_KEY"] = "your_sk"
from qianfan.resources import Prompt
from qianfan.consts import PromptFrameworkType
resp = Prompt.create(
name="example_prompt",
identifier="()", # 支持的标识符有 ()、[]、{}、(())、[[]]、{{}}
template="template (v1) {v2} (v3)", # 由于指定了标识符,所以此处 v2 不是变量
framework=PromptFrameworkType.CRISPE, # 指定框架类型
variables=["v1"], # 指定变量,不指定则自动识别
label_ids=[10, 20] # 指定该 Prompt 对应的标签,获取方式见下方 `获取标签列表`
)
返回示例
QfResponse(code=200,
headers={...},
body={
'log_id': 'gv1amq7qundnmv6s',
'result': {
'templateId': 11955,
'templatePK': 'pt-b8acxxxx2c9f9d'
},
'status': 200,
'success': True
})
请求参数
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
name | string | 是 | Prompt模板的名称 |
label_ids | List[int] 或 List[string] | 否 | 模板标签Id数组,说明: · 单个模板最多可选20个标签 · 数组元素是标签id,数组所有元素类型必须一致,例如所有元素都是int,或所有元素都是string · 通过调用获取标签列表接口,返回的labelId字段获取 |
template | string | 是 | 模板内容,说明: (1)如果不使用框架,示例:请以{number}字数生成{province}省相关简介 (2)如果使用模型框架该字段值需符合框架要求,详见模板框架说明 |
variables | List[string] | 是 | 模板变量,示例:"var1,var2",说明:变量标识符号里面的内容,不包含变量标识符,且以逗号隔开 |
identifier | string | 是 | 变量识别符号,支持以下符号: · 大括号{} · 双大括号{{}} · 中括号[] · 双中括号[[]] · 小括号() · 双小括号(()) |
scene | PromptSceneType | 否 | 场景类型,可选值如下: · PromptSceneType.Text2Text:文生文;如果scene字段值不传,默认为PromptSceneType.Text2Text · PromptSceneType.Text2Image:文生图 |
framework | PromptFrameworkType | 否 | 模板框架,说明: (1)如果不使用模板框架,该字段值为PromptFrameworkType.NotUse (2)如果使用模板框架,可选值如下: · PromptFrameworkType.Basic:Basic Prompt Framework · PromptFrameworkType.Fewshot:CRISPE Prompt Framework · PromptFrameworkType.Fewshot:Few-shot Promt 如果使用模板框架,参数template需按照模板框架要求填写 |
negative_template | string | 否 | 反向prompt模板内容,表示不希望大模型生成的内容,说明:只有scene为Text2Image,即场景类型为文生图时,该字段有效 |
negative_variables | List[string] | 否 | 反向prompt模板的变量,说明:只有scene为PromptSceneType.Text2Image时,即场景类型为文生图时,该字段有效 |
hyperParametersStatus | int | 否 | 推理参数开关,说明: · 0:关闭 · 1:开启 |
hyperParameters | hyperParameter | 否 | 推理参数 |
hyperParameter说明
- 文生文相关推理参数
名称 | 类型 | 描述 |
---|---|---|
modelName | string | 模型类别,说明: · EB-Turbo · ERNIE-Bot · open-source |
temperature | float | 温度,说明: (1)较高的数值会使输出更加随机,而较低的数值会使其更加集中和确定 (2)默认0.8,范围 (0, 1.0],不能为0 (3)建议该参数和top_p只设置1个 (4)建议top_p和temperature不要同时更改 |
topP | float | 多样性,说明: (1)影响输出文本的多样性,取值越大,生成文本的多样性越强 (2)默认0.8,取值范围 [0, 1.0] (3)建议该参数和temperature只设置1个 (4)建议top_p和temperature不要同时更改 |
penaltyScore | float | 重复惩罚,通过对已生成的token增加惩罚,减少重复生成的现象,说明: (1)值越大表示惩罚越大 (2)默认1.0,取值范围:[1.0, 2.0] |
disableSearch | bool | 实时搜索,是否强制关闭实时搜索功能,默认false,表示不关闭 |
enableCitation | bool | 角标返回,是否开启上角标返回,说明: (1)开启后,有概率触发搜索溯源信息search_info,search_info内容见search_info说明 (2)默认false,不开启 |
stop | string[] | 停止标识 |
system | string | 模型人设,主要用于人设设定,例如,你是xxx公司制作的AI助手,长度限制1024个字符 |
- 文生图相关推理参数
名称 | 类型 | 描述 |
---|---|---|
picSize | string | 图片比例,入参size。生成图片长宽,说明: (1)默认值 1024x1024 (2)取值范围如下:["512x512", "768x768", "768x1024", "1024x768", "576x1024", "1024x576", "1024x1024"] 注意:建议选择较大尺寸,结合完善的prompt,以保障图片质量 |
picNum | int | 图片数量,入参n。生成图片数量,说明: (1)默认值为1 (2)取值范围为1-4 (3)单次生成的图片较多及请求较频繁可能导致请求超时 |
samplingSteps | int | 采样步数,入参step。进行采样的次数,说明: (1)默认值为20 (2)取值范围为10-50 |
samplingMode | string | 采样方式,入参sampler_index,说明: (1)默认值:Euler a (2)值如下: · Euler · Euler a · DPM++ 2M · DPM++ 2M Karras · LMS Karras · DPM++ SDE · DPM++ SDE Karras · DPM2 a Karras · Heun · DPM++ 2M SDE · DPM++ 2M SDE Karras · DPM2 · DPM2 Karras · DPM2 a · LMS |
search_info说明
名称 | 类型 | 描述 |
---|---|---|
search_results | List(search_result) | 搜索结果列表 |
search_result说明
名称 | 类型 | 描述 |
---|---|---|
index | int | 序号 |
url | string | 搜索结果URL |
title | string | 搜索结果标题 |
返回参数
名称 | 类型 | 描述 |
---|---|---|
log_id | string | 操作记录id |
result | dict | 返回结果 |
status | int | 状态码 |
success | bool | 是否操作成功,说明: · true:成功 · false:失败 |
result说明
名称 | 类型 | 描述 |
---|---|---|
templateId | int | Prompt模板ID |
templatePK | string | Prompt模板ID,字符串类型 |
HTTP调用
鉴权说明
调用本文API,使用“基于安全认证AK/SK”进行签名计算鉴权,即使用安全认证中的Access Key ID 和 Secret Access Key进行鉴权,具体鉴权认证机制参考HTTP调用鉴权说明。
请求说明
- 基本信息
请求地址:https://qianfan.baidubce.com/wenxinworkshop/prompt/template/create
请求方式:POST
- Header参数
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
Content-Type | string | 是 | 固定值:application/json |
x-bce-date | string | 否 | 当前时间,遵循ISO8601规范,格式如2016-04-06T08:23:49Z |
Authorization | string | 是 | 用于验证请求合法性的认证信息,更多内容请参考鉴权认证机制,签名工具可参考IAM签名工具 |
- Body参数
名称 | 类型 | 必填 | 说明 |
---|---|---|---|
templateName | string | 是 | Prompt模板的名称 |
labelIds | int[] 或 string[] | 否 | 模板标签Id数组,说明: (1)单个模板最多可选20个标签 (2)数组元素是标签id,数组所有元素类型必须一致,例如所有元素都是int,或所有元素都是string (3)通过调用获取标签列表接口,返回的labelId字段获取 |
templateContent | string | 是 | 模板内容,说明: (1)如果不使用框架,示例:请以{number}字数生成{province}省相关简介 (2)如果使用模型框架该字段值需符合框架要求,详见模板框架说明 |
templateVariables | string | 是 | 模板变量,示例:"var1,var2",说明:变量标识符号里面的内容,不包含变量标识符,且以逗号隔开 |
variableIdentifier | string | 是 | 变量识别符号,支持以下符号: · 大括号{} · 双大括号{{}} · 中括号[] · 双中括号[[]] · 小括号() · 双小括号(()) |
sceneType | int | 否 | 场景类型,可选值如下: · 1:文生文,如果不传默认是1 · 2:文生图 |
frameworkType | int | 否 | 模板框架,说明: (1)如果不使用模板框架,该字段值为0;如果该字段值不传,默认为0 (2)如果使用模板框架,可选值如下: · 1:Basic Prompt Framework · 2:CRISPE Prompt Framework · 3:Few-shot Promt 如果使用模板框架,参数templateContent需按照模板框架要求填写 |
negativeTemplateContent | string | 否 | 反向Prompt模板内容,表示不希望大模型生成的内容,说明:只有sceneType为2,即场景类型为文生图时,该字段有效 |
negativeTemplateVariables | string | 否 | 反向Prompt模板的变量,说明:只有sceneType为2时,即场景类型为文生图时,该字段有效 |
hyperParametersStatus | int | 否 | 推理参数开关,说明: · 0:关闭 · 1:开启 |
hyperParameters | hyperParameter | 否 | 推理参数 |
hyperParameter说明
- 文生文相关推理参数
名称 | 类型 | 描述 |
---|---|---|
modelName | string | 模型类别,说明: · EB-Turbo · ERNIE-Bot · open-source |
temperature | float | 温度,说明: (1)较高的数值会使输出更加随机,而较低的数值会使其更加集中和确定 (2)默认0.8,范围 (0, 1.0],不能为0 (3)建议该参数和top_p只设置1个 (4)建议top_p和temperature不要同时更改 |
topP | float | 多样性,说明: (1)影响输出文本的多样性,取值越大,生成文本的多样性越强 (2)默认0.8,取值范围 [0, 1.0] (3)建议该参数和temperature只设置1个 (4)建议top_p和temperature不要同时更改 |
penaltyScore | float | 重复惩罚,通过对已生成的token增加惩罚,减少重复生成的现象,说明: (1)值越大表示惩罚越大 (2)默认1.0,取值范围:[1.0, 2.0] |
disableSearch | bool | 实时搜索,是否强制关闭实时搜索功能,默认false,表示不关闭 |
enableCitation | bool | 角标返回,是否开启上角标返回,说明: (1)开启后,有概率触发搜索溯源信息search_info,search_info内容见search_info说明 (2)默认false,不开启 |
stop | string[] | 停止标识 |
system | string | 模型人设,主要用于人设设定,例如,你是xxx公司制作的AI助手,长度限制1024个字符 |
- 文生图相关推理参数
名称 | 类型 | 描述 |
---|---|---|
picSize | string | 图片比例,入参size。生成图片长宽,说明: (1)默认值 1024x1024 (2)取值范围如下:["512x512", "768x768", "768x1024", "1024x768", "576x1024", "1024x576", "1024x1024"] 注意:建议选择较大尺寸,结合完善的prompt,以保障图片质量 |
picNum | int | 图片数量,入参n。生成图片数量,说明: (1)默认值为1 (2)取值范围为1-4 (3)单次生成的图片较多及请求较频繁可能导致请求超时 |
samplingSteps | int | 采样步数,入参step。进行采样的次数,说明: (1)默认值为20 (2)取值范围为10-50 |
samplingMode | string | 采样方式,入参sampler_index,说明: (1)默认值:Euler a (2)值如下: · Euler · Euler a · DPM++ 2M · DPM++ 2M Karras · LMS Karras · DPM++ SDE · DPM++ SDE Karras · DPM2 a Karras · Heun · DPM++ 2M SDE · DPM++ 2M SDE Karras · DPM2 · DPM2 Karras · DPM2 a · LMS |
search_info说明
名称 | 类型 | 描述 |
---|---|---|
search_results | List(search_result) | 搜索结果列表 |
search_result说明
名称 | 类型 | 描述 |
---|---|---|
index | int | 序号 |
url | string | 搜索结果URL |
title | string | 搜索结果标题 |
响应说明
名称 | 类型 | 说明 |
---|---|---|
log_id | string | 操作记录id |
result | object | 返回结果 |
status | int | 状态码 |
success | bool | 是否操作成功,说明: · true:成功 · false:失败 |
result说明
名称 | 类型 | 说明 |
---|---|---|
templateId | int | Prompt模板ID |
templatePK | string | Prompt模板ID,字符串类型 |
示例
创建文生文类型无框架Prompt模板
- 请求示例
# 替换下列示例中的Authorization值、x-bce-date值
curl -i --location 'https://qianfan.baidubce.com/wenxinworkshop/prompt/template/create'\
--header 'Authorization: bce-auth-v1/f0ee7axxxx/2023-09-19T13:42:13Z/180000/host;x-bce-date/9a8cfb8ee58a8f44a21a52640015de61bc55ca2e6d8cc23d080016e374525543'\
--header 'x-bce-date: 2023-09-19T13:37:10Z'\
--header 'Content-Type: application/json'\
--data '{
"templateName": "11",
"labelIds": [139,142],
"templateContent": "请以{number}字数生成{province}省相关简介",
"templateVariables": "number,province",
"variableIdentifier": "{}",
"sceneType": 1,
"frameworkType": 0
}'
- 响应示例
{
"log_id": "py3yxbi7ffdj7kuc",
"result": {
"templateId": 732,
"templatePK": "pt-b8ac2cad292c9f9d"
},
"status": 200,
"success": true
}
创建文生图类型Prompt模板
- 请求示例
# 替换下列示例中的Authorization值、x-bce-date值
curl -i --location 'https://qianfan.baidubce.com/wenxinworkshop/prompt/template/create' \
--header 'Authorization: bce-auth-v1/f0ee7axxxx/2023-09-19T13:42:13Z/180000/host;x-bce-date/9a8cfb8ee58a8f44a21a52640015de61bc55ca2e6d8cc23d080016e374525543' \
--header 'x-bce-date: 2023-09-19T13:37:10Z' \
--header 'Content-Type: application/json' \
--data '{
"templateName": "11",
"labelIds": [],
"templateContent": "one boy",
"templateVariables": "",
"negativeTemplateContent": "multi person",
"negativeTemplateVariables": "",
"variableIdentifier": "[[]]",
"sceneType": 2,
"frameworkType": 0
}'
- 响应示例
{
"log_id": "kw4yxdl7f3lj73dc",
"result": {
"templateId": 733,
"templatePK": "pt-d8ac2cad292c9f9d"
},
"status": 200,
"success": true
}
创建文生文类型Basic Prompt Framework框架Prompt模板
- 请求示例
# 替换下列示例中的Authorization值、x-bce-date值
curl -i --location 'https://qianfan.baidubce.com/wenxinworkshop/prompt/template/create' \
--header 'Authorization: bce-auth-v1/f0ee7axxxx/2023-09-19T13:42:13Z/180000/host;x-bce-date/9a8cfb8ee58a8f44a21a52640015de61bc55ca2e6d8cc23d080016e374525543' \
--header 'x-bce-date: 2023-09-19T13:37:10Z' \
--header 'Content-Type: application/json' \
--data '{
"templateName": "11",
"labelIds": [],
"templateContent": "指令:请生成一篇环保主题的文章\n背景信息:当前核污染越来越严重\n补充数据:19世纪起环境愈发恶劣\n输出格式:输出一篇环保相关文章,字数控制在800字左右",
"templateVariables": "",
"variableIdentifier": "{}",
"sceneType": 1,
"frameworkType": 1
}'
- 响应示例
{
"log_id": "98syd3l77dljek18",
"result": {
"templateId": 734,
"templatePK": "pt-d8ac2cad292c9f9d"
},
"status": 200,
"success": true
}
错误码
若请求错误,服务器将返回的JSON文本包含以下参数:
名称 | 描述 |
---|---|
error_code | 错误码 |
error_msg | 错误描述信息,帮助理解和解决发生的错误 |
例如参数错误返回:
{
"error_code": 500001,
"error_msg": "param invalid"
}
更多相关错误码,请查看错误码说明。