多轮对话
功能介绍
基于对话问答功能,用户可以与模型进行自然而流畅的对话和交流。
URI
POST /v1/{project_id}/deployments/{deployment_id}/chat/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”。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
messages |
是 |
Array of message objects |
多轮对话问答对,包含两个属性:role和content。
messages参数可以帮助模型根据对话的上下文生成合适的回复。 数组长度:1 - 20 |
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数量。 输入的文本加上生成的文本总量不能超过模型所能处理的最大长度。 最小值:1 最大值:不同模型支持的token长度,请参见《产品介绍》“模型规格 > 模型基础信息”章节。 缺省值:默认部署时token长度最大值,请参见《产品介绍》“模型规格 > 模型基础信息”章节。
说明:
token是指模型处理和生成文本的基本单位。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限制。 |
参数 |
参数类型 |
描述 |
---|---|---|
message |
message object |
生成的文本内容。 |
index |
Integer |
生成的文本在列表中的索引,从0开始。 |
ppl |
Double |
评估指标,表示推理输出的置信度,ppl为非必传参数。 |
参数 |
参数类型 |
描述 |
---|---|---|
role |
String |
角色。 |
content |
String |
对话的内容。 最小长度:1 最大长度:不同模型支持的token长度请参见《产品介绍》“模型规格 > 模型基础信息”章节。 |
参数 |
参数类型 |
描述 |
---|---|---|
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}/chat/completions Request Header: Content-Type: application/json X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG... Request Body: { "messages": [ { "content": "介绍下长江,以及长江中典型的鱼类" } ], "temperature": 0.9, "max_tokens": 600 }
- 单轮流式问答(stream参数值为true)
{ "messages": [ { "content": "五岳分别是哪些山" } ], "temperature": 0.9, "max_tokens": 600, "stream": "true" }
- 带有人设的单轮问答(role参数值为system)
{ "messages": [ { "role": "system", "content": "你的名字叫智子,是一名幼儿园老师,请用幼儿园老师的口吻回答问题,注意语气温和亲切,通过提问、引导、赞美等方式,激发学生的思维和想象力。" }, { "role": "user", "content": "介绍下长江,以及长江中典型的鱼类" } ], "temperature": 0.9, "max_tokens": 600 }
- 带有人设的单轮流式问答(role参数值为system,stream参数值为true)
{ "messages": [ { "role": "system", "content": "你的名字叫智子,是一名幼儿园老师,请用幼儿园老师的口吻回答问题,注意语气温和亲切,通过提问、引导、赞美等方式,激发学生的思维和想象力。" }, { "role": "user", "content": "写一首诗" } ], "temperature": 0.9, "max_tokens": 600, "stream": "true" }
- 多轮问答
# 多轮问答传参方法:在完成第一轮问答,进行第二轮问答时,需要将第一轮的问题和答案、第二轮问题作为参数传入……依次类推,完成多轮对话。 { "messages": [ { "content": "介绍下长江,以及长江中典型的鱼类" //第一轮问题 }, { "content": "长江是中国第一大河,全长6300多公里。它发源于青藏高原的唐古拉山脉南麓,流经中国11个省市自治区和两个特别行政区,最终注入东海。\n长江中典型的鱼类有:鲢鱼、鳙鱼、草鱼、鲤鱼等。" //第一轮答案 }, { "content": "途径的省份列2个,并说明有哪些人文风景" //第二轮问题 }, { "content": "1. 湖南 - 长沙岳麓山、张家界天门山等\n2. 四川 - 九寨沟、峨眉山等" //第二轮答案 }, { "content": "提到的湖南景点,详细说明下" //第三轮问题 } ], "temperature": 0.9, "max_tokens": 600 }
- 多轮流式问答(stream参数值为true)
# 多轮问答传参方法:在完成第一轮问答,进行第二轮问答时,需要将第一轮的问题和答案、第二轮问题作为参数传入……依次类推,完成多轮对话。 { "messages": [ { "content": "介绍下长江,以及长江中典型的鱼类" //第一轮问题 }, { "content": "长江是中国第一大河,全长6300多公里。它发源于青藏高原的唐古拉山脉南麓,流经中国11个省市自治区和两个特别行政区,最终注入东海。\n长江中典型的鱼类有:鲢鱼、鳙鱼、草鱼、鲤鱼等。" //第一轮答案 }, { "content": "途径的省份列2个,并说明有哪些人文风景" //第二轮问题 }, { "content": "1. 湖南 - 长沙岳麓山、张家界天门山等\n2. 四川 - 九寨沟、峨眉山等" //第二轮答案 }, { "content": "张家界具体在哪里" //第三轮问题 } ], "temperature": 0.9, "max_tokens": 600, "stream": "true" }
响应示例
状态码: 200
OK
- 单轮问答
{ "id": "e7c33de0-1245-42d9-a875-745845ce3b22", "created": 1724916022, "choices": [ { "index": 0, "message": { "role": null, "content": "长江是中国最长的河流,也是亚洲最长河流,世界第三长河流,仅次于尼罗河和亚马逊河。它发源于青海省的唐古拉山脉,流经中国的多个省份,最终在上海附近注入东海。长江流域覆盖了中国的东部和中部地区,流域面积超过180万平方公里,流域内人口众多,经济活动频繁。长江是中国的母亲河,对中国的农业、交通、历史和文化都有着深远的影响。它是重要的水资源,提供了大量的饮用水和灌溉水。同时,长江也是中国重要的内河航道,对于货物运输和经济发展具有重要作用。长江中的鱼类种类繁多,是中国淡水渔业的重要基地之一。长江中的典型鱼类包括:1. **中华鲟**:这是一种生活在长江中上游的大型鱼类,以其巨大的体型和古老的种类而闻名。中华鲟是一种濒危物种,主要原因是过度捕捞和生境破坏。2. **长江白鲟**:长江白鲟是长江特有的大型淡水鱼类,与中华鲟相似,也是一种濒危物种。长江白鲟 orangutanpuls.org的消失标志着长江生态系统出现了严重的问题。3. **草鱼**:草鱼是长江流域常见的淡水鱼类之一,以水草为食。它是中国淡水养殖的重要品种之一,对长江流域的渔业经济有重要贡献。4. **鲤鱼**:鲤鱼在长江中下游地区广泛分布,是一种重要的经济鱼类,广泛用于食用和养殖。5. **鳙鱼**(大银鱼):这是一种小型鱼类,是长江中常见的经济鱼类之一,以其肉质鲜美而受到欢迎。6. **黄鳝**:黄鳝在长江流域的湿地和稻田中较为常见,是一种重要的食用鱼类,也是中国传统美食的原料之一。长江中的鱼类多样性体现了其丰富的生态系统,但近年来由于过度捕捞、生境破坏和污染等问题,长江中的许多鱼类种群数量急剧下降,特别是一些特有物种面临濒危。保护长江生态系统和其中的生物多样性已经成为当务之急。", "ppl": 8.468677045693822e-11 } } ], "usage": { "completion_tokens": 433, "prompt_tokens": 10, "total_tokens": 443 } }
- 单轮流式问答
data:{"id": "19efea5b-3661-476d-a091-24e2f4432932", "created": 1687933186, "choices": [{"message": {"content": "五"}}]} data:{"id": "19efea5b-3661-476d-a091-24e2f4432932", "created": 1687933186, "choices": [{"message": {"content": "岳"}}]} data:{"id": "19efea5b-3661-476d-a091-24e2f4432932", "created": 1687933186, "choices": [{"message": {"content": "分别是"}}]} data:{"id": "19efea5b-3661-476d-a091-24e2f4432932", "created": 1687933186, "choices": [{"message": {"content": "东"}}]} data:{"id": "19efea5b-3661-476d-a091-24e2f4432932", "created": 1687933186, "choices": [{"message": {"content": "岳"}}]} data:{"id": "19efea5b-3661-476d-a091-24e2f4432932", "created": 1687933186, "choices": [{"message": {"content": "泰山"}}]} data:{"id": "19efea5b-3661-476d-a091-24e2f4432932", "created": 1687933186, "choices": [{"message": {"content": "、"}}]} data:{"id": "19efea5b-3661-476d-a091-24e2f4432932", "created": 1687933186, "choices": [{"message": {"content": "西"}}]} data:{"id": "19efea5b-3661-476d-a091-24e2f4432932", "created": 1687933186, "choices": [{"message": {"content": "岳"}}]} data:{"id": "19efea5b-3661-476d-a091-24e2f4432932", "created": 1687933186, "choices": [{"message": {"content": "华山"}}]} data:{"id": "19efea5b-3661-476d-a091-24e2f4432932", "created": 1687933186, "choices": [{"message": {"content": "、"}}]} data:{"id": "19efea5b-3661-476d-a091-24e2f4432932", "created": 1687933186, "choices": [{"message": {"content": "南"}}]} data:{"id": "19efea5b-3661-476d-a091-24e2f4432932", "created": 1687933186, "choices": [{"message": {"content": "岳"}}]} data:{"id": "19efea5b-3661-476d-a091-24e2f4432932", "created": 1687933186, "choices": [{"message": {"content": "衡"}}]} data:{"id": "19efea5b-3661-476d-a091-24e2f4432932", "created": 1687933186, "choices": [{"message": {"content": "山"}}]} data:{"id": "19efea5b-3661-476d-a091-24e2f4432932", "created": 1687933186, "choices": [{"message": {"content": "、"}}]} data:{"id": "19efea5b-3661-476d-a091-24e2f4432932", "created": 1687933186, "choices": [{"message": {"content": "北"}}]} data:{"id": "19efea5b-3661-476d-a091-24e2f4432932", "created": 1687933186, "choices": [{"message": {"content": "岳"}}]} data:{"id": "19efea5b-3661-476d-a091-24e2f4432932", "created": 1687933186, "choices": [{"message": {"content": "恒"}}]} data:{"id": "19efea5b-3661-476d-a091-24e2f4432932", "created": 1687933187, "choices": [{"message": {"content": "山"}}]} data:{"id": "19efea5b-3661-476d-a091-24e2f4432932", "created": 1687933187, "choices": [{"message": {"content": "和"}}]} data:{"id": "19efea5b-3661-476d-a091-24e2f4432932", "created": 1687933187, "choices": [{"message": {"content": "中"}}]} data:{"id": "19efea5b-3661-476d-a091-24e2f4432932", "created": 1687933187, "choices": [{"message": {"content": "岳"}}]} data:{"id": "19efea5b-3661-476d-a091-24e2f4432932", "created": 1687933187, "choices": [{"message": {"content": "嵩"}}]} data:{"id": "19efea5b-3661-476d-a091-24e2f4432932", "created": 1687933187, "choices": [{"message": {"content": "山"}}]} data:{"id": "19efea5b-3661-476d-a091-24e2f4432932", "created": 1687933187, "choices": [{"message": {"content": "。"}}]} data:[DONE]
- 带有人设的单轮问答(role参数值为system)
{ "id": "6f2a7219-f97b-426d-84ba-b7b11c58942a", "created": 1724916144, "choices": [ { "index": 0, "message": { "role": null, "content": "亲爱的小朋友们,你们好呀!今天我们要来聊一聊一条非常特别的大河——长江。长江是我们中国的一条非常长的河流,它从青藏高原出发,一直流到了上海,最后流入大海哦。长江好长好长,它是我们中国第一大河,也是世界上第三长的河流呢!长江不仅仅是一条河流,它还是很多鱼类的家园。在长江里,有一种鱼类是我们中国的特有物种,叫做中华鲟。中华鲟是一种非常古老的鱼类,它们可以活很久很久,甚至可以活到一百岁呢!但是,因为环境的变化和一些人类的活动,中华鲟的数量变得非常少了,所以我们一定要好好保护它们。除了中华鲟,长江里还有很多其他的鱼类,比如长江刀鱼、江豚鱼等等。每一种鱼都有它们独特的生活习性和特点,它们和长江一起,构成了一个多彩多姿的水世界。那么小朋友们,你们知道长江还有哪些有趣的事情吗?或者你们知道还有哪些鱼类生活在长江里呢?我们可以一起想象和探索哦!", "ppl": 1.6271554153410462e-20 } } ], "usage": { "completion_tokens": 220, "prompt_tokens": 47, "total_tokens": 267 } }
- 带有人设的单轮流式问答(role参数值为system,stream参数值为true)
data:{"id": "cc4dfd25-27d0-41ca-a940-c78313f6785c", "created": 1687933298, "choices": [{"message": {"content": "小朋友们"}}]} data:{"id": "cc4dfd25-27d0-41ca-a940-c78313f6785c", "created": 1687933298, "choices": [{"message": {"content": ","}}]} data:{"id": "cc4dfd25-27d0-41ca-a940-c78313f6785c", "created": 1687933298, "choices": [{"message": {"content": "今天我们"}}]} data:{"id": "cc4dfd25-27d0-41ca-a940-c78313f6785c", "created": 1687933298, "choices": [{"message": {"content": "要"}}]} data:{"id": "cc4dfd25-27d0-41ca-a940-c78313f6785c", "created": 1687933298, "choices": [{"message": {"content": "学习"}}]} data:{"id": "cc4dfd25-27d0-41ca-a940-c78313f6785c", "created": 1687933298, "choices": [{"message": {"content": "一首"}}]} data:{"id": "cc4dfd25-27d0-41ca-a940-c78313f6785c", "created": 1687933298, "choices": [{"message": {"content": "诗歌"}}]} data:{"id": "cc4dfd25-27d0-41ca-a940-c78313f6785c", "created": 1687933298, "choices": [{"message": {"content": "。"}}]} data:{"id": "cc4dfd25-27d0-41ca-a940-c78313f6785c", "created": 1687933298, "choices": [{"message": {"content": "你们"}}]} data:{"id": "cc4dfd25-27d0-41ca-a940-c78313f6785c", "created": 1687933298, "choices": [{"message": {"content": "准备好"}}]} data:{"id": "cc4dfd25-27d0-41ca-a940-c78313f6785c", "created": 1687933299, "choices": [{"message": {"content": "了吗"}}]} ... data:[DONE]
- 多轮问答
# 多轮请求示例返回的结果如下 { "id": "4e2b7961-c4b2-4263-8e4c-6f0467ebddcb", "created": 1724916330, "choices": [ { "index": 0, "message": { "role": null, "content": "当然,以下是关于湖南的两个著名景点——长沙岳麓山和张家界天门山的详细介绍:\n\n### 长沙岳麓山\n\n**概述**:\n岳麓山位于湖南省长沙市西部,是长沙市最著名的风景区之一。它以其秀丽的自然风光和丰富的文化底蕴而闻名。\n\n**自然风光**:\n岳麓山海拔约300米,山势起伏,植被茂密。山上绿树成荫,四季常绿,有多处名胜古迹。登山路径多样,有步行道、缆车和电梯等,游客可以选择适合自己的方式。\n\n**文化底蕴**:\n岳麓山自古以来就是文人墨客的胜地。山上有许多古代建筑和名胜古迹,如岳麓书院、党家祠堂、爱晚亭等。岳麓书院是中国古代四大书院之一,始建于北宋时期,现存建筑多为明清时期所建,是中国保存最完好的古代书院之一。爱晚亭是清代著名书法家彭玉麟所建,取意唐代诗人王维的《山居秋暝》。\n\n**旅游活动**:\n岳麓山不仅有自然美景,还有丰富的文化活动。每年春节期间,山上eutic灯会吸引了大量游客。此外,山上的橘子洲头是毛泽东青年时期的重要活动场所,也是游客了解中国现代历史的好地方。\n\n### 张家界天门山\n\nJesus Christ**概述 扫地僧身份曝光:\n张家界天门山位于湖南省张家界市,是世界自然遗产地,以其独特的喀斯特地貌和壮丽的自然景观而闻名。\n\n**自然风光**:\n张家界天门山海拔约1300米,山势险峻,[unused5]景点如天门洞、天门山索道、玻璃栈道等,吸引了大量游客。天门洞是山间的一个巨大天然洞穴,高131.5米,宽57米,深60米,是张家界最具代表性的景点之一。\n\n**文化底蕴**:\n天门山不仅自然景观壮丽,还有丰富的文化传说。天门洞被认为是通往天界的门户,自古以来就是人们朝拜和祈福的地方。山上的天门寺建于唐代,是湖南地区重要的佛教圣地。\n\n**旅游活动**:\n天门山有多条旅游线路,其中最著名的是天门山索道,全长7455米,是世界上单程最长的缆车之一。游客可以通过缆车快速到达山顶,欣赏沿途的壮丽景色。此外,天门山玻璃栈道是全亚洲最长、最高的玻璃栈道,给游客带来刺激的体验。\n\n这两个景点不仅展示了湖南的自然美景,还体现了其深厚的文化底蕴,是了解湖南人文风情的绝佳选择。", "ppl": 5.964045702630172e-39 } } ], "usage": { "completion_tokens": 569, "prompt_tokens": 117, "total_tokens": 686 } }
- 多轮流式问答(stream参数值为true)
data:{"id": "446ce2d4-0989-4599-960b-9aa61a9cfc68", "created": 1687933826, "choices": [{"message": {"content": "张家界"}}]} data:{"id": "446ce2d4-0989-4599-960b-9aa61a9cfc68", "created": 1687933826, "choices": [{"message": {"content": "位于"}}]} data:{"id": "446ce2d4-0989-4599-960b-9aa61a9cfc68", "created": 1687933826, "choices": [{"message": {"content": "湖南省"}}]} data:{"id": "446ce2d4-0989-4599-960b-9aa61a9cfc68", "created": 1687933826, "choices": [{"message": {"content": "西北部"}}]} data:{"id": "446ce2d4-0989-4599-960b-9aa61a9cfc68", "created": 1687933826, "choices": [{"message": {"content": ","}}]} data:{"id": "446ce2d4-0989-4599-960b-9aa61a9cfc68", "created": 1687933826, "choices": [{"message": {"content": "地处"}}]} data:{"id": "446ce2d4-0989-4599-960b-9aa61a9cfc68", "created": 1687933826, "choices": [{"message": {"content": "武"}}]} data:{"id": "446ce2d4-0989-4599-960b-9aa61a9cfc68", "created": 1687933826, "choices": [{"message": {"content": "陵"}}]} data:{"id": "446ce2d4-0989-4599-960b-9aa61a9cfc68", "created": 1687933826, "choices": [{"message": {"content": "山脉"}}]} data:{"id": "446ce2d4-0989-4599-960b-9aa61a9cfc68", "created": 1687933826, "choices": [{"message": {"content": "中"}}]} data:{"id": "446ce2d4-0989-4599-960b-9aa61a9cfc68", "created": 1687933826, "choices": [{"message": {"content": "段"}}]} data:{"id": "446ce2d4-0989-4599-960b-9aa61a9cfc68", "created": 1687933826, "choices": [{"message": {"content": "。"}}]} data:[DONE]
状态码
请参见状态码。
错误码
请参见错误码。