本次提交包含完整的AI SOC(Security Operations Center)分析师平台,支持本地大模型和Claude API集成,实现端到端的安全威胁分析。 ## 🚀 主要功能 ### 后端架构 (FastAPI) - **多源数据接入**: 支持JSON/CSV格式安全告警数据上传 - **智能预处理**: 基于YAML配置的字段映射和实体提取 - **图分析引擎**: NetworkX驱动的攻击链图构建和分析 - **评分系统**: 实体和子图的多维度风险评分算法 - **LLM集成**: 支持多提供商(Claude、OpenAI、本地模型)的智能报告生成 - **API接口**: 完整的RESTful API (Swagger文档: /docs) ### 前端界面 (Vue 3 + TypeScript) - **拖拽上传**: 支持拖拽上传和实时预览 - **管道分析**: 可视化的数据处理管道状态 - **智能报告**: 动态生成的威胁分析报告和可视化 - **响应式设计**: 适配桌面和移动端的现代UI ### LLM智能分析 - **多模型支持**: qwen3(8B/32B)、deepseek-r1(70B)、Claude 4等 - **超时优化**: 分层超时配置(120s-600s)适配不同模型规模 - **内容清理**: 自动过滤模型思考过程,输出专业分析报告 - **中文优化**: 针对中文安全分析场景的prompt工程 ## 🛠️ 技术栈 **后端**: FastAPI + SQLAlchemy + NetworkX + 多LLM提供商 **前端**: Vue 3 + TypeScript + Naive UI + Tailwind CSS + Vite **数据处理**: YAML配置 + JSONPath表达式 **部署**: Docker支持 + 环境变量配置 ## 🐛 修复的关键问题 1. **LLM超时问题**: 实现前后端分层超时配置,支持大模型长时间推理 2. **报告格式化**: 修复Markdown渲染和换行符显示问题 3. **数据映射**: 统一前后端字段命名和数据结构映射 4. **时间格式**: 修复时间戳解析和中文本地化显示 5. **思考标签清理**: 自动过滤qwen模型的<think>标签 ## 📊 测试数据 包含完整的多阶段APT攻击场景测试数据: - 钓鱼邮件 → 恶意软件执行 → C2通信 - 云凭证窃取 → 资源探测 → 横向渗透 - 后门用户创建 → 权限提升 → 容器控制 ## 🔧 开发工具 - **模型切换**: switch_model.py 支持快速切换本地LLM模型 - **超时测试**: test_llm_timeout.py 验证不同模型性能 - **依赖安装**: install_llm_deps.py 自动安装LLM依赖 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
4.6 KiB
4.6 KiB
LLM集成配置指南
本指南将帮助你配置AI SOC分析平台的大语言模型集成,支持Claude 4、本地模型和其他API。
🚀 快速开始
1. 安装依赖
# 安装LLM相关依赖
python install_llm_deps.py
# 或手动安装
pip install anthropic>=0.34.0 openai>=1.3.0 python-dotenv
2. 配置环境变量
# 复制环境变量模板
cp .env.example .env
# 编辑.env文件,添加你的API密钥
vim .env
3. 选择LLM提供商
编辑 configs/llm.yaml 中的 provider 字段。
📋 支持的LLM提供商
🎯 Claude 4 (推荐)
优势: 最佳的中文理解和安全分析能力
配置步骤:
- 获取Claude API Key: https://console.anthropic.com/
- 在
.env中设置:CLAUDE_API_KEY=sk-ant-api03-your-key-here - 在
configs/llm.yaml中设置:provider: "claude" providers: claude: model: "claude-3-5-sonnet-20241022" # 或 claude-3-haiku-20240307
🏠 本地模型
优势: 数据隐私、无API费用、离线可用
支持的本地方案:
- Ollama (推荐): 易于安装和使用
- LM Studio: 图形界面友好
- vLLM: 高性能推理
- 自建API服务: 兼容OpenAI API格式
Ollama配置示例:
- 安装Ollama: https://ollama.ai/
- 下载模型:
# 中文能力强的模型 ollama pull qwen2.5:7b ollama pull qwen2.5:14b # 代码能力强的模型 ollama pull deepseek-coder:6.7b # 综合能力模型 ollama pull llama3.1:8b - 启动服务:
ollama serve - 配置
configs/llm.yaml:provider: "local" providers: local: api_base: "http://localhost:11434/v1" model: "qwen2.5:7b"
☁️ OpenAI
配置步骤:
- 在
.env中设置:OPENAI_API_KEY=sk-proj-your-key-here - 在
configs/llm.yaml中设置:provider: "openai" providers: openai: model: "gpt-3.5-turbo" # 或 gpt-4
🔧 自定义API
用于其他兼容OpenAI API的服务:
provider: "custom"
providers:
custom:
api_base: "http://your-server:8080/v1"
model: "your-model-name"
⚙️ 高级配置
模型参数调优
# 通用参数
temperature: 0.2 # 创造性 (0.0-2.0)
max_tokens: 800 # 最大输出长度
timeout: 60 # 超时时间(秒)
# 容错配置
fallback_on_error: true
retry_attempts: 2
多提供商自动切换
系统会按以下顺序尝试:
- 首选提供商 (由
provider字段指定) - 其他可用提供商 (自动切换)
- 模板生成 (兜底方案)
本地模型推荐
| 模型 | 大小 | 特点 | 推荐用途 |
|---|---|---|---|
| qwen2.5:7b | ~4.4GB | 中文优秀 | 通用分析 |
| qwen2.5:14b | ~8.2GB | 性能更强 | 复杂分析 |
| llama3.1:8b | ~4.7GB | 英文强 | 国际环境 |
| deepseek-coder:6.7b | ~3.8GB | 技术分析 | 代码相关威胁 |
| mistral:7b | ~4.1GB | 轻量高效 | 资源受限 |
🧪 测试LLM集成
1. 检查配置
# 查看当前配置
curl "http://localhost:8000/api/debug/llm-config"
2. 测试分析生成
# 使用LLM生成报告
curl -X POST "http://localhost:8000/api/reports/generate?use_llm=true"
3. 查看日志
检查后端日志中的LLM初始化信息:
Claude client initialized successfully
# 或
qwen2.5 client initialized successfully
# 或
Fallback to template generation
🔍 故障排除
常见问题
Q: "Claude API key not found"
A: 检查 .env 文件中的 CLAUDE_API_KEY 是否设置正确
Q: "Connection timeout"
A: 增加 timeout 参数或检查网络连接
Q: "Model not found" A: 确认模型名称正确,本地模型需要先下载
Q: 本地模型响应慢 A: 考虑使用更小的模型或增加硬件资源
调试模式
在 .env 中设置:
DEBUG=true
日志级别
import logging
logging.basicConfig(level=logging.DEBUG)
📊 性能对比
| 提供商 | 响应速度 | 中文质量 | 成本 | 隐私 |
|---|---|---|---|---|
| Claude 4 | 快 | 优秀 | 付费 | 云端 |
| 本地模型 | 中等 | 良好 | 免费 | 最佳 |
| OpenAI | 快 | 良好 | 付费 | 云端 |
🎯 最佳实践
- 生产环境: 推荐Claude 4 + 本地模型双重配置
- 开发测试: 使用本地模型节省成本
- 离线环境: 只使用本地模型
- 高并发: 部署多个本地模型实例
📞 技术支持
如有问题,请检查:
- 环境变量配置
- 网络连接
- API密钥有效性
- 模型服务状态
- 系统日志输出