对话Chat
更新时间:2025-06-06
千帆ModelBuilder提供了对话Chat相关模型API SDK,支持单轮对话、多轮对话、流式等调用。
注意事项
(1)本文内容适用Python、Go、Java和Node.js SDK,调用流程请查看SDK使用说明。
(2)模型不同,调用SDK时,使用参数不同。请结合具体模型,查看参数使用说明进行调用。
- 指定支持预置服务的模型,使用model参数指定支持预置服务的模型,详见请求参数说明。
- 用户快速部署自行发布的模型服务,需使用参数endpoint,详见请求参数说明。
支持模型列表
支持的模型列表,及各模型支持的调用方法说明如下,更多详情见请求参数说明。
模型 | 支持预置服务的模型 (使用model参数) |
用户自行发布的模型服务 (使用endpoint参数) |
---|---|---|
ERNIE-4.0-8K (即ERNIE-Bot-4) |
✓ | ✕ |
ERNIE-4.0-8K-Preview | ✓ | ✕ |
ERNIE-4.0-8K-Latest | ✓ | ✕ |
ERNIE-4.0-8K-0613 | ✓ | ✕ |
ERNIE-4.0-Turbo-8K | ✓ | ✕ |
ERNIE-4.0-Turbo-8K-Preview | ✓ | ✕ |
ERNIE-4.0-Turbo-8K-Latest | ✓ | ✕ |
ERNIE-4.0-Turbo-8K-0628 | ✓ | ✕ |
ERNIE-4.0-Turbo-128K | ✓ | ✕ |
ERNIE-3.5-8K (即ERNIE-Bot) |
✓ | ✕ |
ERNIE-3.5-8K-Preview | ✓ | ✕ |
ERNIE-3.5-128K | ✓ | ✕ |
ERNIE-3.5-8K-0613 | ✓ | ✕ |
ERNIE-3.5-8K-0701 | ✓ | ✕ |
ERNIE-3.5-128K-Preview | ✓ | ✕ |
ERNIE-Speed-Pro-128K | ✓ | ✕ |
ERNIE-Speed-8K (即ERNIE-Speed) |
✓ | ✕ |
ERNIE-Speed-128k | ✓ | ✕ |
ERNIE-Lite-8K | ✓ | ✕ |
ERNIE-Lite-8K-0725 | ✓ | ✕ |
ERNIE-Lite-8K-0704 | ✓ | ✕ |
ERNIE-Lite-8K-0516 | ✓ | ✕ |
ERNIE-Lite-8K-0419 | ✓ | ✕ |
ERNIE-Lite-Pro-128K | ✓ | ✕ |
ERNIE-Tiny-8K | ✓ | ✕ |
ERNIE-Tiny-128K-0929 | ✓ | ✕ |
ERNIE-Novel-8K | ✓ | ✕ |
ERNIE-Character-8K | ✓ | ✕ |
ERNIE-Character-Fiction-8K | ✓ | ✕ |
ERNIE-Character-Fiction-8K-Preview | ✓ | ✕ |
ERNIE-Functions-8K | ✓ | ✕ |
Qianfan-Agent-Speed-8K | ✓ | ✕ |
Qianfan-Agent-Speed-32K | ✓ | ✕ |
Qianfan-Agent-Lite-8K | ✓ | ✕ |
Gemma-2B-it | ✕ | ✓ |
Mistral-7B-Instruct | ✕ | ✓ |
Linly-Chinese-LLaMA-2-7B | ✕ | ✓ |
Qianfan-Chinese-Llama-2-7B-32K | ✕ | ✓ |
Linly-Chinese-LLaMA-2-13B | ✕ | ✓ |
Qianfan-Chinese-Llama-2-13B-v1 | ✓ | ✓ |
Qianfan-Chinese-Llama-2-13B-v2 | ✕ | ✓ |
Qianfan-Llama-2-70B-compressed | ✕ | ✓ |
Qianfan-Chinese-Llama-2-1.3B | ✕ | ✓ |
Meta-Llama-3-8B-Instruct (即Meta-Llama-3-8B) |
✓ | ✓ |
Meta-Llama-3-70B-Instruct (即Meta-Llama-3-70B) |
✓ | ✓ |
ChatGLM3-6B | ✕ | ✓ |
chatglm3-6b-32k | ✕ | ✓ |
ChatGLM2-6B-INT4 | ✕ | ✓ |
ChatGLM2-6B | ✕ | ✓ |
Baichuan2-7B-Chat | ✕ | ✓ |
Baichuan2-13B-Chat | ✕ | ✓ |
XVERSE-13B-Chat | ✕ | ✓ |
DISC-MedLLM | ✕ | ✓ |
Falcon-7B | ✕ | ✓ |
Falcon-40B-Instruct | ✕ | ✓ |
RWKV-4-World | ✕ | ✓ |
RWKV-4-pile-14B | ✕ | ✓ |
RWKV-Raven-14B | ✕ | ✓ |
OpenLLaMA-7B | ✕ | ✓ |
Dolly-12B | ✕ | ✓ |
MPT-7B-Instruct | ✕ | ✓ |
MPT-30B-instruct | ✕ | ✓ |
OA-Pythia-12B-SFT-4 | ✕ | ✓ |
SDK调用
调用示例(单轮)
- 指定支持预置服务的模型
使用model
字段,指定平台支持预置服务的模型,调用示例如下。
1import os
2import qianfan
3
4#通过环境变量初始化认证信息
5# 方式一:【推荐】使用安全认证AK/SK鉴权
6# 替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换,your_iam_sk,如何获取请查看https://cloud.baidu.com/doc/Reference/s/9jwvz2egb
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值替换为真实值,如何获取请参考https://cloud.baidu.com/doc/WENXINWORKSHOP/s/Fllg87pck
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(model="ERNIE-3.5-8K", messages=[{
19 "role": "user",
20 "content": "你好"
21}])
22
23print(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,如何获取请查看https://cloud.baidu.com/doc/Reference/s/9jwvz2egb
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.WithModel("ERNIE-3.5-8K"),
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,如何获取请查看https://cloud.baidu.com/doc/Reference/s/9jwvz2egb
7 Qianfan qianfan = new Qianfan("your_iam_ak", "your_iam_sk");
8
9 // 指定模型
10 ChatResponse resp = qianfan.chatCompletion()
11 .model("ERNIE-3.5-8K")
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,,如何获取请查看https://cloud.baidu.com/doc/Reference/s/9jwvz2egb
4setEnvVariable('QIANFAN_ACCESS_KEY','your_iam_ak');
5setEnvVariable('QIANFAN_SECRET_KEY','your_iam_sk');
6
7const client = new ChatCompletion();
8async function main() {
9 const resp = await client.chat({
10 messages: [
11 {
12 role: 'user',
13 content: '你好!',
14 },
15 ],
16 }, 'ERNIE-Bot-turbo');
17 console.log(resp);
18}
19
20main();
- 用户自行发布的模型服务
对于用户快速部署自行发布的模型服务,通过使用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': 7,
10 'completion_tokens': 67,
11 'total_tokens': 74
12 }
13 }
1你好!有什么我可以帮助你的吗?
1你好!有什么我可以帮助你的吗?
1{
2 id: 'as-xdiknr8pj9',
3 object: 'chat.completion',
4 created: 1709721393,
5 result: '你好!有什么我可以帮助你的吗?',
6 is_truncated: false,
7 need_clear_history: false,
8 usage: { prompt_tokens: 2, completion_tokens: 8, total_tokens: 10 }
9}
调用示例(多轮)
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(messages=[{ # 调用默认模型,即 ERNIE-Bot-turbo
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 // 多轮对话,调用默认模型,即 ERNIE-Bot-turbo
17 chat := qianfan.NewChatCompletion()
18 resp, _ := chat.Do(
19 context.TODO(),
20 &qianfan.ChatCompletionRequest{
21 Messages: []qianfan.ChatCompletionMessage{
22 qianfan.ChatCompletionUserMessage("你好!"),
23 qianfan.ChatCompletionAssistantMessage("你好!有什么我可以帮助你的吗?"),
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 // 多轮对话
10 ChatResponse resp = qianfan.chatCompletion()
11 .addMessage("user", "你好")
12 .addMessage("assistant", "你好!有什么我可以帮助你的吗?")
13 .addMessage("user", "你是谁")
14 .execute();
15 System.out.println(resp.getResult());
16 }
17}
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();
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();
返回示例(多轮)
1{
2 "id": "as-wkg3gtxsjp",
3 "object": "chat.completion",
4 "created": 1709887957,
5 "result": "北京是一个拥有许多历史、文化和自然景观的城市,周末你可以去以下几个地方玩:\n\n1. 故宫:这是中国最大的古代建筑群,是中国古代皇家宫殿的代表,你可以参观各个宫殿,了解中国古代皇室的生活。\n2. 颐和园:这是中国最著名的皇家园林之一,拥有美丽的湖泊和壮观的建筑群。\n3. 长城:作为世界文化遗产,北京段的长城非常著名,你可以选择徒步、骑行或者乘坐缆车等方式去游览。\n4. 圆明园:这是清朝皇家园林的一部分,拥有丰富的文化遗产和美丽的自然风光。\n5. 798艺术区:这是一个现代化的艺术区,有很多艺术展览、画廊和创意工作室,也是北京时尚潮流的聚集地。\n6. 北京欢乐谷:这是一个大型主题公园,有各种刺激的游乐设施和丰富多彩的活动。\n7. 北京鸟巢和水立方:这是北京奥运会的主要体育场馆,是北京的地标性建筑,可以参观并欣赏它们的美丽夜景。\n8. 北京动物园:这是中国最大的动物园之一,拥有各种珍稀动物和美丽的鸟类。\n\n以上是一些适合周末游玩的景点,你可以根据自己的兴趣和时间来选择。此外,北京还有很多小吃和美食,你可以尝试一些当地的特色美食,如烤鸭、炸酱面、豆汁焦圈等等。",
6 "is_truncated": False,
7 "need_clear_history": False,
8 "usage": {"prompt_tokens": 18, "completion_tokens": 285, "total_tokens": 303},
9 }
1北京是一个拥有许多历史、文化和自然景观的城市,有很多地方可以探索。如果你在周末有空,以下是一些建议的景点和活动:
2
31. 故宫:这是中国最大的古代宫殿之一,拥有丰富的历史和文化遗产。
42. 颐和园:这是一个美丽的皇家园林,拥有壮丽的湖泊和精美的建筑。
53. 长城:北京附近的长城段是许多人向往的地方。你可以选择参加一日游或自驾前往。
64. 798艺术区:这是一个充满艺术气息的地方,有许多画廊、艺术工作室和博物馆。
75. 南锣鼓巷:这是一个充满历史气息的胡同区,有很多小吃、手工艺品和文化遗产店。
86. 玉渊潭公园:这是一个大型公园,环境优美,有很多娱乐设施和活动。
97. 郊区古迹:如妙应寺白塔、太阳宫等,这些地方虽然不那么热闹,但也有其独特的魅力。
10
11除此之外,北京还有很多博物馆、剧院和美食街区,如三里屯、簋街等,你可以根据自己的兴趣和时间来选择。另外,你也可以尝试一些当地的活动,如品尝北京烤鸭、炸酱面等美食,或者参加一些传统文化活动。
12
13希望这些建议对你有所帮助!
1我是由百度公司开发的人工智能语言模型,我叫文心一言。我的知识来自于训练数据和算法,旨在为人类提供帮助和启示。如果你有任何问题或需要帮助,请随时提出。
1{
2 id: 'as-8vcq0n4u0e',
3 object: 'chat.completion',
4 created: 1709887877,
5 result: '北京是一个拥有许多有趣和独特景点的大城市,周末你可以去很多地方玩。例如:\n' +
6 '\n' +
7 '1. **故宫博物院**:这是中国最大的古代建筑群,有着丰富的历史和文化遗产,是个很好的适合全家人游玩的地方。\n' +
8 '2. **天安门广场**:这里是北京的心脏,周围有许多历史和现代建筑。你可以在广场上漫步,欣赏升旗仪式和观看周围的繁华景象。\n' +
9 '3. **颐和园**:这是一个美丽的皇家园林,有着优美的湖泊和精美的古建筑。你可以在这里漫步,欣赏美丽的景色,同时也可以了解中国的传统文化。\n' +
10 '4. **北京动物园**:这是中国最大的动物园之一,有许多稀有动物,包括熊猫、老虎、长颈鹿等。对于孩子们来说是个很好的去处。\n' +
11 '5. **798艺术区**:这是一个充满艺术气息的地方,有许多画廊、艺术工作室和艺术展览。这里有许多新的现代艺术作品,可以欣赏到一些艺术家的创作。\n' +
12 '6. **三里屯酒吧街**:如果你对夜生活感兴趣,可以去三里屯酒吧街。这里有许多酒吧和餐馆,是一个热闹的夜生活场所。\n' +
13 '7. **北京环球度假区**:如果你们喜欢主题公园,那么可以去环球度假区,虽然这是在建的,但是等它建好之后肯定是一个很好的去处。\n' +
14 '\n' +
15 '当然,你也可以考虑一些其他的地方,比如购物街、博物馆、公园等等。希望这些建议对你有所帮助!',
16 is_truncated: false,
17 need_clear_history: false,
18 usage: { prompt_tokens: 19, completion_tokens: 307, total_tokens: 326 }
19}
调用示例(流式)
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(model="ERNIE-Bot-turbo", 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 resp, _ := chat.Stream( // Stream 启用流式返回,参数与 Do 相同
18 context.TODO(),
19 &qianfan.ChatCompletionRequest{
20 Messages: []qianfan.ChatCompletionMessage{
21 qianfan.ChatCompletionUserMessage("你好"),
22 },
23 },
24 )
25 for {
26 r, err := resp.Recv()
27 if err != nil {
28 panic(err)
29 }
30 if resp.IsEnd { // 判断是否结束
31 break
32 }
33 fmt.Println(r.Result)
34 }
35}
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 .addMessage("user", "你好")
13 // 启用流式返回
14 .executeStream()
15 .forEachRemaining(chunk -> System.out.print(gson.toJson(chunk)));
16 }
17}
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();
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{"id":"as-bz14dun5it","object":"chat.completion","created":1710469885,"sentenceId":0,"isEnd":false,"isTruncated":false,"result":"你好,","needClearHistory":false,"usage":{"promptTokens":1,"completionTokens":2,"totalTokens":3}}
2{"id":"as-bz14dun5it","object":"chat.completion","created":1710469885,"sentenceId":1,"isEnd":false,"isTruncated":false,"result":"有什么我可以帮助你的吗?","needClearHistory":false,"usage":{"promptTokens":1,"completionTokens":2,"totalTokens":3}}
3{"id":"as-bz14dun5it","object":"chat.completion","created":1710469885,"sentenceId":2,"isEnd":true,"isTruncated":false,"result":"","needClearHistory":false,"usage":{"promptTokens":1,"completionTokens":8,"totalTokens":9}}
1{
2 id: 'as-f7mrqpanb3',
3 object: 'chat.completion',
4 created: 1709724132,
5 sentence_id: 0,
6 is_end: false,
7 is_truncated: false,
8 result: '你好!',
9 need_clear_history: false,
10 usage: { prompt_tokens: 2, completion_tokens: 0, total_tokens: 2 }
11}
12{
13 id: 'as-f7mrqpanb3',
14 object: 'chat.completion',
15 created: 1709724132,
16 sentence_id: 1,
17 is_end: false,
18 is_truncated: false,
19 result: '有什么我可以帮助你的吗?',
20 need_clear_history: false,
21 usage: { prompt_tokens: 2, completion_tokens: 0, total_tokens: 2 }
22}
23{
24 id: 'as-f7mrqpanb3',
25 object: 'chat.completion',
26 created: 1709724132,
27 sentence_id: 2,
28 is_end: true,
29 is_truncated: false,
30 result: '',
31 need_clear_history: false,
32 usage: { prompt_tokens: 2, completion_tokens: 8, total_tokens: 10 }
33}
function call调用示例
Python
1import os
2import qianfan
3import json
4
5#通过环境变量初始化认证信息
6# 方式一:【推荐】使用安全认证AK/SK鉴权
7# 替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
8os.environ["QIANFAN_ACCESS_KEY"] = "your_iam_ak"
9os.environ["QIANFAN_SECRET_KEY"] = "your_iam_sk"
10
11# 方式二:【不推荐】使用应用AK/SK鉴权
12# 替换下列示例中参数,将应用API_Key、应用Secret key值替换为真实值
13#os.environ["QIANFAN_AK"] = "应用API_Key"
14#os.environ["QIANFAN_SK"] = "应用Secret_Key"
15
16# 定义可被调用函数
17def get_file_num(language: str) -> str:
18 """获取数据库中指定语言的代码文件数量"""
19 language_low = language.lower()
20 language_map = {
21 "c/c++": 35,
22 "java": 10,
23 "javascript": 25,
24 "python": 35,
25 "go": 32,
26 }
27 return str(language_map.get(language_low, 0))
28
29
30# 定义函数schema
31func_list = [{
32 "name": "get_file_num", # 函数名称
33 "description": "获取内部数据库中以某一编程语言编写的文件数量", # 函数描述
34 "parameters": {
35 "type": "object",
36 "properties": { # 参数schema,如果参数为空,设为空字典即可
37 "language": { # 参数名称
38 "type": "string", # 参数类型
39 "description": "代码所运用的编程语言,例如:python、c/c++、go、java" # 参数描述
40 }
41 },
42 "required": ["language"] # 必填参数(无默认值)
43 }
44}]
45
46# 第一轮调用触发function_call
47chat_comp = qianfan.Function()
48query = "请帮我查询一下数据库中用python撰写的代码文件数量"
49msgs = qianfan.QfMessages()
50msgs.append(query, role='user')
51resp = chat_comp.do(
52 messages=msgs,
53 functions=func_list
54)
55print("function_calling:", resp['body'].get('function_call'))
56
57if resp.get("function_call"):
58 # 获取函数名称、入参
59 func_call_result = resp["function_call"]
60 func_name = func_call_result["name"]
61 language = json.loads(func_call_result["arguments"]).get("language")
62
63 # 调用函数获得函数返回值
64 func_resp = get_file_num(language)
65
66 # 将函数返回值转换成json字符串
67 func_content = json.dumps({
68 "return": func_resp
69 })
70
71 # 添加到历史对话记录
72 msgs.append(resp, role="assistant")
73 msgs.append(func_content, role="function")
74
75 # 再次调用chat_completion
76 second_resp = chat_comp.do(
77 messages=msgs,
78 functions=func_list
79 )
80
81 # 得到答案
82 print(second_resp['body']['result'])
function call响应示例
Python
1function_calling: {'name': 'get_file_num', 'arguments': '{"language": "python"}'}
2数据库中用Python撰写的代码文件数量为35。
请求参数
注意:以下为Python SDK参数说明,其他SDK参数相关说明请参考Go SDK-对话Chat参数相关说明、Java SDK参数相关说明、Node.js SDK参数相关说明。
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
model | string | 否 | 模型名称,用于指定平台支持预置服务的模型,说明: (1)不填写此字段时,默认模型为ERNIE-Lite-8K (2)如果模型为平台支持预置服务的模型,此字段必填,model参数值,请查看本文支持模型列表-支持预置服务的模型列。 |
endpoint | string | 否 | 用于指定用户自行发布的模型服务,包括自行发布平台预置的模型、用户自定义模型。说明: (1)如果指定用户自行发布的模型服务,endpoint字段为必填,目前平台支持自行发布的模型服务,请参考模型列表-用户自行发布的模型服务列表,示例:Falcon-7B (2)用户自行发布服务,该字段值可以通过查看服务地址获取:打开模型服务-在线服务页面,选择创建的服务-点击详情页查看服务地址,endpoint值为 https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/ 后面的地址,如下图所示![]() 注意: 在创建服务页面,选择模型后,API地址会自动新增个后缀。例如选择模型RWKV-4-World,输入API地址为“test1”,endpoint的取值即为“ngxxxol8_test1”,如下图所示,如何发布服务请参考发布平台预置的模型服务、快速部署自定义模型 ![]() |
messages | List[dict] | 是 | 聊天上下文信息。说明: (1)messages成员不能为空,1个成员表示单轮对话,多个成员表示多轮对话 (2)最后一个message为当前请求的信息,前面的message为历史对话信息 (3)必须为奇数个成员,成员中message的role必须依次为user(or function)、assistant (4)长度的限制: · 参考模型广场操作及模型列表文档中,输入字符、输入Token等内容 · 其他,message中的content总长度不能超过4800个字符 |
functions | List[dict] | 否 | 一个可触发函数的描述列表,说明: (1)只有当参数model值或endpoint对应的模型为以下时,functions字段有效: · ERNIE-3.5-8K · ERNIE-3.5-8K-Preview · ERNIE-3.5-128K · ERNIE-3.5-8K-0613 · ERNIE-3.5-8K-0701 · ERNIE-3.5-128K-Preview (2)长度限制请参考message说明 |
temperature | float | 否 | 说明: (1)较高的数值会使输出更加随机,而较低的数值会使其更加集中和确定 (2)默认值: · 当model值或endpoint对应的模型为以下时,范围(0, 1.0],默认值为0.8:ERNIE-4.0-8K、ERNIE-4.0-8K-Preview、ERNIE-4.0-8K-Latest、ERNIE-4.0-8K-0613、ERNIE-4.0-Turbo-8K、ERNIE-4.0-Turbo-8K-Preview、ERNIE-4.0-Turbo-8K-Latest、ERNIE-4.0-Turbo-8K-0628、ERNIE-4.0-Turbo-128K、ERNIE-3.5-8K、ERNIE-3.5-8K-Preview、ERNIE-3.5-128K、 ERNIE-3.5-8K-0613、ERNIE-3.5-8K-0701、ERNIE-3.5-128K-Preview、ERNIE-Novel-8K、Qianfan-Dynamic-8K · 当model值或endpoint对应的模型为以下时,范围(0, 1.0],默认值为0.95:ERNIE Lite系列、ERNIE-Speed-Pro-128K、ERNIE-Speed-8K、ERNIE-Speed-128k、ERNIE-Tiny-8K、ERNIE-Tiny-128K-0929、ERNIE-Character-8K、ERNIE-Character-Fiction-8K、ERNIE-Character-Fiction-8K-Preview、ERNIE-Functions-8K、Qianfan-Agent-Lite-8K、Qianfan-Agent-Speed-8K、Qianfan-Agent-Speed-32K · 其他,范围(0, 1.0],不能为0 |
top_k | float | 否 | 说明: (1)较高的数值会使输出更加随机,而较低的数值会使其更加集中和确定 (2)默认0.95,范围 (0, 1.0],不能为0 (3)建议该参数和top_p只设置1个 (4)以下情况,不支持使用此参数: · 当model值或endpoint对应的模型为ERNIE 4.0系列、ERNIE 4.0 Turbo系列、ERNIE 3.5系列、ERNIE Speed系列、ERNIE Lite系列、ERNIE Lite Pro系列、ERNIE Tiny系列、ERNIE-Novel-8K、ERNIE Character、ERNIE Functions、Qianfan-Dynamic-8K、Qianfan-Agent-Lite-8K、Qianfan-Agent-Speed-8K、、Qianfan-Agent-Speed-32K · 基于ERNIE-Lite-8K SFT调优后的模型 |
top_p | float | 否 | 说明: (1)影响输出文本的多样性,取值越大,生成文本的多样性越强 (2)取值范围 [0, 1.0] (3)默认值: · 当model值或endpoint对应的模型为以下时,默认值为0.8:ERNIE 4.0系列、ERNIE 4.0 Turbo系列、ERNIE 3.5系列、ERNIE-Novel-8K、Qianfan-Dynamic-8K · 当model值或endpoint对应的模型为以下时,默认值为0.7 :ERNIE Lite系列、ERNIE Speed系列、ERNIE Lite Pro系列、ERNIE Character、ERNIE Functions、Qianfan-Agent-Lite-8K、Qianfan-Agent-Speed-8K、Qianfan-Agent-Speed-32K |
penalty_score | float | 否 | 通过对已生成的token增加惩罚,减少重复生成的现象。说明: (1)值越大表示惩罚越大 (2)取值范围:[1.0, 2.0] (3)默认值,当model值或endpoint对应的模型值为以下时,penalty_score字段默认值为1.0: · ERNIE 4.0系列 · ERNIE 4.0 Turbo系列 · ERNIE 3.5系列 · ERNIE Speed系列 · ERNIE Lite系列 · ERNIE Lite Pro系列 · ERNIE-Novel-8K · ERNIE Character · ERNIE Functions · Qianfan-Dynamic-8K · Qianfan-Agent-Lite-8K · Qianfan-Agent-Speed-8K · Qianfan-Agent-Speed-32K |
stream | bool | 否 | 是否以流式接口的形式返回数据,默认false true:是,以流式接口的形式返回数据 false:否 |
retry_count | int | 否 | 重试次数,默认1次 |
request_timeout | float | 否 | 请求超时时间,默认60秒 |
backoff_factor | float | 否 | 请求重试参数,用于指定重试的策略 |
system | string | 否 | 模型人设,主要用于人设设定,例如,你是xxx公司制作的AI助手,说明: (1)只有当参数model值或endpoint对应的模型为以下时,system字段有效: · ERNIE 4.0系列 · ERNIE 4.0 Turbo系列 · ERNIE 3.5系列 · ERNIE Lite系列 · ERNIE Lite Pro系列 · ERNIE Speed系列 · ERNIE Tiny系列 · ERNIE Character · ERNIE-Novel-8K · Qianfan-Dynamic-8K · Qianfan-Agent-Lite-8K · Qianfan-Agent-Speed-8K · Qianfan-Agent-Speed-32K (2)长度限制请参考message说明 (3)如果同时使用system和functions,可能暂无法保证使用效果,持续进行优化 |
stop | List[string] | 否 | 生成停止标识。当模型生成结果以stop中某个元素结尾时,停止文本生成。说明: (1)每个元素长度不超过20字符。 (2)最多4个元素 |
disable_search | bool | 否 | 是否强制关闭实时搜索功能,说明: (1)默认false,表示不关闭 (2)当model值或endpoint对应的模型为以下时,该字段有效: · ERNIE 4.0系列 · ERNIE 4.0 Turbo系列 · ERNIE 3.5系列 · ERNIE-Novel-8K · Qianfan-Dynamic-8K |
enable_citation | bool | 否 | 是否开启上角标返回,说明: (1)开启后,有概率触发搜索溯源信息search_info,search_info内容见返回参数介绍 (2)默认false,不开启 (3)当model值或endpoint对应的模型为以下时,该字段有效: · ERNIE 4.0系列 · ERNIE 4.0 Turbo系列 · ERNIE 3.5系列 · ERNIE-Novel-8K · ERNIE Functions · Qianfan-Dynamic-8K |
enable_trace | bool | 否 | 是否返回搜索溯源信息,说明: (1)如果开启,在触发了搜索增强的场景下,会返回搜索溯源信息search_info,search_info内容见响应参数介绍 (2)默认false,表示不开启 (3)当model值或endpoint对应的模型为以下时,此字段有效: · ERNIE 4.0系列 · ERNIE 4.0 Turbo系列 · ERNIE 3.5系列 · ERNIE-Novel-8K · Qianfan-Dynamic-8K |
min_output_tokens | int | 否 | 指定模型最小输出token数,说明: (1)当model值或endpoint对应的模型为ERNIE-Lite-8K、ERNIE-Speed-8K、ERNIE-Lite-Pro-128K、ERNIE-Tiny-8K、ERNIE-Tiny-128K-0929、Qianfan-Agent-Lite-8K、Qianfan-Agent-Speed-8K、Qianfan-Agent-Speed-32K时,该字段有效 (2)该参数取值范围[2, 2048] |
max_output_tokens | int | 否 | 指定模型最大输出token数,说明:支持模型及限制,可参考模型广场操作及模型列表中,输出区间、默认最大输出Tokens值 |
response_format | string | 否 | 指定响应内容的格式,说明: (1)当model值或endpoint对应的模型为以下时,该字段有效: · ERNIE 4.0系列 · ERNIE 4.0 Turbo系列 · ERNIE 3.5系列 · ERNIE-Novel-8K · Qianfan-Dynamic-8K (2)可选值: · json_object:以json格式返回,可能出现不满足效果情况 · text:以文本格式返回 (3)如果不填写参数response_format值,默认为text |
user_id | string | 否 | 表示最终用户的唯一标识符 |
extra_parameters | Object | 否 | 第三方大模型推理高级参数,依据第三方大模型厂商不同而变化 |
tool_choice | tool_choice | 否 | 在函数调用场景下,提示大模型选择指定的函数(非强制),说明: (1)指定的函数名必须在functions中存在 (2)当model值或endpoint对应的模型为以下时,该字段有效: · ERNIE 3.5系列 · Qianfan-Dynamic-8K |
logprobs | bool | 否 | 是否在输出token的时候返回对数概率,说明: (1)只有先经过SFT模型训练后发布服务,才能使用该参数 (2)可选值: · true:在响应消息体中返回该内容 · false:不返回,默认为false (3)当model值或endpoint对应的模型为以下时,该字段有效: · ERNIE-Tiny-128K-0929 · Qianfan-Chinese-Llama-2-13B-v1 · Qianfan-Chinese-Llama-2-13b-v2 · Qianfan-Chinese-Llama-2-7b-32K · Qianfan-Chinese-Llama-2-1.3B · ChatGLM2-6B · Baichuan2-7B-Chat · Baichuan2-13B-Chat |
top_logprobs | int | 否 | 指定为每个token位置返回多少最有可能的token,说明: (1)只有先经过SFT模型训练后发布服务,才能使用该参数 (2)当logprobs为true,该参数必填 (3)取值范围:[0,5] (4)当model值或endpoint对应的模型为以下时,该字段有效: · ERNIE-Tiny-128K-0929 · Qianfan-Chinese-Llama-2-13B-v1 · Qianfan-Chinese-Llama-2-13b-v2 · Qianfan-Chinese-Llama-2-7b-32K · Qianfan-Chinese-Llama-2-1.3B · ChatGLM2-6B · Baichuan2-7B-Chat · Baichuan2-13B-Chat |
frequency_penalty | float | 否 | 正值根据迄今为止文本中的现有频率对新token进行惩罚,从而降低模型逐字重复同一行的可能性;说明: (1)默认0.1,取值范围[-2.0, 2.0] (2)只有当参数当model值或endpoint对应的模型为以下时,该字段有效: · ERNIE-Speed-8K · ERNIE-Speed-128K · ERNIE-Speed-Pro-128K · ERNIE-Lite-8K · ERNIE-Lite-128K-0419 · ERNIE-Lite-Pro-128K · ERNIE-Tiny-8K · ERNIE-Tiny-128K-0929 · Qianfan-Agent-Lite-8K · Qianfan-Agent-Speed-8K · Qianfan-Agent-Speed-32K |
presence_penalty | float | 否 | 正值根据token记目前是否出现在文本中来对其进行惩罚,从而增加模型谈论新主题的可能性;说明: (1)默认0.0,取值范围[-2.0, 2.0] (2)只有当参数当model值或endpoint对应的模型为以下时,该字段有效: · ERNIE-Speed-8K · ERNIE-Speed-128K · ERNIE-Speed-Pro-128K · ERNIE-Lite-8K · ERNIE-Lite-128K-0419 · ERNIE-Lite-Pro-128K · ERNIE-Tiny-8K · ERNIE-Tiny-128K-0929 · Qianfan-Agent-Lite-8K · Qianfan-Agent-Speed-8K · Qianfan-Agent-Speed-32K |
enable_system_memory | bool | 否 | 是否开启系统记忆,说明: (1)可选值: false:未开启,默认false true:表示开启,开启后,system_memory_id字段必填 (2)当model值或endpoint对应的模型值为以下时,该字段有效: · ERNIE 4.0系列 · ERNIE 4.0 Turbo系列 · ERNIE 3.5系列 · ERNIE-Novel-8K |
system_memory_id | string | 否 | 系统记忆ID,用于读取对应ID下的系统记忆,读取到的记忆文本内容会拼接message参与请求推理,说明 (1)当model值或endpoint对应的模型值为以下时,该字段有效: · ERNIE 4.0系列 · ERNIE 4.0 Turbo系列 · ERNIE 3.5系列 · ERNIE-Novel-8K |
enable_user_memory | bool | 否 | 是否开启用户记忆,说明: (1)false:未开启,默认false (2)true:表示开启,开启后,user_id 字段必填 (3)当model值或endpoint对应的模型值为以下时,该字段有效: · ERNIE Character |
user_memory_extract_level | int | 否 | 用户记忆抽取级别,说明: (1)可选值如下: · 0:关闭抽取 · 1:实时抽取-普通抽取 · 2:实时抽取-高级抽取 (2)当model值或endpoint对应的模型值为以下时,该字段有效: · ERNIE Character |
metadata | map<string,string> | 否 | 说明: (1)元素个数最大支持16个 (2)key和value必须都是string类型 |
messages说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
role | string | 是 | 当前支持以下: user: 表示用户 assistant: 表示对话助手 function: 表示函数 |
content | string | 是 | 对话内容,当前message存在function_call时可以为空,其他场景不能为空 |
name | string | 否 | message作者;当role=function时,必填,且是响应内容中function_call中的name |
function_call | dict | 否 | 函数调用,function call场景下第一轮对话的返回,第二轮对话作为历史信息在message中传入 |
functions说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
name | string | 是 | 函数名 |
description | string | 是 | 函数描述 |
parameters | object | 是 | 函数请求参数,说明: (1)JSON Schema 格式,参考JSON Schema描述 (2)如果函数没有请求参数,parameters值格式如下: {"type": "object","properties": {}} |
responses | object | 否 | 函数响应参数,JSON Schema 格式,参考JSON Schema描述 |
examples | List[List[dict]] | 否 | function调用的一些历史示例,说明: (1)可以提供正例(正常触发)和反例(无需触发)的example ·正例:从历史请求数据中获取 ·反例: 当role = user,不会触发请求的query 当role = assistant,有固定的格式。function_call的name为空,arguments是空对象:"{}",thought可以填固定的:"我不需要调用任何工具" (2)兼容之前的 List[dict] 格式 |
examples说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
role | string | 是 | 当前支持以下: user: 表示用户 assistant: 表示对话助手 function: 表示函数 |
content | string | 是 | 对话内容,当前message存在function_call时可以为空,其他场景不能为空 |
name | string | 否 | message作者;当role=function时,必填,且是响应内容中function_call中的name |
function_call | dict | 否 | 函数调用,function call场景下第一轮对话的返回,第二轮对话作为历史信息在message中传入 |
tool_choice说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
type | string | 是 | 指定工具类型,function |
function | function | 是 | 指定要使用的函数 |
name | string | 是 | 指定要使用的函数名 |
function_call说明
名称 | 类型 | 必填 | 描述 |
---|---|---|---|
name | string | 是 | 触发的function名 |
arguments | string | 是 | 请求参数 |
thoughts | string | 否 | 模型思考过程 |
extra_parameters说明
名称 | 类型 | 必须 | 描述 |
---|---|---|---|
use_keyword | bool | 是 | 表示是否提取问答关键词以加强模型推理。使用use_keyword参数,可能会导致以下情况: (1)模型回答通识性问题下降 (2)在接口响应前,获取到提取的问答关键词,并将内容拼接到prompt中,最终接口返回参数prompt_tokens数会比用户输入多 |
use_reference | bool | 是 | 表示是否使用参考法条以加强推理。使用use_reference参数,可能会导致以下情况: (1)模型回答通识性问题下降 (2)在接口响应前,获取到参考法条,并将内容拼接到prompt中,最终接口返回参数prompt_tokens数会比用户输入多 |
返回参数
名称 | 类型 | 描述 |
---|---|---|
id | string | 本轮对话的id |
object | string | 回包类型 chat.completion:多轮对话返回 |
created | int | 时间戳 |
sentence_id | int | 表示当前子句的序号。只有在流式接口模式下会返回该字段。 |
is_end | bool | 表示当前子句是否是最后一句。只有在流式接口模式下会返回该字段 |
is_truncated | bool | 当前生成的结果是否被截断 |
finish_reason | string | 输出内容标识,说明: (1)当model值或endpoint对应的模型为ERNIE-3.5-8K、ERNIE-4.0-8K或ERNIE-Functions-8K时,会返回该字段 (2)标识说明: · normal:输出内容完全由大模型生成,未触发截断、替换 · stop:输出结果命中入参stop中指定的字段后被截断 · length:达到了最大的token数,根据EB返回结果is_truncated来截断 · content_filter:输出内容被截断、兜底、替换为**等 · function_call:调用了funtion call功能 |
search_info | dict | 搜索数据,当请求参数enable_citation为true并且触发搜索时,会返回该字段 |
result | string | 对话返回结果 |
need_clear_history | bool | 表示用户输入是否存在安全,是否关闭当前会话,清理历史会话信息。 true:是,表示用户输入存在安全风险,建议关闭当前会话,清理历史会话信息 false:否,表示用户输入无安全风险 |
flag | int | 说明:返回flag表示触发安全 |
ban_round | int | 当need_clear_history为true时,此字段会告知第几轮对话有敏感信息,如果是当前问题,ban_round=-1 |
usage | usage | token统计信息 |
search_info说明
名称 | 类型 | 描述 |
---|---|---|
search_results | List(search_result) | 搜索结果列表 |
search_result说明
名称 | 类型 | 描述 |
---|---|---|
index | int | 序号 |
url | string | 搜索结果URL |
title | string | 搜索结果标题 |
usage说明
名称 | 类型 | 描述 |
---|---|---|
prompt_tokens | int | 问题tokens数 |
completion_tokens | int | 回答tokens数 |
total_tokens | int | tokens总数 |