358 lines
9.1 KiB
YAML
358 lines
9.1 KiB
YAML
app:
|
||
description: 根据用户指定的知识库进行检索,返回相似片段结构化数据。
|
||
icon: 🤖
|
||
icon_background: '#FFEAD5'
|
||
mode: workflow
|
||
name: 动态知识库检索
|
||
use_icon_as_answer_icon: false
|
||
dependencies: []
|
||
kind: app
|
||
version: 0.4.0
|
||
workflow:
|
||
conversation_variables: []
|
||
environment_variables: []
|
||
features:
|
||
file_upload:
|
||
allowed_file_extensions:
|
||
- .JPG
|
||
- .JPEG
|
||
- .PNG
|
||
- .GIF
|
||
- .WEBP
|
||
- .SVG
|
||
allowed_file_types:
|
||
- image
|
||
allowed_file_upload_methods:
|
||
- local_file
|
||
- remote_url
|
||
enabled: false
|
||
fileUploadConfig:
|
||
audio_file_size_limit: 50
|
||
batch_count_limit: 5
|
||
file_size_limit: 15
|
||
image_file_size_limit: 10
|
||
video_file_size_limit: 100
|
||
workflow_file_upload_limit: 10
|
||
image:
|
||
enabled: false
|
||
number_limits: 3
|
||
transfer_methods:
|
||
- local_file
|
||
- remote_url
|
||
number_limits: 3
|
||
opening_statement: ''
|
||
retriever_resource:
|
||
enabled: true
|
||
sensitive_word_avoidance:
|
||
enabled: false
|
||
speech_to_text:
|
||
enabled: false
|
||
suggested_questions: []
|
||
suggested_questions_after_answer:
|
||
enabled: false
|
||
text_to_speech:
|
||
enabled: false
|
||
language: ''
|
||
voice: ''
|
||
graph:
|
||
edges:
|
||
- data:
|
||
isInIteration: false
|
||
isInLoop: false
|
||
sourceType: code
|
||
targetType: iteration
|
||
id: 1747125551298-source-1747125586388-target
|
||
selected: false
|
||
source: '1747125551298'
|
||
sourceHandle: source
|
||
target: '1747125586388'
|
||
targetHandle: target
|
||
type: custom
|
||
zIndex: 0
|
||
- data:
|
||
isInIteration: true
|
||
isInLoop: false
|
||
iteration_id: '1747125586388'
|
||
sourceType: iteration-start
|
||
targetType: http-request
|
||
id: 1747125586388start-source-1747125795256-target
|
||
source: 1747125586388start
|
||
sourceHandle: source
|
||
target: '1747125795256'
|
||
targetHandle: target
|
||
type: custom
|
||
zIndex: 1002
|
||
- data:
|
||
isInIteration: false
|
||
isInLoop: false
|
||
sourceType: iteration
|
||
targetType: code
|
||
id: 1747125586388-source-1747125859504-target
|
||
source: '1747125586388'
|
||
sourceHandle: source
|
||
target: '1747125859504'
|
||
targetHandle: target
|
||
type: custom
|
||
zIndex: 0
|
||
- data:
|
||
isInIteration: false
|
||
isInLoop: false
|
||
sourceType: code
|
||
targetType: end
|
||
id: 1747125859504-source-1747125871123-target
|
||
source: '1747125859504'
|
||
sourceHandle: source
|
||
target: '1747125871123'
|
||
targetHandle: target
|
||
type: custom
|
||
zIndex: 0
|
||
- data:
|
||
isInLoop: false
|
||
sourceType: start
|
||
targetType: code
|
||
id: 1747125462435-source-1747125551298-target
|
||
source: '1747125462435'
|
||
sourceHandle: source
|
||
target: '1747125551298'
|
||
targetHandle: target
|
||
type: custom
|
||
zIndex: 0
|
||
nodes:
|
||
- data:
|
||
desc: ''
|
||
selected: false
|
||
title: 开始
|
||
type: start
|
||
variables:
|
||
- label: 知识库集(多个Id使用英文逗号隔开)
|
||
max_length: 256
|
||
options: []
|
||
required: true
|
||
type: text-input
|
||
variable: dataset_ids
|
||
- label: 用户问题
|
||
max_length: 256
|
||
options: []
|
||
required: true
|
||
type: text-input
|
||
variable: query
|
||
height: 114
|
||
id: '1747125462435'
|
||
position:
|
||
x: 80
|
||
y: 282
|
||
positionAbsolute:
|
||
x: 80
|
||
y: 282
|
||
selected: false
|
||
sourcePosition: right
|
||
targetPosition: left
|
||
type: custom
|
||
width: 242
|
||
- data:
|
||
code: "\nimport json\ndef main(dataset_ids:str):\n return {\n \"\
|
||
result\": json.loads(dataset_ids)\n }\n"
|
||
code_language: python3
|
||
desc: ''
|
||
outputs:
|
||
result:
|
||
children: null
|
||
type: array[string]
|
||
selected: false
|
||
title: 知识库集
|
||
type: code
|
||
variables:
|
||
- value_selector:
|
||
- '1747125462435'
|
||
- dataset_ids
|
||
value_type: string
|
||
variable: dataset_ids
|
||
height: 52
|
||
id: '1747125551298'
|
||
position:
|
||
x: 682
|
||
y: 282
|
||
positionAbsolute:
|
||
x: 682
|
||
y: 282
|
||
selected: false
|
||
sourcePosition: right
|
||
targetPosition: left
|
||
type: custom
|
||
width: 242
|
||
- data:
|
||
desc: ''
|
||
error_handle_mode: terminated
|
||
height: 231
|
||
is_parallel: true
|
||
iterator_selector:
|
||
- '1747125551298'
|
||
- result
|
||
output_selector:
|
||
- '1747125795256'
|
||
- body
|
||
output_type: array[string]
|
||
parallel_nums: 10
|
||
selected: false
|
||
start_node_id: 1747125586388start
|
||
title: 迭代
|
||
type: iteration
|
||
width: 388
|
||
height: 231
|
||
id: '1747125586388'
|
||
position:
|
||
x: 988
|
||
y: 282
|
||
positionAbsolute:
|
||
x: 988
|
||
y: 282
|
||
selected: false
|
||
sourcePosition: right
|
||
targetPosition: left
|
||
type: custom
|
||
width: 388
|
||
zIndex: 1
|
||
- data:
|
||
desc: ''
|
||
isInIteration: true
|
||
selected: false
|
||
title: ''
|
||
type: iteration-start
|
||
draggable: false
|
||
height: 48
|
||
id: 1747125586388start
|
||
parentId: '1747125586388'
|
||
position:
|
||
x: 24
|
||
y: 68
|
||
positionAbsolute:
|
||
x: 1012
|
||
y: 350
|
||
selectable: false
|
||
sourcePosition: right
|
||
targetPosition: left
|
||
type: custom-iteration-start
|
||
width: 44
|
||
zIndex: 1002
|
||
- data:
|
||
authorization:
|
||
config: null
|
||
type: no-auth
|
||
body:
|
||
data:
|
||
- id: key-value-274
|
||
key: ''
|
||
type: text
|
||
value: '{
|
||
|
||
"query": {{#1747125462435.query#}}
|
||
|
||
}'
|
||
type: json
|
||
desc: ''
|
||
headers: 'Authorization:Bearer dataset-DCyO89dHNWmsXMzJaWCCQOKo
|
||
|
||
Content-Type:application/json'
|
||
isInIteration: true
|
||
isInLoop: false
|
||
iteration_id: '1747125586388'
|
||
method: post
|
||
params: ''
|
||
retry_config:
|
||
max_retries: 3
|
||
retry_enabled: true
|
||
retry_interval: 100
|
||
selected: false
|
||
ssl_verify: true
|
||
timeout:
|
||
max_connect_timeout: 0
|
||
max_read_timeout: 0
|
||
max_write_timeout: 0
|
||
title: HTTP 请求
|
||
type: http-request
|
||
url: http://nginx:80/v1/datasets/{{#1747125586388.item#}}/retrieve
|
||
variables: []
|
||
height: 157
|
||
id: '1747125795256'
|
||
parentId: '1747125586388'
|
||
position:
|
||
x: 120.421417167448
|
||
y: 54
|
||
positionAbsolute:
|
||
x: 1108.421417167448
|
||
y: 336
|
||
selected: true
|
||
sourcePosition: right
|
||
targetPosition: left
|
||
type: custom
|
||
width: 242
|
||
zIndex: 1002
|
||
- data:
|
||
code: "\nfunction main({arg1}) {\n const result = [];\n \n // 判断arg1是否为空\n\
|
||
\ if (!arg1 || arg1.length === 0) {\n return {\n result:\
|
||
\ JSON.stringify([]) // 返回空数组的JSON字符串\n };\n }\n \n //\
|
||
\ 遍历arg1中的每个元素\n for (const str of arg1) {\n try {\n \
|
||
\ // 解析JSON\n const parsed = JSON.parse(str);\n \
|
||
\ // 检查是否有records属性且不为空数组\n if (parsed.records && Array.isArray(parsed.records)\
|
||
\ && parsed.records.length > 0) {\n result.push(...parsed.records)\n\
|
||
\ }\n } catch (e) {\n // 如果JSON解析失败,跳过这个元素\n\
|
||
\ console.error('Failed to parse JSON:', e);\n }\n \
|
||
\ }\n \n // 将结果数组转换为JSON字符串返回\n return {\n result: JSON.stringify(result)\n\
|
||
\ }\n}\n"
|
||
code_language: javascript
|
||
desc: ''
|
||
outputs:
|
||
result:
|
||
children: null
|
||
type: string
|
||
selected: false
|
||
title: 知识库检索结果整理
|
||
type: code
|
||
variables:
|
||
- value_selector:
|
||
- '1747125586388'
|
||
- output
|
||
variable: arg1
|
||
height: 52
|
||
id: '1747125859504'
|
||
position:
|
||
x: 1436
|
||
y: 282
|
||
positionAbsolute:
|
||
x: 1436
|
||
y: 282
|
||
selected: false
|
||
sourcePosition: right
|
||
targetPosition: left
|
||
type: custom
|
||
width: 242
|
||
- data:
|
||
desc: ''
|
||
outputs:
|
||
- value_selector:
|
||
- '1747125859504'
|
||
- result
|
||
value_type: string
|
||
variable: output
|
||
selected: false
|
||
title: 结束
|
||
type: end
|
||
height: 88
|
||
id: '1747125871123'
|
||
position:
|
||
x: 1739
|
||
y: 282
|
||
positionAbsolute:
|
||
x: 1739
|
||
y: 282
|
||
selected: false
|
||
sourcePosition: right
|
||
targetPosition: left
|
||
type: custom
|
||
width: 242
|
||
viewport:
|
||
x: 116.27083894320822
|
||
y: 126.27330841264018
|
||
zoom: 0.8705505632961247
|
||
rag_pipeline_variables: []
|