Files
security_demo/install_llm_deps.py
brunoandClaude 842fa8dbe5 feat: 完整AI SOC分析师平台 - LLM集成与前后端优化
本次提交包含完整的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 <[email protected]>
2025-09-06 06:56:09 +08:00

53 lines
1.5 KiB
Python

#!/usr/bin/env python3
"""
安装LLM集成所需的依赖包
"""
import subprocess
import sys
import os
def install_package(package_name):
"""安装Python包"""
try:
print(f"正在安装 {package_name}...")
subprocess.check_call([sys.executable, "-m", "pip", "install", package_name])
print(f"✅ {package_name} 安装成功")
return True
except subprocess.CalledProcessError as e:
print(f"❌ {package_name} 安装失败: {e}")
return False
def main():
"""主函数"""
print("🚀 开始安装LLM集成依赖...")
# 必需的依赖包
dependencies = [
"anthropic>=0.34.0", # Claude API
"openai>=1.3.0", # OpenAI API (也用于本地模型)
"python-dotenv", # 环境变量管理
]
success_count = 0
for dep in dependencies:
if install_package(dep):
success_count += 1
print(f"\n📊 安装结果: {success_count}/{len(dependencies)} 个包安装成功")
if success_count == len(dependencies):
print("\n🎉 所有依赖安装完成!")
print("\n📝 接下来的配置步骤:")
print("1. 复制 .env.example 为 .env")
print("2. 在 .env 中配置你的API密钥")
print("3. 在 configs/llm.yaml 中选择要使用的模型提供商")
print("4. 重启后端服务")
else:
print("\n⚠️ 部分依赖安装失败,请检查错误信息")
return 1
return 0
if __name__ == "__main__":
sys.exit(main())