Skip to content

Commit ea0ab5e

Browse files
committed
feat: support lark document
--story=1017908 --user=王孝刚 【知识库】 - X-Pack支持对接飞书文档 https://www.tapd.cn/57709429/s/1673069
1 parent e995a66 commit ea0ab5e

File tree

14 files changed

+565
-138
lines changed

14 files changed

+565
-138
lines changed

ui/src/api/dataset.ts

Lines changed: 95 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,19 @@ import type { datasetData } from '@/api/type/dataset'
44
import type { pageRequest } from '@/api/type/common'
55
import type { ApplicationFormType } from '@/api/type/application'
66
import { type Ref } from 'vue'
7+
78
const prefix = '/dataset'
89

910
/**
1011
* 获取分页知识库
11-
* @param 参数
12+
* @param 参数
1213
* page {
13-
"current_page": "string",
14-
"page_size": "string",
15-
}
14+
"current_page": "string",
15+
"page_size": "string",
16+
}
1617
* param {
17-
"name": "string",
18-
}
18+
"name": "string",
19+
}
1920
*/
2021
const getDataset: (
2122
page: pageRequest,
@@ -46,28 +47,28 @@ const delDataset: (dataset_id: String, loading?: Ref<boolean>) => Promise<Result
4647

4748
/**
4849
* 创建知识库
49-
* @param 参数
50+
* @param 参数
5051
* {
51-
"name": "string",
52-
"desc": "string",
53-
"documents": [
54-
{
55-
"name": "string",
56-
"paragraphs": [
57-
{
58-
"content": "string",
59-
"title": "string",
60-
"problem_list": [
61-
{
62-
"id": "string",
63-
"content": "string"
64-
}
65-
]
66-
}
67-
]
68-
}
69-
]
70-
}
52+
"name": "string",
53+
"desc": "string",
54+
"documents": [
55+
{
56+
"name": "string",
57+
"paragraphs": [
58+
{
59+
"content": "string",
60+
"title": "string",
61+
"problem_list": [
62+
{
63+
"id": "string",
64+
"content": "string"
65+
}
66+
]
67+
}
68+
]
69+
}
70+
]
71+
}
7172
*/
7273
const postDataset: (data: datasetData, loading?: Ref<boolean>) => Promise<Result<any>> = (
7374
data,
@@ -78,29 +79,46 @@ const postDataset: (data: datasetData, loading?: Ref<boolean>) => Promise<Result
7879

7980
/**
8081
* 创建Web知识库
81-
* @param 参数
82+
* @param 参数
8283
* {
83-
"name": "string",
84-
"desc": "string",
85-
"source_url": "string",
86-
"selector": "string",
87-
}
84+
"name": "string",
85+
"desc": "string",
86+
"source_url": "string",
87+
"selector": "string",
88+
}
8889
*/
8990
const postWebDataset: (data: any, loading?: Ref<boolean>) => Promise<Result<any>> = (
9091
data,
9192
loading
9293
) => {
9394
return post(`${prefix}/web`, data, undefined, loading)
9495
}
96+
/**
97+
* 创建Lark知识库
98+
* @param 参数
99+
* {
100+
"name": "string",
101+
"desc": "string",
102+
"app_id": "string",
103+
"app_secret": "string",
104+
"folder_token": "string",
105+
}
106+
*/
107+
const postLarkDataset: (data: any, loading?: Ref<boolean>) => Promise<Result<any>> = (
108+
data,
109+
loading
110+
) => {
111+
return post(`${prefix}/lark/save`, data, undefined, loading)
112+
}
95113

96114
/**
97115
* 创建QA知识库
98-
* @param 参数 formData
116+
* @param 参数 formData
99117
* {
100-
"file": "file",
101-
"name": "string",
102-
"desc": "string",
103-
}
118+
"file": "file",
119+
"name": "string",
120+
"desc": "string",
121+
}
104122
*/
105123
const postQADataset: (data: any, loading?: Ref<boolean>) => Promise<Result<any>> = (
106124
data,
@@ -122,12 +140,12 @@ const getDatasetDetail: (dataset_id: string, loading?: Ref<boolean>) => Promise<
122140

123141
/**
124142
* 修改知识库信息
125-
* @param 参数
143+
* @param 参数
126144
* dataset_id
127145
* {
128-
"name": "string",
129-
"desc": true
130-
}
146+
"name": "string",
147+
"desc": true
148+
}
131149
*/
132150
const putDataset: (
133151
dataset_id: string,
@@ -136,6 +154,13 @@ const putDataset: (
136154
) => Promise<Result<any>> = (dataset_id, data, loading) => {
137155
return put(`${prefix}/${dataset_id}`, data, undefined, loading)
138156
}
157+
const putLarkDataset: (
158+
dataset_id: string,
159+
data: any,
160+
loading?: Ref<boolean>
161+
) => Promise<Result<any>> = (dataset_id, data, loading) => {
162+
return put(`${prefix}/lark/${dataset_id}`, data, undefined, loading)
163+
}
139164
/**
140165
* 获取知识库 可关联的应用列表
141166
* @param dataset_id
@@ -229,6 +254,29 @@ const getDatasetModel: (
229254
) => Promise<Result<Array<any>>> = (dataset_id, loading) => {
230255
return get(`${prefix}/${dataset_id}/model`, loading)
231256
}
257+
/**
258+
* 获取飞书文档列表
259+
* @param dataset_id
260+
* @param folder_token
261+
* @param loading
262+
* @returns
263+
*/
264+
const getLarkDocumentList: (
265+
dataset_id: string,
266+
folder_token: string,
267+
data: any,
268+
loading?: Ref<boolean>
269+
) => Promise<Result<Array<any>>> = (dataset_id, folder_token, data, loading) => {
270+
return post(`${prefix}/lark/${dataset_id}/${folder_token}/doc_list`, data, null, loading)
271+
}
272+
273+
const importLarkDocument: (
274+
dataset_id: string,
275+
data: any,
276+
loading?: Ref<boolean>
277+
) => Promise<Result<Array<any>>> = (dataset_id, data, loading) => {
278+
return post(`${prefix}/lark/${dataset_id}/import`, data, null, loading)
279+
}
232280

233281
export default {
234282
getDataset,
@@ -245,5 +293,9 @@ export default {
245293
postQADataset,
246294
exportDataset,
247295
getDatasetModel,
248-
exportZipDataset
296+
exportZipDataset,
297+
postLarkDataset,
298+
getLarkDocumentList,
299+
importLarkDocument,
300+
putLarkDataset
249301
}

ui/src/api/document.ts

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,18 @@ const putDocumentSync: (
181181
) => Promise<Result<any>> = (dataset_id, document_id, loading) => {
182182
return put(`${prefix}/${dataset_id}/document/${document_id}/sync`, undefined, undefined, loading)
183183
}
184+
const putLarkDocumentSync: (
185+
dataset_id: string,
186+
document_id: string,
187+
loading?: Ref<boolean>
188+
) => Promise<Result<any>> = (dataset_id, document_id, loading) => {
189+
return put(
190+
`${prefix}/lark/${dataset_id}/document/${document_id}/sync`,
191+
undefined,
192+
undefined,
193+
loading
194+
)
195+
}
184196

185197
/**
186198
* 批量同步文档
@@ -193,6 +205,13 @@ const delMulSyncDocument: (
193205
) => Promise<Result<boolean>> = (dataset_id, data, loading) => {
194206
return put(`${prefix}/${dataset_id}/document/_bach`, { id_list: data }, undefined, loading)
195207
}
208+
const delMulLarkSyncDocument: (
209+
dataset_id: string,
210+
data: any,
211+
loading?: Ref<boolean>
212+
) => Promise<Result<boolean>> = (dataset_id, data, loading) => {
213+
return put(`${prefix}/lark/${dataset_id}/_batch`, { id_list: data }, undefined, loading)
214+
}
196215

197216
/**
198217
* 创建Web站点文档
@@ -394,5 +413,7 @@ export default {
394413
batchGenerateRelated,
395414
cancelTask,
396415
exportDocumentZip,
397-
batchCancelTask
416+
batchCancelTask,
417+
putLarkDocumentSync,
418+
delMulLarkSyncDocument
398419
}

ui/src/locales/lang/en-US/views/application.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,8 @@ export default {
210210
appSecretPlaceholder: 'Please enter APP secret',
211211
verificationTokenPlaceholder: 'Please enter verification token',
212212
urlInfo:
213-
'-Events and callbacks - event configuration - configure the "request address" of the subscription method'
213+
'-Events and callbacks - event configuration - configure the "request address" of the subscription method',
214+
folderTokenPlaceholder: 'Please enter folder token'
214215
},
215216
slackSetting: {
216217
title: 'Slack Configuration',

ui/src/locales/lang/en-US/views/dataset.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,13 +49,21 @@ export default {
4949
datasetType: {
5050
label: 'Type',
5151
generalInfo: 'Upload local documents',
52-
webInfo: 'Sync text data from a web site'
52+
webInfo: 'Sync text data from a web site',
53+
larkInfo: 'Sync documents from Feishu',
54+
yuqueInfo: 'Sync documents from Yuque'
5355
},
5456
source_url: {
5557
label: 'Web Root URL',
5658
placeholder: 'Please enter the web root URL',
5759
requiredMessage: 'Please enter the web root URL'
5860
},
61+
user_id: {
62+
requiredMessage: 'Please enter User ID'
63+
},
64+
token: {
65+
requiredMessage: 'Please enter Token'
66+
},
5967
selector: {
6068
label: 'Selector',
6169
placeholder: 'Default is body, can input .classname/#idname/tagname'
@@ -79,8 +87,7 @@ export default {
7987
replace: 'Replace Sync',
8088
replaceText: 'Re-fetch Web site documents, replacing the documents in the local knowledge',
8189
complete: 'Full Sync',
82-
completeText:
83-
'Delete all documents in the local knowledge and re-fetch web site documents',
90+
completeText: 'Delete all documents in the local knowledge and re-fetch web site documents',
8491
tip: 'Note: All syncs will delete existing data and re-fetch new data. Please proceed with caution.'
8592
}
8693
}

ui/src/locales/lang/zh-CN/views/application.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,8 @@ export default {
197197
appIdPlaceholder: '请输入App ID',
198198
appSecretPlaceholder: '请输入App Secret',
199199
verificationTokenPlaceholder: '请输入Verification Token',
200-
urlInfo: '-事件与回调-事件配置-配置订阅方式的 "请求地址" 中'
200+
urlInfo: '-事件与回调-事件配置-配置订阅方式的 "请求地址" 中',
201+
folderTokenPlaceholder: '请输入Folder Token'
201202
},
202203
slackSetting: {
203204
title: 'Slack 应用配置',

ui/src/locales/lang/zh-CN/views/dataset.ts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ export default {
33
createDataset: '创建知识库',
44
general: '通用型',
55
web: 'web 站点',
6+
lark: '飞书',
7+
yuque: '语雀',
68
relatedApplications: '关联应用',
79
document_count: '文档数',
810
relatedApp_count: '关联应用',
@@ -47,14 +49,22 @@ export default {
4749
},
4850
datasetType: {
4951
label: '知识库类型',
50-
generalInfo: '上传本地文档',
51-
webInfo: '同步Web网站文本数据'
52+
generalInfo: '通过上传文件或手动录入构建知识库',
53+
webInfo: '通过网站链接构建知识库',
54+
larkInfo: '通过飞书文档构建知识库',
55+
yuqueInfo: '通过语雀文档构建知识库'
5256
},
5357
source_url: {
5458
label: 'Web 根地址',
5559
placeholder: '请输入 Web 根地址',
5660
requiredMessage: ' 请输入 Web 根地址'
5761
},
62+
user_id: {
63+
requiredMessage: '请输入User ID'
64+
},
65+
token: {
66+
requiredMessage: '请输入Token'
67+
},
5868
selector: {
5969
label: '选择器',
6070
placeholder: '默认为 body,可输入 .classname/#idname/tagname'

ui/src/locales/lang/zh-CN/views/document.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ export default {
5555
tip1: '1、点击下载对应模版并完善信息',
5656
tip2: '2、上传的表格文件中每个 sheet 会作为一个文档,sheet名称为文档名称',
5757
tip3: '3、每次最多上传 50 个文件,每个文件不超过 100MB'
58-
}
58+
},
59+
lark: {}
5960
},
6061
setRules: {
6162
title: {

ui/src/locales/lang/zh-Hant/views/application.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,8 @@ export default {
5959
references: ' (引用知識庫)',
6060
placeholder: '請輸入提示詞',
6161
requiredMessage: '請輸入提示詞',
62-
tooltip:'透過調整提示詞內容,可以引導大模型對話方向,該提示詞會被固定在上下文的開頭。',
63-
62+
tooltip: '透過調整提示詞內容,可以引導大模型對話方向,該提示詞會被固定在上下文的開頭。',
63+
6464
noReferencesTooltip:
6565
'透過調整提示詞內容,可以引導大模型對話方向,該提示詞會被固定在上下文的開頭。可以使用變數:{question} 是用戶提出問題的佔位符。',
6666
referencesTooltip:
@@ -104,9 +104,9 @@ export default {
104104
},
105105
reasoningContent: {
106106
label: '輸出思考',
107-
tooltip:'請根據模型返回的思考標簽設置,標簽中間的內容將會認定爲思考過程',
107+
tooltip: '請根據模型返回的思考標簽設置,標簽中間的內容將會認定爲思考過程',
108108
start: '開始',
109-
end: '結束',
109+
end: '結束'
110110
}
111111
},
112112
buttons: {
@@ -196,12 +196,13 @@ export default {
196196
appIdPlaceholder: '請輸入App ID',
197197
appSecretPlaceholder: '請輸入App Secret',
198198
verificationTokenPlaceholder: '請輸入Verification Token',
199-
urlInfo: '-事件與回呼-事件配置-配置訂閱方式的 "請求位址" 中'
199+
urlInfo: '-事件與回呼-事件配置-配置訂閱方式的 "請求位址" 中',
200+
folderTokenPlaceholder: '請輸入Folder Token'
200201
},
201202
slackSetting: {
202203
title: 'Slack 應用配置',
203204
signingSecretPlaceholder: '請輸入 Signing Secret',
204-
botUserTokenPlaceholder: '請輸入 Bot User Token',
205+
botUserTokenPlaceholder: '請輸入 Bot User Token'
205206
},
206207
copyUrl: '複製連結填入到'
207208
},

0 commit comments

Comments
 (0)