环境要求
大约 3 分钟frameworkintro
运行环境要求
- Java: 17
- NodeJs: 18
- Maven: 3.8+
- MySql: 5.7+
- Redis: 5.0+
- 向量数据库: Milvus / PgVector / Redis Stack
- 大模型: OpenAI GPT / Claude / DeepSeek / 国产大模型等
Java17与NodeJs18的说明
- 由于采用Java17,Java 模块化系统(Java Module System)的安全限制导致的针对反射等场景有可能会出现如下错误:
Cause: java.lang.reflect.InaccessibleObjectException: Unable to make field protected java.lang.reflect.InvocationHandler java.lang.reflect.Proxy.h accessible: module java.base does not "opens java.lang.reflect" to unnamed module @223aa2f7
- 解决方案:在启动参数中添加
--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED
- 如:
java --add-opens java.base/java.lang=ALL-UNNAMED -jar your-application.jar
- 如:
- 由于采用NodeJs18,OpenSSL3.0对算法和秘钥大小增加了更为严格的限制,可能会导致安装失败或打包失败出现如下错误:
Error: error:0308010C:digital envelope routines::unsupported
- 解决方案:在ide的终端执行如下命令
- Linux & Mac OS:
export NODE_OPTIONS=--openssl-legacy-provider
- Windows:
set NODE_OPTIONS=--openssl-legacy-provider
- Linux & Mac OS:
项目目录结构
BladeX-AI
├── modules -- 核心业务模块
│ ├── config -- 系统配置模块
│ │ └── DataConfiguration.java -- 数据源配置
│ └── aigc -- AI生成内容核心模块
│ ├── api -- API接口层
│ │ ├── endpoint -- RESTful API端点
│ │ │ ├── ChatEndpoint.java -- 大模型对话API
│ │ │ ├── ModelEndpoint.java -- 模型管理API
│ │ │ ├── FlowEndpoint.java -- 工作流API
│ │ │ ├── RagEndpoint.java -- RAG检索API
│ │ │ └── McpEndpoint.java -- MCP工具API
│ │ ├── auth -- API认证授权
│ │ └── exception -- API异常处理
│ ├── llm -- 大语言模型模块
│ │ ├── engine -- LLM引擎核心
│ │ │ ├── provider -- 模型提供商适配
│ │ │ │ ├── openai -- OpenAI模型适配
│ │ │ │ ├── anthropic -- Claude模型适配
│ │ │ │ ├── deepseek -- DeepSeek模型适配
│ │ │ │ ├── ollama -- Ollama本地模型适配
│ │ │ │ ├── volcengine -- 火山引擎适配
│ │ │ │ └── siliconflow -- 硅流适配
│ │ │ ├── service -- LLM服务接口
│ │ │ ├── model -- 数据模型定义
│ │ │ ├── config -- 模型配置管理
│ │ │ └── process -- 消息处理流程
│ │ └── business -- LLM业务逻辑
│ │ ├── controller -- 控制器
│ │ ├── service -- 业务服务
│ │ ├── mapper -- 数据访问层
│ │ ├── pojo -- 业务对象
│ │ ├── wrapper -- 包装器
│ │ └── cache -- 缓存管理
│ ├── flow -- 智能体工作流模块
│ │ ├── engine -- 工作流引擎核心
│ │ │ ├── provider -- 工作流执行提供者
│ │ │ │ ├── node -- 节点执行器实现
│ │ │ │ │ ├── StartNodeExecutor.java -- 开始节点
│ │ │ │ │ ├── EndNodeExecutor.java -- 结束节点
│ │ │ │ │ ├── LLMNodeExecutor.java -- LLM对话节点
│ │ │ │ │ ├── RagNodeExecutor.java -- RAG检索节点
│ │ │ │ │ ├── SwitchNodeExecutor.java -- 条件分支节点
│ │ │ │ │ ├── HttpNodeExecutor.java -- HTTP请求节点
│ │ │ │ │ ├── DbNodeExecutor.java -- 数据库节点
│ │ │ │ │ ├── CodeNodeExecutor.java -- 代码执行节点
│ │ │ │ │ ├── TextNodeExecutor.java -- 文本处理节点
│ │ │ │ │ ├── UpdateVarNodeExecutor.java -- 变量更新节点
│ │ │ │ │ ├── QuestionNodeExecutor.java -- 问题分类节点
│ │ │ │ │ ├── ExtractNodeExecutor.java -- 信息提取节点
│ │ │ │ │ ├── OptimizeNodeExecutor.java -- 内容优化节点
│ │ │ │ │ ├── McpNodeExecutor.java -- MCP工具节点
│ │ │ │ │ └── NoticeNodeExecutor.java -- 通知节点
│ │ │ │ ├── model -- 工作流模型
│ │ │ │ ├── BladeFlowExecutor.java -- 工作流执行器
│ │ │ │ └── NodeExecutorFactory.java -- 节点执行器工厂
│ │ │ ├── context -- 执行上下文
│ │ │ ├── tool -- 工具类
│ │ │ ├── config -- 配置管理
│ │ │ ├── enums -- 枚举定义
│ │ │ ├── constant -- 常量定义
│ │ │ └── exception -- 异常处理
│ │ └── business -- 工作流业务逻辑
│ ├── rag -- 检索增强生成模块
│ │ ├── engine -- RAG引擎核心
│ │ │ ├── provider -- RAG提供者
│ │ │ ├── service -- RAG服务接口
│ │ │ ├── process -- 检索处理流程
│ │ │ ├── config -- RAG配置
│ │ │ ├── constant -- 常量定义
│ │ │ └── exception -- 异常处理
│ │ └── business -- RAG业务逻辑
│ ├── kb -- 知识库管理模块
│ │ ├── engine -- 知识库引擎核心
│ │ │ ├── handler -- 文档处理器
│ │ │ ├── segment -- 文档分割引擎
│ │ │ ├── service -- 知识库服务
│ │ │ ├── tool -- 工具类
│ │ │ ├── support -- 支持组件
│ │ │ ├── progress -- 处理进度管理
│ │ │ ├── config -- 配置管理
│ │ │ ├── constant -- 常量定义
│ │ │ └── exception -- 异常处理
│ │ └── business -- 知识库业务逻辑
│ └── tool -- AI工具模块
│ ├── engine -- 工具引擎核心
│ └── business -- 工具业务逻辑
└── resources -- 资源文件
├── application.yml -- 应用配置
├── sql -- SQL脚本
└── static -- 静态资源