文本补全
功能介绍
给定一个提示和一些参数,模型会根据这些信息生成一个或多个预测的补全。它可以用来做文本生成、自动写作、代码补全等任务。
URI
POST /v1/{project_id}/deployments/{deployment_id}/text/completions
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
项目ID,获取方法请参见获取项目ID。 |
deployment_id |
是 |
String |
模型的部署ID,获取方法请参见获取模型调用API地址。 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
X-Auth-Token |
是 |
String |
用户Token。 用于获取操作API的权限。获取Token接口响应消息头中X-Subject-Token的值即为Token。 |
Content-Type |
是 |
String |
发送的实体的MIME类型,参数值为“application/json”。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
prompt |
是 |
String |
向模型输入的文本信息,单位token。 最小长度:1 最大长度:不同模型支持的token长度请参见《产品介绍》“模型规格 > 模型基础信息”章节。
说明:
token是指模型处理和生成文本的基本单位。token可以是词或者字符的片段。模型的输入和输出的文本都会被转换成token,然后根据模型的概率分布进行采样或者计算。 |
user |
否 |
String |
用于代表用户的唯一标识符,字符串长度最大64,最小1。 |
temperature |
否 |
Float |
用于控制生成文本的多样性和创造力。 取值接近0表示最低的随机性,1表示最高的随机性。一般来说,temperature越低,适合完成确定性的任务。temperature越高,如0.9,适合完成创造性的任务。 temperature参数可以影响语言模型输出的质量和多样性,但也不是唯一的因素。还有其他一些参数,如top_p参数也可以用来调整语言模型的行为和偏好,但不建议同时更改这两个参数。 最小值:0 最大值:1 缺省值:N1模型为0.4、N2模型为0.3,N4模型为0.3 |
top_p |
否 |
Float |
一种替代温度采样的方法,称为nucleus sampling,其中模型考虑具有top_p概率质量的标记的结果。通常建议更改此值或温度,但不要同时更改两者。通常建议更改top_p或temperature来调整生成文本的倾向性,但不要同时更改这两个参数。 取值范围:(0, 1] 缺省值:N1模型为0.7、N2模型为1,N4模型为0.85 |
max_tokens |
否 |
Integer |
生成文本的最大token数量,单位token。 输入的文本加上生成的文本总量不能超过模型所能处理的最大长度。 最小值:1 最大值:不同模型支持的token长度,请参见《产品介绍》“模型规格 > 模型基础信息”章节。 缺省值:默认部署时有token长度最大值,请参见《产品介绍》“模型规格 > 模型基础信息”章节。 |
presence_penalty |
否 |
Float |
用于调整模型对新Token的处理方式。即如果一个Token已经在之前的文本中出现过,那么模型在生成这个Token时会受到一定的惩罚。当presence_penalty的值为正数时,模型会更倾向于生成新的、未出现过的Token,即模型会更倾向于谈论新的话题。 最小值:-2 最大值:2 缺省值:0 (表示该参数未生效) |
frequency_penalty |
否 |
Float |
用于调整模型对频繁出现的Token的处理方式。即如果一个Token在训练集中出现的频率较高,那么模型在生成这个Token时会受到一定的惩罚。当frequency_penalty的值为正数时,模型会更倾向于生成出现频率较低的Token,即模型会更倾向于使用不常见的词汇。最小值:-2,最大值:2 最小值:-2 最大值:2 缺省值:0 (表示该参数未生效) |
stream |
否 |
boolean |
流式开关。 默认值为false,如果开启流式,请赋值true,同时n参数只能设置为1。开启流式开关后,API会在生成文本的过程中,实时地将生成的文本发送给客户端,而不是等到生成完成后一次性将所有文本发送给客户端。 |
响应参数
非流式
状态码: 200
参数 |
参数类型 |
描述 |
---|---|---|
id |
String |
用来标识每个响应的唯一字符串。 |
created |
Integer |
响应生成的时间。 |
choices |
Array of choices objects |
生成的补全信息的列表,包含以下属性:
|
usage |
usage object |
该参数可以帮助用户了解和控制模型的使用情况,避免超出Tokens限制。 |
参数 |
参数类型 |
描述 |
---|---|---|
text |
String |
补全的文本内容。 |
index |
Integer |
补全的索引,从0开始。 |
ppl |
Double |
评估指标,表示推理输出的置信度,ppl为非必传参数。 |
参数 |
参数类型 |
描述 |
---|---|---|
completion_tokens |
Number |
表示模型生成的答案中包含的tokens的数量。 |
prompt_tokens |
Number |
表示生成结果时使用的提示文本的tokens的数量。 |
total_tokens |
Number |
对话过程中使用的tokens总数。 |
流式(stream参数为true)
状态码: 200
参数 |
参数类型 |
描述 |
---|---|---|
data |
String |
stream=true时,模型生成的消息以流式形式返回。生成的内容以增量的方式逐步发送回来,每个data字段均包含一部分生成的内容,直到所有data返回,响应结束。 |
参数 |
参数类型 |
描述 |
---|---|---|
suggestion |
String |
审核结果:block表示未通过。 |
reply |
String |
兜底回复:审核未通过时兜底回复为有效回复,兜底策略。 |
状态码: 400
参数 |
参数类型 |
描述 |
---|---|---|
error_msg |
String |
错误信息。 |
error_code |
String |
错误码。 |
请求示例
- 非流式
POST https://{endpoint}/v1/{project_id}/deployments/{deployment_id}/text/completions Request Header: Content-Type: application/json X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG... Request Body: { "prompt": "写一个穿越到宋朝的故事。", "temperature": 0.9 }
- 流式(stream参数为true)
POST https://{endpoint}/v1/{project_id}/deployments/{deployment_id}/text/completions Request Header: Content-Type: application/json X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG... Request Body: { "prompt": "介绍下长江三峡", "temperature": 0.9, "stream": "true" }
响应示例
非流式
状态码: 200
OK
{ "id": "180f5745-4ee4-42a9-9869-23f829654bb7", "created": 1724915285, "choices": [ { "index": 0, "text": "故事标题:《穿越宋朝的奇妙之旅》在一个阴雨绵绵的夜晚,一个名叫李晓的年轻人正在阅读一本关于宋朝的历史书籍。突然,他感到一阵眩晕,当他再次睁开眼睛时,他发现自己身处一个完全陌生的地方。李晓发现自己穿越到了宋朝。他身处一座繁华的城市,人们穿着古代的服饰,用着他听不懂的语言交谈。他意识到自己真的穿越了。李晓在宋朝的生活充满了挑战。他必须学习如何使用新的语言,适应新的生活方式。他开始学习宋朝的礼仪,尝试理解这个时代的文化。在宋朝,李晓遇到了许多有趣的人。他遇到了一位名叫赵敏拿来的小女孩,她聪明伶俐,让李晓对她产生了深深的喜爱。他还遇到了一位名叫王安石的大儒,他的智慧和博学让李晓深感敬佩。在宋朝的生活中,李晓也遇到了许多困难。他必须适应新的食物,新的气候,甚至新的疾病。但是,他从未放弃,他始终坚信,只要他坚持下去,他就能适应这个新的世界。在宋朝的生活中,李晓也找到了新的目标。他开始学习宋朝的书法,尝试理解这个时代的艺术。他还开始学习宋朝的医学,尝试理解这个时代的科学。在宋朝的生活中,李晓也找到了新的爱情。他与赵敏拿来建立了深厚的感情,他们的conseillé情深深地打动了李晓。最后,李晓决定留在宋朝。他发现,他已经深深地爱上了这个时代,爱上了这里的人,爱上了这里的食物,爱上了这里的一切。这就是李晓在宋朝的hesion之旅,一个充满挑战和机遇的旅程。虽然他来自未来,但他已经成为了宋朝的一部分,成为了这个时代的一部分。", "ppl": 1.77809815678146e-36 } ], "usage": { "completion_tokens": 365, "prompt_tokens": 9, "total_tokens": 374 }
流式(stream参数为true)
状态码: 200
OK
data:{"id":"e95727b0-fe09-4f18-96db-98354bd30e57","created":1687918751,"choices":[{"text":"长江"}]} data:{"id":"e95727b0-fe09-4f18-96db-98354bd30e57","created":1687918751,"choices":[{"text":"三峡"}]} data:{"id":"e95727b0-fe09-4f18-96db-98354bd30e57","created":1687918751,"choices":[{"text":"是"}]} data:{"id":"e95727b0-fe09-4f18-96db-98354bd30e57","created":1687918751,"choices":[{"text":"瞿"}]} data:{"id":"e95727b0-fe09-4f18-96db-98354bd30e57","created":1687918751,"choices":[{"text":"塘"}]} data:{"id":"e95727b0-fe09-4f18-96db-98354bd30e57","created":1687918751,"choices":[{"text":"峡"}]} data:{"id":"e95727b0-fe09-4f18-96db-98354bd30e57","created":1687918751,"choices":[{"text":"、"}]} data:{"id":"e95727b0-fe09-4f18-96db-98354bd30e57","created":1687918751,"choices":[{"text":"巫"}]} data:{"id":"e95727b0-fe09-4f18-96db-98354bd30e57","created":1687918751,"choices":[{"text":"峡"}]} data:{"id":"e95727b0-fe09-4f18-96db-98354bd30e57","created":1687918751,"choices":[{"text":"和"}]} data:{"id":"e95727b0-fe09-4f18-96db-98354bd30e57","created":1687918751,"choices":[{"text":"西"}]} data:{"id":"e95727b0-fe09-4f18-96db-98354bd30e57","created":1687918751,"choices":[{"text":"陵"}]} data:{"id":"e95727b0-fe09-4f18-96db-98354bd30e57","created":1687918751,"choices":[{"text":"峡"}]} data:{"id":"e95727b0-fe09-4f18-96db-98354bd30e57","created":1687918751,"choices":[{"text":"三"}]} data:{"id":"e95727b0-fe09-4f18-96db-98354bd30e57","created":1687918751,"choices":[{"text":"段"}]} data:{"id":"e95727b0-fe09-4f18-96db-98354bd30e57","created":1687918751,"choices":[{"text":"峡谷"}]} data:{"id":"e95727b0-fe09-4f18-96db-98354bd30e57","created":1687918751,"choices":[{"text":"的"}]} data:{"id":"e95727b0-fe09-4f18-96db-98354bd30e57","created":1687918751,"choices":[{"text":"总"}]} data:{"id":"e95727b0-fe09-4f18-96db-98354bd30e57","created":1687918751,"choices":[{"text":"称"}]} data:{"id":"e95727b0-fe09-4f18-96db-98354bd30e57","created":1687918751,"choices":[{"text":"。"}]} data:[DONE]
流式(stream参数为true,触发内容审核)
状态码: 200
OK
event: moderation:{"suggestion":"block","reply":"作为AI语言模型,不能接受或表达任何不当内容。无论是在什么情况下,我们都应该保持对他人的尊重和礼貌,并且以积极、正向和安全的方式回答问题。"}
状态码
请参见状态码。
错误码
请参见错误码。