基于大语言模型(LLM)的内容审核工具,支持文本与图像,自定义审核项配置,调用模型获得结构化判定结果,使用 OpenAI 兼容接口
Project description
ai-content-audit
基于大语言模型(LLM)的内容审核工具包:支持文本和图像审核,定义审核项、加载内容、调用模型获得结构化判定结果。
安装
-
使用 Python 3.12+
-
安装:
项目已上传至 PyPI,可以直接使用 pip 安装:
pip install ai-content-audit
- 开发安装(可选):
克隆本仓库:
git clone https://github.com/Apauto-to-all/ai-content-audit.git
cd ai-content-audit
安装依赖包:
uv sync
快速上手
文本审核
from openai import OpenAI
from ai_content_audit import AuditManager, loader
client = OpenAI(base_url="https://", api_key="your_key")
manager = AuditManager(client=client, model="qwen-plus")
# 定义审核项
item = loader.options_item.create(
name="是否包含敏感信息",
instruction="检查文本中是否出现用户定义的敏感信息。",
options={"有": "检测到", "无": "未检测到", "不确定": "无法判断"},
)
# 加载审核内容
text = loader.audit_data.create(content="本文由xxx发布,联系电话:13800138000。")
# 审核
result = manager.audit_one(text, item)
print("审核结果:")
print(f"结果ID:{result.id}")
print(f"内容项ID:{result.content_id}")
print(f"审核项ID: {result.item_id}")
print(f"审核项: {result.item_name}")
print(f"文本节选: {result.content_excerpt}...")
print(f"决策: {result.decision.choice}")
print(f"理由: {result.decision.reason}")
图像审核
from openai import OpenAI
from ai_content_audit import AuditManager, loader, file_loader
client = OpenAI(base_url="https://", api_key="your_key")
manager = AuditManager(client=client, model="qwen-vl-plus")
# 图像审核
# 加载图像文件,将其转化为大模型图像输入格式,这里采用 base64 编码
image_data = file_loader.load_image("path/to/image.jpg")
# 加载图像审核内容
image_audit_content = loader.audit_data.create(content=image_data, file_type="image")
# 加载审核项
image_audit_item = loader.options_item.create(
name="图像审核项名称",
instruction="审核指令 - 图像",
options={"选项1": "说明", "选项2": "说明"},
)
# 执行图像审核,需要指定支持图像理解的大模型,如 qwen-vl-plus
result = manager.audit_one(
content=image_audit_content,
item=image_audit_item,
model="qwen-vl-plus", # 如果 manager 初始化时提供了默认视觉模型,这里可以省略
)
print("审核结果:")
print(f"结果ID:{result.id}")
print(f"内容项ID:{result.content_id}")
print(f"审核项ID: {result.item_id}")
print(f"审核项: {result.item_name}")
print(f"图片base64节选: {result.content_excerpt}...")
print(f"决策: {result.decision.choice}")
print(f"理由: {result.decision.reason}")
批量审核
from openai import OpenAI
from ai_content_audit import AuditManager, loader
client = OpenAI(base_url="https://", api_key="your_api_key")
manager = AuditManager(client=client, model="qwen-plus")
# 加载审核内容列表
contents = [
loader.audit_data.create(content="文本1"),
loader.audit_data.create(content="文本2")
]
# 加载审核项列表
items = [
loader.options_item.create(name="审核项1", instruction="指令1", options={"通过": "说明", "不通过": "说明"}),
loader.options_item.create(name="审核项2", instruction="指令2", options={"通过": "说明", "不通过": "说明"})
]
# 使用默认并发数5
results = manager.audit_batch(contents, items)
# 或指定并发数
results = manager.audit_batch(contents, items, max_concurrency=3)
# 打印批量结果
for i, res in enumerate(results, 1):
print(f"结果 {i}:")
print(f" 批量ID: {res.batch_id}")
print(f" 文本项ID: {res.content_id}") # 用于区分
print(f" 审核项ID: {res.item_id}") # 用于区分
print(f" 审核项: {res.item_name}")
print(f" 内容节选: {res.content_excerpt}...")
print(f" 决策: {res.decision.choice}")
print(f" 理由: {res.decision.reason}")
print("-" * 40)
print("=" * 80)
功能特性
- ✅ 文本审核:支持纯文本内容审核
- ✅ 图像审核:支持 JPEG、PNG、WebP 等格式,使用视觉模型
- ✅ 批量审核:并发审核多个内容和多个审核项
- ✅ 结构化输出:基于 structured-output-prompt 库生成的格式化输出指令,适用于不支持JSON Schema的大模型,比如 qwen 模型
示例
查看 examples/ 目录中的示例说明
许可证
Apache-2.0,见 LICENSE。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ai_content_audit-0.3.0.tar.gz
(17.0 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ai_content_audit-0.3.0.tar.gz.
File metadata
- Download URL: ai_content_audit-0.3.0.tar.gz
- Upload date:
- Size: 17.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
891ffec326882ba0fff70f10eb981bd2bb53fe7e777bb87d423103dcbdaa735f
|
|
| MD5 |
604e5783972d5c1e391839681f5cca35
|
|
| BLAKE2b-256 |
d35ad2f306e062f89e99acee24cabdeb6c0e70282fcd8d5e6bda8b3269e7b176
|
File details
Details for the file ai_content_audit-0.3.0-py3-none-any.whl.
File metadata
- Download URL: ai_content_audit-0.3.0-py3-none-any.whl
- Upload date:
- Size: 21.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e0b8b624e082ca89d3f5599b30983dd03d58ee5b3c3df45b6161a44926b22dc4
|
|
| MD5 |
018472f4efe109cdec4bd157862e4781
|
|
| BLAKE2b-256 |
d19f3be528677368e198731a7e2d252860c92b9e1fd7e3bdcdfe0a1f9f990b6f
|