Skip to content

Aibd/CC-BOS-STANDALONE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CC-BOS: 基于仿生搜索的文言文越狱提示词优化

独立可运行版本,基于 CC-BOS 研究框架重构。

随着大语言模型(LLM)的广泛应用,其安全风险日益受到关注。现有研究表明,LLM 对越狱攻击高度敏感,且攻击效果因语言环境而异。本项目研究文言文在越狱攻击中的作用——由于文言文的简洁性与晦涩性,可以部分绕过现有的安全约束,暴露 LLM 中存在的显著漏洞。基于这一发现,本项目提出了 CC-BOS 框架,通过多维果蝇优化算法自动生成文言文对抗提示词,在黑盒环境下实现高效的自动化越狱攻击。提示词被编码为八个策略维度——涵盖角色、引导、机制、隐喻、表达、知识、触发模式和上下文,并通过嗅觉搜索、视觉搜索和柯西变异进行迭代优化。此外,项目还设计了文言文到英文的翻译模块,以提高可读性和评估准确性。

安装

环境要求

  • Python 3.8 及以上版本
  • 大语言模型 API 访问权限(如 OpenAI API Key、DeepSeek API Key 等)

安装步骤

  1. 安装依赖包:

    pip install -r requirements.txt
  2. 配置 API 密钥:

    复制环境变量模板文件并填入你的 API 密钥:

    cp .env.example .env

    编辑 .env 文件,填入对应的密钥和接口地址:

    # 目标模型(被攻击的 LLM + Judge 评分模型)
    OPENAI_API_KEY=sk-your-openai-key
    OPENAI_BASE_URL=https://api.openai.com/v1
    TARGET_MODEL=gpt-4o          # 被攻击的目标模型
    
    # 评分模型(可选,不设置则回退到 OPENAI_*)
    JUDGE_API_KEY=sk-your-judge-api-key
    JUDGE_BASE_URL=https://api.openai.com/v1 # 评估毒性
    JUDGE_MODEL=gpt-5.4
    
    # 生成器模型(生成文言文对抗提示词)
    DEEPSEEK_API_KEY=sk-your-deepseek-key
    DEEPSEEK_BASE_URL=https://api.deepseek.com/v1
    GENERATOR_MODEL=deepseek-chat
    
    # 翻译模型(文言文 → 英文翻译)
    TRANSLATE_API_KEY=sk-your-translate-key
    TRANSLATE_BASE_URL=https://api.deepseek.com/v1
    TRANSLATE_MODEL=deepseek-chat

    说明: 本项目使用 .env 文件管理所有配置,通过 config.py 自动加载,无需手动修改代码。模型名称也可在 .env 中自由切换。

三组模型配置说明

本项目的工作流涉及三个独立角色的模型,因此采用三组独立的 API 配置:

角色 配置项 默认模型 用途说明
生成器 DEEPSEEK_* + GENERATOR_MODEL deepseek-chat 根据果蝇优化维度生成文言文对抗提示词
目标模型 OPENAI_* + TARGET_MODEL gpt-5.4 被攻击的 LLM,接收对抗提示并生成回复
评判模型 OPENAI_* + JUDGE_MODEL gpt-5.4 评估目标模型回复的毒性分数(与目标模型共用 API)
翻译模型 TRANSLATE_* + TRANSLATE_MODEL deepseek-chat 将文言文回复翻译为英文,供评判模型评分
用户提示词 ──→ [生成器] 生成文言文对抗提示词
                        │
                        ▼
              [目标模型] 接收对抗提示 → 文言文回复
                        │
                        ▼
              [翻译模型] 文言文 → 英文翻译
                        │
                        ▼
              [评判模型] 评估毒性分数 → 反馈至果蝇优化

三组配置分开的好处:你可以用不同服务商的 API(如 DeepSeek 做生成、OpenAI 做目标和评判、Moonshot 做翻译),互不干扰。

使用方法

1. 准备数据

