Skip to content

Commit d4d488e

Browse files
wuayeewuayee
andauthored
[appBuilder] 增加 readme 的快速开始模块 (#179)
Co-authored-by: wuayee <[email protected]>
1 parent eca8e9f commit d4d488e

File tree

10 files changed

+251
-153
lines changed

10 files changed

+251
-153
lines changed

README.md

Lines changed: 83 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# AppPlatform
22

3-
**AppPlatform 是一个前沿的大模型应用工程,旨在通过集成的声明式编程和低代码配置工具,简化和优化大模型的训练与推理应用的开发过程。本工程为软件工程师和产品经理提供一个强大的、可扩展的环境,以支持从概念到部署的全流程 AI 应用开发。**
3+
**AppPlatform 是一个前沿的大模型应用工程,旨在通过集成的声明式编程和低代码配置工具,简化 AI 应用的开发过程。本工程为软件工程师和产品经理提供一个强大的、可扩展的环境,以支持从概念到部署的全流程 AI 应用开发。**
44
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/license/MIT)
55
[![JDK](https://img.shields.io/badge/JDK-17-green.svg)](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html)
66
[![Node](https://img.shields.io/badge/node-20-red.svg)](https://nodejs.org/en/download)
@@ -24,6 +24,25 @@
2424
3. **共享与协作**: AppPlatform 的底层包含 Store 模版,用于将所有开发的 AI 应用统一存储,以此支持跨项目的复用和协作。开发者可以根据需要组合这些应用,打造更大的解决方案,或者利用社区提供的工具和模型。在 AppPlatform 中, AI 应用不仅限于传统意义上的 “应用”,它们可以是 “函数”、“RAG”、“智能体”等任何可解释和可执行的组件。这些组件在 Store 中以 “工具” 的形式展现,其元数据不仅提供了必要的解释,还为智能体自动调度这些工具提供了基础。
2525

2626
---------
27+
28+
## 安装数据库
29+
30+
### Windows 系统
31+
32+
- 下载并安装 [PostgresSQL](https://www.postgresql.org/download/)
33+
- 初始化数据。进入 `shell` 目录,使用 `bash` 工具执行 `build_win.sh`(当前不支持 `cmd` 执行,待规划):
34+
35+
```
36+
cd shell
37+
sh build_win.sh ${ip} ${port} ${username} ${password}
38+
```
39+
40+
其中参数 ip、port、username、password 分别指的是数据库主机地址、数据库端口、数据用户名、数据库密码。该文件会初始化数据库内置数据,以及人工表单功能所需的数据。
41+
42+
### Linux 系统
43+
44+
待规划
45+
2746
## 后端环境配置
2847

2948
开发环境配置
@@ -32,7 +51,7 @@
3251
- Java 17
3352
- 代码格式化文件:[CodeFormatterFromIdea.xml](CodeFormatterFromIdea.xml)
3453
- `Maven` 配置:推荐版本 Maven 3.8.8+
35-
- FIT 框架编译产物(链接待补充)
54+
- FIT 框架编译产物:参考 [FIT 框架](https://github.com/ModelEngine-Group/fit-framework)`环境配置`构建编译产物
3655

3756
**构建命令**
3857

@@ -52,6 +71,39 @@ build/
5271

5372
> 后端模块基于 [FIT](https://ModelEngine-Group/fit-framework) 框架,启动方式采用了 [FIT 动态插件](https://github.com/ModelEngine-Group/fit-framework/blob/main/docs/framework/fit/java/quick-start-guide/03.%20%E4%BD%BF%E7%94%A8%E6%8F%92%E4%BB%B6%E7%9A%84%E7%83%AD%E6%8F%92%E6%8B%94%E8%83%BD%E5%8A%9B.md) 方式。
5473
74+
打开框架输出目录的 `conf/fitframework.yml` 文件,找到如下配置项
75+
76+
```yml
77+
fit:
78+
beans:
79+
packages:
80+
- 'modelengine.fitframework'
81+
- 'modelengine.fit'
82+
```
83+
84+
加入数据库配置项,修改后的配置项如下所示:
85+
86+
```yml
87+
fit:
88+
beans:
89+
packages:
90+
- 'modelengine.fitframework'
91+
- 'modelengine.fit'
92+
datasource:
93+
primary: 'sample-datasource' # 表示所选用的示例数据源。
94+
instances:
95+
sample-datasource:
96+
mode: 'shared' # 表示该数据源的模式,可选共享(shared)或独占(exclusive)模式。
97+
url: 'jdbc:postgresql://${ip}:${port}/' # 将 ip 换成数据库服务器的 ip 地址,将 port 换成数据库服务器监听的端口。
98+
username: '${username}' # 将 username 替换为数据库的名称。
99+
password: '${password}' # 将 password 替换为数据库的密码。
100+
druid:
101+
initialSize: ${initialSize} # 将 initialSize 替换为连接池的初始化连接数。
102+
minIdle: ${midIdle} # 将 minIdle 替换为连接池的最小空闲连接数。
103+
maxActive: ${maxActive} # 将 maxActive 替换为数据库连接池的最大活动连接数。
104+
# 可根据具体需求,添加连接池所需配置项。
105+
```
106+
55107
**启动命令**
56108

57109
```
@@ -70,7 +122,22 @@ fit start -Dfit.profiles.active=prod
70122

71123
- 环境要求:node.js >= 20
72124

125+
- ELSA 框架编译产物:参考 ELSA 的编译构建章节(待补充)
126+
127+
**修改 ELSA 依赖地址**
128+
129+
进入目录 `app-engine\frontend` ,搜索 `package.json` 文件的 ELSA 依赖地址:
130+
131+
```
132+
"dependencies": {
133+
"@fit-elsa/elsa-core": "file:${fitElsaCoreUrl}",
134+
"@fit-elsa/elsa-react": "file:${fitElsaReactUrl}",
135+
```
136+
137+
`${fitElsaCoreUrl}``${fitElsaReactUrl}` 分别改成 `ELSA` 框架编译产物 `fit-elsa-core``fit-react` 的目录地址即可。
138+
73139
**修改代理文件**
140+
74141
修改 `AppPlatform/frontend` 目录下的 `proxy.config.json` 文件,可以修改需要访问的后端地址。如本地后端地址是 `http://127.0.0.1:8080` 。可以按照如下示例配置:
75142

76143
```json
@@ -89,13 +156,7 @@ fit start -Dfit.profiles.active=prod
89156
**依赖安装**
90157

91158
```
92-
cd framework/elsa/fit-elsa
93-
npm install
94-
npm run build:debug
95-
cd ../fit-elsa-react/
96-
npm install
97-
npm run build
98-
cd ../../../app-engine/frontend/
159+
cd app-engine/frontend/
99160
npm install
100161
```
101162

@@ -113,7 +174,19 @@ npm run start
113174
---------
114175
## 快速开始
115176

116-
**待完善**
177+
**模型配置**
178+
179+
在对话中使用大模型功能,需要对模型进行配置,包括大模型的地址和鉴权信息。
180+
首先在首页的`应用市场`一栏中找到 `模型配置应用`,并点击该应用。点击右上角`创意灵感``开始配置`,如下图所示:
181+
![image-20250508203127410](doc\images\readme\model_config_inspiration.png)
182+
然后点击回答的 `添加模型` 按钮,输入模型名称、API Key 和模型地址,并点击确认。此时模型添加成功。
183+
184+
**应用创建**
185+
186+
在首页的`应用开发`一栏中点击`创建空白应用`。如下所示:
187+
![image-20250508204618312](doc\images\readme\app_create.png)
188+
输入所要创建的应用名称和简介,并点击 `创建`按钮,即可创建 AI 应用。接着在跳转后的应用配置页面上,在 `大模型` 一栏中选择自定义配置的模型。此时即可在对话框进行对话。如下所示:
189+
![image-20250508205124203](doc\images\readme\app_chat.png)
117190

118191
## 文档
119192

app-engine/frontend/proxy.conf.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"secure": false,
55
"changeOrigin": true,
66
"pathRewrite": {
7-
"^/api/jober": "/api/jober",
7+
"^/api/jober": "",
88
"^/api": ""
99
}
1010
},
@@ -18,14 +18,14 @@
1818
},
1919
"/aippApi": {
2020
"target": "http://{ip}:{port}",
21-
"pathRewrite": { "^/aippApi": "/api/jober/v1/api" },
21+
"pathRewrite": { "^/aippApi": "/v1/api" },
2222
"secure": false,
2323
"changeOrigin": true
2424
},
2525
"/modelApi": {
2626
"target": "http://{ip}:{port}",
2727
"pathRewrite": {
28-
"^/modelApi": "/api"
28+
"^/modelApi": "/"
2929
},
3030
"secure": false,
3131
"changeOrigin": true

app-knowledge/plugins/knowledge-manager/src/main/resources/application.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,10 @@ fit:
2626
testOnBorrow: false
2727
testOnReturn: false
2828
mybatis:
29-
mapper-locations: mapper/*Mapper.xml
29+
mapper-locations: mapper/*Mapper.xml
30+
31+
knowledge:
32+
support-list:
33+
- groupId: qianfanKnowledge
34+
name: 百度千帆知识库
35+
description: 百度千帆知识库
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
fit:
22
beans:
33
packages:
4-
- 'modelengine.jade.knowledge'
4+
- 'modelengine.jade.knowledge'
5+
6+
openai-urls:
7+
internal: 'http://mock.com/'

doc/images/readme/app_chat.png

185 KB
Loading

doc/images/readme/app_create.png

123 KB
Loading
140 KB
Loading

shell/build_win.sh

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/bin/bash
2+
3+
./sql_build.sh
4+
./sql_exec.sh "$@"
5+
6+
current_dir=$(pwd)
7+
root_dir=$(echo $current_dir | cut -c 1-2)
8+
mkdir -p "${root_dir}"/var/share/smart_form
9+
10+
cp -r ../examples/app-demo/normal-form/* "${root_dir}"/var/share/smart_form/
11+
cp -r ../examples/smart-form/* "${root_dir}"/var/share/smart_form/
12+
13+
exit 0

shell/sql_build.sh

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
#!/bin/bash
2+
3+
directory="../sql" # 替换为实际目录路径
4+
5+
# 创建目录(若不存在)
6+
mkdir -p "$directory"
7+
8+
# 清空目录内容(仅在目录存在时执行)
9+
if [ -d "$directory" ]; then
10+
find "$directory" -mindepth 1 -delete
11+
fi
12+
13+
mkdir -p "$directory/schema"
14+
mkdir -p "$directory/data"
15+
16+
# app plugin相关sql语句
17+
app_plugin_schema_sql_list=$(find ../app-builder/jane/plugins/aipp-plugin/src/main/resources/sql/schema -name "*.sql")
18+
echo "${app_plugin_schema_sql_list}"
19+
for i in ${app_plugin_schema_sql_list}
20+
do
21+
cp "$i" "$directory/schema"
22+
done
23+
24+
app_plugin_data_sql_list=$(find ../app-builder/jane/plugins/aipp-plugin/src/main/resources/sql/data -name "*.sql")
25+
echo "${app_plugin_data_sql_list}"
26+
for i in ${app_plugin_data_sql_list}
27+
do
28+
cp "$i" "$directory/data"
29+
done
30+
31+
# store相关sql语句
32+
store_schema_sql_list=$(find ../carver/plugins/tool-repository-postgresql/src/main/resources/sql/schema -name "*.sql")
33+
echo "${store_schema_sql_list}"
34+
for i in ${store_schema_sql_list}
35+
do
36+
cp "$i" "$directory/schema"
37+
done
38+
39+
store_schema_sql_list_task=$(find ../store/plugins/store-repository-postgresql/src/main/resources/sql/schema -name "*.sql")
40+
echo "${store_schema_sql_list_task}"
41+
for i in ${store_schema_sql_list_task}
42+
do
43+
cp "$i" "$directory/schema"
44+
done
45+
46+
store_data_sql_list_task=$(find ../store/plugins/store-repository-postgresql/src/main/resources/sql/data -name "*.sql")
47+
echo "${store_data_sql_list_task}"
48+
for i in ${store_data_sql_list_task}
49+
do
50+
cp "$i" "$directory/data"
51+
done
52+
53+
# app-engine-announcement 相关sql 脚本
54+
app_announcement_schema_sql_list=$(find ../app-engine/plugins/app-announcement/src/main/resources/sql/schema -name "*.sql")
55+
echo "${app_announcement_schema_sql_list}"
56+
for i in ${app_announcement_schema_sql_list}
57+
do
58+
cp "$i" "$directory/schema"
59+
done
60+
61+
# app-engine-metrics 相关sql 脚本
62+
app_metrics_schema_sql_list=$(find ../app-engine/plugins/app-metrics/src/main/resources/sql/schema -name "*.sql")
63+
echo "${app_metrics_schema_sql_list}"
64+
for i in ${app_metrics_schema_sql_list}
65+
do
66+
cp "$i" "$directory/schema"
67+
done
68+
69+
app_base_schema_sql_list=$(find ../app-engine/plugins/app-base/src/main/resources/sql/schema -name "*.sql")
70+
echo "${app_base_schema_sql_list}"
71+
for i in ${app_base_schema_sql_list}
72+
do
73+
cp "$i" "$directory/schema"
74+
done
75+
76+
# app-eval 相关 sql 脚本
77+
eval_dataset_schema_sql_list=$(find ../app-eval/plugins/eval-dataset/src/main/resources/sql/schema -name "*.sql")
78+
echo "${eval_dataset_schema_sql_list}"
79+
for i in ${eval_dataset_schema_sql_list}
80+
do
81+
cp "$i" "$directory/schema"
82+
done
83+
84+
eval_task_schema_sql_list=$(find ../app-eval/plugins/eval-task/src/main/resources/sql/schema -name "*.sql")
85+
echo "${eval_task_schema_sql_list}"
86+
for i in ${eval_task_schema_sql_list}
87+
do
88+
cp "$i" "$directory/schema"
89+
done
90+
91+
app_worker_schema_sql_list=$(find ../app-eval/plugins/simple-uid-generator/src/main/resources/sql/schema -name "*.sql")
92+
echo "${app_worker_schema_sql_list}"
93+
for i in ${app_worker_schema_sql_list}
94+
do
95+
cp "$i" "$directory/schema"
96+
done
97+
98+
# 自定义模型相关 sql 脚本
99+
app_model_center_schema_sql_list=$(find ../app-builder/plugins/aipp-custom-model-center/src/main/resources/sql/schema -name "*.sql")
100+
echo "${app_model_center_schema_sql_list}"
101+
for i in ${app_model_center_schema_sql_list}
102+
do
103+
cp "$i" "$directory/schema"
104+
done
105+
106+
app_model_center_data_sql_list=$(find ../app-builder/plugins/aipp-custom-model-center/src/main/resources/sql/data -name "*.sql")
107+
echo "${app_model_center_data_sql_list}"
108+
for i in ${app_model_center_data_sql_list}
109+
do
110+
cp "$i" "$directory/data"
111+
done
112+
113+
# 自定义知识库相关 sql 脚本
114+
app_knowledge_schema_sql_list=$(find ../app-knowledge/plugins/knowledge-manager/src/main/resources/sql/schema -name "*.sql")
115+
echo "${app_knowledge_schema_sql_list}"
116+
for i in ${app_knowledge_schema_sql_list}
117+
do
118+
cp "$i" "$directory/schema"
119+
done
120+
121+
app_knowledge_data_sql_list=$(find ../app-knowledge/plugins/knowledge-manager/src/main/resources/sql/data -name "*.sql")
122+
echo "${app_knowledge_data_sql_list}"
123+
for i in ${app_knowledge_data_sql_list}
124+
do
125+
cp "$i" "$directory/data"
126+
done
127+
128+
# wenjie 相关 sql 脚本
129+
app_wenjie_data_sql_list=$(find ../app-builder/plugins/plugins-show-case-parent/aito-data/src/main/resources/sql/data -name "*.sql")
130+
echo "${app_wenjie_data_sql_list}"
131+
for i in ${app_wenjie_data_sql_list}
132+
do
133+
cp "$i" "$directory/data"
134+
done
135+
136+
exit 0
137+
138+

0 commit comments

Comments
 (0)