向指定的记忆库中添加一批消息(通常是多轮对话),系统将根据记忆库的记忆抽取配置对这些消息进行处理和存储,形成结构化的记忆事件,并可能更新关联的画像。
URL | /api/memory/session/add | 统一资源标识符 |
|---|---|---|
请求方法 | POST | 客户端对记忆库服务器请求的操作类型 |
请求头 | Content-Type: application/json | 请求消息类型 |
Authorization: HMAC-SHA256 *** | 基于AK/SK生成的签名信息 |
参数 | 类型 | 是否必须 | 描述 |
|---|---|---|---|
collection_name | String | 否 | 目标记忆库的名称。 |
project_name | String | 否 | 记忆库所属项目。 |
resource_id | String | 否 | 记忆库唯一的资源 id。可选择直接传 resource_id,或同时传 collection_name 和 project_name 作为记忆库的唯一标识。 |
session_id | String | 否 | 当前对话或消息批次的会话 ID。长度要求:[1, 128],只能使用英文字母、数字、下划线,并以英文字母开头。未填写则由服务端自动生成。 |
messages | Array of Object | 是 | 要添加的多轮对话消息列表。 |
| String | 是 | 发言人角色,可选值为 "user", "assistant", "system"。 |
| String | 是 | 发言内容。 |
| String | 否 | 群聊场景下的发言人 ID。若该发言人与 default_user_id 或 default_assistant_id 相同,则无需传入。 |
| String | 否 | 群聊场景下的发言人名称。若该发言人与 default_user_name 或 default_assistant_name 相同,则无需传入。 |
| Integer | 否 | 发言时间,毫秒级时间戳。 |
metadata | Object | 否 | 用于设定这批消息的元数据信息。 |
| String | 是 | 消息列表中 'user' 角色的默认ID。如果消息中未指定role_id,则使用此值。 |
| String | 否 | 消息列表中 'user' 角色的默认名称。 |
| String | 是 | 消息列表中 'assistant' 角色的默认ID。如果消息中未指定role_id,则使用此值。 |
| String | 否 | 消息列表中 'assistant' 角色的默认名称。 |
| Integer | 是 | 这批消息的统一发生时间,毫秒级时间戳。(如果单条消息中也包含time,则单条消息的 time 优先。) |
| String | 否 | 群组ID,用于标记消息所属的业务群组。 |
extract_memory_type | Array of String | 否 | 此次数据写入需要抽取的记忆类型。填写事件或画像类型的名称,可以是多个值。不传时默认会抽取所有类型的记忆。 |
profiles | Array of Object | 否 | 需要特别关注或更新的画像信息列表。系统会尝试将处理后的事件与这些画像关联。 |
| String | 是 | 画像类型名称,必须是记忆库中已定义的画像类型。 |
| Array of Object | 是 | 具体的画像实例列表。每个对象包含用于唯一标识和定义该画像实例的属性,例如: {"id": 1, "knowledge_point_name": "taco"} |
注意:
字段 | 类型 | 描述 |
|---|---|---|
code | Integer | 状态码,0表示成功,其他表示错误。 |
message | String | 返回信息,成功时通常为 "success"。 |
data | Object | 返回的详细数据,成功添加消息时此字段通常为空。 |
| string | 返回的会话 ID |
request_id | String | 标识每个请求的唯一ID。 |
import os import json import time import requests API_KEY = os.environ.get("MEMORY_API_KEY") url = "https://api-knowledgebase.mlp.cn-beijing.volces.com/api/memory/session/add" headers = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" } now_ts = int(time.time() * 1000) data = { "collection_name": "my_first_memory_collection", # 替换为你的记忆库名称 "session_id": "session_001", "messages": [ {"role": "user", "content": "今天天气怎么样?"}, {"role": "assistant", "content": "今天天气晴朗,气温22度,非常适合外出。"} ], "metadata": { "default_user_id": "user_01", "default_user_name": "XiaoMing", "default_assistant_id": "assistant_01", "default_assistant_name": "Robot", "time": now_ts } } response = requests.post(url, headers=headers, data=json.dumps(data, ensure_ascii=False)) print("Status Code:", response.status_code) print("Response:", response.text)