AppPlatform 是一个前沿的大模型应用工程,旨在通过集成的声明式编程和低代码配置工具,简化 AI 应用的开发过程。本工程为软件工程师和产品经理提供一个强大的、可扩展的环境,以支持从概念到部署的全流程 AI 应用开发。
-
AppPlatform 后端模块
AppPlatform 后端基于 FIT 框架,采用插件化式开发,包含应用管理模块和功能扩展模块。其中应用管理模块为 AppPlatform 的核心模块,用于提供创建、管理、调试、运行和维护 AI 应用,该提供一个高效快捷的方式来开发具有复杂交互功能的 AI 应用。功能扩展模块通过组件节点的方式,丰富流程编排的能力,用户可根据需求自由组合,构建出符合业务逻辑的 AI 应用,该模块为组件节点的底层逻辑实现。应用流程运行基于 Waterflow 框架,方便高效地对流程和数据进行组织和处理。
-
AppPlatform 前端模块
AppPlatform 前端采用 React 框架进行开发,基于函数式组件构建,通过模块化设计实现了应用开发,应用市场,智能表单和插件管理等核心功能模块。其中应用开发模块为核心模块,提供可视化界面支持AI应用的完整生命周期管理,包含了应用创建,编排,调试,运行,和发布全流程;智能表单模块可通过 Json Schema 自动渲染可交互表单,与 AI 模型服务集成,实现表单填写与实时推理;插件模块支持开发者上传自定义插件扩展应用工程能力,并提供了插件安装和卸载等功能。此外,前端流程编排还基于 Elsa 图形引擎,Elsa 图形引擎是一款基于原生 JS 打造而成的先进图形处理工具。通过统一的数据格式,可以让图形跨平台跨应用进行展示和协作,为用户提供灵活、高性能的图形渲染与交互能力,适用于复杂可视化场景的开发需求。
- 低代码图形化界面:产品人员可以通过直观的图形界面创建 AI 应用,而无需深入了解底层代码即可进行高效的编辑和调试。同时支持多模型协同运作,使用户能够根据特定的业务需求,将不同的 AI 模型通过编排整合到同一个应用流程中。
- 强大的算子与调度平台:通过 FIT 与 Waterflow 框架,AppPlatform 提供了一个高效、可扩展的后端架构,支持 Java、Python 等多种主流编程语言的算子开发,并通过智能调度实现优化的执行效率。
- 共享与协作: AppPlatform 的底层包含 Store 模版,用于将所有开发的 AI 应用统一存储,以此支持跨项目的复用和协作。开发者可以根据需要组合这些应用,打造更大的解决方案,或者利用社区提供的工具和模型。在 AppPlatform 中, AI 应用不仅限于传统意义上的 “应用”,它们可以是 “函数”、“RAG”、“智能体”等任何可解释和可执行的组件。这些组件在 Store 中以 “工具” 的形式展现,其元数据不仅提供了必要的解释,还为智能体自动调度这些工具提供了基础。
- 下载并安装 PostgresSQL
- 初始化数据。进入
shell
目录,使用bash
工具执行build_win.sh
(当前不支持cmd
执行,待规划):
cd shell
sh build_win.sh ${ip} ${port} ${username} ${password}
其中参数 ip、port、username、password 分别指的是数据库主机地址、数据库端口、数据用户名、数据库密码。该文件会初始化数据库内置数据,以及人工表单功能所需的数据。
待规划
开发环境配置
- 开发环境:
IntelliJ IDEA
- Java 17
- 代码格式化文件:CodeFormatterFromIdea.xml
Maven
配置:推荐版本 Maven 3.8.8+- FIT 框架编译产物:参考 FIT 框架 的
环境配置
构建编译产物
构建命令
mvn clean install
输出目录
build/
目录调整
需要将输出目录与 FIT 框架的编译产物结合。将输出目录的 plugins
目录下的所有文件复制到框架输出目录的 plugins
下,将 shared
目录下的所有文件复制到框架输出目录的 shared
下。
打开框架输出目录的 conf/fitframework.yml
文件,找到如下配置项
fit:
beans:
packages:
- 'modelengine.fitframework'
- 'modelengine.fit'
加入数据库配置项,修改后的配置项如下所示:
fit:
beans:
packages:
- 'modelengine.fitframework'
- 'modelengine.fit'
datasource:
primary: 'sample-datasource' # 表示所选用的示例数据源。
instances:
sample-datasource:
mode: 'shared' # 表示该数据源的模式,可选共享(shared)或独占(exclusive)模式。
url: 'jdbc:postgresql://${ip}:${port}/' # 将 ip 换成数据库服务器的 ip 地址,将 port 换成数据库服务器监听的端口。
username: '${username}' # 将 username 替换为数据库的名称。
password: '${password}' # 将 password 替换为数据库的密码。
druid:
initialSize: ${initialSize} # 将 initialSize 替换为连接池的初始化连接数。
minIdle: ${midIdle} # 将 minIdle 替换为连接池的最小空闲连接数。
maxActive: ${maxActive} # 将 maxActive 替换为数据库连接池的最大活动连接数。
# 可根据具体需求,添加连接池所需配置项。
启动命令
fit start -Dfit.profiles.active=prod
这里直接使用了
fit
命令,该命令请参考fit-framework
项目的指导手册。当前,
app-platform
使用了fit
的 3.5.0-M2 版本,因此,如果采用手动编译,需要在fit-framework
仓库中切换到v3.5.0-M2
标签处进行编译构建操作。
-
开发环境:
WebStorm
、Visual Studio Code
-
环境要求:node.js >= 20
-
ELSA 框架编译产物:参考 ELSA 的编译构建章节
修改 ELSA 依赖地址
进入目录 app-engine\frontend
,搜索 package.json
文件的 ELSA 依赖地址:
"dependencies": {
"@fit-elsa/elsa-core": "file:${fitElsaCoreUrl}",
"@fit-elsa/elsa-react": "file:${fitElsaReactUrl}",
将 ${fitElsaCoreUrl}
和 ${fitElsaReactUrl}
分别改成 ELSA
框架编译产物 fit-elsa-core
和 fit-react
的目录地址即可。
修改代理文件
修改 AppPlatform/frontend
目录下的 proxy.config.json
文件,可以修改需要访问的后端地址。如本地后端地址是 http://127.0.0.1:8080
。可以按照如下示例配置:
{
"/api": {
"target": "http://127.0.0.1:5520",
"secure": false,
"changeOrigin": true,
"pathRewrite": {
"^/api": ""
}
}
}
依赖安装
cd app-engine/frontend/
npm install
打包构建
npm run build
启动命令
npm run start
模型配置
在对话中使用大模型功能,需要对模型进行配置,包括大模型的地址和鉴权信息。
首先在首页的应用市场
一栏中找到 模型配置应用
,并点击该应用。点击右上角创意灵感
的开始配置
,如下图所示:
然后点击回答的
添加模型
按钮,输入模型名称、API Key 和模型地址,并点击确认。此时模型添加成功。
应用创建
在首页的应用开发
一栏中点击创建空白应用
。如下所示:
输入所要创建的应用名称和简介,并点击
创建
按钮,即可创建 AI 应用。接着在跳转后的应用配置页面上,在 大模型
一栏中选择自定义配置的模型。此时即可在对话框进行对话。如下所示:
您可以从docs
目录查看项目的完整文档,文档包含 AppPlatform 的快速入门指南和用户指导手册。
待完善
欢迎贡献者加入本项目。 请阅读 CONTRIBUTING.md,这将指导您完成分支管理、标签管理、提交规则、代码审查等内容。遵循这些指导有助于项目的高效开发和良好协作。
- 如果发现问题,可以在该项目的
Issue
模块内提出。