LLMOps Platform 是一个企业级大语言模型应用开发与运维平台 ,基于现代化微服务架构设计,提供从AI应用创建、知识库管理、工作流编排到API集成的全链路解决方案。该项目展示了完整的LLMOps工程实践,适合作为学习和面试的技术参考。
🎯 生产级架构 :采用分层架构 + 依赖注入,代码结构清晰,易于维护和扩展
🔧 多模型集成 :统一接口管理OpenAI、百度千帆、Ollama等多种LLM提供商
🚀 工作流引擎 :基于LangGraph的可视化工作流编排,支持复杂业务逻辑
📊 智能检索 :FAISS向量数据库 + BM25混合检索,提供高精度知识库问答
🔌 插件化设计 :支持自定义工具和API集成,具备良好的扩展性
💾 异步处理 :Celery异步任务队列,处理文档解析、向量化等耗时操作
🔐 企业级安全 :JWT认证 + RBAC权限控制,支持多租户管理
ReACT模式 :基于推理-行动循环的智能体架构
多模型支持 :OpenAI GPT-4、百度千帆、Ollama本地模型
工具调用 :支持函数调用和外部API集成
长期记忆 :基于摘要的对话记忆机制
流式输出 :支持实时流式响应,提升用户体验
多格式支持 :PDF、Word、Excel、Markdown、TXT等
智能分块 :基于语义的文档分块策略,优化检索效果
混合检索 :FAISS向量检索 + BM25关键词检索
重排序 :使用Cross-Encoder对检索结果重排序
增量更新 :支持知识库的增量更新和版本管理
可视化设计 :基于Vue Flow的拖拽式工作流设计器
丰富节点类型 :
LLM节点:大语言模型调用
代码执行节点:Python代码执行
HTTP请求节点:外部API调用
知识库检索节点:向量检索
条件判断节点:流程控制
变量系统 :支持节点间数据传递和变量管理
错误处理 :完善的异常处理和重试机制
内置工具 :计算器、天气查询、代码执行器
API工具 :支持OpenAPI 3.0规范的第三方API
自定义工具 :灵活的插件机制,支持Python函数封装
工具链 :支持多个工具的组合调用
会话持久化 :完整的对话历史存储
上下文管理 :智能的上下文窗口管理
多轮对话 :支持复杂的多轮交互
思维链可视化 :展示Agent的推理过程
实时监控 :API调用量、响应时间、错误率
成本分析 :Token消耗统计和成本计算
用户行为 :用户活跃度和使用模式分析
可视化报表 :基于ECharts的数据可视化
技术
版本
用途
特点
Python
3.8+
核心开发语言
丰富的AI生态
Flask
3.0+
Web框架
轻量级、灵活
SQLAlchemy
2.0+
ORM框架
支持异步操作
PostgreSQL
12+
关系型数据库
高性能、可扩展
Redis
6+
缓存/消息队列
高性能内存数据库
Celery
5.3+
异步任务处理
分布式任务队列
LangChain
0.2+
LLM应用框架
丰富的LLM集成
LangGraph
0.2+
工作流编排
状态图工作流
FAISS
-
向量数据库
Facebook开源,高性能
Weaviate
1.23.7
向量数据库
云原生向量数据库
技术
版本
用途
特点
Vue 3
3.4+
前端框架
Composition API
TypeScript
5.4+
类型系统
类型安全
Vite
5.2+
构建工具
快速热重载
Pinia
2.1+
状态管理
Vue 3官方推荐
Tailwind CSS
3.4+
样式框架
原子化CSS
Arco Design
2.55+
UI组件库
字节跳动开源
Vue Flow
1.41+
工作流可视化
基于React Flow
ECharts
5.6+
数据可视化
Apache开源
┌─────────────────────────────────────────────────────────────┐
│ 前端层 (Vue 3 + TypeScript) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 应用管理 │ │ 知识库 │ │ 工作流 │ │ 数据分析 │ │
│ │ Agent │ │ Dataset │ │ Workflow │ │ Analysis │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────┘
│ RESTful API (JWT认证)
┌─────────────────────────────────────────────────────────────┐
│ API网关层 (Flask + 中间件) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 认证 │ │ 限流 │ │ 日志 │ │ CORS │ │
│ │ Auth │ │RateLimit │ │ Logging │ │ CORS │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ 业务逻辑层 (分层架构 + DI) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Handler │ │ Service │ │ Model │ │ Schema │ │
│ │ 控制器 │ │ 业务逻辑 │ │ 数据模型 │ │ 数据验证 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ 核心能力层 (LangChain生态) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ Agent │ │ Workflow │ │ Retrieval│ │ Tools │ │
│ │ 智能体 │ │ 工作流 │ │ 检索器 │ │ 工具集 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ LLM │ │Embeddings│ │ Memory │ │ FileExt │ │
│ │ 语言模型 │ │ 向量化 │ │ 记忆 │ │ 文件解析 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ 异步任务层 (Celery) │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │ 文档解析 │ │ 向量化 │ │ 模型调用 │ │ 数据同步 │ │
│ │ Task │ │ Task │ │ Task │ │ Task │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────────┐
│ 数据存储层 │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │PostgreSQL│ │ Redis │ │ Weaviate │ │ COS │ │
│ │ 关系数据 │ │ 缓存 │ │ 向量数据 │ │ 对象存储 │ │
│ └──────────┘ └──────────┘ └──────────┘ └──────────┘ │
└─────────────────────────────────────────────────────────────┘
1. 依赖注入(Dependency Injection)
# 使用injector实现依赖注入
from injector import inject , singleton
@singleton
class AppService :
@inject
def __init__ (self , app_repo : AppRepository ):
self .app_repo = app_repo
2. 策略模式(Strategy Pattern)
# LLM提供商策略
class LanguageModelManager :
def get_model (self , provider : str , model_name : str ):
strategy = self ._get_strategy (provider )
return strategy .create_model (model_name )
# 工作流节点工厂
class NodeFactory :
@staticmethod
def create_node (node_type : str , config : dict ):
return NODE_REGISTRY [node_type ](config )
4. 观察者模式(Observer Pattern)
# Celery任务状态监听
@celery .task (bind = True )
def process_document (self , document_id ):
# 任务状态更新通知
self .update_state (state = 'PROGRESS' , meta = {'progress' : 50 })
Python : 3.8+
Node.js : 16+
PostgreSQL : 12+
Redis : 6+
Docker : 20.10+
# 克隆项目
git clone https://github.com/your-username/ll