资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

对话模式

千帆ModelBuilder支持HuggingFace Transformer架构的自定义大模型导入。本文介绍了自定义导入模型发布为服务后,使用对话模式调用相关API说明。如何导入并部署第三方模型,请查看快速导入并部署第三方模型

对话模式

使用对话模式,创建chat,发起一次对话请求。

使用说明

本文内容适用Python、Go、Java和Node.js SDK,SDK调用流程请参考SDK安装及使用流程

SDK调用

调用示例(单轮)

对于用户快速部署自行发布的模型服务,通过使用endpoint字段进行调用,示例如下。

import os
import qianfan

#通过环境变量初始化认证信息
# 方式一:【推荐】使用安全认证AK/SK鉴权
# 替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
os.environ["QIANFAN_ACCESS_KEY"] = "your_iam_ak"
os.environ["QIANFAN_SECRET_KEY"] = "your_iam_sk"

# 方式二:【不推荐】使用应用AK/SK鉴权
# 替换下列示例中参数,将应用API_Key、应用Secret key值替换为真实值
#os.environ["QIANFAN_AK"] = "应用API_Key"
#os.environ["QIANFAN_SK"] = "应用Secret_Key"

chat_comp = qianfan.ChatCompletion()

# 使用自行发布的模型
resp = chat_comp.do(endpoint="your_custom_endpoint", messages=[{
    "role": "user",
    "content": "你好"
}])

# 可以通过resp["body"]获取接口返回的内容
print(resp["body"])
package main

import (
	"context"
	"fmt"
	"os"

	"github.com/baidubce/bce-qianfan-sdk/go/qianfan"
)

func main() {
	// 使用安全认证AK/SK鉴权,通过环境变量初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
	os.Setenv("QIANFAN_ACCESS_KEY", "your_iam_ak")
	os.Setenv("QIANFAN_SECRET_KEY", "your_iam_sk")
    
    // 使用自行发布的模型
	chat := qianfan.NewChatCompletion(
		qianfan.WithEndpoint("endpoint"),
	)
	resp, _ := chat.Do(
		context.TODO(),
		&qianfan.ChatCompletionRequest{
			Messages: []qianfan.ChatCompletionMessage{
				qianfan.ChatCompletionUserMessage("你好!"),
			},
		},
	)
	fmt.Println(resp.Result)
}
import com.baidubce.qianfan.Qianfan;
import com.baidubce.qianfan.model.chat.ChatResponse;

public class Demo {
    public static void main(String[] args) {
        // 使用安全认证AK/SK鉴权,替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
        Qianfan qianfan = new Qianfan("your_iam_ak", "your_iam_sk");
        
        // 使用自行发布的模型,替换your_custom_endpoint
       ChatResponse resp = qianfan.chatCompletion()
                .endpoint("your_custom_endpoint")
                .addMessage("user", "你好")
                .execute();
        System.out.println(resp.getResult());
    }
}
import {ChatCompletion, setEnvVariable} from "@baiducloud/qianfan";

// 使用安全认证AK/SK鉴权,通过环境变量初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
setEnvVariable('QIANFAN_ACCESS_KEY','your_iam_ak');
setEnvVariable('QIANFAN_SECRET_KEY','your_iam_sk');

const client = new  ChatCompletion({Endpoint: '***'});
async function main() {
    const resp = await client.chat({
        messages: [
            {
                role: 'user',
                content: '你好',
            },
        ],
    });
    console.log(resp);
}

main();

返回示例(单轮)

{
        'id': 'as-4v1h587fyv', 
        'object': 'chat.completion', 
        'created': 1695021339, 
        'result': '你好,请问有什么我可以帮助你的吗?', 
        'is_truncated': False, 
        'need_clear_history': False, 
        'usage': {
            'prompt_tokens': 1, 
            'completion_tokens': 15, 
            'total_tokens': 16
        }
    }
