对话模式
更新时间:2025-02-27
千帆ModelBuilder支持HuggingFace Transformer架构的自定义大模型导入。本文介绍了自定义导入模型发布为服务后,使用对话模式调用相关API说明。如何导入并部署第三方模型,请查看快速导入并部署第三方模型。
对话模式
使用对话模式,创建chat,发起一次对话请求。
使用说明
本文内容适用Python、Go、Java和Node.js SDK,SDK调用流程请参考SDK安装及使用流程。
SDK调用
调用示例(单轮)
对于用户快速部署自行发布的模型服务,通过使用endpoint
字段进行调用,示例如下。
1import os
2import qianfan
3
4#通过环境变量初始化认证信息
5# 方式一:【推荐】使用安全认证AK/SK鉴权
6# 替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
7os.environ["QIANFAN_ACCESS_KEY"] = "your_iam_ak"
8os.environ["QIANFAN_SECRET_KEY"] = "your_iam_sk"
9
10# 方式二:【不推荐】使用应用AK/SK鉴权
11# 替换下列示例中参数,将应用API_Key、应用Secret key值替换为真实值
12#os.environ["QIANFAN_AK"] = "应用API_Key"
13#os.environ["QIANFAN_SK"] = "应用Secret_Key"
14
15chat_comp = qianfan.ChatCompletion()
16
17# 使用自行发布的模型
18resp = chat_comp.do(endpoint="your_custom_endpoint", messages=[{
19 "role": "user",
20 "content": "你好"
21}])
22
23# 可以通过resp["body"]获取接口返回的内容
24print(resp["body"])
1package main
2
3import (
4 "context"
5 "fmt"
6 "os"
7
8 "github.com/baidubce/bce-qianfan-sdk/go/qianfan"
9)
10
11func main() {
12 // 使用安全认证AK/SK鉴权,通过环境变量初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
13 os.Setenv("QIANFAN_ACCESS_KEY", "your_iam_ak")
14 os.Setenv("QIANFAN_SECRET_KEY", "your_iam_sk")
15
16 // 使用自行发布的模型
17 chat := qianfan.NewChatCompletion(
18 qianfan.WithEndpoint("endpoint"),
19 )
20 resp, _ := chat.Do(
21 context.TODO(),
22 &qianfan.ChatCompletionRequest{
23 Messages: []qianfan.ChatCompletionMessage{
24 qianfan.ChatCompletionUserMessage("你好!"),
25 },
26 },
27 )
28 fmt.Println(resp.Result)
29}
1import com.baidubce.qianfan.Qianfan;
2import com.baidubce.qianfan.model.chat.ChatResponse;
3
4public class Demo {
5 public static void main(String[] args) {
6 // 使用安全认证AK/SK鉴权,替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
7 Qianfan qianfan = new Qianfan("your_iam_ak", "your_iam_sk");
8
9 // 使用自行发布的模型,替换your_custom_endpoint
10 ChatResponse resp = qianfan.chatCompletion()
11 .endpoint("your_custom_endpoint")
12 .addMessage("user", "你好")
13 .execute();
14 System.out.println(resp.getResult());
15 }
16}
1import {ChatCompletion, setEnvVariable} from "@baiducloud/qianfan";
2
3// 使用安全认证AK/SK鉴权,通过环境变量初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
4setEnvVariable('QIANFAN_ACCESS_KEY','your_iam_ak');
5setEnvVariable('QIANFAN_SECRET_KEY','your_iam_sk');
6
7const client = new ChatCompletion({Endpoint: '***'});
8async function main() {
9 const resp = await client.chat({
10 messages: [
11 {
12 role: 'user',
13 content: '你好',
14 },
15 ],
16 });
17 console.log(resp);
18}
19
20main();
返回示例(单轮)
1{
2 'id': 'as-4v1h587fyv',
3 'object': 'chat.completion',
4 'created': 1695021339,
5 'result': '你好,请问有什么我可以帮助你的吗?',
6 'is_truncated': False,
7 'need_clear_history': False,
8 'usage': {
9 'prompt_tokens': 1,
10 'completion_tokens': 15,
11 'total_tokens': 16
12 }
13 }
1你好!有什么我可以帮助你的吗?
1你好!有什么我可以帮助你的吗?
1{
2 headers: {...},
3 id: 'as-xdiknr8pj9',
4 object: 'chat.completion',
5 created: 1709721393,
6 result: '你好!有什么我可以帮助你的吗?',
7 is_truncated: false,
8 need_clear_history: false,
9 usage: { prompt_tokens: 2, completion_tokens: 8, total_tokens: 10 }
10}
调用示例(多轮)
1import os
2import qianfan
3
4#通过环境变量初始化认证信息
5# 方式一:【推荐】使用安全认证AK/SK鉴权
6# 替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
7os.environ["QIANFAN_ACCESS_KEY"] = "your_iam_ak"
8os.environ["QIANFAN_SECRET_KEY"] = "your_iam_sk"
9
10# 方式二:【不推荐】使用应用AK/SK鉴权
11# 替换下列示例中参数,将应用API_Key、应用Secret key值替换为真实值
12#os.environ["QIANFAN_AK"] = "应用API_Key"
13#os.environ["QIANFAN_SK"] = "应用Secret_Key"
14
15chat_comp = qianfan.ChatCompletion()
16
17# 多轮对话
18resp = chat_comp.do(endpoint="your_custom_endpoint",messages=[{
19 "role": "user",
20 "content": "你好"
21},
22{
23 "role": "assistant",
24 "content": "你好,请问有什么我可以帮助你的吗?"
25},
26{
27 "role": "user",
28 "content": "我在北京,周末可以去哪里玩?"
29},
30])
31print(resp["body"])
1package main
2
3import (
4 "context"
5 "fmt"
6 "os"
7
8 "github.com/baidubce/bce-qianfan-sdk/go/qianfan"
9)
10
11func main() {
12 // 使用安全认证AK/SK鉴权,通过环境变量初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
13 os.Setenv("QIANFAN_ACCESS_KEY", "your_iam_ak")
14 os.Setenv("QIANFAN_SECRET_KEY", "your_iam_sk")
15
16 // 多轮对话
17 chat := qianfan.NewChatCompletion(
18 qianfan.WithEndpoint("your_endpoint")
19 resp, _ := chat.Do(
20 context.TODO(),
21 &qianfan.ChatCompletionRequest{
22 Messages: []qianfan.ChatCompletionMessage{
23 qianfan.ChatCompletionUserMessage("你好!"),
24 qianfan.ChatCompletionAssistantMessage("你好!有什么我可以帮助你的吗?"),
25 qianfan.ChatCompletionUserMessage("我在北京,周末可以去哪里玩?"),
26 },
27 },
28 )
29 fmt.Println(resp.Result)
30}
1import com.baidubce.qianfan.Qianfan;
2import com.baidubce.qianfan.model.chat.ChatResponse;
3
4public class Demo {
5 public static void main(String[] args) {
6 // 使用安全认证AK/SK鉴权,替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
7 Qianfan qianfan = new Qianfan("your_iam_ak", "your_iam_sk");
8
9 // 多轮对话
10 ChatResponse resp = qianfan.chatCompletion()
11 .endpoint("your_custom_endpoint")
12 .addMessage("user", "你好")
13 .addMessage("assistant", "你好!有什么我可以帮助你的吗?")
14 .addMessage("user", "我在北京,周末可以去哪里玩?")
15 .execute();
16 System.out.println(resp.getResult());
17 }
18}
1import {ChatCompletion, setEnvVariable} from "@baiducloud/qianfan";
2
3// 使用安全认证AK/SK鉴权,通过环境变量初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
4setEnvVariable('QIANFAN_ACCESS_KEY','your_iam_ak');
5setEnvVariable('QIANFAN_SECRET_KEY','your_iam_sk');
6
7const client = new ChatCompletion({Endpoint: 'your_endpoint'});
8async function main() { // 调用默认模型,即 ERNIE-Bot-turbo
9 const resp = await client.chat({
10 messages: [
11 {
12 role: 'user',
13 content: '你好!',
14 },
15 {
16 role: "assistant",
17 content: "你好,请问有什么我可以帮助你的吗?"
18 },
19 {
20 role: "user",
21 "content": "我在北京,周末可以去哪里玩?"
22 },
23 ],
24 });
25 console.log(resp);
26}
27
28main();
如果使用Python SDK,也可以使用内置 Messages 简化多轮对话,与用户对话的示例如下。
Python
1import os
2import qianfan
3
4#通过环境变量初始化认证信息
5# 方式一:【推荐】使用安全认证AK/SK鉴权
6# 替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
7os.environ["QIANFAN_ACCESS_KEY"] = "your_iam_ak"
8os.environ["QIANFAN_SECRET_KEY"] = "your_iam_sk"
9
10# 方式二:【不推荐】使用应用AK/SK鉴权
11# 替换下列示例中参数,将应用API_Key、应用Secret key值替换为真实值
12#os.environ["QIANFAN_AK"] = "应用API_Key"
13#os.environ["QIANFAN_SK"] = "应用Secret_Key"
14
15chat_comp = qianfan.ChatCompletion()
16
17# 下面是一个与用户对话的例子
18msgs = qianfan.Messages()
19while True:
20 msgs.append(input("输入:")) # 增加用户输入
21 resp = chat_comp.do(endpoint="your_custom_endpoint", messages=msgs)
22 print(resp) # 模型的输出
23 msgs.append(resp) # 追加模型输出
返回示例(多轮)
1{
2 'id': 'as-zyicree42w',
3 'object': 'chat.completion',
4 'created': 1719200613,
5 'result': '北京是一个拥有许多历史、文化和自然景观的城市,周末你可以去以下几个地方玩:\n\n1. 故宫:这是中国最大的古代建筑群,是中国古代皇家宫殿的代表,你可以欣赏到丰富的历史和文化。\n\n2. 颐和园:这是一个美丽的皇家园林,有着精美的园林艺术和丰富的历史文化。\n\n3. 长城:北京附近的长城段是最受欢迎的,你可以选择徒步、骑行或者自驾前往,欣赏到壮丽的自然风光和古老的历史文化。\n\n4. 798艺术区:这是一个现代艺术和文化创意产业聚集区,你可以欣赏到各种当代艺术作品,同时也可以品尝到各种美食。\n\n5. 奥林匹克公园:如果你对体育和文化活动感兴趣,那么奥林匹克公园是一个不错的选择,这里有奥运场馆、公园和文化活动。\n\n6. 南锣鼓巷:这是一条充满老北京风貌的胡同,你可以在这里品尝到各种小吃,同时也可以欣赏到老北京的建筑和文化。\n\n除此之外,北京还有许多其他的景点和活动,例如天坛公园、北海公园、圆明园、北京动物园等等。你可以根据自己的兴趣和时间来选择合适的景点和活动。',
6 'is_truncated': False,
7 'need_clear_history': False,
8 'usage': {
9 'prompt_tokens': 18,
10 'completion_tokens': 249,
11 'total_tokens': 267
12 }
13}
1北京是一个拥有许多历史、文化和自然景观的城市,有很多地方可以探索。如果你在周末有空,以下是一些建议的景点和活动:
2
31. 故宫:这是中国最大的古代宫殿之一,拥有丰富的历史和文化遗产。
42. 颐和园:这是一个美丽的皇家园林,拥有壮丽的湖泊和精美的建筑。
53. 长城:北京附近的长城段是许多人向往的地方。你可以选择参加一日游或自驾前往。
64. 798艺术区:这是一个充满艺术气息的地方,有许多画廊、艺术工作室和博物馆。
75. 南锣鼓巷:这是一个充满历史气息的胡同区,有很多小吃、手工艺品和文化遗产店。
86. 玉渊潭公园:这是一个大型公园,环境优美,有很多娱乐设施和活动。
97. 郊区古迹:如妙应寺白塔、太阳宫等,这些地方虽然不那么热闹,但也有其独特的魅力。
10
11除此之外,北京还有很多博物馆、剧院和美食街区,如三里屯、簋街等,你可以根据自己的兴趣和时间来选择。另外,你也可以尝试一些当地的活动,如品尝北京烤鸭、炸酱面等美食,或者参加一些传统文化活动。
12
13希望这些建议对你有所帮助!
1北京是一个拥有许多历史、文化和自然景观的城市,周末你可以去以下几个地方玩:\n\n1. 故宫:这是中国最大的古代建筑群,是中国古代皇家宫殿的代表,你可以欣赏到丰富的历史和文化。\n\n2. 颐和园:这是一个美丽的皇家园林,有着精美的园林艺术和丰富的历史文化。\n\n3. 长城:北京附近的长城段是最受欢迎的,你可以选择徒步、骑行或者自驾前往,欣赏到壮丽的自然风光和古老的历史文化。\n\n4. 798艺术区:这是一个现代艺术和文化创意产业聚集区,你可以欣赏到各种当代艺术作品,同时也可以品尝到各种美食。\n\n5. 奥林匹克公园:如果你对体育和文化活动感兴趣,那么奥林匹克公园是一个不错的选择,这里有奥运场馆、公园和文化活动。\n\n6. 南锣鼓巷:这是一条充满老北京风貌的胡同,你可以在这里品尝到各种小吃,同时也可以欣赏到老北京的建筑和文化。\n\n除此之外,北京还有许多其他的景点和活动,例如天坛公园、北海公园、圆明园、北京动物园等等。你可以根据自己的兴趣和时间来选择合适的景点和活动。
1{
2 headers: {...},
3 id: 'as-8vcq0n4u0e',
4 object: 'chat.completion',
5 created: 1709887877,
6 result: '北京是一个拥有许多有趣和独特景点的大城市,周末你可以去很多地方玩。例如:\n' +
7 '\n' +
8 '1. **故宫博物院**:这是中国最大的古代建筑群,有着丰富的历史和文化遗产,是个很好的适合全家人游玩的地方。\n' +
9 '2. **天安门广场**:这里是北京的心脏,周围有许多历史和现代建筑。你可以在广场上漫步,欣赏升旗仪式和观看周围的繁华景象。\n' +
10 '3. **颐和园**:这是一个美丽的皇家园林,有着优美的湖泊和精美的古建筑。你可以在这里漫步,欣赏美丽的景色,同时也可以了解中国的传统文化。\n' +
11 '4. **北京动物园**:这是中国最大的动物园之一,有许多稀有动物,包括熊猫、老虎、长颈鹿等。对于孩子们来说是个很好的去处。\n' +
12 '5. **798艺术区**:这是一个充满艺术气息的地方,有许多画廊、艺术工作室和艺术展览。这里有许多新的现代艺术作品,可以欣赏到一些艺术家的创作。\n' +
13 '6. **三里屯酒吧街**:如果你对夜生活感兴趣,可以去三里屯酒吧街。这里有许多酒吧和餐馆,是一个热闹的夜生活场所。\n' +
14 '7. **北京环球度假区**:如果你们喜欢主题公园,那么可以去环球度假区,虽然这是在建的,但是等它建好之后肯定是一个很好的去处。\n' +
15 '\n' +
16 '当然,你也可以考虑一些其他的地方,比如购物街、博物馆、公园等等。希望这些建议对你有所帮助!',
17 is_truncated: false,
18 need_clear_history: false,
19 usage: { prompt_tokens: 19, completion_tokens: 307, total_tokens: 326 }
20}
调用示例(流式)
1import os
2import qianfan
3
4#通过环境变量初始化认证信息
5# 方式一:【推荐】使用安全认证AK/SK鉴权
6# 替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
7os.environ["QIANFAN_ACCESS_KEY"] = "your_iam_ak"
8os.environ["QIANFAN_SECRET_KEY"] = "your_iam_sk"
9
10# 方式二:【不推荐】使用应用AK/SK鉴权
11# 替换下列示例中参数,将应用API_Key、应用Secret key值替换为真实值
12#os.environ["QIANFAN_AK"] = "应用API_Key"
13#os.environ["QIANFAN_SK"] = "应用Secret_Key"
14
15chat_comp = qianfan.ChatCompletion()
16
17resp = chat_comp.do(endpoint="your_custom_endpoint", messages=[{
18 "role": "user",
19 "content": "你好"
20}], stream=True)
21
22for r in resp:
23 print(r["body"])
24# 输出:
25# 您好!
26# 有什么我可以帮助你的吗?
1package main
2
3import (
4 "context"
5 "fmt"
6 "os"
7
8 "github.com/baidubce/bce-qianfan-sdk/go/qianfan"
9)
10
11func main() {
12 // 使用安全认证AK/SK鉴权,通过环境变量初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
13 os.Setenv("QIANFAN_ACCESS_KEY", "your_iam_ak")
14 os.Setenv("QIANFAN_SECRET_KEY", "your_iam_sk")
15
16 chat := qianfan.NewChatCompletion(
17 qianfan.WithEndpoint("your_endpoint"),)
18 resp, _ := chat.Stream( // Stream 启用流式返回,参数与 Do 相同
19 context.TODO(),
20 &qianfan.ChatCompletionRequest{
21 Messages: []qianfan.ChatCompletionMessage{
22 qianfan.ChatCompletionUserMessage("你好"),
23 },
24 },
25 )
26 for {
27 r, err := resp.Recv()
28 if err != nil {
29 panic(err)
30 }
31 if resp.IsEnd { // 判断是否结束
32 break
33 }
34 fmt.Println(r.Result)
35 }
36}
1import com.baidubce.qianfan.Qianfan;
2import com.google.gson.Gson;
3
4public class Demo {
5 public static void main(String[] args) {
6 Gson gson = new Gson();
7
8 // 使用安全认证AK/SK鉴权,替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
9 Qianfan qianfan = new Qianfan("your_iam_ak", "your_iam_sk");
10
11 qianfan.chatCompletion()
12 .endpoint("your_custom_endpoint")
13 .addMessage("user", "你好")
14 // 启用流式返回
15 .executeStream()
16 .forEachRemaining(chunk -> System.out.print(gson.toJson(chunk)));
17 }
18}
1import {ChatCompletion, setEnvVariable} from "@baiducloud/qianfan";
2
3// 使用安全认证AK/SK鉴权,通过环境变量初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
4setEnvVariable('QIANFAN_ACCESS_KEY','your_iam_ak');
5setEnvVariable('QIANFAN_SECRET_KEY','your_iam_sk');
6
7const client = new ChatCompletion({Endpoint: 'your_endpoint'});
8async function main() {
9 const stream = await client.chat({
10 messages: [
11 {
12 role: 'user',
13 content: '你好!',
14 },
15 ],
16 stream: true, //启用流式返回
17 });
18 for await (const chunk of stream as AsyncIterableIterator<any>) {
19 console.log(chunk);
20 }
21}
22
23main();
返回示例(流式)
1{'id': 'as-csh5xe4mcf', 'object': 'chat.completion', 'created': 1716897265, 'sentence_id': 0, 'is_end': False, 'is_truncated': False, 'result': '你好!', 'need_clear_history': False, 'finish_reason': 'normal', 'usage': {'prompt_tokens': 1, 'completion_tokens': 2, 'total_tokens': 3}}
2{'id': 'as-csh5xe4mcf', 'object': 'chat.completion', 'created': 1716897266, 'sentence_id': 1, 'is_end': False, 'is_truncated': False, 'result': '请问有什么我可以帮助你的吗?', 'need_clear_history': False, 'finish_reason': 'normal', 'usage': {'prompt_tokens': 1, 'completion_tokens': 2, 'total_tokens': 3}}
3{'id': 'as-csh5xe4mcf', 'object': 'chat.completion', 'created': 1716897267, 'sentence_id': 2, 'is_end': False, 'is_truncated': False, 'result': '无论是关于学习、工作、生活还是其他方面的问题,我都会尽力为你解答。', 'need_clear_history': False, 'finish_reason': 'normal', 'usage': {'prompt_tokens': 1, 'completion_tokens': 2, 'total_tokens': 3}}
4{'id': 'as-csh5xe4mcf', 'object': 'chat.completion', 'created': 1716897267, 'sentence_id': 3, 'is_end': True, 'is_truncated': False, 'result': '', 'need_clear_history': False, 'finish_reason': 'normal', 'usage': {'prompt_tokens': 1, 'completion_tokens': 24, 'total_tokens': 25}}
1你好,
2有什么我可以帮助你的吗?
1{"sentenceId":0,"isEnd":false,"isTruncated":false,"result":"你好,","needClearHistory":false,"usage":{"promptTokens":1,"completionTokens":2,"totalTokens":3},"id":"as-x0scrce3um","object":"chat.completion","created":1719210415,"headers":{...}}{"sentenceId":1,"isEnd":false,"isTruncated":false,"result":"有什么我可以帮助你的吗?","needClearHistory":false,"usage":{"promptTokens":1,"completionTokens":2,"totalTokens":3},"id":"as-x0scrce3um","object":"chat.completion","created":1719210415,"headers":{...}}{"sentenceId":2,"isEnd":true,"isTruncated":false,"result":"","needClearHistory":false,"usage":{"promptTokens":1,"completionTokens":8,"totalTokens":9},"id":"as-x0scrce3um","object":"chat.completion","created":1719210415,"headers":{...}}
1{
2 headers: {...},
3 id: 'as-f7mrqpanb3',
4 object: 'chat.completion',
5 created: 1709724132,
6 sentence_id: 0,
7 is_end: false,
8 is_truncated: false,
9 result: '你好!',
10 need_clear_history: false,
11 usage: { prompt_tokens: 2, completion_tokens: 0, total_tokens: 2 }
12}
13{
14 headers: {...},
15 id: 'as-f7mrqpanb3',
16 object: 'chat.completion',
17 created: 1709724132,
18 sentence_id: 1,
19 is_end: false,
20 is_truncated: false,
21 result: '有什么我可以帮助你的吗?',
22 need_clear_history: false,
23 usage: { prompt_tokens: 2, completion_tokens: 0, total_tokens: 2 }
24}
25{
26 headers: {...},
27 id: 'as-f7mrqpanb3',
28 object: 'chat.completion',
29 created: 1709724132,
30 sentence_id: 2,
31 is_end: true,
32 is_truncated: false,
33 result: '',
34 need_clear_history: false,
35 usage: { prompt_tokens: 2, completion_tokens: 8, total_tokens: 10 }
36}
请求参数
注意:以下为Python SDK参数说明,其他SDK参数相关说明请参考Go SDK-对话Chat参数相关说明、Java SDK参数相关说明、Node.js SDK参数相关说明。
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
messages | List(dict) | 是 | 聊天上下文信息。说明: (1)messages成员不能为空,1个成员表示单轮对话,多个成员表示多轮对话 (2)最后一个message为当前请求的信息,前面的message为历史对话信息 (3)必须为奇数个成员,成员中message的role必须依次为user、assistant (4)最后一个message的content长度不能超过3000 token |
endpoint | string | 是 | 用于指定用户自行发布的模型服务,如用户自定义模型。说明: (1)该字段值可以通过查看服务地址获取:打开模型服务-模型推理-我的服务页面,选择创建的服务-点击详情页查看服务地址,endpoint值为 https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/ 后面的地址,如下图所示![]() (2)注意:在创建服务页面,选择模型后,API地址会自动新增个后缀。例如选择某模型,输入API地址为“test1”,endpoint的取值即为“ngxxxol8_test1”,如下图所示,如何发布服务请参考快速部署自定义模型 ![]() |
stream | bool | 否 | 是否以流式接口的形式返回数据,默认false |
temperature | float | 否 | 说明: (1)较高的数值会使输出更加随机,而较低的数值会使其更加集中和确定 (2)范围 (0, 1.0],不能为0 (3)建议该参数和top_p只设置1个 (4)默认值以generation_config.json配置为准,如果未配置默认值为1.0 |
top_k | int | 否 | Top-K 采样参数,在每轮token生成时,保留k个概率最高的token作为候选。说明: (1)影响输出文本的多样性,取值越大,生成文本的多样性越强 (2)取值范围:正整数 (3)默认值以generation_config.json配置为准,如果未配置默认值为50 |
top_p | float | 否 | 说明: (1)影响输出文本的多样性,取值越大,生成文本的多样性越强 (2)取值范围 [0, 1.0] (3)建议该参数和temperature只设置1个 (4)默认值以generation_config.json配置为准,如果未配置默认值为1.0 |
penalty_score | float | 否 | 通过对已生成的token增加惩罚,减少重复生成的现象。说明: (1)值越大表示惩罚越大 (2)取值范围:[1.0, 2.0] (3)默认值以generation_config.json配置为准,如果未配置默认值为1.0 |
stop | List(String) | 否 | 生成停止标识。当模型生成结果以stop中某个元素结尾时,停止文本生成。说明: (1)每个元素长度不超过20字符。 (2)最多4个元素 |
user_id | string | 否 | 表示最终用户的唯一标识符 |
metadata | map<string,string> | 否 | 说明: (1)元素个数最大支持16个 (2)key和value必须都是string类型 |
message说明
名称 | 类型 | 描述 |
---|---|---|
role | string | 当前支持以下: user: 表示用户 assistant: 表示对话助手 |
content | string | 对话内容,不能为空 |
返回参数
名称 | 类型 | 描述 |
---|---|---|
id | string | 本轮对话的id |
object | string | 回包类型。 chat.completion:多轮对话返回 |
created | int | 时间戳 |
sentence_id | int | 表示当前子句的序号。只有在流式接口模式下会返回该字段 |
is_end | bool | 表示当前子句是否是最后一句。只有在流式接口模式下会返回该字段 |
is_truncated | bool | 当前生成的结果是否被截断 |
result | string | 对话返回结果 |
need_clear_history | bool | 表示用户输入是否存在安全,是否关闭当前会话,清理历史会话信息 True:是,表示用户输入存在安全风险,建议关闭当前会话,清理历史会话信息 False:否,表示用户输入无安全风险 |
ban_round | int | 当need_clear_history为true时,此字段会告知第几轮对话有敏感信息,如果是当前问题,ban_round=-1 |
usage | usage | token统计信息 |
usage说明
名称 | 类型 | 描述 |
---|---|---|
prompt_tokens | int | 问题tokens数 |
completion_tokens | int | 回答tokens数 |
total_tokens | int | tokens总数 |