更新时间:2024-08-29 GMT+08:00
分享

文本补全

功能介绍

给定一个提示和一些参数,模型会根据这些信息生成一个或多个预测的补全。它可以用来做文本生成、自动写作、代码补全等任务。

URI

POST /v1/{project_id}/deployments/{deployment_id}/text/completions

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID,获取方法请参见获取项目ID

deployment_id

String

模型的部署ID,获取方法请参见获取模型调用API地址

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。

用于获取操作API的权限。获取Token接口响应消息头中X-Subject-Token的值即为Token。

Content-Type

String

发送的实体的MIME类型,参数值为“application/json”。

表3 请求Body参数

参数

是否必选

参数类型

描述

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

表4 响应Body参数

参数

参数类型

描述

id

String

用来标识每个响应的唯一字符串。

created

Integer

响应生成的时间。

choices

Array of choices objects

生成的补全信息的列表,包含以下属性:

  • text:补全的文本内容。
  • index:补全的索引,从0开始。

usage

usage object

该参数可以帮助用户了解和控制模型的使用情况,避免超出Tokens限制。

表5 choices

参数

参数类型

描述

text

String

补全的文本内容。

index

Integer

补全的索引,从0开始。

ppl

Double

评估指标,表示推理输出的置信度,ppl为非必传参数。

表6 usage

参数

参数类型

描述

completion_tokens

Number

表示模型生成的答案中包含的tokens的数量。

prompt_tokens

Number

表示生成结果时使用的提示文本的tokens的数量。

total_tokens

Number

对话过程中使用的tokens总数。

流式(stream参数为true)

状态码: 200

表7 流式输出的数据单元

参数

参数类型

描述

data

String

stream=true时,模型生成的消息以流式形式返回。生成的内容以增量的方式逐步发送回来,每个data字段均包含一部分生成的内容,直到所有data返回,响应结束。

表8 流式输出的数据单元

参数

参数类型

描述

suggestion

String

审核结果:block表示未通过。

reply

String

兜底回复:审核未通过时兜底回复为有效回复,兜底策略。

状态码: 400

表9 响应Body参数

参数

参数类型

描述

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语言模型,不能接受或表达任何不当内容。无论是在什么情况下,我们都应该保持对他人的尊重和礼貌,并且以积极、正向和安全的方式回答问题。"}

状态码

请参见状态码

错误码

请参见错误码

相关文档