你好!有什么我可以帮助你的吗?
你好!有什么我可以帮助你的吗?
{
  headers: {...},
  id: 'as-xdiknr8pj9',
  object: 'chat.completion',
  created: 1709721393,
  result: '你好!有什么我可以帮助你的吗?',
  is_truncated: false,
  need_clear_history: false,
  usage: { prompt_tokens: 2, completion_tokens: 8, total_tokens: 10 }
}

调用示例(多轮)

import os
import qianfan

#通过环境变量初始化认证信息
# 方式一:【推荐】使用安全认证AK/SK鉴权
# 替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
os.environ["QIANFAN_ACCESS_KEY"] = "your_iam_ak"
os.environ["QIANFAN_SECRET_KEY"] = "your_iam_sk"

# 方式二:【不推荐】使用应用AK/SK鉴权
# 替换下列示例中参数,将应用API_Key、应用Secret key值替换为真实值
#os.environ["QIANFAN_AK"] = "应用API_Key"
#os.environ["QIANFAN_SK"] = "应用Secret_Key"

chat_comp = qianfan.ChatCompletion()

# 多轮对话
resp = chat_comp.do(endpoint="your_custom_endpoint",messages=[{ 
    "role": "user",
    "content": "你好"
},
{
    "role": "assistant",
    "content": "你好,请问有什么我可以帮助你的吗?"
},
{
    "role": "user",
    "content": "我在北京,周末可以去哪里玩?"
},
])
print(resp["body"])
package main

import (
	"context"
	"fmt"
	"os"

	"github.com/baidubce/bce-qianfan-sdk/go/qianfan"
)

