You need to enable JavaScript to run this app.
导航
chat_completions(新)
最近更新时间:2024.11.05 11:09:32首次发布时间:2024.10.25 11:04:45

本节将说明如何基于多轮历史对话,使用大语言模型进行回答生成

说明

  • 知识库创建完成、文档导入且处理完成后,即代表可以进行在线检索和模型生成了。
  • 使用 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 形如:

  • ep-202406040*****-*****

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'