delete_conversation — 批量删除原始对话消息

最近更新时间:2026-05-26 21:12:00

我的收藏

接口介绍

批量删除原始对话消息。通过以下两种方式之一指定删除范围,二选其一:
按 message id 批量删:通过 message_ids 传入消息主键数组(非空),按主键精确删除一组消息。
按 session 批量删:通过 session_id 传入会话 ID,一次性删除该会话下的全部消息。
HTTP 方法与路径
POST /v2/conversation/delete
HTTP 文档
函数签名
delete_conversation(*, message_ids=None, session_id=None)
说明:
message_idssession_id 必须二选其一传入,全部缺省或同时传入均返回业务错误码 400,避免空筛选导致整租户全量数据被删、或两者并用导致删除范围出现二义性。建议先用 query_conversation 预览将被命中的范围,再执行删除。

使用示例

# 按 message_ids 精确删
result = client.delete_conversation(message_ids=["msg-aaaa", "msg-bbbb"])
print(f"实际删除 {result['deleted_count']} 条")

# 按 session_id 整会话删
result = client.delete_conversation(session_id="sess-trip-202604")
说明:
client 实例的构造方式参见 新建客户端;异步调用时将方法前加 await 即可。

请求参数

参数名
类型
必填
描述说明
message_ids
List[str]
二选一
消息 ID 列表。
互斥规则:与 session_id 必须二选一传入,不可同时为空,也不建议同时传入。
约束条件:传入的数组必须包含至少 1 个有效的消息 ID(不可传空数组 [])。
session_id
str
二选一
会话 ID。
互斥规则:与 message_ids 必须二选一传入。
应用场景:当需要直接指定整个会话、而不是筛选具体某几条消息时使用。

返回信息

返回字典包含本次实际删除的条数与请求追踪 ID:
{
"deleted_count": 2,
"trace_id": "tr-xxxxxxxx-xxxxxxxx"
}
字段
类型
说明
deleted_count
int
实际成功删除的消息总条数。
说明:
当使用 message_ids 列表进行批量删除时,如果传入了不存在、已被删除、或不属于当前用户/会话的无效 ID,系统将执行静默跳过(自动忽略)且不会报错。这些无效 ID 将不会被计入 deleted_count 中。
trace_id
str
请求追踪 ID。用于全链路日志排查。该值与 HTTP 响应头中的 x-trace-id 保持一致,方便追踪大批量高危写/删操作。

错误处理

错误码
触发场景
处理建议
400
两个参数全部缺省、同时传入、或 message_ids 为空数组。
检查互斥语义后重试。
500
服务端错误。
记录 trace_id 后重试或上报。