func main() {
    // 使用安全认证AK/SK鉴权,通过环境变量初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
	os.Setenv("QIANFAN_ACCESS_KEY", "your_iam_ak")
	os.Setenv("QIANFAN_SECRET_KEY", "your_iam_sk")

    // 多轮对话
	chat := qianfan.NewChatCompletion(
		qianfan.WithEndpoint("your_endpoint")
	resp, _ := chat.Do(
		context.TODO(),
		&qianfan.ChatCompletionRequest{
			Messages: []qianfan.ChatCompletionMessage{
				qianfan.ChatCompletionUserMessage("你好!"),
				qianfan.ChatCompletionAssistantMessage("你好!有什么我可以帮助你的吗?"),
				qianfan.ChatCompletionUserMessage("我在北京,周末可以去哪里玩?"),
			},
		},
	)
	fmt.Println(resp.Result)
}
import com.baidubce.qianfan.Qianfan;
import com.baidubce.qianfan.model.chat.ChatResponse;

public class Demo {
    public static void main(String[] args) {
        // 使用安全认证AK/SK鉴权,替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
        Qianfan qianfan = new Qianfan("your_iam_ak", "your_iam_sk");
        
        // 多轮对话
       ChatResponse resp = qianfan.chatCompletion()
                .endpoint("your_custom_endpoint")
                .addMessage("user", "你好")
                .addMessage("assistant", "你好!有什么我可以帮助你的吗?")
                .addMessage("user", "我在北京,周末可以去哪里玩?")
                .execute();
       System.out.println(resp.getResult());
    }
}
import {ChatCompletion, setEnvVariable} from "@baiducloud/qianfan";

// 使用安全认证AK/SK鉴权,通过环境变量初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
setEnvVariable('QIANFAN_ACCESS_KEY','your_iam_ak');
setEnvVariable('QIANFAN_SECRET_KEY','your_iam_sk');

const client = new  ChatCompletion({Endpoint: 'your_endpoint'});  
async function main() {    // 调用默认模型,即 ERNIE-Bot-turbo
    const resp = await client.chat({
        messages: [
            {
                role: 'user',
                content: '你好!',
            },
            {
                 role: "assistant",
                 content: "你好,请问有什么我可以帮助你的吗?"
             },
             {
                 role: "user",
                 "content": "我在北京,周末可以去哪里玩?"
             },
        ],
    });
    console.log(resp);
}

main();

如果使用Python SDK,也可以使用内置 Messages 简化多轮对话,与用户对话的示例如下。

import os
import qianfan

#通过环境变量初始化认证信息
# 方式一:【推荐】使用安全认证AK/SK鉴权
# 替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
os.environ["QIANFAN_ACCESS_KEY"] = "your_iam_ak"
os.environ["QIANFAN_SECRET_KEY"] = "your_iam_sk"

# 方式二:【不推荐】使用应用AK/SK鉴权
# 替换下列示例中参数,将应用API_Key、应用Secret key值替换为真实值
#os.environ["QIANFAN_AK"] = "应用API_Key"
#os.environ["QIANFAN_SK"] = "应用Secret_Key"

chat_comp = qianfan.ChatCompletion()

# 下面是一个与用户对话的例子
msgs = qianfan.Messages()
while True:
    msgs.append(input("输入:"))         # 增加用户输入
    resp = chat_comp.do(endpoint="your_custom_endpoint", messages=msgs)
    print(resp)                 # 模型的输出
    msgs.append(resp)            # 追加模型输出

返回示例(多轮)

{
	'id': 'as-zyicree42w',
	'object': 'chat.completion',
	'created': 1719200613,
	'result': '北京是一个拥有许多历史、文化和自然景观的城市,周末你可以去以下几个地方玩:\n\n1. 故宫:这是中国最大的古代建筑群,是中国古代皇家宫殿的代表,你可以欣赏到丰富的历史和文化。\n\n2. 颐和园:这是一个美丽的皇家园林,有着精美的园林艺术和丰富的历史文化。\n\n3. 长城:北京附近的长城段是最受欢迎的,你可以选择徒步、骑行或者自驾前往,欣赏到壮丽的自然风光和古老的历史文化。\n\n4. 798艺术区:这是一个现代艺术和文化创意产业聚集区,你可以欣赏到各种当代艺术作品,同时也可以品尝到各种美食。\n\n5. 奥林匹克公园:如果你对体育和文化活动感兴趣,那么奥林匹克公园是一个不错的选择,这里有奥运场馆、公园和文化活动。\n\n6. 南锣鼓巷:这是一条充满老北京风貌的胡同,你可以在这里品尝到各种小吃,同时也可以欣赏到老北京的建筑和文化。\n\n除此之外,北京还有许多其他的景点和活动,例如天坛公园、北海公园、圆明园、北京动物园等等。你可以根据自己的兴趣和时间来选择合适的景点和活动。',
	'is_truncated': False,
	'need_clear_history': False,
	'usage': {
		'prompt_tokens': 18,
		'completion_tokens': 249,
		'total_tokens': 267
	}
}
北京是一个拥有许多历史、文化和自然景观的城市,有很多地方可以探索。如果你在周末有空,以下是一些建议的景点和活动:

1. 故宫:这是中国最大的古代宫殿之一,拥有丰富的历史和文化遗产。
2. 颐和园:这是一个美丽的皇家园林,拥有壮丽的湖泊和精美的建筑。
3. 长城:北京附近的长城段是许多人向往的地方。你可以选择参加一日游或自驾前往。
4. 798艺术区:这是一个充满艺术气息的地方,有许多画廊、艺术工作室和博物馆。
5. 南锣鼓巷:这是一个充满历史气息的胡同区,有很多小吃、手工艺品和文化遗产店。
6. 玉渊潭公园:这是一个大型公园,环境优美,有很多娱乐设施和活动。
7. 郊区古迹:如妙应寺白塔、太阳宫等,这些地方虽然不那么热闹,但也有其独特的魅力。

除此之外,北京还有很多博物馆、剧院和美食街区,如三里屯、簋街等,你可以根据自己的兴趣和时间来选择。另外,你也可以尝试一些当地的活动,如品尝北京烤鸭、炸酱面等美食,或者参加一些传统文化活动。

希望这些建议对你有所帮助!
北京是一个拥有许多历史、文化和自然景观的城市,周末你可以去以下几个地方玩:\n\n1. 故宫:这是中国最大的古代建筑群,是中国古代皇家宫殿的代表,你可以欣赏到丰富的历史和文化。\n\n2. 颐和园:这是一个美丽的皇家园林,有着精美的园林艺术和丰富的历史文化。\n\n3. 长城:北京附近的长城段是最受欢迎的,你可以选择徒步、骑行或者自驾前往,欣赏到壮丽的自然风光和古老的历史文化。\n\n4. 798艺术区:这是一个现代艺术和文化创意产业聚集区,你可以欣赏到各种当代艺术作品,同时也可以品尝到各种美食。\n\n5. 奥林匹克公园:如果你对体育和文化活动感兴趣,那么奥林匹克公园是一个不错的选择,这里有奥运场馆、公园和文化活动。\n\n6. 南锣鼓巷:这是一条充满老北京风貌的胡同,你可以在这里品尝到各种小吃,同时也可以欣赏到老北京的建筑和文化。\n\n除此之外,北京还有许多其他的景点和活动,例如天坛公园、北海公园、圆明园、北京动物园等等。你可以根据自己的兴趣和时间来选择合适的景点和活动。
{
  headers: {...},
  id: 'as-8vcq0n4u0e',
  object: 'chat.completion',
  created: 1709887877,
  result: '北京是一个拥有许多有趣和独特景点的大城市,周末你可以去很多地方玩。例如:\n' +
    '\n' +
    '1. **故宫博物院**:这是中国最大的古代建筑群,有着丰富的历史和文化遗产,是个很好的适合全家人游玩的地方。\n' +
    '2. **天安门广场**:这里是北京的心脏,周围有许多历史和现代建筑。你可以在广场上漫步,欣赏升旗仪式和观看周围的繁华景象。\n' +
    '3. **颐和园**:这是一个美丽的皇家园林,有着优美的湖泊和精美的古建筑。你可以在这里漫步,欣赏美丽的景色,同时也可以了解中国的传统文化。\n' +
    '4. **北京动物园**:这是中国最大的动物园之一,有许多稀有动物,包括熊猫、老虎、长颈鹿等。对于孩子们来说是个很好的去处。\n' +
    '5. **798艺术区**:这是一个充满艺术气息的地方,有许多画廊、艺术工作室和艺术展览。这里有许多新的现代艺术作品,可以欣赏到一些艺术家的创作。\n' +
    '6. **三里屯酒吧街**:如果你对夜生活感兴趣,可以去三里屯酒吧街。这里有许多酒吧和餐馆,是一个热闹的夜生活场所。\n' +
    '7. **北京环球度假区**:如果你们喜欢主题公园,那么可以去环球度假区,虽然这是在建的,但是等它建好之后肯定是一个很好的去处。\n' +
    '\n' +
    '当然,你也可以考虑一些其他的地方,比如购物街、博物馆、公园等等。希望这些建议对你有所帮助!',
  is_truncated: false,
  need_clear_history: false,
  usage: { prompt_tokens: 19, completion_tokens: 307, total_tokens: 326 }
}

调用示例(流式)

import os
import qianfan

#通过环境变量初始化认证信息
# 方式一:【推荐】使用安全认证AK/SK鉴权
# 替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
os.environ["QIANFAN_ACCESS_KEY"] = "your_iam_ak"
os.environ["QIANFAN_SECRET_KEY"] = "your_iam_sk"

# 方式二:【不推荐】使用应用AK/SK鉴权
# 替换下列示例中参数,将应用API_Key、应用Secret key值替换为真实值
#os.environ["QIANFAN_AK"] = "应用API_Key"
#os.environ["QIANFAN_SK"] = "应用Secret_Key"

chat_comp = qianfan.ChatCompletion()

resp = chat_comp.do(endpoint="your_custom_endpoint", messages=[{
    "role": "user",
    "content": "你好"
}], stream=True)

for r in resp:
    print(r["body"])
# 输出:
# 您好!
# 有什么我可以帮助你的吗?
package main

import (
	"context"
	"fmt"
	"os"

	"github.com/baidubce/bce-qianfan-sdk/go/qianfan"
)

func main() {
    // 使用安全认证AK/SK鉴权,通过环境变量初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
	os.Setenv("QIANFAN_ACCESS_KEY", "your_iam_ak")
	os.Setenv("QIANFAN_SECRET_KEY", "your_iam_sk")
    
	chat := qianfan.NewChatCompletion(
		qianfan.WithEndpoint("your_endpoint"),)
	resp, _ := chat.Stream(  // Stream 启用流式返回,参数与 Do 相同
		context.TODO(),
		&qianfan.ChatCompletionRequest{
			Messages: []qianfan.ChatCompletionMessage{
				qianfan.ChatCompletionUserMessage("你好"),
			},
		},
	)
	for {
		r, err := resp.Recv()
		if err != nil {
			panic(err)
		}
		if resp.IsEnd { // 判断是否结束
			break
		}
		fmt.Println(r.Result)
	}
}
import com.baidubce.qianfan.Qianfan;
import com.google.gson.Gson;

public class Demo {
    public static void main(String[] args) {
        Gson gson = new Gson();
        
        // 使用安全认证AK/SK鉴权,替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
        Qianfan qianfan = new Qianfan("your_iam_ak", "your_iam_sk");
        
        qianfan.chatCompletion()
                .endpoint("your_custom_endpoint")
                .addMessage("user", "你好")
                // 启用流式返回
                .executeStream()
                .forEachRemaining(chunk -> System.out.print(gson.toJson(chunk)));
    }
}
import {ChatCompletion, setEnvVariable} from "@baiducloud/qianfan";

// 使用安全认证AK/SK鉴权,通过环境变量初始化;替换下列示例中参数,安全认证Access Key替换your_iam_ak,Secret Key替换your_iam_sk
setEnvVariable('QIANFAN_ACCESS_KEY','your_iam_ak');
setEnvVariable('QIANFAN_SECRET_KEY','your_iam_sk');

const client = new  ChatCompletion({Endpoint: 'your_endpoint'});
async function main() {
    const stream = await client.chat({
        messages: [
            {
                role: 'user',
                content: '你好!',
            },
        ],
        stream: true,   //启用流式返回
    });
      for await (const chunk of stream as AsyncIterableIterator<any>) {
        console.log(chunk);
    }
}

main();

返回示例(流式)

{'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}}
{'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}}
{'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}}
{'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}}
你好,
有什么我可以帮助你的吗?
{"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":{...}}
{
  headers: {...},
  id: 'as-f7mrqpanb3',
  object: 'chat.completion',
  created: 1709724132,
  sentence_id: 0,
  is_end: false,
  is_truncated: false,
  result: '你好!',
  need_clear_history: false,
  usage: { prompt_tokens: 2, completion_tokens: 0, total_tokens: 2 }
}
{
  headers: {...},
  id: 'as-f7mrqpanb3',
  object: 'chat.completion',
  created: 1709724132,
  sentence_id: 1,
  is_end: false,
  is_truncated: false,
  result: '有什么我可以帮助你的吗?',
  need_clear_history: false,
  usage: { prompt_tokens: 2, completion_tokens: 0, total_tokens: 2 }
}
{
  headers: {...},
  id: 'as-f7mrqpanb3',
  object: 'chat.completion',
  created: 1709724132,
  sentence_id: 2,
  is_end: true,
  is_truncated: false,
  result: '',
  need_clear_history: false,
  usage: { prompt_tokens: 2, completion_tokens: 8, total_tokens: 10 }
}

请求参数

注意:以下为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/后面的地址,如下图所示
image.png
(2)注意:在创建服务页面,选择模型后,API地址会自动新增个后缀。例如选择某模型,输入API地址为“test1”,endpoint的取值即为“ngxxxol8_test1”,如下图所示,如何发布服务请参考快速部署自定义模型

image.png
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总数
上一篇
自定义模型调用API
下一篇
续写模式