app-platform

app-platform

AppPlatform 是一个前沿的大模型应用工程,旨在通过集成的声明式编程和低代码配置工具,简化和优化大模型的训练与推理应用的开发过程。本工程为软件工程师和产品经理提供一个强大的、可扩展的环境,以支持从概念到部署的全流程 AI 应用开发。

Stars: 1282

Visit
 screenshot

AppPlatform is an advanced large-scale model application engineering aimed at simplifying the development process of AI applications through integrated declarative programming and low-code configuration tools. This project provides a powerful and scalable environment for software engineers and product managers to support the full-cycle development of AI applications from concept to deployment. The backend module is based on the FIT framework, utilizing a plugin-based development approach, including application management and feature extension modules. The frontend module is developed using React framework, focusing on core modules such as application development, application marketplace, intelligent forms, and plugin management. Key features include low-code graphical interface, powerful operators and scheduling platform, and sharing and collaboration capabilities. The project also provides detailed instructions for setting up and running both backend and frontend environments for development and testing.

README:

AppPlatform

AppPlatform 是一个前沿的大模型应用工程,旨在通过集成的声明式编程和低代码配置工具,简化 AI 应用的开发过程。本工程为软件工程师和产品经理提供一个强大的、可扩展的环境,以支持从概念到部署的全流程 AI 应用开发。 License JDK Node

核心架构

  1. AppPlatform 后端模块

    AppPlatform 后端基于 FIT 框架,采用插件化式开发,包含应用管理模块和功能扩展模块。其中应用管理模块为 AppPlatform 的核心模块,用于提供创建、管理、调试、运行和维护 AI 应用,该提供一个高效快捷的方式来开发具有复杂交互功能的 AI 应用。功能扩展模块通过组件节点的方式,丰富流程编排的能力,用户可根据需求自由组合,构建出符合业务逻辑的 AI 应用,该模块为组件节点的底层逻辑实现。应用流程运行基于 Waterflow 框架,方便高效地对流程和数据进行组织和处理。

  2. AppPlatform 前端模块

    AppPlatform 前端采用 React 框架进行开发,基于函数式组件构建,通过模块化设计实现了应用开发,应用市场,智能表单和插件管理等核心功能模块。其中应用开发模块为核心模块,提供可视化界面支持AI应用的完整生命周期管理,包含了应用创建,编排,调试,运行,和发布全流程;智能表单模块可通过 Json Schema 自动渲染可交互表单,与 AI 模型服务集成,实现表单填写与实时推理;插件模块支持开发者上传自定义插件扩展应用工程能力,并提供了插件安装和卸载等功能。此外,前端流程编排还基于 Elsa 图形引擎,Elsa 图形引擎是一款基于原生 JS 打造而成的先进图形处理工具。通过统一的数据格式,可以让图形跨平台跨应用进行展示和协作,为用户提供灵活、高性能的图形渲染与交互能力,适用于复杂可视化场景的开发需求。


关键特性

  1. 低代码图形化界面:产品人员可以通过直观的图形界面创建 AI 应用,而无需深入了解底层代码即可进行高效的编辑和调试。同时支持多模型协同运作,使用户能够根据特定的业务需求,将不同的 AI 模型通过编排整合到同一个应用流程中。
  2. 强大的算子与调度平台:通过 FIT 与 Waterflow 框架,AppPlatform 提供了一个高效、可扩展的后端架构,支持 Java、Python 等多种主流编程语言的算子开发,并通过智能调度实现优化的执行效率。
  3. 共享与协作: AppPlatform 的底层包含 Store 模版,用于将所有开发的 AI 应用统一存储,以此支持跨项目的复用和协作。开发者可以根据需要组合这些应用,打造更大的解决方案,或者利用社区提供的工具和模型。在 AppPlatform 中, AI 应用不仅限于传统意义上的 “应用”,它们可以是 “函数”、“RAG”、“智能体”等任何可解释和可执行的组件。这些组件在 Store 中以 “工具” 的形式展现,其元数据不仅提供了必要的解释,还为智能体自动调度这些工具提供了基础。

快速启动

1. 前置条件

名称 规格
CPU 2+ 核心
CPU 架构 x86
内存 4+ GB
软件 安装 Docker & Docker Compose

2. Docker Compose 启动

克隆项目并进入项目根目录,执行以下命令:/ Clone the repository and enter the project root directory, then run the following commands:

# 用户按需配置环境变量,例如模型名称、基础 URL 和 APIKEY等 / Configure environment variables as needed, including model name, base URL and APIKEY
cp docker/.env.example docker/.env
bash docker/deploy.sh

容器全部 Running 后,浏览器打开 http://localhost:8001 体验

如需修改数据库密码,二次启动前需要删除docker/app-platform-tmp目录

本地快速开发测试

本章节给出快速启动之后,本地快速开发测试的方法。

1. 编译代码

编写代码,在项目根目录下,执行以下命令编译:

mvn clean install

2. 一键部署修改

在项目根目录下,执行以下命令快速部署:

bash docker/dev-app-builder.sh

3. 测试

浏览器打开 http://localhost:8001 测试

源码编译启动

安装数据库

Windows 系统

  • 下载并安装 PostgresSQL支持版本 ≥ 14
  • 初始化数据。进入 shell 目录,使用 bash 工具执行 build_win.sh(当前不支持 cmd 执行,待规划):
cd shell
sh build_win.sh ${ip} ${port} ${username} ${password}

其中参数 ip、port、username、password 分别指的是数据库主机地址、数据库端口、数据用户名、数据库密码。该文件会初始化数据库内置数据,以及人工表单功能所需的数据。

