ai -agent
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 2 个月前 |
简介
AgentForge 是一个面向企业的多智能体 AI 助理平台,基于 LangChain 构建,集成了多模型对话、视频生成、CEO 数据简报等核心功能。系统采用 FastAPI + Vue.js 的全栈架构,通过模块化的智能体(Agent)和工具箱(Tool)设计,实现灵活可扩展的 AI 服务编排。
核心能力
| 能力 | 说明 |
|---|---|
| 🤖 多模型对话 | 切换 Qwen 3.7 Max/Plus、DeepSeek V4 Pro,支持流式 SSE 响应 |
| 🎬 AI 视频生成 | 文字描述转视频(DashScope Wan2.7-T2V 720P) |
| 📊 CEO 简报 | 自动生成业务数据报告,定时邮件推送 |
| 🔐 邮件验证码登录 | QQ 邮箱验证码认证 + Redis 会话管理 |
| 💾 会话管理 | 对话历史保存/加载/删除,30 天持久化 |
| 🎨 视频资产库 | 视频搜索、播放、分页管理 |
| 🌗 暗色/亮色主题 | 一键切换,偏好自动保存 |
快速开始
前置条件
- Python >= 3.10
- MySQL 服务
- Redis 服务
- DashScope API Key(用于 Qwen 和视频生成)
- DeepSeek API Key(可选)
安装
# 克隆项目
git clone https://github.com/your-org/agentforge.git
cd agentforge
# 安装依赖
pip install -r requirements.txt
# 配置环境变量
cp .env.example .env
# 编辑 .env,填入你的 API Key 和数据库配置
配置 .env
# LLM 模型配置
DASHSCOPE_API_KEY=sk-xxxx
DEEPSEEK_API_KEY=sk-xxxx
# MySQL
DATABASE_HOST=localhost
DATABASE_PORT=3306
DATABASE_USER=root
DATABASE_PASSWORD=your_password
DATABASE_NAME=your_database
# Redis
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
启动
uvicorn api.main:app --host 0.0.0.0 --port 9000 --reload
打开浏览器访问 http://localhost:9000。
快速使用
1. 登录
输入您的邮箱地址,点击"发送验证码",查收邮件后输入 4 位验证码完成登录。
2. 开始对话
- 在聊天框输入问题
- 右上角下拉菜单切换模型(Qwen Max / Qwen Plus / DeepSeek)
- 支持 Markdown 渲染回复,代码块自动高亮
3. 生成视频
在输入框输入视频描述(如:"一只猫咪在草地上奔跑"),选择视频模式提交,系统将实时推送生成进度。
4. 查看视频库
点击左侧"视频库"按钮,浏览已生成的视频资产,支持搜索和分页。
5. 接收 CEO 简报
使用个人信息助理功能,系统将自动从业务数据库提取数据并生成报表,邮件发送到指定邮箱。
项目结构
agentforge/
├── ai/ # AI 核心模块
│ ├── agent/ # 智能体定义
│ │ ├── chat_agent.py # 通用对话智能体
│ │ ├── login_agent.py # 登录验证智能体
│ │ ├── video_agent.py # 视频生成智能体
│ │ └── personal_assistant_agent.py # CEO 助理智能体
│ ├── model/
│ │ └── my_model.py # LLM 模型工厂
│ └── tool/ # 工具集
│ ├── mysql_tool.py # MySQL 查询
│ ├── send_email_tool.py # 邮件发送 (QQ SMTP)
│ ├── redis_tool.py # Redis 缓存读写
│ ├── generate_video_tool.py # DashScope 视频生成
│ ├── download_video_tool.py # 视频下载归档
│ ├── video_archive_tool.py # 视频资产管理
│ ├── ceo_briefing_tool.py # CEO 数据简报
│ └── get_content_type.py # 内容类型检测
├── api/ # REST API
│ ├── main.py # FastAPI 入口 (port 9000)
│ └── chat/
│ └── chat_router.py # 所有 API 路由
├── static/ # 静态资源
│ └── download/ # 视频文件存储
├── api/static/
│ ├── chat.html # 单页前端 (Vue.js)
│ └── js/ # 前端依赖
├── docs/ # 文档
│ ├── PRD.md # 产品需求文档
│ └── SSD.md # 软件规格设计文档
├── .env # 环境变量配置
├── pyproject.toml # 项目元数据
└── requirements.txt # Python 依赖
数据库表
user_info
| 字段 | 类型 | 说明 |
|---|---|---|
| user_id | INT | 用户 ID (PK) |
| user_name | VARCHAR | 用户名 |
| VARCHAR | 邮箱 | |
| department | VARCHAR | 部门 |
orders
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INT | 订单 ID (PK) |
| order_date | DATE | 下单日期 |
| product_id | INT | 商品 ID (FK) |
| quantity | INT | 数量 |
| total_amount | DECIMAL | 总金额 |
| payment_method | VARCHAR | 支付方式 |
products
| 字段 | 类型 | 说明 |
|---|---|---|
| product_id | INT | 商品 ID (PK) |
| product_name | VARCHAR | 商品名称 |
| category | VARCHAR | 分类 |
video_archive
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INT | 记录 ID (PK) |
| video_name | VARCHAR | 视频名称 |
| download_time | DATETIME | 下载时间 |
| video_url | VARCHAR | 视频 URL |
| file_size | INT | 文件大小 |
API 概览
| 端点 | 方法 | 说明 |
|---|---|---|
/chat/invoke |
POST | 同步对话 |
/chat/stream |
POST | 流式对话 (SSE) |
/auth/send_code |
POST | 发送验证码 |
/auth/login |
POST | 验证码登录 |
/auth/logout |
POST | 退出登录 |
/auth/check_login |
GET | 检查登录状态 |
/conversation/save |
POST | 保存会话 |
/conversation/get |
POST | 获取会话 |
/conversation/list |
POST | 会话列表 |
/conversation/del |
POST | 删除会话 |
/video/generate |
GET | 视频生成 (SSE) |
/video/archive |
POST | 归档视频 |
/video/list |
POST | 视频列表 |
/personal_assistant |
POST | CEO 简报 |
技术栈
| 层 | 技术 |
|---|---|
| 前端 | Vue.js 2, marked.js, CSS Custom Properties |
| 后端 | FastAPI, Uvicorn |
| AI 框架 | LangChain (Agent, Tool, Executor) |
| 语言模型 | Qwen 3.7 Max/Plus (DashScope), DeepSeek V4 Pro |
| 视频生成 | DashScope VideoSynthesis (Wan2.7-T2V) |
| 数据库 | MySQL (PyMySQL) |
| 缓存 | Redis |
| 邮件 | QQ SMTP (SMTP_SSL) |
开发计划
许可证
Built with ❤️ by AgentForge Team