ESG 智能分析平台是一个功能强大的全栈Web应用,旨在利用人工智能(AI)技术,对企业的环境(Environmental)、社会(Social)和治理(Governance)报告进行深度分析、合规性检测和风险评估。
- 用户认证系统:支持用户注册、登录,基于JWT的安全认证机制,确保数据安全和用户隐私。
- 智能文本分析:支持直接输入文本,利用DeepSeek AI大模型进行全面的ESG分析。
- 文件上传分析:支持上传多种格式文件(.txt, .pdf, .docx),系统自动提取文本并进行分析。
- 数据可视化仪表板:以图表和卡片形式直观展示关键统计数据,如平均ESG评分、合规率、风险预警数量等。
- 历史记录管理:自动保存每一次分析结果,支持按关键词、状态进行搜索和筛选。
- 动态合规检测:根据可自定义的规则库,对分析报告进行合规性评估,并生成详细的检测结果。
- 风险与洞察:自动识别报告中潜在的ESG风险,并提炼关键洞察,为决策提供支持。
- 报告导出:支持将分析报告、历史记录、仪表板数据导出为JSON, CSV, 或PDF格式,便于归档和分享。
本项目采用前后端分离的架构。
- 核心框架: React 18.3 + Vite
- 编程语言: TypeScript
- UI 组件库: shadcn/ui
- CSS 方案: Tailwind CSS
- 路由管理: React Router
- 图表库: Recharts
- HTTP客户端: Axios
- 核心框架: Node.js + Express.js
- 数据库: PostgreSQL
- 数据库客户端: pg
- 文件上传: Multer
- 环境变量管理: dotenv
- AI 服务: DeepSeek API
请遵循以下步骤在本地环境中配置和运行本项目。
在开始之前,请确保您的系统中已安装以下软件:
- Node.js (建议版本 v18.x 或 v20.x)
- npm (通常随Node.js一起安装)
- PostgreSQL (建议版本 12 或更高)
a. 克隆项目仓库
git clone https://github.com/your-username/esg-analysis-system.git
cd esg-analysis-systemb. 安装依赖
您需要分别为前端和后端安装依赖。请在项目根目录下打开终端,然后执行以下命令:
-
安装前端依赖
npm install
-
安装后端依赖
cd server npm install cd ..
a. 创建数据库
请先在您的PostgreSQL中创建一个新的数据库。例如,可以命名为 ESG。
b. 配置环境变量
后端服务通过环境变量连接数据库和AI服务。
- 进入
server目录。 - 复制环境变量示例文件
.env.example并重命名为.env。 - 打开并编辑
.env文件,填入您的本地配置信息。
# server/.env
# 数据库配置
DB_HOST=localhost
DB_PORT=5432
DB_NAME=ESG # 替换为您创建的数据库名
DB_USER=postgres # 替换为您的PostgreSQL用户名
DB_PASSWORD=your-database-password # 替换为您的PostgreSQL密码
# DeepSeek API配置
DEEPSEEK_API_KEY=your-deepseek-api-key # 替换为您自己的DeepSeek API密钥
# JWT配置
JWT_SECRET=your-jwt-secret-key # 替换为您自己的JWT密钥(建议使用复杂的随机字符串)
# 服务器配置
PORT=3001
NODE_ENV=development
# API配置 (通常无需修改)
DEEPSEEK_BASE_URL=https://api.deepseek.com
DEEPSEEK_TIMEOUT=180000
DEEPSEEK_MAX_RETRIES=2重要: 首次启动后端服务器时,系统会自动执行数据库初始化脚本,创建所需的表和默认数据。
安全提醒:
- 请务必修改
JWT_SECRET为复杂的随机字符串,不要使用默认值 - 生产环境中请使用强密码保护数据库
- 建议定期备份数据库数据
a. 使用启动脚本 (Windows)
如果您使用的是Windows系统,可以直接运行根目录下的 start.bat 文件。它会自动完成以下操作:
- 设置命令行窗口编码为UTF-8以正确显示中文。
- 在一个新的命令行窗口中启动后端服务器。
- 在另一个新的命令行窗口中启动前端开发服务器。
b. 手动运行 (所有平台)
您也可以使用 concurrently 脚本来同时启动前后端服务:
npm run start:full或者,在两个独立的终端中分别启动:
终端 1: 启动后端服务器
npm run start:server
# 或者使用开发模式(带热重载)
# npm run dev:server当您看到 ESG分析服务器运行在端口 3001 时,表示后端启动成功。
终端 2: 启动前端服务器
npm run dev前端开发服务器通常会运行在 http://localhost:5173。
当所有服务都成功启动后,在浏览器中打开以下地址即可访问平台: http://localhost:5173
本平台实现了完整的用户认证系统,确保数据安全和用户隐私。
- 用户注册:新用户可以通过用户名、邮箱和密码创建账户
- 用户登录:已注册用户使用用户名和密码登录系统
- JWT认证:采用JSON Web Token进行安全的身份验证
- 密码加密:使用bcryptjs对用户密码进行哈希加密存储
- 路由保护:未登录用户无法访问分析功能,自动重定向到登录页面
系统会自动创建以下用户相关数据表:
-- 用户表
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username VARCHAR(50) UNIQUE NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
password_hash VARCHAR(255) NOT NULL,
role VARCHAR(20) DEFAULT 'user',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);- 首次访问:访问 http://localhost:5173 会自动跳转到登录页面
- 用户注册:点击"注册新账户"链接,填写用户名、邮箱和密码完成注册
- 用户登录:使用注册的用户名和密码登录系统
- 开始使用:登录成功后即可使用所有ESG分析功能
- 密码强度:建议使用包含字母、数字和特殊字符的强密码
- Token过期:JWT Token有效期为1小时,过期后需要重新登录
- 数据隔离:每个用户只能查看和管理自己的分析记录
- 输入验证:对所有用户输入进行严格的验证和过滤
.
├── server/ # 后端代码
│ ├── .env.example # 环境变量示例文件
│ ├── app.js # Express应用主文件
│ ├── auth-routes.js # 用户认证路由(注册、登录、JWT验证)
│ ├── database.js # 数据库连接与操作
│ ├── deepseek-api.js # DeepSeek API封装
│ └── package.json # 后端依赖
│
├── src/ # 前端代码 (React)
│ ├── components/ # UI组件
│ │ ├── protected-route.tsx # 路由保护组件
│ │ └── sidebar.tsx # 侧边栏组件(含登出功能)
│ ├── lib/ # 工具函数和API封装
│ │ └── auth-context.tsx # 认证上下文管理
│ ├── pages/ # 页面组件
│ │ ├── login.tsx # 登录页面
│ │ ├── register.tsx # 注册页面
│ │ └── ... # 其他功能页面
│ ├── main.tsx # 前端入口文件
│ └── App.tsx # 应用根组件(含路由配置)
│
├── public/ # 静态资源
├── .gitignore # Git忽略配置
├── package.json # 前端与项目脚本依赖
├── README.md # 项目说明文件
└── start.bat # Windows启动脚本
欢迎对本项目进行贡献!如果您有任何好的想法或建议,请随时提交Pull Request或创建Issue。
本项目采用专有许可证。源代码可供参考和非商业性使用。
商业使用: 未经作者明确书面授权,禁止将本项目的任何部分用于商业目的。如需商业授权,请联系作者。