本节将说明如何基于多轮历史对话,使用大语言模型进行回答生成。
chat_completions 用于向大模型发起一次对话请求,与新升级的 search_knowledge 联通,可以完成标准的检索生成链路。
| 参数 | 子参数 | 类型 | 是否必选 | 默认值 | 参数说明 |
|---|---|---|---|---|---|
model | -- | str | 是 | Doubao-1-5-pro-32k | 想要用于在线生成的大模型
|
| model_version | -- | Optional[str] | 否 | -- | 对话模型和图像理解模型的可选范围详见下表。 |
thinking | -- | Optional[Dict[str, Any]] | 否 | enabled | 控制模型是否开启深度思考模式
|
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-pro-32k | 250115, character-250715 |
| Doubao-1-5-lite-32k | 250115 |
| 模型名称 | 可选版本 |
|---|---|
| Doubao-seed-2-0-pro | 260215 |
| Doubao-seed-2-0-lite | 260215 |
| Doubao-seed-2-0-mini | 260215 |
| Doubao-seed-1-8 | 251228 |
| Doubao-seed-1-6-vision | 250815 |
| Doubao-seed-1-6 | 251015, 250615 |
| Doubao-seed-1-6-flash | 250828, 250615 |
| Doubao-1-5-vision-pro-32k | 250115 |
方舟模型下线说明:https://www.volcengine.com/docs/82379/1350667?lang=zh
| 字段 | 类型 | 参数说明 |
|---|---|---|
| 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,可参考 使用说明
本示例使用 AK/SK(IAM)完成知识库 SDK 鉴权;请求参数中的 APIKey 仅在调用私有模型接入点时使用,不用于知识库 SDK 本身的鉴权。
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()