You need to enable JavaScript to run this app.
文档中心
复制全文
下载 pdf
SDK 参考
多模态混合检测
复制全文
下载 pdf
多模态混合检测
您可以基于大模型应用防火墙 SDK 调用接口,同时对文本、图片以及文档内容进行检测,该能力称为多模态混合检测。本文提供 Python、Java、Go、PHP 开发语言的多模态混合检测示例代码,供您参考。​
注意事项​
  • 版本要求:​
无代理服务​
​
Python
Java
Go
PHP
​
​
import sys​
from volcenginesdkllmshield import *​
import base64​
​
# 文档Base64编码​
def load_file_content(file_type, file_path):​
with open(file_path, 'rb') as f:​
file_bytes = f.read()​
baseStr = base64.b64encode(file_bytes).decode('utf-8')​
if file_type == "doc":​
baseStr = "data:application/msword;base64," + baseStr​
elif file_type == "docx":​
baseStr = "data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64," + baseStr​
elif file_type == "txt":​
baseStr = "data:text/plain;base64," + baseStr​
elif file_type == "xls":​
baseStr = "data:application/vnd.ms-excel;base64," + baseStr​
elif file_type == "xlsx":​
baseStr = "data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64," + baseStr​
elif file_type == "pdf":​
baseStr = "data:application/pdf;base64," + baseStr​
print(f"", baseStr)​
return baseStr​
​
# 图片Base64编码​
def load_image_content(image_file):​
with open(image_file, 'rb') as f:​
img_bytes = f.read()​
base64_bytes = base64.b64encode(img_bytes).decode('utf-8')​
return base64_bytes, len(base64_bytes)​
​
def main():​
# 配置信息(请替换为实际值)​
myUrl = "https://cn-beijing.sdk.access.llm-shield.omini-shield.com" # 根据大模型应用防火墙实例所在地域替换相应的地域信息​
ak = "YOUR AK" # 火山账号的 AK​
sk = "YOUR SK" # 火山账号的 SK​
appid = "app-d3r06khsqn9s73da****" # 资产的 AppId,可在控制台资产管理页面获取​
region = "cn-beijing" # 大模型应用防火墙实例所在地域​
TIMEOUT = 50 # 超时时间(秒)​
​
# 文本检测示例内容​
content = "网上都说A地很多骗子和小偷,他们的典型伎俩..."​
# 图片检测示例内容​
image_file = "/Users/example/imagedemo.png" # 待检测图片的本地存储路径​
image_content, size = load_image_content(image_file)​
# 确保图片大小不超过 10 MB​
if size > 1010241024: ​
print(f"请求失败: {size/1024}KB")​
return​
# 文档检测示例内容​
file_content = load_file_content("docx", "/Users/example/filedemo.docx") # 待检测文档的格式和本地存储路径​
​
try:​
# 发送请求并获取响应​
client = ClientV2(myUrl, ak, sk, region, TIMEOUT)​
​
# 多模态混合检测文本、图片和文档内容​
contTxt = MultiPart(content = content, content_type = ContentTypeV2.TEXT)​
contimg = MultiPart(content = image_content, content_type = ContentTypeV2.IMAGE)​
contFile = MultiPart(content = file_content, content_type = ContentTypeV2.FILE)​
​
# 构建请求(使用 pydantic 模型)​
request = ModerateV2Request(​
scene=appid, # 资产的 AppId​
message=MessageV2(​
role="user", # 检测的内容来源,user-用户提示词;assistant-模型响应内容​
multi_part = [contTxt, contimg, contFile], # 待检测的文本、图片和文档内容​
),​
)​
​
response = client.Moderate(request)​
​
# 使用 pydantic 的内置序列化方法​
print("审核结果(JSON格式):")​
print(response.model_dump_json(by_alias=True, indent=2)) # pydantic 模型直接转 JSON​
​
except Exception as e:​
print(f"请求失败: {e}")​
​
if __name__ == "__main__":​
main()​
​
​
有代理服务​
​
Python
Java
Go
PHP
​
​
import sys​
from volcenginesdkllmshield import *​
import base64​
​
# 文档Base64编码​
def load_file_content(file_type, file_path):​
with open(file_path, 'rb') as f:​
file_bytes = f.read()​
baseStr = base64.b64encode(file_bytes).decode('utf-8')​
if file_type == "doc":​
baseStr = "data:application/msword;base64," + baseStr​
elif file_type == "docx":​
baseStr = "data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64," + baseStr​
elif file_type == "txt":​
baseStr = "data:text/plain;base64," + baseStr​
elif file_type == "xls":​
baseStr = "data:application/vnd.ms-excel;base64," + baseStr​
elif file_type == "xlsx":​
baseStr = "data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64," + baseStr​
elif file_type == "pdf":​
baseStr = "data:application/pdf;base64," + baseStr​
print(f"", baseStr)​
return baseStr​
​
# 图片Base64编码​
def load_image_content(image_file):​
with open(image_file, 'rb') as f:​
img_bytes = f.read()​
base64_bytes = base64.b64encode(img_bytes).decode('utf-8')​
return base64_bytes, len(base64_bytes)​
​
def main():​
# 配置信息(请替换为实际值)​
myUrl = "https://cn-beijing.sdk.access.llm-shield.omini-shield.com" # 根据大模型应用防火墙实例所在地域替换相应的地域信息​
ak = "YOUR AK" # 火山账号的 AK​
sk = "YOUR SK" # 火山账号的 SK​
appid = "app-d3r06khsqn9s73da****" # 资产的 AppId,可在控制台资产管理页面获取​
region = "cn-beijing" # 大模型应用防火墙实例所在地域​
TIMEOUT = 50 # 超时时间(秒)​
# 设置代理服务字典,格式为 {"协议": "代理地址"}​
proxy_dict = {"http": "http://10.37.**.**:8888"}​
​
# 文本检测示例内容​
content = "网上都说A地很多骗子和小偷,他们的典型伎俩..."​
# 图片检测示例内容​
image_file = "/Users/example/imagedemo.png" # 待检测图片的本地存储路径​
image_content, size = load_image_content(image_file)​
# 确保图片大小不超过 10 MB​
if size > 1010241024: ​
print(f"请求失败: {size/1024}KB")​
return​
# 文档检测示例内容​
file_content = load_file_content("docx", "/Users/example/filedemo.docx") # 待检测文档的格式和本地存储路径​
​
try:​
# 发送请求并获取响应​
client = ClientV2(myUrl, ak, sk, region, TIMEOUT)​
​
# 设置代理地址​
client.SetProxy(proxy_dict)​
# 设置最大连接数,例如 100​
client.SetConnMax(100) ​
​
# 多模态混合检测文本、图片和文档内容​
contTxt = MultiPart(content = content, content_type = ContentTypeV2.TEXT)​
contimg = MultiPart(content = image_content, content_type = ContentTypeV2.IMAGE)​
contFile = MultiPart(content = file_content, content_type = ContentTypeV2.FILE)​
​
# 构建请求(使用 pydantic 模型)​
request = ModerateV2Request(​
scene=appid, # 资产的 AppId​
message=MessageV2(​
role="user", # 检测的内容来源,user-用户提示词;assistant-模型响应内容​
multi_part = [contTxt, contimg, contFile], # 待检测的文本、图片和文档内容​
),​
)​
​
response = client.Moderate(request)​
​
# 使用 pydantic 的内置序列化方法​
print("审核结果(JSON格式):")​
print(response.model_dump_json(by_alias=True, indent=2)) # pydantic 模型直接转 JSON​
​
except Exception as e:​
print(f"请求失败: {e}")​
​
if __name__ == "__main__":​
main()​
​
​
最近更新时间:2026.04.27 19:47:53
这个页面对您有帮助吗?
有用
有用
无用
无用