logo
0
0
WeChat Login
刘培江<liupj@datamargin.com>
删除无用代码

AI智能体基础平台

🚀 项目简介

AI智能体基础平台是一个基于LangGraph和大型语言模型的智能对话与任务处理系统。该平台集成了多种AI智能体,支持智能对话、科研方案定制、关键词扩展、多语言翻译、深度搜索等功能,为科研机构、企业应用和教育领域提供强大的AI能力支持。

✨ 核心特性

🤖 智能体系统

  • 对话智能体: 基于LangGraph的智能对话流程,支持多轮对话和上下文记忆
  • 科研方案智能体: 科研主题定制和方案生成,支持专业领域知识问答
  • 关键词扩展智能体: 智能搜索关键词扩展,提升搜索效果
  • 翻译智能体: 多语言翻译服务,支持多种语言互译
  • 深度搜索智能体: 智能搜索和结果分析,提供精准的搜索结果

🔐 用户管理系统

  • 认证系统: JWT Token认证,支持登录、注册、密码管理
  • 权限控制: 用户角色管理,支持普通用户和管理员权限
  • 会话管理: 用户状态持久化,自动登录恢复

🏗️ 技术架构

  • 后端: FastAPI + Python 3.x + LangGraph + LangChain
  • 前端: Vue 3 + TypeScript + Pinia + Tailwind CSS
  • 数据库: MySQL (异步) + SQLAlchemy ORM
  • 缓存: Redis + 异步Redis客户端
  • 搜索引擎: Elasticsearch
  • 部署: Uvicorn ASGI服务器

🛠️ 技术栈

后端技术

  • Web框架: FastAPI 0.116.0+
  • AI引擎: LangGraph 0.6.5+, LangChain 0.3.0+
  • 数据库: SQLAlchemy 2.0.0+, MySQL 8.0+
  • 认证: JWT + Redis
  • 搜索引擎: Elasticsearch 8.0.0+
  • 异步支持: aiohttp, aiomysql, aioredis

前端技术

  • 框架: Vue 3.5.18+ + TypeScript
  • 状态管理: Pinia 3.0.3+
  • 路由: Vue Router 4.5.1+
  • 构建工具: Vite 7.1.2+
  • 样式: Tailwind CSS 4.1.12+
  • Markdown: markdown-it, marked, highlight.js

📁 项目结构

ai-agnet-base/ ├── blank/ # 后端服务 │ ├── agent/ # AI智能体模块 │ │ ├── conversation_agent.py # 对话智能体 │ │ ├── research_topic_agent.py # 科研方案智能体 │ │ ├── keyword_expansion_agent.py # 关键词扩展智能体 │ │ ├── translation_agent.py # 翻译智能体 │ │ └── deep_search_agent.py # 深度搜索智能体 │ ├── api/ # API路由模块 │ │ ├── auth_routes.py # 认证路由 │ │ ├── conversation_routes.py # 对话路由 │ │ ├── user_routes.py # 用户管理路由 │ │ └── ... # 其他路由 │ ├── models/ # 数据模型 │ ├── schemas/ # 数据模式 │ ├── services/ # 业务服务 │ ├── config.py # 配置文件 │ ├── main.py # 主应用入口 │ └── requirements.txt # Python依赖 ├── frontend/ # 前端应用 │ ├── src/ # 源代码 │ │ ├── components/ # Vue组件 │ │ ├── views/ # 页面视图 │ │ ├── stores/ # 状态管理 │ │ ├── services/ # API服务 │ │ └── router/ # 路由配置 │ ├── package.json # Node.js依赖 │ └── vite.config.ts # Vite配置 └── start_all.sh # 一键启动脚本

🚀 快速开始

环境要求

  • Python: 3.8+
  • Node.js: 16+
  • MySQL: 8.0+
  • Redis: 6.0+
  • Elasticsearch: 8.0+ (可选)

1. 克隆项目

git clone <repository-url> cd ai-agnet-base

2. 环境配置

后端环境配置

cd blank # 创建虚拟环境 python3 -m venv .venv # 激活虚拟环境 source .venv/bin/activate # Linux/Mac # 或 .venv\Scripts\activate # Windows # 安装依赖 pip install -r requirements.txt

前端环境配置

cd frontend # 安装依赖 npm install # 或 pnpm install # 或 yarn install

3. 数据库配置

创建 .env 文件:

cd blank cp env.example .env

编辑 .env 文件:

# 数据库配置 DATABASE_URL=mysql+aiomysql://username:password@localhost:3306/ai_agent_db # Redis配置 REDIS_URL=redis://localhost:6379 # Elasticsearch配置 (可选) ES_HOST=localhost ES_PORT=9200 # AI模型配置 QWEN3_API_KEY=your_api_key_here OPENAI_API_KEY=your_openai_key_here # 应用配置 HOST=0.0.0.0 PORT=8000 DEBUG=true

4. 数据库初始化

cd blank # 创建数据库 mysql -u root -p -e "CREATE DATABASE ai_agent_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" # 运行数据库迁移 alembic upgrade head # 初始化管理员账号 python3 scripts/init_admin.py

5. 启动服务

方式一:使用一键启动脚本

# 在项目根目录 chmod +x start_all.sh ./start_all.sh