Linux 系统

待规划

后端环境配置

开发环境配置

  • 开发环境:IntelliJ IDEA
  • Java 17
  • 代码格式化文件:CodeFormatterFromIdea.xml
  • Maven 配置:推荐版本 Maven 3.8.8+
  • FIT 框架编译产物:参考 FIT 框架环境配置构建编译产物

构建命令

mvn clean install

输出目录

build/

目录调整

需要将输出目录与 FIT 框架的编译产物结合。将输出目录的 plugins 目录下的所有文件复制到框架输出目录的 plugins 下,将 shared 目录下的所有文件复制到框架输出目录的 shared 下。

另外,需要删除 plugins 目录中如下开头的文件(app-platform 仓扩展了这些机制,已经存在对应的实现。否则会由于存在冲突导致启动失败)

fel-tool-discoverer
fel-tool-executor
fel-tool-repository-simple
fel-tool-factory-repository

后端模块基于 FIT 框架,启动方式采用了 FIT 动态插件 方式。

打开框架输出目录的 conf/fitframework.yml 文件,找到如下配置项

fit:
  beans:
    packages:
    - 'modelengine.fitframework'
    - 'modelengine.fit'

配置本地智能表单路径,首先创建目录.\app-builder\smart_form 此目录可根据实际情况修改,然后copy项目中的 example\app-demo\normal-formsmart-form中的所有内容到上述目录,打包template目录内容template.zip 并复制到smart-form 结果如下所示:

app-builder/
├── smart_form/
│   ├── 6befc536-7e6d-48b5-8dcb-1c4d04ca4e92
│   ├── 17b732c9-5272-42a6-a79d-8d0334a8aa19
│   ├── 7958d851-8062-49bd-b21e-d7372991c905
│   ├── b6255699-2e4f-409f-a578-b87b7435e389
│   ├── e85bd769-0212-4305-b56b-01e77faa14ff
│   ├── temporary
│   └── template.zip

加入数据库配置项,修改后的配置项如下所示:

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 替换为数据库连接池的最大活动连接数。
              # 可根据具体需求,添加连接池所需配置项。
app-engine:
   resource:
      path: ${localFormPath} # 配置本地的智能表单根路径,win下如 D:\\app-builder\\
   form:
      path-prefix: ${localFormPath} # 配置本地的智能表单根路径,win下如 D:\\app-builder\\


启动命令

在框架输出目录的 bin 目录下执行启动命令

fit start

这里直接使用了 fit 命令,该命令请参考 fit-framework 项目的指导手册

当前,app-platform 使用了 fit 的 3.5.1 版本,因此,如果采用手动编译,需要在 fit-framework 仓库中切换到 v3.5.1 标签处进行编译构建操作。

调试命令

fit debug

这里的调试命令背后使用了 Java 内置的远程调试命令,通过该技术,可以在进程启动之后,在 IDEA 中绑定启动端口进行远程调试。


前端环境配置

  • 开发环境:WebStormVisual Studio Code

  • 环境要求:node.js >= 20

  • ELSA 框架编译产物:参考 ELSA 的编译构建章节

修改 ELSA 依赖地址

进入目录 app-platform/frontend ,搜索 package.json 文件的 ELSA 依赖地址:

"dependencies": {
    "@fit-elsa/elsa-core": "file:${fitElsaCoreUrl}",
    "@fit-elsa/elsa-react": "file:${fitElsaReactUrl}",

${fitElsaCoreUrl}${fitElsaReactUrl} 分别改成 ELSA 框架编译产物 fit-elsa-corefit-react 的目录地址即可。

修改代理文件

修改 app-platform/frontend 目录下的 proxy.config.json 文件,可以修改需要访问的后端地址。如本地后端地址是 http://127.0.0.1:8080 。可以按照如下示例配置:

{
    "/api": {
       "target": "http://127.0.0.1:8080",
       "secure": false,
       "changeOrigin": true,
       "pathRewrite": {
          "^/api": ""
       }
    }
}

依赖安装

cd app-platform/frontend/
npm install

打包构建

package.json 中定义了多种打包脚本,这里以 build:single 为例:

npm run build:single

启动命令

npm run start

快速开始

模型配置

在对话中使用大模型功能,需要对模型进行配置,包括大模型的地址和鉴权信息。 首先在首页的应用市场一栏中找到 模型配置应用,并点击该应用。点击右上角创意灵感开始配置,如下图所示: model_config_inspiration 然后点击回答的 添加模型 按钮,输入模型名称、API Key 和模型地址,并点击确认。此时模型添加成功。

应用创建

在首页的应用开发一栏中点击创建空白应用。如下所示: app_create 输入所要创建的应用名称和简介,并点击 创建按钮,即可创建 AI 应用。接着在跳转后的应用配置页面上,在 大模型 一栏中选择自定义配置的模型。此时即可在对话框进行对话。如下所示: app_chat

文档

您可以从docs目录查看项目的完整文档,文档包含 AppPlatform 的快速入门指南和用户指导手册。

待完善

贡献

欢迎贡献者加入本项目。 请阅读 CONTRIBUTING.md,这将指导您完成分支管理、标签管理、提交规则、代码审查等内容。遵循这些指导有助于项目的高效开发和良好协作。

联系我们

  1. 如果发现问题,可以在该项目的 Issue 模块内提出。

For Tasks:

Click tags to check more tools for each tasks

For Jobs:

Alternative AI tools for app-platform

Similar Open Source Tools

For similar tasks

For similar jobs