本节将说明如何基于多轮历史对话,使用大语言模型进行回答生成
说明
- 知识库创建完成、文档导入且处理完成后,即代表可以进行在线检索和模型生成了。
- 使用 SDK 前请先完成“安装与初始化“页面的前置步骤。
概述
chat_completions 用于向大模型发起一次对话请求,与新升级的search_knowledge联通,可以完成标准的检索生成链路。
说明
知识库文档导入/删除后,知识库更新时间最长滞后 5s,不能立即检索到,待知识库就绪后可正常检索。
请求参数
参数 | 子参数 | 类型 | 是否必选 | 默认值 | 备注 |
---|
model | -- | String | 是 | Doubao-pro-32k | 想要用于在线生成的大语言模型 - 当指定为 doubao 系列模型时默认使用系统的公共推理接入点,适合调试场景,有 tpm 限流
- 或指定为在方舟上创建的推理接入点 ID,适合生产场景,tpm 配置可在创建推理接入点时自行调整
公共推理接入点 doubao 系列模型可选范围: - Doubao-pro-4k
- Doubao-pro-32k**(默认值)**
- Doubao-pro-128k
- Doubao-lite-4k
- Doubao-lite-32k
- Doubao-lite-128k
私有推理接入点 ID 形如: |
messages | -- | json | 是 | | 多轮对话信息
发出消息的对话参与者角色,可选值包括: - system:System Message 系统消息
- user:User Message 用户消息
- assistant:Assistant Message 对话助手消息
[
{"role": "system", "content": "你是一个智能助手。"},
{"role": "user", "content": "你好"},
{"role": "assistant", "content": "你好!有什么我可以帮助你的?"}
]
|
stream | -- | Boolean | 否 | False | 响应内容是否流式返回 - false:模型生成完所有内容后一次性返回结果
- true:按 SSE 协议逐块返回模型生成内容,并以一条 data: [DONE] 消息结束
|
max_tokens | -- | Integer | 否 | 4096 | 模型可以生成的最大 token 数量
取值范围为 [0, 4096]。输入 token 和输出 token 的总长度还受模型的上下文长度限制。 |
temperature | -- | Float | 否 | 0.1 | 采样温度
控制了生成文本时对每个候选词的概率分布进行平滑的程度。取值范围为 [0, 1]。当取值为 0 时模型仅考虑对数概率最大的一个 token。
较高的值(如 0.8)会使输出更加随机,而较低的值(如 0.2)会使输出更加集中确定。通常建议仅调整 temperature 或 top_p 其中之一,不建议两者都修改。 |
示例
请求参数
请先完成SDK初始化,再运行代码,详见初始化SDK
model = "Doubao-pro-32k"
m_messages = [{
"role": "system",
"content": """ system pe """
},
{
"role": "user",
"content": "test" # 用户提问
}
]
res = viking_knowledgebase_service.chat_completion(model=model, messages=m_messages, max_tokens=4096,
temperature=0.1)
print(res)
返回值
Python 调用执行上面的任务,返回字典,包含的属性如下表所示
字段 | 子字段 | 字段类型 | 说明 |
---|
generated_answer | -- | string | 大模型回答 |
usage | -- | string | token用量统计 '{
"prompt_tokens":16, // prompt消耗tokens
"completion_tokens":6, // 回答消耗tokens
"total_tokens":22// 总计消耗tokens
}\n'
|