ps-fuzz 项目介绍
🌟 关于 Prompt Fuzzer
Prompt Fuzzer 是一个开源工具,专为评估和强化你的生成式人工智能(GenAI)应用程序的系统提示而设计。通过模拟多种动态的大型语言模型(LLMs)攻击,Prompt Fuzzer 评估你的系统提示的安全性,并提供相应的安全改进建议。这款工具能够根据应用的特定配置和领域动态调整测试,以提高应用程序的安全性。此外,Prompt Fuzzer 还提供了一个 Playground 聊天界面,帮助用户在对抗广泛的生成式 AI 攻击时,反复改进自己的系统提示。
警告:使用 Prompt Fuzzer 会消耗代币。
🚀 安装指南
要使用 Prompt Fuzzer,可以通过以下步骤安装:
使用 pip 安装
pip install prompt-security-fuzzer
或者访问 PyPi 包页面 获取最新的安装包。如果需要,也可从 GitHub releases 中抓取最新的安装文件。
启动 Fuzzer
启动命令如下:
export OPENAI_API_KEY=sk-123XXXXXXXXXXXX
prompt-security-fuzzer
输入你的系统提示并开始测试。用户可以在 Playground 上反复测试,直到系统提示达到预期的安全性。
💻 使用方法
功能特性
Prompt Fuzzer 支持:
- 16家LLM提供商:兼容各种LLM提供商。
- 15种攻击类型:测试不同种类的攻击。
- 交互模式:与系统提示进行交互性测试。
- CLI 模式:使用命令行界面模式。
- 多线程测试:支持多线程并行测试。
环境变量
用户需设置一个环境变量来存储所选 LLM 提供商的访问密钥。默认使用 OPENAI_API_KEY
。
可以在当前目录创建名为 .env
的文件,并设置 OPENAI_API_KEY
。
命令行选项
使用如下命令行选项来配置 Fuzzer:
--list-providers
列出所有可用的提供商--list-attacks
列出可用攻击并退出--attack-provider
攻击提供商--attack-model
攻击模型--target-provider
目标提供商--target-model
目标模型--num-attempts, -n
指定不同攻击提示的次数--num-threads, -t
指定工作线程数--attack-temperature, -a
攻击模型的温度设置--debug-level, -d
调试级别(0-2)-batch, -b
以批处理模式运行,跳过交互步骤
📒 示例
在项目的 system_prompt.examples
子目录中,可以找到各种强度的系统提示示例。
交互模式
测试系统提示的默认模式:
prompt_security_fuzzer
🚤 快速开始单次运行
在非交互批处理模式下测试系统提示:
prompt-security-fuzzer -b ./system_prompt.examples/medium_system_prompt.txt
📓 Google Colab Notebook
你可以在我们的 Google Colab Notebook 中优化和强化系统提示。
🎬 演示视频
点击观看视频教程,了解如何使用 Prompt Fuzzer。
⚔️ 模拟攻击详解
Prompt Fuzzer 使用动态测试方法,基于系统提示的实际情况调整模糊测试过程。攻击类型包括:
- 越狱攻击:如 AIM Jailbreak、确定性后缀等,通过不同角色扮演和策略测试 LLM 的合规行为。
- 提示注入:如权威角色模拟、伦理合规测试等,考验 LLM 对不当内容的抵御能力。
- 系统提示提取:如系统提示窃取器,尝试获取 LLM 内部配置或敏感信息。
🌈 项目路线图
- 已完成 Google Colab Notebook
- 正在改进输出评估机制以进行提示数据集测试
- 持续添加新的 GenAI 攻击类型
- 强化报告能力
- 提供加固建议
🍻 贡献
如果你对开发我们的工具感兴趣,非常欢迎参与!你可以查看我们的 贡献指南,这部分提供了关于如何添加新测试的简单介绍。