本节将说明如何基于多轮历史对话,使用大语言模型进行回答生成
chat_completions 用于向大模型发起一次对话请求,与新升级的search_knowledge 联通,可以完成标准的检索生成链路。
参数 | 子参数 | 类型 | 是否必选 | 默认值 | 参数说明 |
|---|---|---|---|---|---|
model | -- | str | 是 | Doubao-1-5-pro-32k | 想要用于在线生成的大模型
公共推理接入点模型可选范围见对话模型和图像理解模型。
|
model_version | -- | Optional[str] | 否 | -- | |
thinking | -- | Optional[Dict[str, Any]] | 否 | enabled | 控制模型是否开启深度思考模式
当前支持的模型详情见:thinking
|
api_key | -- | Optional[str] | 否 | -- | 接入点 API Key |
messages | -- | List[ChatMessage] | 是 | -- | 发出消息的对话参与者角色,可选值包括:
多轮文本问答: 串联脚本示例可参考知识库多轮检索问答样例
多轮图文理解:串联脚本示例可参考知识库图文问答样例
|
stream | -- | Optional[bool] | 否 | False | 响应内容是否流式返回
|
max_tokens | -- | Optional[int] | 否 | 4096 | 模型可以生成的最大 token 数量
|
return_token_usage | -- | Optional[bool] | 否 | False | 是否返回token用量统计 |
temperature | -- | Optional[float] | 否 | 0.1 | 采样温度 |
模型名称 | 可选版本 |
|---|---|
Doubao-1-5-thinking-pro | 250415 |
Deepseek-V3-128k | 250324, 241226 |
Deepseek-R1-128k | 250528, 250120 |
Doubao-1-5-pro-256k | 250115 |
Doubao-1-5-pro-32k | 250115(默认), character-250715, character-250228 |
Doubao-1-5-lite-32k | 250115 |
Doubao-pro-256k | 241115, 240828 |
Doubao-pro-32k | 241215, 240828, 240615, character-241215, character-240828, character-240528 |
Doubao-pro-128k | 240628, 240515(即将下线) |
Doubao-lite-32k | 240828,240628, 240428(即将下线), character-250228, character-241015 |
Doubao-lite-128k | 240828, 240428 |
模型名称 | 可选版本 |
|---|---|
Doubao-seed-1-8 | 251228 |
Doubao-seed-1-6-vision | 240428, 240828 |
Doubao-seed-1-6-thinking | 250715, 250615 |
Doubao-seed-1-6 | 251015, 250615 |
Doubao-seed-1-6-flash | 250828, 250715, 250615 |
Doubao-1-5-thinking-pro | m-250428, m-250415 |
Doubao-1-5-vision-pro | 250328 |
Doubao-1-5-vision-lite | 250315 |
Doubao-1-5-vision-pro-32k | 250115 |
Doubao-vision-pro-32k | 241028 |
字段 | 类型 | 参数说明 |
|---|---|---|
code | Optional[int] | 状态码 |
message | Optional[str] | 返回信息 |
request_id | Optional[str] | 标识每个请求的唯一标识符 |
data | Optional[ChatCompletionResult] | ChatCompletionResult |
字段 | 类型 | 参数说明 |
|---|---|---|
reasoning_content | Optional[str] | 推理模型生成的内容 |
generated_answer | Optional[str] | 模型生成的回答 |
usage | Optional[Dict[str, Any]] | token 用量统计 |
prompt | Optional[str] | prompt 内容 |
model | Optional[str] | 模型名称 |
finish_reason | Optional[str] | 结束原因 |
total_tokens | Optional[int] | 总 token 数量 |
状态码 | http状态码 | 返回信息 | 状态码说明 |
|---|---|---|---|
0 | 200 | success | 成功 |
1000001 | 401 | unauthorized | 缺乏鉴权信息 |
1000002 | 403 | no permission | 权限不足 |
1000003 | 400 | invalid request:%s | 非法参数 |
请先完成SDK初始化,再运行代码,详见初始化SDK
请将 main 函数中的 accessKey、secretKey 分别替换为您自己的 AK 和 SK。
import os from vikingdb.knowledge import VikingKnowledge from vikingdb.auth import IAM from vikingdb.knowledge.models.chat import ChatCompletionRequest, ChatMessage def main(): access_key = os.getenv("VIKINGDB_AK") secret_key = os.getenv("VIKINGDB_SK") endpoint = "api-knowledgebase.mlp.cn-beijing.volces.com" region = "cn-beijing" client = VikingKnowledge( host=endpoint, region=region, auth=IAM(ak=access_key, sk=secret_key), scheme="https" ) # 1. Prepare messages messages = [ ChatMessage(role="user", content="Hello, who are you?") ] # 2. Call ChatCompletion try: resp = client.chat_completion(ChatCompletionRequest( model="Doubao-1-5-pro-32k", # Replace with your model endpoint messages=messages )) print(f"Response: {resp}") except Exception as e: print(f"ChatCompletion failed, err: {e}") # 3. Call ChatCompletion Stream stream = True try: resp = client.chat_completion(ChatCompletionRequest( model="Doubao-1-5-pro-32k", # Replace with your model endpoint messages=messages, stream=stream )) for chunk in resp: print(f"Chunk: {chunk}") except Exception as e: print(f"ChatCompletionStream failed, err: {e}") if __name__ == "__main__": main()