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地址]

🙏 致谢

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


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

About

基础Ai智能体开发

Language
Python41.7%
Vue34.6%
TypeScript11.3%
Markdown8.1%
Others4.3%