You need to enable JavaScript to run this app.
文档中心
复制全文
下载 pdf
SDK 参考
多轮对话检测
复制全文
下载 pdf
多轮对话检测
通过 SDK 传入会话轮次 ID(RunID)和会话 ID(SessionID)后,您可以在攻击日志中按会话维度聚合记录,并追溯完整对话链路。​
预期效果​
传入 SessionID 和 RunID 后,控制台会展示以下攻击日志效果:​
  • 在攻击日志列表中展示会话 ID(SessionID)。​
  • 单击会话 ID,查看该会话关联的全部对话内容。​
  • 在会话详情中按时间顺序展示每轮请求的 RunID,便于追踪完整链路。​
攻击日志列表:展示会话 ID。单击会话 ID 后,您可以查看该会话关联的所有对话内容。​
​​​
会话详情页:展示会话基本信息、命中规则和会话过程。会话过程中会显示每轮请求的 RunID,用于还原完整对话链路。​
​​​
注意事项​
  • SDK 版本:各语言 SDK 最低版本要求如下表所示​
调用接口​
调用接口时,请按以下方式传入参数:​
  • 使用 extensions 传入 RunID 和 SessionID。​
  • 使用 message 传入当前轮待检测内容。​
  • 使用 history 传入当前轮之前的会话上下文。​
其中:​
  • SessionID 用于关联同一会话下的多轮请求。​
  • RunID 用于标识会话中的单次请求。​
  • history 不包含当前轮的 message。​
​
Python
Java
Go
PHP
​
​
# =============================================================================​
# 会话级内容审核示例(Python SDK)​
# 功能:演示单轮会话检测请求;多轮会话通过业务传入的同一个 SessionID 关联​
# =============================================================================​
​
import json​
from volcenginesdkllmshield import *​
​
def main():​
# ------------------------------------------------------------------​
# 1. 连接参数(请替换为自己的真实值)​
# ------------------------------------------------------------------​
myUrl = "https://cn-beijing.sdk.access.llm-shield.omini-shield.com" # 服务端地址,按地域选择​
ak = "YOUR AK" # 火山引擎 Access Key​
sk = "YOUR SK" # 火山引擎 Secret Key​
appid = "app-d8l5k1ivi7p3109****" # 资产 ID(应用 ID),控制台创建​
region = "cn-beijing" # 地域,需与服务地址对应​
TIMEOUT = 10 # 超时时间(秒)​
​
# ------------------------------------------------------------------​
# 2. 创建客户端​
# ------------------------------------------------------------------​
try:​
client = ClientV2(myUrl, ak, sk, region, TIMEOUT)​
except Exception as e:​
print(f"创建客户端失败: {e}")​
return​
​
# ------------------------------------------------------------------​
# 3. 构建请求​
# message: 本次检测的当前轮消息(role + content)​
# history: 当前轮之前的会话上下文,每条包含 role + content​
# extensions: 业务传入的扩展字段(RunID 标识本次检测,SessionID 关联多轮会话)​
# ------------------------------------------------------------------​
request = ModerateV2Request(​
scene=appid,​
​
# 本次检测的当前轮消息(命中:敏感数据泄露 - 手机号 + 身份证号)​
message=MessageV2(​
role="user", # 检测的内容来源,user-用户提示词;assistant-模型响应内容​
content="好的,我叫陈*,手机号是1378765****,身份证号440301************,想了解一下入职流程和需要准备的材料。",​
content_type=ContentTypeV2.TEXT,​
),​
​
# 当前轮之前的会话历史上下文​
history=[​
MessageV2(​
role="system", # 上下文内容来源:system-系统提示词​
content="你是一名人力资源助手,负责回答求职者关于招聘、面试和入职流程的咨询。",​
content_type=ContentTypeV2.TEXT,​
),​
MessageV2(​
role="user", # 上下文内容来源:user-用户提示词​
content="你好,我已经通过了面试,想了解一下入职相关的事宜。",​
content_type=ContentTypeV2.TEXT,​
),​
MessageV2(​
role="assistant", # 上下文内容来源:assistant-模型响应内容​
content="恭喜你通过面试!请问你想了解入职流程、材料准备还是薪资福利方面的信息呢?",​
content_type=ContentTypeV2.TEXT,​
),​
],​
​
# 扩展字段:RunID 标识本次检测请求,SessionID 用于关联同一会话下的多轮检测​
extensions={​
ExtensionsKey.RUN_ID: "PYTHON_RUN_ID_001",​
ExtensionsKey.SESSION_ID: "PYTHON367898765456721FEAE****",​
},​
)​
​
# ------------------------------------------------------------------​
# 4. 发送审核请求​
# ------------------------------------------------------------------​
try:​
print("请求体:")​
print(json.dumps(request.model_dump(by_alias=True),​
ensure_ascii=False, indent=2))​
except Exception as e:​
print(f"打印请求体失败: {e}")​
​
try:​
response = client.Moderate(request)​
print("\n审核结果:")​
if response is None:​
print(" 空响应")​
else:​
print(response.model_dump_json(by_alias=True, indent=2))​
except Exception as e:​
print(f"请求异常: {e}")​
​
if __name__ == "__main__":​
main()​
​
​
​
​
​
​
最近更新时间:2026.07.21 21:12:51
这个页面对您有帮助吗?
有用
有用
无用
无用