方式二:分别启动

启动后端服务:

cd blank source .venv/bin/activate python3 main.py

启动前端服务:

cd frontend npm run dev # 或 pnpm dev # 或 yarn dev

6. 访问应用

🔧 配置说明

API路径配置

项目使用统一的context-path /ai-api

  • 认证接口: /ai-api/auth/*
  • 对话接口: /ai-api/conversation/*
  • 用户管理: /ai-api/users/*
  • 科研方案: /ai-api/research/*
  • 关键词扩展: /ai-api/keyword-expansion/*
  • 翻译服务: /ai-api/translation/*
  • 深度搜索: /ai-api/deep-search/*

环境变量配置

后端环境变量

变量名说明默认值
DATABASE_URLMySQL数据库连接URL-
REDIS_URLRedis连接URLredis://localhost:6379
ES_HOSTElasticsearch主机localhost
ES_PORTElasticsearch端口9200
QWEN3_API_KEY通义千问API密钥-
OPENAI_API_KEYOpenAI API密钥-
HOST服务监听地址0.0.0.0
PORT服务监听端口8000
DEBUG调试模式false

前端环境变量

变量名说明默认值
VITE_API_BASEAPI基础地址http://localhost:8000/ai-api

👥 用户管理

初始化管理员账号

项目提供了自动初始化管理员账号的脚本:

cd blank python3 scripts/init_admin.py

默认管理员账号:

  • 用户名: admin
  • 密码: admin123456
  • 邮箱: admin@example.com

用户权限

  • 普通用户: 可以使用所有AI智能体功能
  • 管理员: 拥有用户管理、系统配置等高级权限

用户操作

  • 注册: 支持用户名、邮箱、密码注册
  • 登录: JWT Token认证
  • 密码管理: 支持密码修改和重置
  • 个人信息: 支持头像、昵称等个人信息管理

🤖 AI智能体使用

对话智能体

// 前端调用示例 import { postJSON } from '@/services/api'; const response = await postJSON('/conversation/chat', { message: '你好,请介绍一下人工智能', model: 'qwen3', temperature: 0.7 });

科研方案智能体

const response = await postJSON('/research/topic', { research_direction: '机器学习', requirements: '需要包含算法原理和实现方案', model: 'qwen3' });

关键词扩展智能体

const response = await postJSON('/keyword-expansion/expand', { base_keywords: ['机器学习', '深度学习'], domain: '计算机科学', model: 'qwen3' });

翻译智能体

const response = await postJSON('/translation/translate', { text: 'Hello, how are you?', source_lang: 'en', target_lang: 'zh', model: 'qwen3' });

深度搜索智能体

const response = await postJSON('/deep-search/search', { query: '机器学习最新进展', filters: { year: '2024', domain: 'AI' }, model: 'qwen3' });

🚀 部署指南

开发环境

# 使用一键启动脚本 ./start_all.sh

生产环境

Docker部署

# docker-compose.yml version: '3.8' services: backend: build: ./blank ports: - "8000:8000" environment: - DATABASE_URL=mysql://user:pass@mysql:3306/ai_agent_db - REDIS_URL=redis://redis:6379 depends_on: - mysql - redis frontend: build: ./frontend ports: - "80:80" depends_on: - backend mysql: image: mysql:8.0 environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: ai_agent_db volumes: - mysql_data:/var/lib/mysql redis: image: redis:6-alpine volumes: - redis_data:/data volumes: mysql_data: redis_data:

Nginx反向代理

server { listen 80; server_name your-domain.com; # 前端静态文件 location / { root /var/www/frontend; try_files $uri $uri/ /index.html; } # API代理 location /ai-api/ { proxy_pass http://backend:8000/ai-api/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }

🧪 测试

API测试

# 测试API文档 curl http://localhost:8000/ai-api/docs # 测试认证接口 curl http://localhost:8000/ai-api/auth/me # 测试对话接口 curl -X POST http://localhost:8000/ai-api/conversation/chat \ -H "Content-Type: application/json" \ -d '{"message": "Hello", "model": "qwen3"}'

🔍 故障排除

常见问题

1. 数据库连接失败

# 检查MySQL服务状态 sudo systemctl status mysql # 检查数据库连接 mysql -u username -p -h localhost -P 3306

2. Redis连接失败

# 检查Redis服务状态 sudo systemctl status redis # 测试Redis连接 redis-cli ping

3. API 404错误

  • 检查API路径是否正确(包含/ai-api前缀)
  • 确认后端服务已启动
  • 检查路由配置是否正确

4. 前端无法连接后端

  • 检查VITE_API_BASE环境变量
  • 确认后端服务地址和端口
  • 检查CORS配置

日志查看

# 后端日志 tail -f backend.log # 前端日志 tail -f frontend.log # 系统日志 sudo journalctl -u your-service -f

📚 API文档

详细的API文档可通过以下方式访问:

🤝 贡献指南

  1. Fork 项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

📞 联系方式

  • 项目维护者: [您的姓名]
  • 邮箱: [您的邮箱]
  • 项目地址: [项目GitHub地址]

🙏 致谢

感谢以下开源项目和技术:


⭐ 如果这个项目对您有帮助,请给我们一个星标!