fix: Static image loading path issue and Mobile setting information error
|
|
@ -6,10 +6,10 @@
|
|||
|
||||
1. 获取API Key
|
||||
在[博查开放平台](https://open.bochaai.com/overview) 上申请 API 密钥。
|
||||

|
||||

|
||||
2. 在函数库中配置
|
||||
在函数库的博查函数面板中,点击 … > 启用参数,填写 API 密钥,并启用博查函数。
|
||||

|
||||

|
||||
3. 在应用中使用
|
||||
在高级编排应用中,点击添加组件->函数库->博查,设置使用参数。
|
||||

|
||||

|
||||
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
|
@ -6,17 +6,17 @@ Google 搜索工具是一个实时 API,可提取搜索引擎结果,提供来
|
|||
|
||||
1. 创建 Google Custom Search Engine
|
||||
在[Programmable Search Engine](https://programmablesearchengine.google.com/)中 添加 Search Engine
|
||||

|
||||

|
||||
2. 获取cx参数
|
||||
进入添加引擎,在【基本】菜单中获取搜索引擎的ID,即cx。
|
||||
 3.获取 API Key
|
||||
 3.获取 API Key
|
||||
打开 https://developers.google.com/custom-search/v1/overview?hl=zh-cn,获取API Key。
|
||||

|
||||

|
||||
|
||||
3. 配置启动参数
|
||||
在Google搜索函数的启动参数中填写配置以上参数。
|
||||

|
||||

|
||||
|
||||
4. 在应用中使用
|
||||
在高级编排应用中,点击添加组件->函数库->博查,设置使用参数。
|
||||

|
||||

|
||||
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 6.4 KiB |
|
Before Width: | Height: | Size: 236 KiB After Width: | Height: | Size: 236 KiB |
|
Before Width: | Height: | Size: 554 KiB After Width: | Height: | Size: 554 KiB |
|
Before Width: | Height: | Size: 240 KiB After Width: | Height: | Size: 240 KiB |
|
Before Width: | Height: | Size: 399 KiB After Width: | Height: | Size: 399 KiB |
|
Before Width: | Height: | Size: 176 KiB After Width: | Height: | Size: 176 KiB |
|
Before Width: | Height: | Size: 587 KiB After Width: | Height: | Size: 587 KiB |
|
Before Width: | Height: | Size: 264 KiB After Width: | Height: | Size: 264 KiB |
|
Before Width: | Height: | Size: 260 KiB After Width: | Height: | Size: 260 KiB |
|
Before Width: | Height: | Size: 229 KiB After Width: | Height: | Size: 229 KiB |
|
Before Width: | Height: | Size: 542 KiB After Width: | Height: | Size: 542 KiB |
|
Before Width: | Height: | Size: 240 KiB After Width: | Height: | Size: 240 KiB |
|
|
@ -6,10 +6,10 @@
|
|||
|
||||
1. 获取API Key
|
||||
在[博查开放平台](https://open.bochaai.com/overview) 上申请 API 密钥。
|
||||

|
||||
1. 在函数库中配置
|
||||

|
||||
2. 在函数库中配置
|
||||
在函数库的博查函数面板中,点击 … > 启用参数,填写 API 密钥,并启用博查函数。
|
||||

|
||||
1. 在应用中使用
|
||||

|
||||
3. 在应用中使用
|
||||
在高级编排应用中,点击添加组件->函数库->博查,设置使用参数。
|
||||

|
||||

|
||||
|
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 67 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 115 KiB After Width: | Height: | Size: 115 KiB |
|
|
@ -7,7 +7,6 @@
|
|||
:close-on-click-modal="false"
|
||||
:close-on-press-escape="false"
|
||||
>
|
||||
|
||||
<el-row :gutter="12">
|
||||
<el-col :span="8">
|
||||
<div class="border">
|
||||
|
|
@ -104,7 +103,9 @@ const source3 = ref('')
|
|||
|
||||
const urlParams1 = computed(() => (props.apiInputParams ? '?' + props.apiInputParams : ''))
|
||||
const urlParams2 = computed(() => (props.apiInputParams ? '&' + props.apiInputParams : ''))
|
||||
|
||||
const urlParams3 = computed(() =>
|
||||
props.apiInputParams ? '?mode=mobile&' + props.apiInputParams : '?mode=mobile'
|
||||
)
|
||||
watch(dialogVisible, (bool) => {
|
||||
if (!bool) {
|
||||
source1.value = ''
|
||||
|
|
@ -131,8 +132,8 @@ src="${window.location.origin}/api/application/embed?protocol=${window.location.
|
|||
)}&host=${window.location.host}&token=${val}${urlParams2.value}">
|
||||
<\/script>
|
||||
`
|
||||
source3.value = `<iframe
|
||||
src="${application.location + val + urlParams1.value}?mode=mobile"
|
||||
source3.value = `<iframe
|
||||
src="${application.location + val + urlParams3.value}"
|
||||
style="width: 100%; height: 100%;"
|
||||
frameborder="0"
|
||||
allow="microphone">
|
||||
|
|
|
|||
|
|
@ -266,7 +266,7 @@
|
|||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, onMounted, reactive, watch, nextTick } from 'vue'
|
||||
import { cloneDeep } from 'lodash'
|
||||
import { cloneDeep, get } from 'lodash'
|
||||
import functionLibApi from '@/api/function-lib'
|
||||
import FunctionFormDrawer from './component/FunctionFormDrawer.vue'
|
||||
import { MsgSuccess, MsgConfirm, MsgError } from '@/utils/message'
|
||||
|
|
@ -280,10 +280,11 @@ import { isAppIcon } from '@/utils/application'
|
|||
import InfiniteScroll from '@/components/infinite-scroll/index.vue'
|
||||
import CardBox from '@/components/card-box/index.vue'
|
||||
import AddInternalFunctionDialog from '@/views/function-lib/component/AddInternalFunctionDialog.vue'
|
||||
const internalDesc: Record<string, any> = import.meta.glob('@/assets/fx/*/detail.md', {
|
||||
eager: true,
|
||||
as: 'raw'
|
||||
})
|
||||
// const internalDesc: Record<string, any> = import.meta.glob('/fx/*/detail.md', {
|
||||
// eager: true,
|
||||
// as: 'raw'
|
||||
// })
|
||||
// console.log(internalDesc)
|
||||
|
||||
const { user } = useStore()
|
||||
|
||||
|
|
@ -352,9 +353,11 @@ function openCreateDialog(data?: any) {
|
|||
}
|
||||
}
|
||||
|
||||
function openDescDrawer(row: any) {
|
||||
async function openDescDrawer(row: any) {
|
||||
const index = row.icon.replace('icon.png', 'detail.md')
|
||||
InternalDescDrawerRef.value.open(internalDesc[index], row)
|
||||
const response = await fetch(index)
|
||||
const content = await response.text()
|
||||
InternalDescDrawerRef.value.open(content, row)
|
||||
}
|
||||
|
||||
function addInternalFunction(data?: any) {
|
||||
|
|
|
|||
|
|
@ -147,10 +147,9 @@
|
|||
<template #label>
|
||||
<div class="flex align-center">
|
||||
<div class="mr-4">
|
||||
<span
|
||||
>{{ $t('views.applicationWorkflow.nodes.aiChatNode.returnContent.label')
|
||||
}}<span class="danger">*</span></span
|
||||
>
|
||||
<span>{{
|
||||
$t('views.applicationWorkflow.nodes.aiChatNode.returnContent.label')
|
||||
}}</span>
|
||||
</div>
|
||||
<el-tooltip effect="dark" placement="right" popper-class="max-w-200">
|
||||
<template #content>
|
||||
|
|
|
|||
|
|
@ -148,7 +148,7 @@
|
|||
<div class="mr-4">
|
||||
<span
|
||||
>{{ $t('views.applicationWorkflow.nodes.aiChatNode.returnContent.label')
|
||||
}}<span class="danger">*</span></span
|
||||
}}</span
|
||||
>
|
||||
</div>
|
||||
<el-tooltip effect="dark" placement="right" popper-class="max-w-200">
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@
|
|||
<div class="mr-4">
|
||||
<span
|
||||
>{{ $t('views.applicationWorkflow.nodes.aiChatNode.returnContent.label')
|
||||
}}<span class="danger">*</span></span
|
||||
}}</span
|
||||
>
|
||||
</div>
|
||||
<el-tooltip effect="dark" placement="right" popper-class="max-w-200">
|
||||
|
|
|
|||
|
|
@ -94,10 +94,9 @@
|
|||
<template #label>
|
||||
<div class="flex align-center">
|
||||
<div class="mr-4">
|
||||
<span
|
||||
>{{ $t('views.applicationWorkflow.nodes.aiChatNode.returnContent.label')
|
||||
}}<span class="danger">*</span></span
|
||||
>
|
||||
<span>{{
|
||||
$t('views.applicationWorkflow.nodes.aiChatNode.returnContent.label')
|
||||
}}</span>
|
||||
</div>
|
||||
<el-tooltip effect="dark" placement="right" popper-class="max-w-200">
|
||||
<template #content>
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@
|
|||
<div class="mr-4">
|
||||
<span
|
||||
>{{ $t('views.applicationWorkflow.nodes.aiChatNode.returnContent.label')
|
||||
}}<span class="danger">*</span></span
|
||||
}}</span
|
||||
>
|
||||
</div>
|
||||
<el-tooltip effect="dark" placement="right" popper-class="max-w-200">
|
||||
|
|
|
|||
|
|
@ -151,7 +151,7 @@
|
|||
<div class="mr-4">
|
||||
<span
|
||||
>{{ $t('views.applicationWorkflow.nodes.aiChatNode.returnContent.label')
|
||||
}}<span class="danger">*</span></span
|
||||
}}</span
|
||||
>
|
||||
</div>
|
||||
<el-tooltip effect="dark" placement="right" popper-class="max-w-200">
|
||||
|
|
|
|||
|
|
@ -115,7 +115,7 @@
|
|||
<div class="mr-4">
|
||||
<span
|
||||
>{{ $t('views.applicationWorkflow.nodes.aiChatNode.returnContent.label')
|
||||
}}<span class="danger">*</span></span
|
||||
}}</span
|
||||
>
|
||||
</div>
|
||||
<el-tooltip effect="dark" placement="right" popper-class="max-w-200">
|
||||
|
|
|
|||
|
|
@ -19,8 +19,14 @@
|
|||
size="small"
|
||||
style="width: 85px"
|
||||
>
|
||||
<el-option :label="$t('views.applicationWorkflow.nodes.replyNode.replyContent.reference')" value="referencing" />
|
||||
<el-option :label="$t('views.applicationWorkflow.nodes.replyNode.replyContent.custom')" value="content" />
|
||||
<el-option
|
||||
:label="$t('views.applicationWorkflow.nodes.replyNode.replyContent.reference')"
|
||||
value="referencing"
|
||||
/>
|
||||
<el-option
|
||||
:label="$t('views.applicationWorkflow.nodes.replyNode.replyContent.custom')"
|
||||
value="content"
|
||||
/>
|
||||
</el-select>
|
||||
</div>
|
||||
</template>
|
||||
|
|
@ -51,10 +57,9 @@
|
|||
<template #label>
|
||||
<div class="flex align-center">
|
||||
<div class="mr-4">
|
||||
<span
|
||||
>{{ $t('views.applicationWorkflow.nodes.aiChatNode.returnContent.label')
|
||||
}}<span class="danger">*</span></span
|
||||
>
|
||||
<span>{{
|
||||
$t('views.applicationWorkflow.nodes.aiChatNode.returnContent.label')
|
||||
}}</span>
|
||||
</div>
|
||||
<el-tooltip effect="dark" placement="right" popper-class="max-w-200">
|
||||
<template #content>
|
||||
|
|
|
|||
|
|
@ -77,7 +77,7 @@
|
|||
<div class="mr-4">
|
||||
<span
|
||||
>{{ $t('views.applicationWorkflow.nodes.aiChatNode.returnContent.label')
|
||||
}}<span class="danger">*</span></span
|
||||
}}</span
|
||||
>
|
||||
</div>
|
||||
<el-tooltip effect="dark" placement="right" popper-class="max-w-200">
|
||||
|
|
|
|||
|
|
@ -84,10 +84,9 @@
|
|||
<template #label>
|
||||
<div class="flex align-center">
|
||||
<div class="mr-4">
|
||||
<span
|
||||
>{{ $t('views.applicationWorkflow.nodes.aiChatNode.returnContent.label')
|
||||
}}<span class="danger">*</span></span
|
||||
>
|
||||
<span>{{
|
||||
$t('views.applicationWorkflow.nodes.aiChatNode.returnContent.label')
|
||||
}}</span>
|
||||
</div>
|
||||
<el-tooltip effect="dark" placement="right" popper-class="max-w-200">
|
||||
<template #content>
|
||||
|
|
|
|||