后端架构概览
Nexent 的后端采用 FastAPI 和 Python 构建,为 AI 智能体服务提供强大且可扩展的 API 平台。
技术栈
- 框架: FastAPI
- 语言: Python 3.10+
- 数据库: PostgreSQL + Redis + Elasticsearch
- 文件存储: MinIO
- 任务队列: Celery + Ray
- AI框架: smolagents
- 向量数据库: Elasticsearch
目录结构
backend/
├── apps/ # API应用层
│ ├── base_app.py # FastAPI主应用
│ ├── agent_app.py # 代理相关API
│ ├── conversation_management_app.py # 对话管理API
│ ├── file_management_app.py # 文件管理API
│ ├── knowledge_app.py # 知识库API
│ ├── model_managment_app.py # 模型管理API
│ ├── config_sync_app.py # 配置同步API
│ └── voice_app.py # 语音相关API
├── services/ # 业务服务层
│ ├── agent_service.py # 代理业务逻辑
│ ├── conversation_management_service.py # 对话管理
│ ├── elasticsearch_service.py # 搜索引擎服务
│ ├── model_health_service.py # 模型健康检查
│ ├── prompt_service.py # 提示词服务
│ └── tenant_config_service.py # 租户配置服务
├── database/ # 数据访问层
│ ├── client.py # 数据库连接
│ ├── db_models.py # 数据库模型
│ ├── agent_db.py # 代理数据操作
│ ├── conversation_db.py # 对话数据操作
│ ├── knowledge_db.py # 知识库数据操作
│ └── tenant_config_db.py # 租户配置数据操作
├── agents/ # 代理核心逻辑
│ ├── agent_run_manager.py # 代理运行管理器
│ ├── create_agent_info.py # 代理信息创建
│ └── default_agents/ # 默认代理配置
├── data_process/ # 数据处理模块
│ ├── app.py # 数据处理应用
│ ├── config.py # 数据处理配置
│ ├── tasks.py # 数据处理任务
│ ├── worker.py # 数据处理工作器
│ └── utils.py # 数据处理工具
├── utils/ # 工具类
│ ├── auth_utils.py # 认证工具
│ ├── config_utils.py # 配置工具
│ ├── file_management_utils.py # 文件管理工具
│ ├── logging_utils.py # 日志工具
│ └── thread_utils.py # 线程工具
├── consts/ # 常量定义
│ ├── const.py # 系统常量
│ └── model.py # 数据模型
├── prompts/ # 提示词模板
│ ├── knowledge_summary_agent.yaml # 知识库摘要代理
│ ├── manager_system_prompt_template.yaml # 管理器系统提示词
│ └── utils/ # 提示词工具
├── sql/ # SQL脚本
├── assets/ # 后端资源文件
├── main_service.py # 主服务入口
├── data_process_service.py # 数据处理服务入口
└── requirements.txt # Python依赖
架构职责
应用层 (apps)
- API路由定义
- 请求参数验证
- 响应格式化
- 身份验证和授权
服务层 (services)
- 核心业务逻辑实现
- 数据处理和转换
- 外部服务集成
- 业务规则执行
数据层 (database)
- 数据库操作和ORM模型
- 数据访问接口
- 事务管理
- 数据一致性和完整性
代理层 (agents)
- AI代理核心逻辑和执行
- 工具调用和集成
- 推理和决策制定
- 代理生命周期管理
工具层 (utils)
- 通用工具函数
- 配置管理
- 日志和监控
- 线程和进程管理
核心服务
代理管理
- 代理创建和配置
- 执行生命周期管理
- 工具集成和调用
- 性能监控
对话管理
- 消息处理和存储
- 上下文管理
- 历史记录跟踪
- 多租户支持
知识库
- 文档处理和索引
- 向量搜索和检索
- 内容摘要
- 知识图谱构建
文件管理
- 多格式文件处理
- MinIO存储集成
- 批处理能力
- 元数据提取
模型集成
- 多模型提供商支持
- 健康监控和故障转移
- 负载均衡和缓存
- 性能优化
数据流架构
1. 用户请求流程
用户输入 → 前端验证 → API调用 → 后端路由 → 业务服务 → 数据访问 → 数据库
2. AI Agent执行流程
用户消息 → Agent创建 → 工具调用 → 模型推理 → 流式响应 → 结果保存
3. 知识库文件处理流程
文件上传 → 临时存储 → 数据处理 → 向量化 → 知识库存储 → 索引更新
4. 实时文件处理流程
文件上传 → 临时存储 → 数据处理 → Agent → 回答
部署架构
容器服务
- nexent: 后端服务 (端口 5010)
- nexent-data-process: 数据处理服务 (端口 5012)
- nexent-postgresql: 数据库 (端口 5434)
- nexent-elasticsearch: 搜索引擎 (端口 9210)
- nexent-minio: 对象存储 (端口 9010)
- redis: 缓存服务 (端口 6379)
可选服务
- nexent-openssh-server: 终端工具的SSH服务器 (端口 2222)
开发设置
环境搭建
bash
cd backend
uv sync && uv pip install -e ../sdk
服务启动
bash
python backend/data_process_service.py # 数据处理服务
python backend/main_service.py # 主服务
python backend/nexent_mcp_service.py # MCP服务
性能和可扩展性
异步架构
- 基于asyncio的高性能异步处理
- 线程安全的并发处理机制
- 针对分布式任务队列优化
缓存策略
- 多层缓存提升响应速度
- Redis用于会话和临时数据
- Elasticsearch用于搜索结果缓存
负载均衡
- 智能并发限制
- 资源池管理
- 自动扩展能力
详细的后端开发指南,请参阅 开发指南。