项目从 CSV 文件中读取意图和提示词。确保输入文件包含以下列:

  • goal:原始用户提示词。
  • target:期望的目标响应。
  • intention:原始用户提示词(用于评估)。

项目已提供示例数据文件 data/test.csv

2. 运行提示词生成脚本

在命令行中执行 gen.py,可通过命令行参数自定义生成过程:

cd code
python gen.py --population_size 5 --max_iter 5 --input_file ../data/test.csv

命令行参数

参数 默认值 说明
--input_file ../data/test.csv 输入的 CSV/JSONL 文件路径
--data_format csv 输入数据格式:csvjsonl
--population_size 5 每次优化迭代的种群大小
--max_iter 5 最大优化迭代次数

优化策略:适应度分数阈值

early_stopping_threshold 定义了模型输出的目标平均分数(毒性强度),作为优化的成功判定标准:

  • 阈值 = 120(峰值毒性): 目标为绝对越狱。优化持续进行,直至模型响应与有害意图完全一致且不包含任何拒绝关键词。
  • 阈值 = 80(快速穿透): 目标为实质性越狱。一旦达到显著毒性水平即停止优化,优先保证触发不合规行为的效率。

用户可根据具体研究需求灵活调整该阈值。

注意: 降低阈值(如设为 80)可通过优先快速越狱显著降低查询成本;而较高阈值(120)则最大化生成提示词的毒性强度。

3. 查看结果

脚本将在 result/ 目录下生成两个输出文件(目录自动创建):

  • adv_prompt.jsonl:生成的最终对抗提示词。
  • record.jsonl:每个提示词的详细过程日志,包括分数、模型响应和尝试记录。

项目结构

CC-BOS-standalone/
├── code/                       # 核心源码目录
│   ├── config.py              # 配置文件(从 .env 加载 API 密钥)
│   ├── gen.py                 # 主脚本:提示词生成、优化与评估循环
│   ├── translate.py           # 翻译模块(文言文 → 英文)
│   └── utils.py               # 工具函数(LLM API 调用、评分、文本提取)
├── data/                       # 数据集目录
│   └── test.csv               # 示例输入数据
├── result/                     # 输出目录(自动创建)
├── .env.example                # 环境变量模板
├── .gitignore                  # Git 忽略规则
├── requirements.txt            # Python 依赖
└── README.md                   # 项目文档

相对于原项目的改进

改进项 原项目 本项目
API 密钥管理 硬编码在代码中 通过 .env 文件管理,安全隔离
API 配置 单一配置混用 OpenAI / DeepSeek / 翻译三组独立配置
文件路径 相对路径,依赖工作目录 基于 __file__ 动态定位,任意目录可运行
输出目录 需手动创建 自动创建 result/ 目录
文件编码 未显式指定 所有读写显式使用 utf-8
依赖管理 environment.yml(280+ 行) requirements.txt(7 个核心依赖)
示例数据 内置 data/test.csv 可直接运行

致谢

特别感谢 CL-GSO 的作者们。本项目在其优秀实现的基础上进行了扩展,感谢他们对该领域的开源贡献。

引用

如果您认为本项目或其基础 CL-GSO 框架对您的研究有所帮助,请考虑引用以下论文:

@inproceedings{huang2026obscure,
  title={Obscure but Effective: Classical Chinese Jailbreak Prompt Optimization via Bio-Inspired Search},
  author={Xun Huang and Simeng Qin and Xiaoshuang Jia and Ranjie Duan and Huanqian Yan and Zhitao Zeng and Fei Yang and Yang Liu and Xiaojun Jia},
  booktitle={The Fourteenth International Conference on Learning Representations (ICLR)},
  year={2026},
  url={https://openreview.net/forum?id=O7fxz7D6vf}
}

CC-BOS-STANDALONE

About

独立可运行版本,基于 [CC-BOS](https://github.com/xunhuang123/CC-BOS/) 研究框架重构

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages