feat: lark knowledge

This commit is contained in:
wangdan-fit2cloud 2025-06-17 18:11:35 +08:00
parent 19e8e76386
commit 89ad56744b
7 changed files with 66 additions and 77 deletions

View File

@ -13,21 +13,6 @@ Object.defineProperty(prefix, 'value', {
}, },
}) })
/**
*
* @params
* {folder_id: string,
* name: string,
* user_id: string
* desc: string,}
*/
const getKnowledgeByFolder: (data?: any, loading?: Ref<boolean>) => Promise<Result<Array<any>>> = (
data,
loading,
) => {
return get(`${prefix.value}`, data, loading)
}
/** /**
* *
* @param * @param
@ -212,7 +197,7 @@ const postKnowledge: (data: knowledgeData, loading?: Ref<boolean>) => Promise<Re
} }
/** /**
* 使 * 使 ()
* @param application_id * @param application_id
* @param loading * @param loading
* @query { query_text: string, top_number: number, similarity: number } * @query { query_text: string, top_number: number, similarity: number }
@ -227,9 +212,8 @@ const getKnowledgeEmdeddingModel: (
/** /**
* 使 * 使
* @param application_id * @param
* @param loading * @param loading
* @query { query_text: string, top_number: number, similarity: number }
* @returns * @returns
*/ */
const getKnowledgeModel: (loading?: Ref<boolean>) => Promise<Result<Array<any>>> = (loading) => { const getKnowledgeModel: (loading?: Ref<boolean>) => Promise<Result<Array<any>>> = (loading) => {
@ -255,6 +239,7 @@ const postWebKnowledge: (data: any, loading?: Ref<boolean>) => Promise<Result<an
return post(`${prefix.value}/web`, data, undefined, loading) return post(`${prefix.value}/web`, data, undefined, loading)
} }
// 创建飞书知识库
const postLarkKnowledge: (data: any, loading?: Ref<boolean>) => Promise<Result<Array<any>>> = ( const postLarkKnowledge: (data: any, loading?: Ref<boolean>) => Promise<Result<Array<any>>> = (
data, data,
loading, loading,
@ -262,8 +247,15 @@ const postLarkKnowledge: (data: any, loading?: Ref<boolean>) => Promise<Result<A
return post(`${prefix.value}/lark/save`, data, null, loading) return post(`${prefix.value}/lark/save`, data, null, loading)
} }
const putLarkKnowledge: (
knowledge_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (knowledge_id, data, loading) => {
return put(`${prefix}/lark/${knowledge_id}`, data, undefined, loading)
}
export default { export default {
getKnowledgeByFolder,
getKnowledgeList, getKnowledgeList,
getKnowledgeListPage, getKnowledgeListPage,
getKnowledgeDetail, getKnowledgeDetail,
@ -278,6 +270,6 @@ export default {
postKnowledge, postKnowledge,
getKnowledgeModel, getKnowledgeModel,
postWebKnowledge, postWebKnowledge,
postLarkKnowledge, postLarkKnowledge,
putLarkKnowledge
} }

View File

@ -4,22 +4,7 @@ import { type Ref } from 'vue'
import type { pageRequest } from '@/api/type/common' import type { pageRequest } from '@/api/type/common'
import type { knowledgeData } from '@/api/type/knowledge' import type { knowledgeData } from '@/api/type/knowledge'
const prefix = '/system/shared' const prefix = '/system/shared/knowledge'
/**
*
* @params
* {folder_id: string,
* name: string,
* user_id: string
* desc: string,}
*/
const getKnowledgeByFolder: (data?: any, loading?: Ref<boolean>) => Promise<Result<Array<any>>> = (
data,
loading,
) => {
return get(`${prefix}/knowledge`, data, loading)
}
/** /**
* *
@ -35,7 +20,7 @@ const getKnowledgeList: (param?: any, loading?: Ref<boolean>) => Promise<Result<
param, param,
loading, loading,
) => { ) => {
return get(`${prefix}/knowledge`, param, loading) return get(`${prefix}`, param, loading)
} }
/** /**
@ -53,7 +38,7 @@ const getKnowledgeListPage: (
param?: any, param?: any,
loading?: Ref<boolean>, loading?: Ref<boolean>,
) => Promise<Result<any>> = (page, param, loading) => { ) => Promise<Result<any>> = (page, param, loading) => {
return get(`${prefix}/knowledge/${page.current_page}/${page.page_size}`, param, loading) return get(`${prefix}/${page.current_page}/${page.page_size}`, param, loading)
} }
/** /**
@ -64,7 +49,7 @@ const getKnowledgeDetail: (knowledge_id: string, loading?: Ref<boolean>) => Prom
knowledge_id, knowledge_id,
loading, loading,
) => { ) => {
return get(`${prefix}/knowledge/${knowledge_id}`, undefined, loading) return get(`${prefix}/${knowledge_id}`, undefined, loading)
} }
/** /**
@ -81,7 +66,7 @@ const putKnowledge: (
data: any, data: any,
loading?: Ref<boolean>, loading?: Ref<boolean>,
) => Promise<Result<any>> = (knowledge_id, data, loading) => { ) => Promise<Result<any>> = (knowledge_id, data, loading) => {
return put(`${prefix}/knowledge/${knowledge_id}`, data, undefined, loading) return put(`${prefix}/${knowledge_id}`, data, undefined, loading)
} }
/** /**
@ -103,7 +88,7 @@ const putReEmbeddingKnowledge: (
knowledge_id: string, knowledge_id: string,
loading?: Ref<boolean>, loading?: Ref<boolean>,
) => Promise<Result<any>> = (knowledge_id, loading) => { ) => Promise<Result<any>> = (knowledge_id, loading) => {
return put(`${prefix}/knowledge/${knowledge_id}/embedding`, undefined, undefined, loading) return put(`${prefix}/${knowledge_id}/embedding`, undefined, undefined, loading)
} }
/** /**
@ -119,7 +104,7 @@ const exportKnowledge: (
) => Promise<any> = (knowledge_name, knowledge_id, loading) => { ) => Promise<any> = (knowledge_name, knowledge_id, loading) => {
return exportExcel( return exportExcel(
knowledge_name + '.xlsx', knowledge_name + '.xlsx',
`${prefix}/${knowledge_id}/knowledge/${knowledge_id}/export`, `${prefix}/${knowledge_id}/export`,
undefined, undefined,
loading, loading,
) )
@ -138,7 +123,7 @@ const exportZipKnowledge: (
) => Promise<any> = (knowledge_name, knowledge_id, loading) => { ) => Promise<any> = (knowledge_name, knowledge_id, loading) => {
return exportFile( return exportFile(
knowledge_name + '.zip', knowledge_name + '.zip',
`${prefix}/${knowledge_id}/knowledge/${knowledge_id}/export_zip`, `${prefix}/${knowledge_id}/export_zip`,
undefined, undefined,
loading, loading,
) )
@ -184,7 +169,7 @@ const putSyncWebKnowledge: (
sync_type: string, sync_type: string,
loading?: Ref<boolean>, loading?: Ref<boolean>,
) => Promise<Result<any>> = (knowledge_id, sync_type, loading) => { ) => Promise<Result<any>> = (knowledge_id, sync_type, loading) => {
return put(`${prefix}/knowledge/${knowledge_id}/sync`, undefined, { sync_type }, loading) return put(`${prefix}/${knowledge_id}/sync`, undefined, { sync_type }, loading)
} }
/** /**
@ -201,7 +186,7 @@ const postKnowledge: (data: knowledgeData, loading?: Ref<boolean>) => Promise<Re
data, data,
loading, loading,
) => { ) => {
return post(`${prefix}/knowledge/base`, data, undefined, loading, 1000 * 60 * 5) return post(`${prefix}/base`, data, undefined, loading, 1000 * 60 * 5)
} }
/** /**
@ -226,7 +211,7 @@ const getKnowledgeEmdeddingModel: (
* @returns * @returns
*/ */
const getKnowledgeModel: (loading?: Ref<boolean>) => Promise<Result<Array<any>>> = (loading) => { const getKnowledgeModel: (loading?: Ref<boolean>) => Promise<Result<Array<any>>> = (loading) => {
return get(`${prefix}/knowledge/model`, loading) return get(`${prefix}/model`, loading)
} }
/** /**
@ -245,17 +230,25 @@ const postWebKnowledge: (data: any, loading?: Ref<boolean>) => Promise<Result<an
data, data,
loading, loading,
) => { ) => {
return post(`${prefix}/knowledge/web`, data, undefined, loading) return post(`${prefix}/web`, data, undefined, loading)
} }
const postLarkKnowledge: (data: any, loading?: Ref<boolean>) => Promise<Result<Array<any>>> = ( const postLarkKnowledge: (data: any, loading?: Ref<boolean>) => Promise<Result<Array<any>>> = (
data, data,
loading, loading,
) => { ) => {
return post(`${prefix}/knowledge/lark/save`, data, null, loading) return post(`${prefix}/lark/save`, data, null, loading)
} }
const putLarkKnowledge: (
knowledge_id: string,
data: any,
loading?: Ref<boolean>
) => Promise<Result<any>> = (knowledge_id, data, loading) => {
return put(`${prefix}/lark/${knowledge_id}`, data, undefined, loading)
}
export default { export default {
getKnowledgeByFolder,
getKnowledgeList, getKnowledgeList,
getKnowledgeListPage, getKnowledgeListPage,
getKnowledgeDetail, getKnowledgeDetail,
@ -270,8 +263,8 @@ export default {
postKnowledge, postKnowledge,
getKnowledgeModel, getKnowledgeModel,
postWebKnowledge, postWebKnowledge,
postLarkKnowledge, postLarkKnowledge,
putLarkKnowledge
} as { } as {
[key: string]: any [key: string]: any
} }

View File

@ -29,7 +29,7 @@
</el-form-item> </el-form-item>
<el-form-item <el-form-item
:label="$t('views.knowledge.form.EmbeddingModel.label')" :label="$t('views.knowledge.form.EmbeddingModel.label')"
prop="embedding_model_id" prop="embedding"
> >
<ModelSelect <ModelSelect
v-model="form.embedding" v-model="form.embedding"

View File

@ -57,7 +57,7 @@ const submitHandle = async () => {
} }
KnowledgeApi.postKnowledge(obj, loading).then((res) => { KnowledgeApi.postKnowledge(obj, loading).then((res) => {
MsgSuccess(t('common.createSuccess')) MsgSuccess(t('common.createSuccess'))
// router.push({ path: `/knowledge/${res.data.id}/${currentFolder.value.id}/document` }) router.push({ path: `/knowledge/${res.data.id}/${currentFolder.value.id}/document` })
emit('refresh') emit('refresh')
}) })
} else { } else {

View File

@ -10,21 +10,21 @@
<!-- 基本信息 --> <!-- 基本信息 -->
<BaseForm ref="BaseFormRef" v-if="dialogVisible" /> <BaseForm ref="BaseFormRef" v-if="dialogVisible" />
<el-form <el-form
ref="DatasetFormRef" ref="knowledgeFormRef"
:rules="rules" :rules="rules"
:model="datasetForm" :model="knowledgeForm"
label-position="top" label-position="top"
require-asterisk-position="right" require-asterisk-position="right"
> >
<el-form-item label="App ID" prop="app_id"> <el-form-item label="App ID" prop="app_id">
<el-input <el-input
v-model="datasetForm.app_id" v-model="knowledgeForm.app_id"
:placeholder="$t('views.application.applicationAccess.larkSetting.appIdPlaceholder')" :placeholder="$t('views.application.applicationAccess.larkSetting.appIdPlaceholder')"
/> />
</el-form-item> </el-form-item>
<el-form-item label="App Secret" prop="app_secret"> <el-form-item label="App Secret" prop="app_secret">
<el-input <el-input
v-model="datasetForm.app_secret" v-model="knowledgeForm.app_secret"
type="password" type="password"
show-password show-password
:placeholder="$t('views.application.applicationAccess.larkSetting.appSecretPlaceholder')" :placeholder="$t('views.application.applicationAccess.larkSetting.appSecretPlaceholder')"
@ -32,7 +32,7 @@
</el-form-item> </el-form-item>
<el-form-item label="Folder Token" prop="folder_token"> <el-form-item label="Folder Token" prop="folder_token">
<el-input <el-input
v-model="datasetForm.folder_token" v-model="knowledgeForm.folder_token"
:placeholder=" :placeholder="
$t('views.application.applicationAccess.larkSetting.folderTokenPlaceholder') $t('views.application.applicationAccess.larkSetting.folderTokenPlaceholder')
" "
@ -63,12 +63,13 @@ const emit = defineEmits(['refresh'])
const router = useRouter() const router = useRouter()
const BaseFormRef = ref() const BaseFormRef = ref()
const DatasetFormRef = ref() const knowledgeFormRef = ref()
const loading = ref(false) const loading = ref(false)
const dialogVisible = ref<boolean>(false) const dialogVisible = ref<boolean>(false)
const currentFolder = ref<any>(null)
const datasetForm = ref<any>({ const knowledgeForm = ref<any>({
type: '0', type: '0',
source_url: '', source_url: '',
selector: '', selector: '',
@ -124,29 +125,34 @@ const rules = reactive({
watch(dialogVisible, (bool) => { watch(dialogVisible, (bool) => {
if (!bool) { if (!bool) {
datasetForm.value = { knowledgeForm.value = {
type: '0', type: '0',
source_url: '', source_url: '',
selector: '', selector: '',
} }
DatasetFormRef.value?.clearValidate() knowledgeFormRef.value?.clearValidate()
} }
}) })
const open = () => { const open = (folder: string) => {
currentFolder.value = folder
dialogVisible.value = true dialogVisible.value = true
} }
const submitHandle = async () => { const submitHandle = async () => {
if (await BaseFormRef.value?.validate()) { if (await BaseFormRef.value?.validate()) {
await DatasetFormRef.value.validate((valid: any) => { await knowledgeFormRef.value.validate((valid: any) => {
if (valid) { if (valid) {
const obj = { ...BaseFormRef.value.form, ...datasetForm.value } const obj = {
// KnowledgeApi.postLarkKnowledge(obj, loading).then((res) => { folder_id: currentFolder.value?.id,
// MsgSuccess(t('common.createSuccess')) ...BaseFormRef.value.form,
// router.push({ path: `/knowledge/${res.data.id}/document` }) ...knowledgeForm.value,
// emit('refresh') }
// }) KnowledgeApi.postLarkKnowledge(obj, loading).then((res: any) => {
MsgSuccess(t('common.createSuccess'))
router.push({ path: `/knowledge/${res.data.id}/${currentFolder.value.id}/document` })
emit('refresh')
})
} else { } else {
return false return false
} }

View File

@ -29,7 +29,7 @@
</el-form-item> </el-form-item>
<el-form-item <el-form-item
:label="$t('views.knowledge.form.EmbeddingModel.label')" :label="$t('views.knowledge.form.EmbeddingModel.label')"
prop="embedding_model_id" prop="embedding"
> >
<ModelSelect <ModelSelect
v-model="form.embedding" v-model="form.embedding"

View File

@ -142,13 +142,11 @@ const submitHandle = async () => {
await KnowledgeFormRef.value.validate((valid: any) => { await KnowledgeFormRef.value.validate((valid: any) => {
if (valid) { if (valid) {
const obj = { ...BaseFormRef.value.form, ...datasetForm.value } const obj = { ...BaseFormRef.value.form, ...datasetForm.value }
KnowledgeApi.postLarkKnowledge({ ...obj, embedding_model_id: obj.embedding }, loading).then( KnowledgeApi.postLarkKnowledge(obj, loading).then((res: any) => {
(res: any) => { MsgSuccess(t('common.createSuccess'))
MsgSuccess(t('common.createSuccess')) router.push({ path: `/knowledge/${res.data.id}/document` })
router.push({ path: `/knowledge/${res.data.id}/document` }) emit('refresh')
emit('refresh') })
},
)
} else { } else {
return false return false
} }