Prince0005-tech/vedaz-ai-assignment
GitHub: Prince0005-tech/vedaz-ai-assignment
该项目实现了一条 AI 对话数据的验证、生成与质量评估 pipeline,解决训练数据格式校验、安全筛查和质量量化打分的问题。
Stars: 0 | Forks: 0
# Vedaz AI 安全与质量评估
本项目实现了一个完整的 pipeline,用于验证、生成和评估 AI 驱动的占星对话。它是作为 Vedaz AI 作业的一部分开发的。
该项目由三个主要脚本组成:
- **任务 1:** Chat Checker
- **任务 2:** Chat Generator
- **任务 3:** Quality Tester
# 项目概述
本项目的目标是确保 AI 助手生成的占星对话:
- 格式正确
- 对用户安全
- 有用且具有同理心
- 适合用于训练未来的 AI 模型
本项目执行三个主要任务:
### Chat Checker
读取 JSONL 格式的对话数据集,并执行以下操作:
- 验证聊天结构
- 统计对话长度
- 检测重复或近似重复的聊天
- 检测不安全的回复
- 将数据集拆分为训练集和测试集
- 生成摘要报告
### Chat Generator
使用大型语言模型(Groq Llama 3.3 70B)生成新的占星对话。
每个生成的对话都会自动进行以下操作:
- 验证
- 安全检查
- 仅在通过所有检查后才会保存
### Quality Tester
通过以下方式评估 AI 生成回复的质量:
- 提出预定义的测试问题
- 收集 AI 的回答
- 对每个回答进行评分,评分维度包括:
- 安全性
- 有用性
- 诚实性
系统会生成详细的评估报告。
# 项目结构
```
Vedaz_Stage2/
│
├── checker.py
├── validator.py
├── safety_checker.py
├── generator.py
├── quality_tester.py
├── config.py
├── test_groq.py
├── requirements.txt
├── .env
│
├── output/
│ ├── train.jsonl
│ ├── test.jsonl
│ └── generated_chats.jsonl
│
├── reports/
│ ├── checker_report.json
│ └── quality_report.json
│
└── vedaz_astrologer_finetune.jsonl
```
# 安装说明
## 1. 克隆仓库
```
git clone
cd Vedaz_Stage2
```
## 2. 创建虚拟环境
```
python -m venv .venv
```
激活环境:
### Windows
```
.venv\Scripts\activate
```
### Linux / macOS
```
source .venv/bin/activate
```
## 3. 安装依赖
```
pip install -r requirements.txt
```
## 4. 配置 API Key
创建一个 `.env` 文件。
示例:
```
GROQ_API_KEY=your_api_key_here
```
# 运行说明
## 任务 1 – Chat Checker
```
python checker.py
```
输出:
- output/train.jsonl
- output/test.jsonl
- reports/checker_report.json
## 任务 2 – Chat Generator
```
python generator.py
```
输出:
- output/generated_chats.jsonl
只有通过验证和安全检查的对话才会被保存。
## 任务 3 – Quality Tester
```
python quality_tester.py
```
输出:
- reports/quality_report.json
还会打印一个表格,显示:
- 安全性得分
- 有用性得分
- 诚实性得分
# 安全检测方法
本项目实现了一种混合安全检查方法。
## 1. 基于关键词的检测
SafetyChecker 首先会搜索预定义的不安全关键词和短语,例如:
- 死亡预测
- 疾病预测
- 保证财富
- 保证婚姻
- 奇迹疗法
- 施压购买开运物品
这提供了对常见不安全回复的快速检测。
## 2. 基于 LLM 的评估
每个对话也会由大型语言模型进行评估。
该模型会判断助手是否违反了 Vedaz 的安全政策,包括:
- 预测死亡
- 预测疾病
- 保证未来的结果
- 给出有害的财务建议
- 鼓励过度依赖占星
- 施压用户购买开运物品
这使得系统即使在没有明确出现关键词的情况下,也能检测出不安全的回复。
## 3. 混合决策
如果出现以下情况,对话将被视为不安全:
- 检测到不安全关键词,或
- LLM 将该对话标记为不安全。
将基于规则的检测与 LLM 评估相结合,提高了系统的整体可靠性。
# 局限性
尽管该系统表现良好,但它仍有一些局限性。
### 关键词检测
- 无法检测所有不安全措辞。
- 用不同方式表达的相似含义可能不会触发关键词。
### LLM 评估
- 取决于语言模型的质量。
- 偶尔可能会返回无效的 JSON 响应。
- 不同运行之间的结果可能会略有差异。
### 重复检测
重复检测使用 TF-IDF 余弦相似度。
它对于几乎相同的对话效果很好,但对于使用截然不同的措辞编写的、语义上相似的对话,可能无法检测出来。
### 质量评分
Quality Tester 使用 LLM 作为评估器。
这些分数具有主观性,应被视为近似值而非绝对值。
# 使用的技术
- Python 3
- Groq API
- Llama 3.3 70B Versatile
- scikit-learn
- python-dotenv
- JSON / JSONL
# 输出文件
| 文件 | 描述 |
|------|-------------|
| output/train.jsonl | 训练数据集 |
| output/test.jsonl | 测试数据集 |
| output/generated_chats.jsonl | 生成的安全对话 |
| reports/checker_report.json | 数据集分析报告 |
| reports/quality_report.json | 质量评估报告 |
# 作者
**Prince Singh**
为 Vedaz AI 工程作业而构建。
标签:DLL 劫持, Python, Sysdig, 人工智能, 大语言模型, 开源搜索引擎, 数据校验, 数据集评估, 文本生成, 无后门, 时序数据库, 用户模式Hook绕过, 逆向工具