Files

4365 lines
132 KiB
YAML
Raw Permalink Normal View History

app:
description: AI在线咨询-上线使用
icon: 🤖
icon_background: '#FFEAD5'
mode: advanced-chat
name: 智能IT支持-员工咨询
use_icon_as_answer_icon: true
dependencies:
- current_identifier: null
type: marketplace
value:
marketplace_plugin_unique_identifier: langgenius/openai_api_compatible:0.0.23@59ef558a46420c436b280af1ee452b4129ddfd3567826112f6f193279d8c4a37
version: null
- current_identifier: null
type: marketplace
value:
marketplace_plugin_unique_identifier: yangyaofei/vllm:0.1.5@3eecf807d9767f40eb757ff70720291aa6055e9e1803893b4c93b61a5d4d4319
version: null
kind: app
version: 0.4.0
workflow:
conversation_variables:
- description: ''
id: f4602fd1-2bff-4c6f-bbad-e6ae1033e6e4
name: mmq
selector:
- conversation
- mmq
value: []
value_type: array[string]
- description: 保底机制
id: 24608e8f-1de8-4eba-b081-75bcff64594d
name: guarantee_mechanism
selector:
- conversation
- guarantee_mechanism
value: 1
value_type: integer
- description: 员工问题
id: 3b232c97-81b9-4b16-804c-cd845441b4d6
name: servyou_query
selector:
- conversation
- servyou_query
value: ''
value_type: string
- description: 历史问题对应答案
id: dd3c2a43-5813-4582-93ac-54c2e6f4261c
name: memory_ans
selector:
- conversation
- memory_ans
value: ''
value_type: string
- description: 历史问题
id: 8a7563cb-0d2f-49fe-801a-e61e659421ea
name: memory_query
selector:
- conversation
- memory_query
value: ''
value_type: string
environment_variables: []
features:
file_upload:
allowed_file_extensions:
- .JPG
- .JPEG
- .PNG
- .GIF
- .WEBP
- .SVG
allowed_file_types:
- image
- document
allowed_file_upload_methods:
- remote_url
- local_file
enabled: true
fileUploadConfig:
audio_file_size_limit: 50
batch_count_limit: 5
file_size_limit: 100
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: http-request
targetType: if-else
id: 1762241246839-source-1762333864200-target
selected: false
source: '1762241246839'
sourceHandle: source
target: '1762333864200'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: knowledge-retrieval
targetType: llm
id: 1764905829011-source-1764905844059-target
selected: false
source: '1764905829011'
sourceHandle: source
target: '1764905844059'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: assigner
targetType: answer
id: 1765357529351-source-1765181482474-target
selected: false
source: '1765357529351'
sourceHandle: source
target: '1765181482474'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: list-operator
targetType: llm
id: 1765436887640-source-1765437083981-target
selected: false
source: '1765436887640'
sourceHandle: source
target: '1765437083981'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: if-else
targetType: list-operator
id: 1765437585148-false-1765436887640-target
selected: false
source: '1765437585148'
sourceHandle: 'false'
target: '1765436887640'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: llm
targetType: template-transform
id: 1765437083981-source-1765439054336-target
source: '1765437083981'
sourceHandle: source
target: '1765439054336'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: template-transform
targetType: assigner
id: 1765439054336-source-1765441716709-target
source: '1765439054336'
sourceHandle: source
target: '1765441716709'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: if-else
targetType: if-else
id: 1765437585148-true-1765517905842-target
source: '1765437585148'
sourceHandle: 'true'
target: '1765517905842'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: if-else
targetType: answer
id: 1765517905842-true-1765518093072-target
source: '1765517905842'
sourceHandle: 'true'
target: '1765518093072'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: if-else
targetType: answer
id: 1765517905842-d7e857f8-75b0-44b6-a342-fcbf0fd1bce0-1765524938055-target
source: '1765517905842'
sourceHandle: d7e857f8-75b0-44b6-a342-fcbf0fd1bce0
target: '1765524938055'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: if-else
targetType: answer
id: 1765517905842-5b113ab9-2154-45bb-9fbc-e2fa2246b8c1-1765524956759-target
source: '1765517905842'
sourceHandle: 5b113ab9-2154-45bb-9fbc-e2fa2246b8c1
target: '1765524956759'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: llm
targetType: assigner
id: 1764905844059-source-1765357529351-target
source: '1764905844059'
sourceHandle: source
target: '1765357529351'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: if-else
targetType: answer
id: 1765517905842-66e1df2e-d7b7-4e2f-9ddb-ebac301f35f4-1765766043047-target
source: '1765517905842'
sourceHandle: 66e1df2e-d7b7-4e2f-9ddb-ebac301f35f4
target: '1765766043047'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: if-else
targetType: answer
id: 1765517905842-1ec2ad7a-456a-4181-ba0f-9a3362d7a44c-1765766067015-target
source: '1765517905842'
sourceHandle: 1ec2ad7a-456a-4181-ba0f-9a3362d7a44c
target: '1765766067015'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: if-else
targetType: answer
id: 1765517905842-909d209a-20c2-464b-9117-335166bd0209-1765766081739-target
source: '1765517905842'
sourceHandle: 909d209a-20c2-464b-9117-335166bd0209
target: '1765766081739'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: if-else
targetType: answer
id: 1765517905842-f8839db4-0b63-4411-b052-f82aa3807e34-1765766096673-target
source: '1765517905842'
sourceHandle: f8839db4-0b63-4411-b052-f82aa3807e34
target: '1765766096673'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: if-else
targetType: answer
id: 1765517905842-98d72ef6-f53a-482a-9cc6-36140595d055-1765766112941-target
source: '1765517905842'
sourceHandle: 98d72ef6-f53a-482a-9cc6-36140595d055
target: '1765766112941'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: code
targetType: assigner
id: 1765782485068-source-1765441606676-target
source: '1765782485068'
sourceHandle: source
target: '1765441606676'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: start
targetType: code
id: 1762235823950-source-1765782485068-target
source: '1762235823950'
sourceHandle: source
target: '1765782485068'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: llm
targetType: if-else
id: 1765785630566-source-1765786049975-target
source: '1765785630566'
sourceHandle: source
target: '1765786049975'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: if-else
targetType: http-request
id: 1765786049975-true-1762241246839-target
source: '1765786049975'
sourceHandle: 'true'
target: '1762241246839'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: if-else
targetType: http-request
id: 1765786049975-false-17657860354750-target
source: '1765786049975'
sourceHandle: 'false'
target: '17657860354750'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: llm
targetType: if-else
id: 1765785673343-source-1765786290221-target
source: '1765785673343'
sourceHandle: source
target: '1765786290221'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: if-else
targetType: http-request
id: 1765786290221-true-1762241246839-target
source: '1765786290221'
sourceHandle: 'true'
target: '1762241246839'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: if-else
targetType: http-request
id: 1765786290221-false-17657860354750-target
source: '1765786290221'
sourceHandle: 'false'
target: '17657860354750'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: http-request
targetType: if-else
id: 17657860354750-source-17657864016400-target
source: '17657860354750'
sourceHandle: source
target: '17657864016400'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: knowledge-retrieval
targetType: llm
id: 17657866222300-source-17657866286790-target
source: '17657866222300'
sourceHandle: source
target: '17657866286790'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: llm
targetType: assigner
id: 17657866286790-source-17657866367000-target
source: '17657866286790'
sourceHandle: source
target: '17657866367000'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: assigner
targetType: answer
id: 17657866367000-source-17657866567850-target
source: '17657866367000'
sourceHandle: source
target: '17657866567850'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: llm
targetType: if-else
id: 1766648935323-source-1766654954216-target
source: '1766648935323'
sourceHandle: source
target: '1766654954216'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: assigner
targetType: llm
id: 1766655043205-source-1765785630566-target
source: '1766655043205'
sourceHandle: source
target: '1765785630566'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: assigner
targetType: llm
id: 17666551541000-source-1765785673343-target
source: '17666551541000'
sourceHandle: source
target: '1765785673343'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: code
targetType: assigner
id: 1766726065787-source-1766655043205-target
source: '1766726065787'
sourceHandle: source
target: '1766655043205'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: llm
targetType: if-else
id: 17667264375750-source-17666551325690-target
source: '17667264375750'
sourceHandle: source
target: '17666551325690'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: code
targetType: assigner
id: 17667264509960-source-17666551541000-target
source: '17667264509960'
sourceHandle: source
target: '17666551541000'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: if-else
targetType: answer
id: 17667269647440-true-1766727080009-target
source: '17667269647440'
sourceHandle: 'true'
target: '1766727080009'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: if-else
targetType: answer
id: 17667272700050-true-1766727285253-target
source: '17667272700050'
sourceHandle: 'true'
target: '1766727285253'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: if-else
targetType: answer
id: 17657864016400-true-17667318333930-target
source: '17657864016400'
sourceHandle: 'true'
target: '17667318333930'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: if-else
targetType: answer
id: 1762333864200-true-17667318501870-target
source: '1762333864200'
sourceHandle: 'true'
target: '17667318501870'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: if-else
targetType: if-else
id: 1766654954216-false-1766737231108-target
source: '1766654954216'
sourceHandle: 'false'
target: '1766737231108'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: if-else
targetType: code
id: 1766737231108-false-1766726065787-target
source: '1766737231108'
sourceHandle: 'false'
target: '1766726065787'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: if-else
targetType: code
id: 1766737231108-true-1766737321402-target
source: '1766737231108'
sourceHandle: 'true'
target: '1766737321402'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: code
targetType: assigner
id: 1766737321402-source-17667375172980-target
source: '1766737321402'
sourceHandle: source
target: '17667375172980'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: assigner
targetType: llm
id: 17667375172980-source-1765785630566-target
source: '17667375172980'
sourceHandle: source
target: '1765785630566'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: if-else
targetType: if-else
id: 17666551325690-false-17667376015020-target
source: '17666551325690'
sourceHandle: 'false'
target: '17667376015020'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: if-else
targetType: code
id: 17667376015020-false-17667264509960-target
source: '17667376015020'
sourceHandle: 'false'
target: '17667264509960'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: if-else
targetType: code
id: 17667376015020-true-17667376904610-target
source: '17667376015020'
sourceHandle: 'true'
target: '17667376904610'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: code
targetType: assigner
id: 17667376904610-source-17667377094060-target
source: '17667376904610'
sourceHandle: source
target: '17667377094060'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: code
targetType: assigner
id: 1766739425288-source-1766739488182-target
source: '1766739425288'
sourceHandle: source
target: '1766739488182'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: assigner
targetType: if-else
id: 1765441606676-source-1765437585148-target
source: '1765441606676'
sourceHandle: source
target: '1765437585148'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: code
targetType: assigner
id: 17667406566450-source-17667406611650-target
source: '17667406566450'
sourceHandle: source
target: '17667406611650'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: if-else
targetType: code
id: 1765517905842-false-1766739425288-target
source: '1765517905842'
sourceHandle: 'false'
target: '1766739425288'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: assigner
targetType: http-request
id: 1766739488182-source-17666588259460-target
source: '1766739488182'
sourceHandle: source
target: '17666588259460'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: assigner
targetType: code
id: 1765441716709-source-17667406566450-target
source: '1765441716709'
sourceHandle: source
target: '17667406566450'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: assigner
targetType: http-request
id: 17667406611650-source-17667264218480-target
source: '17667406611650'
sourceHandle: source
target: '17667264218480'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: if-else
targetType: assigner
id: 1766654954216-true-1766986002113-target
source: '1766654954216'
sourceHandle: 'true'
target: '1766986002113'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: if-else
targetType: template-transform
id: 1766739849720-true-1766986387628-target
source: '1766739849720'
sourceHandle: 'true'
target: '1766986387628'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: template-transform
targetType: assigner
id: 1766986387628-source-1766986503282-target
source: '1766986387628'
sourceHandle: source
target: '1766986503282'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: assigner
targetType: code
id: 1766986503282-source-1766737321402-target
source: '1766986503282'
sourceHandle: source
target: '1766737321402'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: if-else
targetType: assigner
id: 17666551325690-true-17669865896480-target
source: '17666551325690'
sourceHandle: 'true'
target: '17669865896480'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: if-else
targetType: template-transform
id: 17667403682010-true-17669866215620-target
source: '17667403682010'
sourceHandle: 'true'
target: '17669866215620'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: template-transform
targetType: assigner
id: 17669866215620-source-17669866341260-target
source: '17669866215620'
sourceHandle: source
target: '17669866341260'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: assigner
targetType: code
id: 17669866341260-source-17667376904610-target
source: '17669866341260'
sourceHandle: source
target: '17667376904610'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: assigner
targetType: llm
id: 17667377094060-source-1765785673343-target
source: '17667377094060'
sourceHandle: source
target: '1765785673343'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: knowledge-retrieval
targetType: llm
id: 17669940249670-source-17669940385140-target
source: '17669940249670'
sourceHandle: source
target: '17669940385140'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: assigner
targetType: code
id: 17669865896480-source-1766994739449-target
source: '17669865896480'
sourceHandle: source
target: '1766994739449'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: assigner
targetType: code
id: 1766986002113-source-17669960466150-target
source: '1766986002113'
sourceHandle: source
target: '17669960466150'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: knowledge-retrieval
targetType: llm
id: 17669960738730-source-17669960812650-target
source: '17669960738730'
sourceHandle: source
target: '17669960812650'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: llm
targetType: assigner
id: 17669960812650-source-17669987893140-target
source: '17669960812650'
sourceHandle: source
target: '17669987893140'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: assigner
targetType: answer
id: 17669987893140-source-1766655012100-target
source: '17669987893140'
sourceHandle: source
target: '1766655012100'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: llm
targetType: assigner
id: 17669940385140-source-17669989513170-target
source: '17669940385140'
sourceHandle: source
target: '17669989513170'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: assigner
targetType: answer
id: 17669989513170-source-17666551440550-target
source: '17669989513170'
sourceHandle: source
target: '17666551440550'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: http-request
targetType: code
id: 17669960576130-source-1767577724877-target
source: '17669960576130'
sourceHandle: source
target: '1767577724877'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: code
targetType: knowledge-retrieval
id: 1767577724877-source-17669960738730-target
source: '1767577724877'
sourceHandle: source
target: '17669960738730'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: http-request
targetType: code
id: 17669939758770-source-17675939731110-target
source: '17669939758770'
sourceHandle: source
target: '17675939731110'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: code
targetType: knowledge-retrieval
id: 17675939731110-source-17669940249670-target
source: '17675939731110'
sourceHandle: source
target: '17669940249670'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: if-else
targetType: code
id: 1762333864200-false-17676676167470-target
source: '1762333864200'
sourceHandle: 'false'
target: '17676676167470'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: code
targetType: knowledge-retrieval
id: 17676676167470-source-1764905829011-target
source: '17676676167470'
sourceHandle: source
target: '1764905829011'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: if-else
targetType: code
id: 17657864016400-false-17676676927510-target
source: '17657864016400'
sourceHandle: 'false'
target: '17676676927510'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: code
targetType: knowledge-retrieval
id: 17676676927510-source-17657866222300-target
source: '17676676927510'
sourceHandle: source
target: '17657866222300'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: if-else
targetType: code
id: 1766739849720-false-17677487224360-target
source: '1766739849720'
sourceHandle: 'false'
target: '17677487224360'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: if-else
targetType: code
id: 17667403682010-false-17677497085030-target
source: '17667403682010'
sourceHandle: 'false'
target: '17677497085030'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: http-request
targetType: if-else
id: 17666588259460-source-1766739849720-target
source: '17666588259460'
sourceHandle: source
target: '1766739849720'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: if-else
targetType: llm
id: 17667269647440-false-1766648935323-target
source: '17667269647440'
sourceHandle: 'false'
target: '1766648935323'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: http-request
targetType: if-else
id: 17667264218480-source-17667403682010-target
source: '17667264218480'
sourceHandle: source
target: '17667403682010'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: if-else
targetType: llm
id: 17667272700050-false-17667264375750-target
source: '17667272700050'
sourceHandle: 'false'
target: '17667264375750'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: code
targetType: if-else
id: 17677487224360-source-17667269647440-target
source: '17677487224360'
sourceHandle: source
target: '17667269647440'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: code
targetType: if-else
id: 17677497085030-source-17667272700050-target
source: '17677497085030'
sourceHandle: source
target: '17667272700050'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: code
targetType: http-request
id: 17669960466150-source-17669960576130-target
source: '17669960466150'
sourceHandle: source
target: '17669960576130'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: code
targetType: http-request
id: 1766994739449-source-17669939758770-target
source: '1766994739449'
sourceHandle: source
target: '17669939758770'
targetHandle: target
type: custom
zIndex: 0
nodes:
- data:
selected: false
title: 同事咨询问题
type: start
variables: []
height: 52
id: '1762235823950'
position:
x: -4529.924643957575
y: 436.97867740596223
positionAbsolute:
x: -4529.924643957575
y: 436.97867740596223
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
authorization:
config: null
type: no-auth
body:
data:
- id: key-value-263
key: ''
type: text
value: "{\n \"model\": \"model\",\n \"messages\": [\n {\n \"\
role\": \"user\",\n \"content\": \"当前问题:{{#conversation.servyou_query#}}\\\
n 前置问题: {{#conversation.memory_query#}}\\n前置回复:{{#conversation.memory_ans#}}\"\
\n }\n ],\n \"stream\": true,\n \"encoding\": \"utf-8\"\n}"
type: json
headers: 'Content-Type:application/json; charset="utf-8"
Authorization:Bearer ragflow-ZiYmIzMjcwYjk0ZjExZjBhODgzMDI0Mm'
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: ragflow知识库
type: http-request
url: http://10.80.0.85:9380/api/v1/agents_openai/d4051f80dfdc11f0993d0242ac120006/chat/completions
variables: []
height: 170
id: '1762241246839'
position:
x: 8755.808392505616
y: -230.25468317548746
positionAbsolute:
x: 8755.808392505616
y: -230.25468317548746
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
cases:
- case_id: 'true'
conditions:
- comparison_operator: contains
id: 7f0f5251-7f1d-46f1-bff7-a4a4c215dbc5
value: 您的问题可能不在服务业务范围内
varType: string
variable_selector:
- '1762241246839'
- body
id: 'true'
logical_operator: or
selected: false
title: 知识库是否完全无命中
type: if-else
height: 124
id: '1762333864200'
position:
x: 9452.516247064188
y: -225.60940729165085
positionAbsolute:
x: 9452.516247064188
y: -225.60940729165085
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
dataset_ids:
- 1aM5JfrtmBYtghXflTeQDOTiM0MaufWVaEpunkstrQr2DWCad1pyfImMvY9EDXJh
- SouBCst5gmvLf9zgdmQZq3fT46jOWdR4r136JeI7ieO9n5FJVVzKCCd0aaLkQ6UK
multiple_retrieval_config:
reranking_enable: true
reranking_mode: reranking_model
reranking_model:
model: bge-rerank
provider: langgenius/openai_api_compatible/openai_api_compatible
top_k: 4
query_variable_selector:
- conversation
- servyou_query
retrieval_mode: multiple
selected: false
title: 知识库图片检索
type: knowledge-retrieval
height: 118
id: '1764905829011'
position:
x: 11501.117932237017
y: 258.0075828932353
positionAbsolute:
x: 11501.117932237017
y: 258.0075828932353
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
context:
enabled: true
variable_selector:
- '1764905829011'
- result
memory:
query_prompt_template: '{{#sys.query#}}【{{#conversation.servyou_query#}}】
{{#sys.files#}}'
role_prefix:
assistant: ''
user: ''
window:
enabled: true
size: 10
model:
completion_params:
temperature: 0.7
mode: chat
name: Qwen3-30B-A3B-Instruct
provider: yangyaofei/vllm/vllm
prompt_template:
- id: 8fdbc119-5c08-4eb4-9364-40deb1bb4b1f
role: system
text: '# 角色与核心任务
- 你是一名专业的IT支持分析助理,专门处理企业内部同事的IT咨询。
- **核心使命**:为同事提供准确、清晰且可立即执行的解决方案。
# 处理流程与规则
## 第一步:问答判断
- 判断知识库内容能否回复同事咨询问题。
- 此判断是后续流程的决策基础。
## 第二步:分支处理与回复生成 (整合结束语)
###情况一:知识库内容能够回复同事咨询问题
- **同时**,判断图文信息与同事咨询问题是否相关。
- **提取相关图文信息中的链接**,如”![image](https://yw-dify.dc.servyou-it.com)“提取其中的”https://yw-dify.dc.servyou-it.com“,进行全局规则中的**链接标准化**。
- **生成回复**:基于知识库内容和相关的图文信息,生成最终回复。
###情况二:知识库内容不能够回复同事咨询问题
- **回复固定语句**:"抱歉,您的问题可能不在服务业务范围内,请尝试调整其他问法。"。
- **重要**:在上述固定语句后,必须同样附加结束语。
#全局输出格式要求(仅当知识库内容能够回复同事咨询问题时生效)
- **结构化格式**,回复必须具有清晰的视觉层次,严格使用以下格式:
-- 使用标题(如 ### 问题描述、### 解决方案)划分部分。
-- 使用编号列表(1. 2. 3...)表示有顺序的操作步骤。
-- 使用项目符号列表(-)表示并列的要点或说明。
-- 关键信息(如服务器地址、代码关键字)使用行内代码标记(如 `hostname`)突出。
#全局内容质量要求
- **简洁精准**:确保回答直接精准有效,避免冗长,切勿过度赘述和扩展回答。
- **专业友好**:保持专业、耐心且友好的支持态度,理解同事的急切心情。
- **清晰准确**:确保技术术语解释清楚,步骤无歧义,信息准确无误。
- **回复有效性**:确保**问题描述**的内容,在**解决方案**是准确的回复并给出了正确的执行方案。
#全局规则(所有分支适用)【要求】
- **版权合规**:如果知识库内容和同事咨询问题涉及破解、激活等风险内容,必须附加回复相关风险内容的免责声明。
- **链接标准化**:所有链接必须转换为markdown格式,不得出现原始链接,如”https://oa.servyou-it.com/,输出为[xxx](https://oa.servyou-it.com/)“,其中xxx根据上下文定义。
- **结束语**:必须在回复末尾附加固定提示:"您可选择回复"IT、人力、物业、报销、党工、安全"关键词,通过回复的链接进入人工支持。(人工服务时间:工作日9:00~18:00)"。
- **文字要求**:在**问题描述**和**解决方案**中,不能包含文字"知识库"和"员工”。
- **文字替换**:在**问题描述**和**解决方案**中,将"同事"文字改为称呼"您"。
- **回复字数**:回复字数不超过1000字。
- **完全忠于知识库内容回复**:在**问题描述**和**解决方案**中,不允许出现知识库外的拓展思考内容,包括dify的链接地址等'
- id: 034760a9-98ca-4e3a-a86d-269ca66a9e69
role: user
text: '同事咨询问题:{{#conversation.servyou_query#}}
知识库内容:{{#17676676167470.result#}}
图文信息:{{#context#}}'
selected: false
title: 本地大模型分析
type: llm
vision:
enabled: false
height: 88
id: '1764905844059'
position:
x: 12303.182583067013
y: 258.0075828932353
positionAbsolute:
x: 12303.182583067013
y: 258.0075828932353
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
answer: '{{#1764905844059.text#}}'
selected: false
title: 整合回复
type: answer
variables: []
height: 103
id: '1765181482474'
position:
x: 13762.9588534678
y: 258.0075828932353
positionAbsolute:
x: 13762.9588534678
y: 258.0075828932353
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
items:
- input_type: variable
operation: over-write
value:
- conversation
- servyou_query
variable_selector:
- conversation
- memory_query
write_mode: over-write
- input_type: variable
operation: over-write
value:
- '1764905844059'
- text
variable_selector:
- conversation
- memory_ans
write_mode: over-write
selected: false
title: 全局变量-记忆前置问题和回复
type: assigner
version: '2'
height: 110
id: '1765357529351'
position:
x: 13067.71450474107
y: 258.0075828932353
positionAbsolute:
x: 13067.71450474107
y: 258.0075828932353
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
extract_by:
enabled: false
serial: '1'
filter_by:
conditions:
- comparison_operator: in
key: type
value:
- image
enabled: true
item_var_type: file
limit:
enabled: false
size: 10
order_by:
enabled: false
key: ''
value: asc
selected: false
title: 提取图片
type: list-operator
var_type: array[file]
variable:
- sys
- files
height: 92
id: '1765436887640'
position:
x: -1236.233421978262
y: 731.254359189726
positionAbsolute:
x: -1236.233421978262
y: 731.254359189726
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
context:
enabled: true
variable_selector:
- '1765436887640'
- last_record
model:
completion_params:
temperature: 0.7
mode: chat
name: Qwen3-VL-8B-Instruct
provider: langgenius/openai_api_compatible/openai_api_compatible
prompt_template:
- id: 9f9ca01e-921c-46af-9fde-99961443a7f4
role: system
text: 分析图片的内容,不超过50字。
- id: 01bdc141-56e6-4757-a1f5-57f78f504369
role: user
text: 图片:{{#context#}}
selected: false
title: 图片分析大模型
type: llm
vision:
configs:
detail: high
variable_selector:
- '1765436887640'
- last_record
enabled: true
height: 88
id: '1765437083981'
position:
x: -729.4536141008323
y: 888.1844744887503
positionAbsolute:
x: -729.4536141008323
y: 888.1844744887503
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
cases:
- case_id: 'true'
conditions:
- comparison_operator: empty
id: e86d98d8-010f-4cf2-a1c6-b8e151b7cf26
value: ''
varType: array[file]
variable_selector:
- sys
- files
id: 'true'
logical_operator: and
selected: false
title: 图文判断
type: if-else
height: 124
id: '1765437585148'
position:
x: -1926.280179417684
y: 425.8515926460108
positionAbsolute:
x: -1926.280179417684
y: 425.8515926460108
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
selected: false
template: '{{ image }},{{ text }}'
title: 图文内容整合
type: template-transform
variables:
- value_selector:
- '1765437083981'
- text
value_type: string
variable: image
- value_selector:
- conversation
- servyou_query
value_type: string
variable: text
height: 52
id: '1765439054336'
position:
x: -184.91587430741686
y: 1042.342443267299
positionAbsolute:
x: -184.91587430741686
y: 1042.342443267299
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
items:
- input_type: variable
operation: over-write
value:
- '1765782485068'
- result
variable_selector:
- conversation
- servyou_query
write_mode: over-write
selected: false
title: 全局赋值-同事咨询问题
type: assigner
version: '2'
height: 84
id: '1765441606676'
position:
x: -2963.8329056615107
y: 436.97867740596223
positionAbsolute:
x: -2963.8329056615107
y: 436.97867740596223
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
items:
- input_type: variable
operation: over-write
value:
- '1765439054336'
- output
variable_selector:
- conversation
- servyou_query
write_mode: over-write
selected: false
title: 全局变量-同事咨询问题
type: assigner
version: '2'
height: 84
id: '1765441716709'
position:
x: 293.29585950407113
y: 1160.9098249676185
positionAbsolute:
x: 293.29585950407113
y: 1160.9098249676185
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
cases:
- case_id: 'true'
conditions:
- comparison_operator: is
id: 33ee6a32-a0c0-4bbf-9a96-bb7160234499
value: 您好
varType: string
variable_selector:
- conversation
- servyou_query
- comparison_operator: is
id: 459317d5-9334-4557-83cc-bcd5acec58bf
value: 你好
varType: string
variable_selector:
- conversation
- servyou_query
- comparison_operator: is
id: 73df0b1d-a2ad-45f8-8b63-003d70b0d108
value: hi
varType: string
variable_selector:
- conversation
- servyou_query
- comparison_operator: is
id: 20e600d7-6737-4fd2-8658-26e43b68bc32
value: 哈喽
varType: string
variable_selector:
- conversation
- servyou_query
- comparison_operator: is
id: b7903e47-d4fb-44e1-b6a1-242903487ff6
value: Hi
varType: string
variable_selector:
- conversation
- servyou_query
- comparison_operator: is
id: af62fff6-c3de-4c8d-821a-38c7f1f44608
value: HI
varType: string
variable_selector:
- conversation
- servyou_query
- comparison_operator: is
id: ea51a7b1-7f5a-435f-a56c-2348802996a1
value: hl
varType: string
variable_selector:
- conversation
- servyou_query
- comparison_operator: is
id: 92c3338e-915f-424f-87fb-84eb995e0f40
value: 早上好
varType: string
variable_selector:
- conversation
- servyou_query
- comparison_operator: is
id: f47b5f19-0c46-46f0-8098-ee05a2078547
value: 中午好
varType: string
variable_selector:
- conversation
- servyou_query
- comparison_operator: is
id: 6362a678-559e-4cf7-a48d-d997b56629c3
value: 晚上好
varType: string
variable_selector:
- conversation
- servyou_query
id: 'true'
logical_operator: or
- case_id: d7e857f8-75b0-44b6-a342-fcbf0fd1bce0
conditions:
- comparison_operator: is
id: 83764bd9-5d95-4aa7-966c-38a0eb37f463
value: 人工
varType: string
variable_selector:
- conversation
- servyou_query
- comparison_operator: is
id: 1135a97c-f44c-4b05-9048-e0efed72d761
value: 人工服务
varType: string
variable_selector:
- conversation
- servyou_query
- comparison_operator: is
id: b80be458-4af2-4d20-8b7c-1d661e75fa7f
value: 转人工
varType: string
variable_selector:
- conversation
- servyou_query
- comparison_operator: is
id: debde512-7ae9-4abe-9778-a0073d2e42d8
value: 人工支持
varType: string
variable_selector:
- conversation
- servyou_query
- comparison_operator: is
id: 9d308df4-3147-4c89-9073-d3199b69d99a
value: 能否人工
varType: string
variable_selector:
- conversation
- servyou_query
- comparison_operator: is
id: 553a78ee-cb2c-46b9-9475-c6bca650a51c
value: 人工客服
varType: string
variable_selector:
- conversation
- servyou_query
- comparison_operator: is
id: e244f35d-9568-46e2-a9e0-605022e9996d
value: IT人工
varType: string
variable_selector:
- conversation
- servyou_query
id: d7e857f8-75b0-44b6-a342-fcbf0fd1bce0
logical_operator: or
- case_id: 5b113ab9-2154-45bb-9fbc-e2fa2246b8c1
conditions:
- comparison_operator: is
id: ca85a04b-ea31-40de-87ea-024ea69c780a
value: IT
varType: string
variable_selector:
- conversation
- servyou_query
- comparison_operator: is
id: f721a7cf-e0cc-48a2-9314-b73967c900fb
value: it
varType: string
variable_selector:
- conversation
- servyou_query
- comparison_operator: is
id: 9547b80f-0444-46c0-acb1-a1e37309ac84
value: iT
varType: string
variable_selector:
- conversation
- servyou_query
- comparison_operator: is
id: ad1029fa-3fb9-4d48-a8a5-e5a4c24224fd
value: It
varType: string
variable_selector:
- conversation
- servyou_query
id: 5b113ab9-2154-45bb-9fbc-e2fa2246b8c1
logical_operator: or
- case_id: 66e1df2e-d7b7-4e2f-9ddb-ebac301f35f4
conditions:
- comparison_operator: is
id: d109fdb4-fb99-47fa-8c4d-0eaac37846a4
value: 人力
varType: string
variable_selector:
- conversation
- servyou_query
id: 66e1df2e-d7b7-4e2f-9ddb-ebac301f35f4
logical_operator: and
- case_id: 1ec2ad7a-456a-4181-ba0f-9a3362d7a44c
conditions:
- comparison_operator: is
id: 2fd0693a-fb0e-46a2-902e-9fd7b26c412c
value: 物业
varType: string
variable_selector:
- conversation
- servyou_query
id: 1ec2ad7a-456a-4181-ba0f-9a3362d7a44c
logical_operator: and
- case_id: 909d209a-20c2-464b-9117-335166bd0209
conditions:
- comparison_operator: is
id: d75ac251-6e79-4b8d-bc6a-510f0c38cfb4
value: 报销
varType: string
variable_selector:
- conversation
- servyou_query
id: 909d209a-20c2-464b-9117-335166bd0209
logical_operator: and
- case_id: f8839db4-0b63-4411-b052-f82aa3807e34
conditions:
- comparison_operator: is
id: 213ed616-05ae-483a-8c37-512eb39a138a
value: 党工
varType: string
variable_selector:
- conversation
- servyou_query
id: f8839db4-0b63-4411-b052-f82aa3807e34
logical_operator: and
- case_id: 98d72ef6-f53a-482a-9cc6-36140595d055
conditions:
- comparison_operator: is
id: eead373e-a9f0-459e-b2bf-6ea814f65e4c
value: 安全
varType: string
variable_selector:
- conversation
- servyou_query
id: 98d72ef6-f53a-482a-9cc6-36140595d055
logical_operator: and
selected: true
title: 自定义规则库
type: if-else
height: 928
id: '1765517905842'
position:
x: 520.5281865827573
y: -2456.2000110016365
positionAbsolute:
x: 520.5281865827573
y: -2456.2000110016365
selected: true
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
answer: Hi!我是“智能IT助手”,很高兴为您服务,请使用文字简单描述您的问题。
selected: false
title: 问候固定回复
type: answer
variables: []
height: 116
id: '1765518093072'
position:
x: 2554.5815342573715
y: -3113.922099235114
positionAbsolute:
x: 2554.5815342573715
y: -3113.922099235114
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
answer: 请使用文字简单描述您的问题,或者回复“IT”、“人力”、“物业”、“报销”、“党工”、“安全”等获得人工咨询服务入口。
selected: false
title: 输入“人工”二字相关固定回复
type: answer
variables: []
height: 148
id: '1765524938055'
position:
x: 2854.0743305228325
y: -2967.3309878875216
positionAbsolute:
x: 2854.0743305228325
y: -2967.3309878875216
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
answer: 请点击“[联系IT人工坐席](https://work.weixin.qq.com/nl/innerkfid/ikfCtcYBwAASJO8iTSSGONGsDfFMoUypg)”链接进入人工服务窗口,简单描述您的问题,并提供报错信息或截图,同事将尽快回复您的问题,(人工坐席服务时间:工作日 9:00~18:00)。【注:请确保企微在最新版本,否则无法点击链接。】
selected: false
title: IT坐席人工链接回复
type: answer
variables: []
height: 228
id: '1765524956759'
position:
x: 3113.2329739514166
y: -2800.425441650135
positionAbsolute:
x: 3113.2329739514166
y: -2800.425441650135
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
answer: 请点击“[人力资源共享服务咨询](https://work.weixin.qq.com/nl/innerkfid/ikfCtcYBwAAvSRL5i5b_Xia8vCmFc2gRw)”链接进入人工服务窗口,简单描述您的问题,同事将尽快回复您的问题。【注:请确保企微在最新版本,否则无法点击链接。】
selected: false
title: 人力坐席人工链接回复
type: answer
variables: []
height: 196
id: '1765766043047'
position:
x: 3374.9606775942593
y: -2570.152723035539
positionAbsolute:
x: 3374.9606775942593
y: -2570.152723035539
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
answer: 请点击“[物业服务咨询](https://work.weixin.qq.com/nl/innerkfid/ikfCtcYBwAAUtkMyOToCZqe42ZBDupVEQ)”链接进入人工服务窗口,简单描述您的问题,同事将尽快回复您的问题。【注:请确保企微在最新版本,否则无法点击链接。】
selected: false
title: 物业坐席人工链接回复
type: answer
variables: []
height: 196
id: '1765766067015'
position:
x: 3616.741884343417
y: -2365.8413323601862
positionAbsolute:
x: 3616.741884343417
y: -2365.8413323601862
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
answer: 请点击“[报销服务咨询](https://work.weixin.qq.com/nl/innerkfid/ikfCtcYBwAAG4HC1zWJtPuALPKl2X6jcw)”链接进入人工服务窗口,简单描述您的问题,同事将尽快回复您的问题。【注:请确保企微在最新版本,否则无法点击链接。】
selected: false
title: 报销坐席人工链接回复
type: answer
variables: []
height: 196
id: '1765766081739'
position:
x: 3909.9734093883203
y: -2174.2176645758727
positionAbsolute:
x: 3909.9734093883203
y: -2174.2176645758727
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
answer: 请点击“[党工服务咨询](https://work.weixin.qq.com/nl/innerkfid/ikfCtcYBwAANk3yPOPAmkD6nLRHjbv-Zg)”链接进入人工服务窗口,简单描述您的问题,同事将尽快回复您的问题。【注:请确保企微在最新版本,否则无法点击链接。】
selected: false
title: 党工坐席人工链接回复
type: answer
variables: []
height: 196
id: '1765766096673'
position:
x: 4161.9490515054285
y: -1965.5190282543938
positionAbsolute:
x: 4161.9490515054285
y: -1965.5190282543938
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
answer: 请点击“[安全服务咨询](https://work.weixin.qq.com/nl/innerkfid/ikfCtcYBwAAtkP_ODMcv53bGE5x5M9YYw)”链接进入人工服务窗口,简单描述您的问题,同事将尽快回复您的问题。【注:请确保企微在最新版本,否则无法点击链接。】
selected: false
title: 安全坐席人工链接回复
type: answer
variables: []
height: 196
id: '1765766112941'
position:
x: 4421.398579391068
y: -1741.1828280237867
positionAbsolute:
x: 4421.398579391068
y: -1741.1828280237867
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
code: "def main(query: str):\n extracted_content = \"\"\n query = query.replace(\"\
\\n\",\"\")\n query = query.replace(\"\\\"\",\"\")\n query = query.strip()\n\
\ if \"Here is my question\" in query:\n before, separator, after\
\ = query.partition(\"Here is my question:\")\n if separator:\n \
\ if after:\n extracted_content = after.strip()\n\
\ else:\n after = \"什么问题?\"\n extracted_content\
\ = after.strip()\n else:\n extracted_content = query.strip()\n\
\ return {\n \"result\": extracted_content\n }\n"
code_language: python3
outputs:
result:
children: null
type: string
selected: false
title: 代码执行
type: code
variables:
- value_selector:
- sys
- query
value_type: string
variable: query
height: 52
id: '1765782485068'
position:
x: -3867.754148404409
y: 436.97867740596223
positionAbsolute:
x: -3867.754148404409
y: 436.97867740596223
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
context:
enabled: true
variable_selector:
- conversation
- servyou_query
model:
completion_params:
temperature: 0.7
mode: chat
name: Qwen3-30B-A3B-Instruct
provider: yangyaofei/vllm/vllm
prompt_template:
- id: df73d0b1-fb70-4b31-b446-94bfc168d44c
role: system
text: '##角色
- 你是一个严谨的文档相关性分析专家,擅长识别文本之间的实质意图关联。
##任务
- 对比分析以下两段内容:
-- 当前查询内容
-- 历史查询内容
- 判断两者是否围绕同一个具体问题或需求展开,且意图一致、信息可直接对应。
#规则
- 仔细理解每一段内容的核心意图和关键信息点。
- 按以下条件判断是否为“相关”:
-- 主题一致,且针对的是同一具体问题;
-- 意图重合;
-- 信息可直接呼应或衔接,而非仅仅话题类似。
- 若内容虽有话题重叠,但意图不同、问题指向不同,或信息无法直接对应,则判断为“不相关”。
- 若历史查询内容为空,则判断为“不相关”。
#输出时仅允许返回以下两种结果之一,不要添加任何解释或标点:
- 相关
- 不相关'
- id: f694ec6c-01b7-423a-95ec-c91a21fabe3f
role: user
text: '当前查询内容:{{#context#}}
历史查询内容:{{#conversation.memory_query#}}'
selected: false
title: 相关性判断1
type: llm
vision:
enabled: false
height: 88
id: '1765785630566'
position:
x: 7704.55937556773
y: -266.3929337287146
positionAbsolute:
x: 7704.55937556773
y: -266.3929337287146
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
context:
enabled: true
variable_selector:
- conversation
- servyou_query
model:
completion_params:
temperature: 0.7
mode: chat
name: Qwen3-30B-A3B-Instruct
provider: yangyaofei/vllm/vllm
prompt_template:
- id: 87969cdd-a098-488b-ba64-29238794b75d
role: system
text: '##角色
- 你是一个严谨的文档相关性分析专家,擅长识别文本之间的实质意图关联。
##任务
- 对比分析以下两段内容:
-- 当前查询内容
-- 历史查询内容
- 判断两者是否围绕同一个具体问题或需求展开,且意图一致、信息可直接对应。
#规则
- 仔细理解每一段内容的核心意图和关键信息点。
- 按以下条件判断是否为“相关”:
-- 主题一致,且针对的是同一具体问题;
-- 意图重合;
-- 信息可直接呼应或衔接,而非仅仅话题类似。
- 若内容虽有话题重叠,但意图不同、问题指向不同,或信息无法直接对应,则判断为“不相关”。
- 若历史查询内容为空,则判断为“不相关”。
#输出时仅允许返回以下两种结果之一,不要添加任何解释或标点:
- 相关
- 不相关'
- id: 82dc391b-0a47-4a1d-85b7-765f54602748
role: user
text: '当前查询内容:{{#context#}}
历史查询内容:{{#conversation.memory_query#}}'
selected: false
title: 相关性判断2
type: llm
vision:
enabled: false
height: 88
id: '1765785673343'
position:
x: 7712.724115335564
y: 1135.8772265369253
positionAbsolute:
x: 7712.724115335564
y: 1135.8772265369253
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
authorization:
config: null
type: no-auth
body:
data:
- id: key-value-263
key: ''
type: text
value: "{\n \"model\": \"model\",\n \"messages\": [\n {\n \"\
role\": \"user\",\n \"content\": \"{{#conversation.servyou_query#}}\"\
\n }\n ],\n \"stream\": true,\n \"encoding\": \"utf-8\"\n}"
type: json
headers: 'Content-Type:application/json; charset="utf-8"
Authorization:Bearer ragflow-ZiYmIzMjcwYjk0ZjExZjBhODgzMDI0Mm'
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: ragflow知识库 (1)
type: http-request
url: http://10.80.0.85:9380/api/v1/agents_openai/d4051f80dfdc11f0993d0242ac120006/chat/completions
variables: []
height: 170
id: '17657860354750'
position:
x: 9160.279141300143
y: 1215.7394875693199
positionAbsolute:
x: 9160.279141300143
y: 1215.7394875693199
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
cases:
- case_id: 'true'
conditions:
- comparison_operator: is
id: f483964e-e4ed-4c6e-8ae1-9d2ae1b42e94
value: 相关
varType: string
variable_selector:
- '1765785630566'
- text
id: 'true'
logical_operator: or
selected: false
title: 是否相关1
type: if-else
height: 124
id: '1765786049975'
position:
x: 8195.329669667188
y: -266.3929337287146
positionAbsolute:
x: 8195.329669667188
y: -266.3929337287146
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
cases:
- case_id: 'true'
conditions:
- comparison_operator: is
id: f6fd9947-db67-4463-8e25-858e223cc137
value: 相关
varType: string
variable_selector:
- '1765785673343'
- text
id: 'true'
logical_operator: and
selected: false
title: 是否相关2
type: if-else
height: 124
id: '1765786290221'
position:
x: 8195.329669667188
y: 1135.8772265369253
positionAbsolute:
x: 8195.329669667188
y: 1135.8772265369253
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
cases:
- case_id: 'true'
conditions:
- comparison_operator: contains
id: 7f0f5251-7f1d-46f1-bff7-a4a4c215dbc5
value: 您的问题可能不在服务业务范围内
varType: string
variable_selector:
- '17657860354750'
- body
id: 'true'
logical_operator: or
selected: false
title: 知识库是否完全无命中 (1)
type: if-else
height: 124
id: '17657864016400'
position:
x: 10219.434585373543
y: 1199.837653129122
positionAbsolute:
x: 10219.434585373543
y: 1199.837653129122
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
dataset_ids:
- 1aM5JfrtmBYtghXflTeQDOTiM0MaufWVaEpunkstrQr2DWCad1pyfImMvY9EDXJh
- SouBCst5gmvLf9zgdmQZq3fT46jOWdR4r136JeI7ieO9n5FJVVzKCCd0aaLkQ6UK
multiple_retrieval_config:
reranking_enable: true
reranking_mode: reranking_model
reranking_model:
model: bge-rerank
provider: langgenius/openai_api_compatible/openai_api_compatible
top_k: 4
query_variable_selector:
- conversation
- servyou_query
retrieval_mode: multiple
selected: false
title: 知识库图片检索 (1)
type: knowledge-retrieval
height: 118
id: '17657866222300'
position:
x: 11335.415558234963
y: 2023.661199565415
positionAbsolute:
x: 11335.415558234963
y: 2023.661199565415
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
context:
enabled: true
variable_selector:
- '17657866222300'
- result
memory:
query_prompt_template: '{{#sys.query#}}【{{#conversation.servyou_query#}}】
{{#sys.files#}}'
role_prefix:
assistant: ''
user: ''
window:
enabled: true
size: 10
model:
completion_params:
temperature: 0.7
mode: chat
name: Qwen3-30B-A3B-Instruct
provider: yangyaofei/vllm/vllm
prompt_template:
- id: 8fdbc119-5c08-4eb4-9364-40deb1bb4b1f
role: system
text: '# 角色与核心任务
- 你是一名专业的IT支持分析助理,专门处理企业内部同事的IT咨询。
- **核心使命**:为同事提供准确、清晰且可立即执行的解决方案。
# 处理流程与规则
## 第一步:问答判断
- 判断知识库内容能否回复同事咨询问题。
- 此判断是后续流程的决策基础。
## 第二步:分支处理与回复生成 (整合结束语)
###情况一:知识库内容能够回复同事咨询问题
- **同时**,判断图文信息与同事咨询问题是否相关。
- **提取相关图文信息中的链接**,如”![image](https://yw-dify.dc.servyou-it.com)“提取其中的”https://yw-dify.dc.servyou-it.com“,进行全局规则中的**链接标准化**。
- **生成回复**:基于知识库内容和相关的图文信息,生成最终回复。
###情况二:知识库内容不能够回复同事咨询问题
- **回复固定语句**:"抱歉,您的问题可能不在服务业务范围内,请尝试调整其他问法。"。
- **重要**:在上述固定语句后,必须同样附加结束语。
#全局输出格式要求(仅当知识库内容能够回复同事咨询问题时生效)
- **结构化格式**,回复必须具有清晰的视觉层次,严格使用以下格式:
-- 使用标题(如 ### 问题描述、### 解决方案)划分部分。
-- 使用编号列表(1. 2. 3...)表示有顺序的操作步骤。
-- 使用项目符号列表(-)表示并列的要点或说明。
-- 关键信息(如服务器地址、代码关键字)使用行内代码标记(如 `hostname`)突出。
#全局内容质量要求
- **简洁精准**:确保回答直接精准有效,避免冗长,切勿过度赘述和扩展回答。
- **专业友好**:保持专业、耐心且友好的支持态度,理解同事的急切心情。
- **清晰准确**:确保技术术语解释清楚,步骤无歧义,信息准确无误。
- **回复有效性**:确保**问题描述**的内容,在**解决方案**是准确的回复并给出了正确的执行方案。
#全局规则(所有分支适用)【要求】
- **版权合规**:如果知识库内容和同事咨询问题涉及破解、激活等风险内容,必须附加回复相关风险内容的免责声明。
- **链接标准化**:所有链接必须转换为markdown格式,不得出现原始链接,如”https://oa.servyou-it.com/,输出为[xxx](https://oa.servyou-it.com/)“,其中xxx根据上下文定义。
- **结束语**:必须在回复末尾附加固定提示:"您可选择回复"IT、人力、物业、报销、党工、安全"关键词,通过回复的链接进入人工支持。(人工服务时间:工作日9:00~18:00)"。
- **文字要求**:在**问题描述**和**解决方案**中,不能包含文字"知识库"和"员工”。
- **文字替换**:在**问题描述**和**解决方案**中,将"同事"文字改为称呼"您"。
- **回复字数**:回复字数不超过1000字。
- **完全忠于知识库内容回复**:在**问题描述**和**解决方案**中,不允许出现知识库外的拓展思考内容,包括dify的链接地址等'
- id: 034760a9-98ca-4e3a-a86d-269ca66a9e69
role: user
text: '同事咨询问题:{{#conversation.servyou_query#}}
知识库内容:{{#17676676927510.result#}}
图文信息:{{#context#}}'
selected: false
title: 本地大模型分析 (1)
type: llm
vision:
enabled: false
height: 88
id: '17657866286790'
position:
x: 12174.350946071341
y: 2023.661199565415
positionAbsolute:
x: 12174.350946071341
y: 2023.661199565415
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
items:
- input_type: variable
operation: over-write
value:
- conversation
- servyou_query
variable_selector:
- conversation
- memory_query
write_mode: over-write
- input_type: variable
operation: over-write
value:
- '17657866286790'
- text
variable_selector:
- conversation
- memory_ans
write_mode: over-write
selected: false
title: 全局变量-记忆前置问题和回复 (1)
type: assigner
version: '2'
height: 110
id: '17657866367000'
position:
x: 13058.347048392365
y: 2023.661199565415
positionAbsolute:
x: 13058.347048392365
y: 2023.661199565415
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
answer: '{{#17657866286790.text#}}'
selected: false
title: 整合回复 (1)
type: answer
variables: []
height: 103
id: '17657866567850'
position:
x: 13825.43617678274
y: 2023.661199565415
positionAbsolute:
x: 13825.43617678274
y: 2023.661199565415
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
context:
enabled: true
variable_selector:
- '17677487224360'
- result
model:
completion_params:
temperature: 0.7
mode: chat
name: Qwen3-30B-A3B-Instruct
provider: yangyaofei/vllm/vllm
prompt_template:
- id: 4fc3c788-e1c4-4ec5-aae0-ac791f1b4f5f
role: system
text: "# 角色与任务\n你是一名专业的IT支持意图识别助手,负责理解同事咨询问题,并判断其是否完整。你的核心任务是:\n1. **评估问题是否已清晰表达了具体的IT支持意图并包含必要上下文**。完整的信息通常包括:\n\
\ * **具体的请求或问题点** (例如:无法打印、申请账号、咨询某手册、软件安装)\n * **涉及的对象或背景**\
\ (例如:网络打印机、新员工入职、财务软件Adobe Premiere)\n2. **智能响应**\n * 若问题**同时包含\"\
具体的请求或问题点”和\"涉及的对象或背景”**,则视为已具备关键信息,使用**格式二**直接优化输出。\n * 若问题**极度模糊,缺乏具体的请求或问题点或涉及的对象或背景**(例如:“打印机有问题”、“报错了”),则使用**格式一**引导补充。\n\
\n# 判断标准与示例\n* **引导补充(格式一)的示例**:\n * “打印机有问题。”(过于模糊,仅有设备类别)\n \
\ * “手册。”(过于模糊,仅有需求类别)\n* **优化输出(格式二)的示例**:\n * “如何为新同事申请VPN账号?”(**包含**:具体请求“申请VPN账号”\
\ + 背景“为新同事”)\n * “咨询新员工入职IT指引手册。”(**包含**:具体意图“咨询” + 明确对象“新员工入职IT指引手册”)\n\
\n# 输出格式规则\n## 格式一:需补充信息时(仅当问题确实缺乏核心信息时使用),格式是:\n\"如果上述答案不是您想要的结果,请换一种问法或者补充相关信息。如:\n\
1.补充信息的提示1\n2.补充信息的提示2\n例如,您可以这样提问:<提供一个完整问题的示例>\"\n\n## 格式二:直接优化并输出(默认优先选择),要求:\n\
**触发条件**:问题已包含足够的核心信息要素。\n**你的任务**:基于原问题,结合IT支持场景,输出一个**更清晰、更结构化的问题描述**,直接作为优化结果。优化时应聚焦于澄清意图,无需生成解决方案。\n\
\n**优化原则**:\n1. **精简**:去除口语化词汇,保留核心名词和动词。\n2. **结构化**:将问题背景、对象、现象有机组织成一句或几句连贯的话。\n\
3. **完整**:不丢失原问题中的任何关键信息。\n\n# 开始任务\n- 请严格根据以上规则处理同事咨询问题。你的回复只能是最终的引导语(格式一)或优化后的问题描述(格式二),无需任何思考过程或额外解释。\n\
- 仅从**引导语**中提取信息进行补充优化,绝对禁止任何主观拓展与额外思考。\n- ”<提供一个完整问题的示例>\"所给出的内容必须严格从**引导语**中最相关的内容中提取,且必须意图和同事咨询问题意图相同,若都不相关,则直接输出同事咨询问题原内容作为示例输出。"
- id: 74c386d0-c729-4b7f-b31b-f98302226335
role: user
text: '同事咨询问题:{{#conversation.servyou_query#}}
'
- id: 5ff721b3-6c4f-49cd-9f43-54455bde9ef0
role: user
text: 引导语:{{#context#}}
selected: false
title: 同事问题优化1
type: llm
vision:
enabled: false
height: 88
id: '1766648935323'
position:
x: 3561.8140222602924
y: 130.11067076120256
positionAbsolute:
x: 3561.8140222602924
y: 130.11067076120256
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
cases:
- case_id: 'true'
conditions:
- comparison_operator: contains
id: fa63036d-f561-48de-ad78-283131aef7d7
value: 如果上述答案不是您想要的结果
varType: string
variable_selector:
- '1766648935323'
- text
id: 'true'
logical_operator: and
selected: false
title: 引导or优化1
type: if-else
height: 124
id: '1766654954216'
position:
x: 3909.9734093883203
y: 338.4707924041919
positionAbsolute:
x: 3909.9734093883203
y: 338.4707924041919
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
answer: '您想要问的是不是:"{{#17669960466150.result#}}",以下是该问题的相关回复:
{{#17669960812650.text#}}
--------------------------------------------------------------------------------
{{#17669960466150.clue_word#}}
--------------------------------------------------------------------------------
您可选择回复"IT、人力、物业、报销、党工、安全"关键词,通过回复的链接进入人工支持。(人工服务时间:工作日9:00~18:00)'
selected: false
title: 引导回复1
type: answer
variables: []
height: 301
id: '1766655012100'
position:
x: 6482.071720136611
y: -593.1240379777566
positionAbsolute:
x: 6482.071720136611
y: -593.1240379777566
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
items:
- input_type: variable
operation: over-write
value:
- '1766726065787'
- result
variable_selector:
- conversation
- servyou_query
write_mode: over-write
selected: false
title: 优化后问题重新输入1
type: assigner
version: '2'
height: 84
id: '1766655043205'
position:
x: 7288.857117544632
y: 507.257523676975
positionAbsolute:
x: 7288.857117544632
y: 507.257523676975
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
cases:
- case_id: 'true'
conditions:
- comparison_operator: contains
id: fa63036d-f561-48de-ad78-283131aef7d7
value: 如果上述答案不是您想要的结果
varType: string
variable_selector:
- '17667264375750'
- text
id: 'true'
logical_operator: and
selected: false
title: 引导or优化2
type: if-else
height: 124
id: '17666551325690'
position:
x: 3920.1886110664195
y: 1886.2588083260023
positionAbsolute:
x: 3920.1886110664195
y: 1886.2588083260023
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
answer: '您想要问的是不是:"{{#1766994739449.result#}}",以下是该问题的相关回复:
{{#17669940385140.text#}}
--------------------------------------------------------------------------------
{{#1766994739449.clue_word#}}
--------------------------------------------------------------------------------
您可选择回复"IT、人力、物业、报销、党工、安全"关键词,通过回复的链接进入人工支持。(人工服务时间:工作日9:00~18:00)'
selected: false
title: 引导回复2
type: answer
variables: []
height: 301
id: '17666551440550'
position:
x: 6515.847981247866
y: 933.4680278742334
positionAbsolute:
x: 6515.847981247866
y: 933.4680278742334
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
items:
- input_type: variable
operation: over-write
value:
- '17667264509960'
- result
variable_selector:
- conversation
- servyou_query
write_mode: over-write
selected: false
title: 优化后问题重新输入2
type: assigner
version: '2'
height: 84
id: '17666551541000'
position:
x: 7342.04462057978
y: 2066.1618018612235
positionAbsolute:
x: 7342.04462057978
y: 2066.1618018612235
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
authorization:
config: null
type: no-auth
body:
data:
- id: key-value-263
key: ''
type: text
value: "{\n \"model\": \"model\",\n \"messages\": [\n {\n \"\
role\": \"user\",\n \"content\": \"{{#conversation.servyou_query#}}\"\
\n }\n ],\n \"stream\": true,\n \"encoding\": \"utf-8\"\n}"
type: json
headers: 'Content-Type:application/json; charset="utf-8"
Authorization:Bearer ragflow-ZiYmIzMjcwYjk0ZjExZjBhODgzMDI0Mm'
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: 引导词来源1
type: http-request
url: http://10.80.0.85:9380/api/v1/agents_openai/d4051f80dfdc11f0993d0242ac120006/chat/completions
variables: []
height: 170
id: '17666588259460'
position:
x: 1807.3310303332867
y: -1098.2770469233678
positionAbsolute:
x: 1807.3310303332867
y: -1098.2770469233678
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
code: "def main(arg1: str):\n arg1 = arg1[9:]\n return {\n \"\
result\": arg1 ,\n }\n"
code_language: python3
outputs:
result:
children: null
type: string
selected: false
title: 输出格式进一步处理1
type: code
variables:
- value_selector:
- '1766648935323'
- text
value_type: string
variable: arg1
height: 52
id: '1766726065787'
position:
x: 6833.465302518225
y: 507.257523676975
positionAbsolute:
x: 6833.465302518225
y: 507.257523676975
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
authorization:
config: null
type: no-auth
body:
data:
- id: key-value-263
key: ''
type: text
value: "{\n \"model\": \"model\",\n \"messages\": [\n {\n \"\
role\": \"user\",\n \"content\": \"{{#conversation.servyou_query#}}\"\
\n }\n ],\n \"stream\": true,\n \"encoding\": \"utf-8\"\n}"
type: json
headers: 'Content-Type:application/json; charset="utf-8"
Authorization:Bearer ragflow-ZiYmIzMjcwYjk0ZjExZjBhODgzMDI0Mm'
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: 引导词来源2
type: http-request
url: http://10.80.0.85:9380/api/v1/agents_openai/d4051f80dfdc11f0993d0242ac120006/chat/completions
variables: []
height: 170
id: '17667264218480'
position:
x: 1536.60025559854
y: 1330.5805764260908
positionAbsolute:
x: 1536.60025559854
y: 1330.5805764260908
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
context:
enabled: true
variable_selector:
- '17677497085030'
- result
model:
completion_params:
temperature: 0.7
mode: chat
name: Qwen3-30B-A3B-Instruct
provider: yangyaofei/vllm/vllm
prompt_template:
- id: 4fc3c788-e1c4-4ec5-aae0-ac791f1b4f5f
role: system
text: "# 角色与任务\n你是一名专业的IT支持意图识别助手,负责理解同事咨询问题,并判断其是否完整。你的核心任务是:\n1. **评估问题是否已清晰表达了具体的IT支持意图并包含必要上下文**。完整的信息通常包括:\n\
\ * **具体的请求或问题点** (例如:无法打印、申请账号、咨询某手册、软件安装)\n * **涉及的对象或背景**\
\ (例如:网络打印机、新员工入职、财务软件Adobe Premiere)\n2. **智能响应**\n * 若问题**同时包含\"\
具体的请求或问题点”和\"涉及的对象或背景”**,则视为已具备关键信息,使用**格式二**直接优化输出。\n * 若问题**极度模糊,缺乏具体的请求或问题点或涉及的对象或背景**(例如:“打印机有问题”、“报错了”),则使用**格式一**引导补充。\n\
\n# 判断标准与示例\n* **引导补充(格式一)的示例**:\n * “打印机有问题。”(过于模糊,仅有设备类别)\n \
\ * “手册。”(过于模糊,仅有需求类别)\n* **优化输出(格式二)的示例**:\n * “如何为新同事申请VPN账号?”(**包含**:具体请求“申请VPN账号”\
\ + 背景“为新同事”)\n * “咨询新员工入职IT指引手册。”(**包含**:具体意图“咨询” + 明确对象“新员工入职IT指引手册”)\n\
\n# 输出格式规则\n## 格式一:需补充信息时(仅当问题确实缺乏核心信息时使用),格式是:\n\"如果上述答案不是您想要的结果,请换一种问法或者补充相关信息。如:\n\
1.补充信息的提示1\n2.补充信息的提示2\n例如,您可以这样提问:<提供一个完整问题的示例>\"\n\n## 格式二:直接优化并输出(默认优先选择),要求:\n\
**触发条件**:问题已包含足够的核心信息要素。\n**你的任务**:基于原问题,结合IT支持场景,输出一个**更清晰、更结构化的问题描述**,直接作为优化结果。优化时应聚焦于澄清意图,无需生成解决方案。\n\
\n**优化原则**:\n1. **精简**:去除口语化词汇,保留核心名词和动词。\n2. **结构化**:将问题背景、对象、现象有机组织成一句或几句连贯的话。\n\
3. **完整**:不丢失原问题中的任何关键信息。\n\n# 开始任务\n- 请严格根据以上规则处理同事咨询问题。你的回复只能是最终的引导语(格式一)或优化后的问题描述(格式二),无需任何思考过程或额外解释。\n\
- 仅从**引导语**中提取信息进行补充优化,绝对禁止任何主观拓展与额外思考。\n- ”<提供一个完整问题的示例>\"所给出的内容必须严格从**引导语**中最相关的内容中提取,且必须意图和同事咨询问题意图相同,若都不相关,则直接输出同事咨询问题原内容作为示例输出。"
- id: ab5c0515-7a2f-4a71-aeb9-ebb8bf787158
role: user
text: '同事咨询问题:{{#conversation.servyou_query#}}
'
- id: 2c2149b3-9198-495b-8d79-74f8d17b6167
role: user
text: 引导语:{{#context#}}
selected: false
title: 同事问题优化2
type: llm
vision:
enabled: false
height: 88
id: '17667264375750'
position:
x: 3632.4899312396797
y: 1752.2151424451133
positionAbsolute:
x: 3632.4899312396797
y: 1752.2151424451133
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
code: "def main(arg1: str):\n arg1 = arg1[9:]\n return {\n \"\
result\": arg1 ,\n }\n"
code_language: python3
outputs:
result:
children: null
type: string
selected: false
title: 输出格式进一步处理 2
type: code
variables:
- value_selector:
- '17667264375750'
- text
value_type: string
variable: arg1
height: 52
id: '17667264509960'
position:
x: 7012.552826051923
y: 2066.1618018612235
positionAbsolute:
x: 7012.552826051923
y: 2066.1618018612235
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
cases:
- case_id: 'true'
conditions:
- comparison_operator: contains
id: 7f0f5251-7f1d-46f1-bff7-a4a4c215dbc5
value: 您的问题可能不在服务业务范围内
varType: string
variable_selector:
- '17677487224360'
- result
id: 'true'
logical_operator: or
selected: false
title: 知识库是否完全无命中 1
type: if-else
height: 124
id: '17667269647440'
position:
x: 3279.2658110309185
y: -217.44062064286942
positionAbsolute:
x: 3279.2658110309185
y: -217.44062064286942
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
answer: 抱歉,您的问题可能不在服务业务范围内,请尝试调整其他问法。
selected: false
title: 预判定1
type: answer
variables: []
height: 116
id: '1766727080009'
position:
x: 4125.604259535419
y: -332.7764718352077
positionAbsolute:
x: 4125.604259535419
y: -332.7764718352077
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
cases:
- case_id: 'true'
conditions:
- comparison_operator: contains
id: 7f0f5251-7f1d-46f1-bff7-a4a4c215dbc5
value: 您的问题可能不在服务业务范围内
varType: string
variable_selector:
- '17677497085030'
- result
id: 'true'
logical_operator: or
selected: false
title: 知识库是否完全无命中 2
type: if-else
height: 124
id: '17667272700050'
position:
x: 3315.065308881474
y: 1491.5012001383288
positionAbsolute:
x: 3315.065308881474
y: 1491.5012001383288
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
answer: 抱歉,您的问题可能不在服务业务范围内,请尝试调整其他问法。
selected: false
title: 预判定2
type: answer
variables: []
height: 116
id: '1766727285253'
position:
x: 3950.274742560605
y: 1348.0615303816649
positionAbsolute:
x: 3950.274742560605
y: 1348.0615303816649
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
answer: 抱歉,您的问题可能不在服务业务范围内,请尝试调整其他问法。
selected: false
title: 知识库没有相关内容2
type: answer
variables: []
height: 116
id: '17667318333930'
position:
x: 13816.805959882542
y: 1237.219929155591
positionAbsolute:
x: 13816.805959882542
y: 1237.219929155591
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
answer: 抱歉,您的问题可能不在服务业务范围内,请尝试调整其他问法。
selected: false
title: 知识库没有相关内容1
type: answer
variables: []
height: 116
id: '17667318501870'
position:
x: 13768.052696348677
y: -203.15401123345174
positionAbsolute:
x: 13768.052696348677
y: -203.15401123345174
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
cases:
- case_id: 'true'
conditions:
- comparison_operator: contains
id: 9ca8109a-80ef-40d4-bfc3-4edccfcca6af
value: 如果上述答案不是您想要的结果
varType: string
variable_selector:
- '1766648935323'
- text
id: 'true'
logical_operator: and
desc: ''
selected: false
title: 有记忆情况的模糊判定
type: if-else
height: 124
id: '1766737231108'
position:
x: 6426.639792077752
y: 425.8515926460108
positionAbsolute:
x: 6426.639792077752
y: 425.8515926460108
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
code: "\ndef main(arg1: str):\n return {\n \"result\": arg1\n \
\ }\n"
code_language: python3
outputs:
result:
children: null
type: string
selected: false
title: 模糊问题再现处理
type: code
variables:
- value_selector:
- conversation
- servyou_query
value_type: string
variable: arg1
height: 52
id: '1766737321402'
position:
x: 6880.549057021819
y: -667.4394351166043
positionAbsolute:
x: 6880.549057021819
y: -667.4394351166043
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
items:
- input_type: variable
operation: over-write
value:
- '1766737321402'
- result
variable_selector:
- conversation
- servyou_query
write_mode: over-write
selected: false
title: 优化后问题重新输入1
type: assigner
version: '2'
height: 84
id: '17667375172980'
position:
x: 7243.494609251557
y: -667.4394351166043
positionAbsolute:
x: 7243.494609251557
y: -667.4394351166043
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
cases:
- case_id: 'true'
conditions:
- comparison_operator: contains
id: 9ca8109a-80ef-40d4-bfc3-4edccfcca6af
value: 如果上述答案不是您想要的结果
varType: string
variable_selector:
- '17667264375750'
- text
id: 'true'
logical_operator: and
selected: false
title: 有记忆情况的模糊判定2
type: if-else
height: 124
id: '17667376015020'
position:
x: 6643.459408608936
y: 1986.7105089978963
positionAbsolute:
x: 6643.459408608936
y: 1986.7105089978963
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
code: "\ndef main(arg1: str):\n return {\n \"result\": arg1\n \
\ }\n"
code_language: python3
outputs:
result:
children: null
type: string
selected: false
title: 模糊问题再现处理 2
type: code
variables:
- value_selector:
- conversation
- servyou_query
value_type: string
variable: arg1
height: 52
id: '17667376904610'
position:
x: 7012.552826051923
y: 641.245937604978
positionAbsolute:
x: 7012.552826051923
y: 641.245937604978
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
items:
- input_type: variable
operation: over-write
value:
- '17667376904610'
- result
variable_selector:
- conversation
- servyou_query
write_mode: over-write
selected: false
title: 优化后问题重新输入2
type: assigner
version: '2'
height: 84
id: '17667377094060'
position:
x: 7364.265613221313
y: 989.4871914055992
positionAbsolute:
x: 7364.265613221313
y: 989.4871914055992
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
code: "\ndef main(arg1: int):\n arg1 = arg1 + 1 \n return {\n \
\ \"result\": arg1\n }\n"
code_language: python3
outputs:
result:
children: null
type: number
selected: false
title: 会话保底机制
type: code
variables:
- value_selector:
- conversation
- guarantee_mechanism
value_type: number
variable: arg1
height: 52
id: '1766739425288'
position:
x: 945.9831789536895
y: -1384.1426506333903
positionAbsolute:
x: 945.9831789536895
y: -1384.1426506333903
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
items:
- input_type: variable
operation: over-write
value:
- '1766739425288'
- result
variable_selector:
- conversation
- guarantee_mechanism
write_mode: over-write
selected: false
title: 保底变量覆盖
type: assigner
version: '2'
height: 84
id: '1766739488182'
position:
x: 1320.3810327539275
y: -1163.350971624335
positionAbsolute:
x: 1320.3810327539275
y: -1163.350971624335
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
cases:
- case_id: 'true'
conditions:
- comparison_operator: '>'
id: dccd0a41-2d45-4101-837a-491ff6fa4a96
numberVarType: constant
value: '2'
varType: number
variable_selector:
- conversation
- guarantee_mechanism
id: 'true'
logical_operator: and
selected: false
title: 保底判定
type: if-else
height: 124
id: '1766739849720'
position:
x: 2757.148077573397
y: -703.5597694394028
positionAbsolute:
x: 2757.148077573397
y: -703.5597694394028
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
cases:
- case_id: 'true'
conditions:
- comparison_operator: '>'
id: dccd0a41-2d45-4101-837a-491ff6fa4a96
numberVarType: constant
value: '2'
varType: number
variable_selector:
- conversation
- guarantee_mechanism
id: 'true'
logical_operator: and
selected: false
title: 保底判定2
type: if-else
height: 124
id: '17667403682010'
position:
x: 2679.454273211391
y: 1118.1507630120286
positionAbsolute:
x: 2679.454273211391
y: 1118.1507630120286
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
code: "\ndef main(arg1: int):\n arg1 = arg1 + 1 \n return {\n \
\ \"result\": arg1\n }\n"
code_language: python3
outputs:
result:
children: null
type: number
selected: false
title: 会话保底机制2
type: code
variables:
- value_selector:
- conversation
- guarantee_mechanism
value_type: number
variable: arg1
height: 52
id: '17667406566450'
position:
x: 656.369246652056
y: 1259.1101255623037
positionAbsolute:
x: 656.369246652056
y: 1259.1101255623037
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
items:
- input_type: variable
operation: over-write
value:
- '17667406566450'
- result
variable_selector:
- conversation
- guarantee_mechanism
write_mode: over-write
selected: false
title: 保底变量覆盖2
type: assigner
version: '2'
height: 84
id: '17667406611650'
position:
x: 1134.8627105803314
y: 1394.372623040324
positionAbsolute:
x: 1134.8627105803314
y: 1394.372623040324
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
items:
- input_type: variable
operation: append
value:
- conversation
- servyou_query
variable_selector:
- conversation
- mmq
write_mode: over-write
selected: false
title: 记忆变量
type: assigner
version: '2'
height: 84
id: '1766986002113'
position:
x: 4284.85470831095
y: 248.12903838526358
positionAbsolute:
x: 4284.85470831095
y: 248.12903838526358
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
selected: false
template: '{{ arg1 }}, {{ arg2 }}'
title: 历史引导记忆问题
type: template-transform
variables:
- value_selector:
- conversation
- servyou_query
value_type: string
variable: arg1
- value_selector:
- conversation
- mmq
value_type: array[string]
variable: arg2
height: 52
id: '1766986387628'
position:
x: 3676.1256850077352
y: -672.2016382530768
positionAbsolute:
x: 3676.1256850077352
y: -672.2016382530768
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
items:
- input_type: variable
operation: over-write
value:
- '1766986387628'
- output
variable_selector:
- conversation
- servyou_query
write_mode: over-write
selected: false
title: 结合历史问题和当前问题
type: assigner
version: '2'
height: 84
id: '1766986503282'
position:
x: 5111.322705256988
y: -667.4394351166043
positionAbsolute:
x: 5111.322705256988
y: -667.4394351166043
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
items:
- input_type: variable
operation: append
value:
- conversation
- servyou_query
variable_selector:
- conversation
- mmq
write_mode: over-write
selected: false
title: 记忆变量 2
type: assigner
version: '2'
height: 84
id: '17669865896480'
position:
x: 4249.10052907629
y: 1796.7420776432623
positionAbsolute:
x: 4249.10052907629
y: 1796.7420776432623
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
selected: false
template: '{{ arg1 }}, {{ arg2 }}'
title: 历史引导记忆问题 2
type: template-transform
variables:
- value_selector:
- conversation
- servyou_query
value_type: string
variable: arg1
- value_selector:
- conversation
- mmq
value_type: array[string]
variable: arg2
height: 52
id: '17669866215620'
position:
x: 3451.5694329482812
y: 1144.8537852682175
positionAbsolute:
x: 3451.5694329482812
y: 1144.8537852682175
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
items:
- input_type: variable
operation: over-write
value:
- '17669866215620'
- output
variable_selector:
- conversation
- servyou_query
write_mode: over-write
selected: false
title: 结合历史问题和当前问题2
type: assigner
version: '2'
height: 84
id: '17669866341260'
position:
x: 4319.753413222378
y: 641.245937604978
positionAbsolute:
x: 4319.753413222378
y: 641.245937604978
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
authorization:
config: null
type: no-auth
body:
data:
- id: key-value-263
key: ''
type: text
value: "{\n \"model\": \"model\",\n \"messages\": [\n {\n \"\
role\": \"user\",\n \"content\": \"{{#1766994739449.result#}}\"\
\n }\n ],\n \"stream\": true,\n \"encoding\": \"utf-8\"\n}"
type: json
headers: 'Content-Type:application/json; charset="utf-8"
Authorization:Bearer ragflow-ZiYmIzMjcwYjk0ZjExZjBhODgzMDI0Mm'
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: ragflow知识库 3
type: http-request
url: http://10.80.0.85:9380/api/v1/agents_openai/d4051f80dfdc11f0993d0242ac120006/chat/completions
variables: []
height: 170
id: '17669939758770'
position:
x: 4872.407870326148
y: 1569.4484181615476
positionAbsolute:
x: 4872.407870326148
y: 1569.4484181615476
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
dataset_ids:
- 1aM5JfrtmBYtghXflTeQDOTiM0MaufWVaEpunkstrQr2DWCad1pyfImMvY9EDXJh
- SouBCst5gmvLf9zgdmQZq3fT46jOWdR4r136JeI7ieO9n5FJVVzKCCd0aaLkQ6UK
multiple_retrieval_config:
reranking_enable: true
reranking_mode: reranking_model
reranking_model:
model: bge-rerank
provider: langgenius/openai_api_compatible/openai_api_compatible
top_k: 4
query_variable_selector:
- '1766994739449'
- result
retrieval_mode: multiple
selected: false
title: 知识库图片检索 3
type: knowledge-retrieval
height: 118
id: '17669940249670'
position:
x: 5514.596837783464
y: 1330.5805764260908
positionAbsolute:
x: 5514.596837783464
y: 1330.5805764260908
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
context:
enabled: true
variable_selector:
- '17669940249670'
- result
model:
completion_params:
temperature: 0.7
mode: chat
name: Qwen3-30B-A3B-Instruct
provider: yangyaofei/vllm/vllm
prompt_template:
- id: 8fdbc119-5c08-4eb4-9364-40deb1bb4b1f
role: system
text: '# 角色与核心任务
- 你是一名专业的IT支持分析助理,专门处理企业内部同事的IT咨询。
- **核心使命**:为同事提供准确、清晰且可立即执行的解决方案。
# 处理流程与规则
## 第一步:问答判断
- 判断知识库内容能否回复同事咨询问题。
- 此判断是后续流程的决策基础。
## 第二步:分支处理与回复生成 (整合结束语)
###情况一:知识库内容能够回复同事咨询问题
- **同时**,判断图文信息与同事咨询问题是否相关。
- **提取相关图文信息中的链接**,如”![image](https://yw-dify.dc.servyou-it.com)“提取其中的”https://yw-dify.dc.servyou-it.com“,进行全局规则中的**链接标准化**。
- **生成回复**:基于知识库内容和相关的图文信息,生成最终回复。
###情况二:知识库内容不能够回复同事咨询问题
- **回复固定语句**:"抱歉,您的问题可能不在服务业务范围内,请尝试调整其他问法。"。
#全局输出格式要求(仅当知识库内容能够回复同事咨询问题时生效)
- **结构化格式**,回复必须具有清晰的视觉层次,严格使用以下格式:
-- 使用标题(### 解决方案)表示回复。
-- 使用编号列表(1. 2. 3...)表示有顺序的操作步骤。
-- 使用项目符号列表(-)表示并列的要点或说明。
-- 关键信息(如服务器地址、代码关键字)使用行内代码标记(如 `hostname`)突出。
#全局内容质量要求
- **简洁精准**:确保回答直接精准有效,避免冗长,切勿过度赘述和扩展回答。
- **专业友好**:保持专业、耐心且友好的支持态度,理解同事的急切心情。
- **清晰准确**:确保技术术语解释清楚,步骤无歧义,信息准确无误。
- **回复有效性**:确保**解决方案**是准确的回复并给出了正确的执行方案。
#全局规则(所有分支适用)【要求】
- **版权合规**:如果知识库内容和同事咨询问题涉及破解、激活等风险内容,必须附加回复相关风险内容的免责声明。
- **链接标准化**:所有链接必须转换为markdown格式,不得出现原始链接,如”https://oa.servyou-it.com/,输出为[xxx](https://oa.servyou-it.com/)“,其中xxx根据上下文定义。
- **文字要求**:在**解决方案**中,不能包含文字"知识库"和"员工”。
- **文字替换**:在**解决方案**中,将"同事"文字改为称呼"您"。
- **回复字数**:回复字数不超过500字。
- **完全忠于知识库内容回复**:在**解决方案**中,不允许出现知识库外的拓展思考内容,包括dify的链接地址等。'
- id: 034760a9-98ca-4e3a-a86d-269ca66a9e69
role: user
text: '同事咨询问题:{{#1766994739449.result#}}
知识库内容:{{#17675939731110.result#}}【附加:{{#17677497085030.result#}}】
图文信息:{{#context#}}'
selected: false
title: 本地大模型分析3
type: llm
vision:
enabled: false
height: 88
id: '17669940385140'
position:
x: 5819.859752897343
y: 1208.9998846785986
positionAbsolute:
x: 5819.859752897343
y: 1208.9998846785986
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
code: "def main(query: str):\n extracted_content = \"\"\n query = query.strip()\n\
\ if \"如果上述答案不是您想要的结果\" in query:\n before, separator, after =\
\ query.partition(\"例如,您可以这样提问:\")\n if separator:\n if\
\ after:\n extracted_content = after.strip()\n \
\ else:\n after = query\n extracted_content\
\ = after.strip()\n else:\n extracted_content = query.strip()\n\
\ return {\n \"result\": extracted_content,\n \"clue_word\"\
: before\n }\n"
code_language: python3
outputs:
clue_word:
children: null
type: string
result:
children: null
type: string
selected: false
title: 猜测问题提取
type: code
variables:
- value_selector:
- '17667264375750'
- text
value_type: string
variable: query
height: 52
id: '1766994739449'
position:
x: 4523.465086086416
y: 1701.4487797185989
positionAbsolute:
x: 4523.465086086416
y: 1701.4487797185989
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
code: "def main(query: str):\n extracted_content = \"\"\n query = query.strip()\n\
\ if \"如果上述答案不是您想要的结果\" in query:\n before, separator, after =\
\ query.partition(\"例如,您可以这样提问:\")\n if separator:\n if\
\ after:\n extracted_content = after.strip()\n \
\ else:\n after = query\n extracted_content\
\ = after.strip()\n else:\n extracted_content = query.strip()\n\
\ return {\n \"result\": extracted_content,\n \"clue_word\"\
: before\n }\n"
code_language: python3
outputs:
clue_word:
children: null
type: string
result:
children: null
type: string
selected: false
title: 猜测问题提取 (1)
type: code
variables:
- value_selector:
- '1766648935323'
- text
value_type: string
variable: query
height: 52
id: '17669960466150'
position:
x: 4657.500635670119
y: 110.81946497169574
positionAbsolute:
x: 4657.500635670119
y: 110.81946497169574
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
authorization:
config: null
type: no-auth
body:
data:
- id: key-value-263
key: ''
type: text
value: "{\n \"model\": \"model\",\n \"messages\": [\n {\n \"\
role\": \"user\",\n \"content\": \"{{#17669960466150.result#}}\"\
\n }\n ],\n \"stream\": true,\n \"encoding\": \"utf-8\"\n}"
type: json
headers: 'Content-Type:application/json; charset="utf-8"
Authorization:Bearer ragflow-ZiYmIzMjcwYjk0ZjExZjBhODgzMDI0Mm'
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: ragflow知识库 3 (1)
type: http-request
url: http://10.80.0.85:9380/api/v1/agents_openai/d4051f80dfdc11f0993d0242ac120006/chat/completions
variables: []
height: 170
id: '17669960576130'
position:
x: 4983.265199351364
y: -47.23120205277857
positionAbsolute:
x: 4983.265199351364
y: -47.23120205277857
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
dataset_ids:
- 1aM5JfrtmBYtghXflTeQDOTiM0MaufWVaEpunkstrQr2DWCad1pyfImMvY9EDXJh
- SouBCst5gmvLf9zgdmQZq3fT46jOWdR4r136JeI7ieO9n5FJVVzKCCd0aaLkQ6UK
multiple_retrieval_config:
reranking_enable: true
reranking_mode: reranking_model
reranking_model:
model: bge-rerank
provider: langgenius/openai_api_compatible/openai_api_compatible
top_k: 4
query_variable_selector:
- '17669960466150'
- result
retrieval_mode: multiple
selected: false
title: 知识库图片检索 3 (1)
type: knowledge-retrieval
height: 118
id: '17669960738730'
position:
x: 5612.418633990207
y: -284.37595518643394
positionAbsolute:
x: 5612.418633990207
y: -284.37595518643394
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
context:
enabled: true
variable_selector:
- '17669960738730'
- result
model:
completion_params:
temperature: 0.7
mode: chat
name: Qwen3-30B-A3B-Instruct
provider: yangyaofei/vllm/vllm
prompt_template:
- id: 8fdbc119-5c08-4eb4-9364-40deb1bb4b1f
role: system
text: '# 角色与核心任务
- 你是一名专业的IT支持分析助理,专门处理企业内部同事的IT咨询。
- **核心使命**:为同事提供准确、清晰且可立即执行的解决方案。
# 处理流程与规则
## 第一步:问答判断
- 判断知识库内容能否回复同事咨询问题。
- 此判断是后续流程的决策基础。
## 第二步:分支处理与回复生成 (整合结束语)
###情况一:知识库内容能够回复同事咨询问题
- **同时**,判断图文信息与同事咨询问题是否相关。
- **提取相关图文信息中的链接**,如”![image](https://yw-dify.dc.servyou-it.com)“提取其中的”https://yw-dify.dc.servyou-it.com“,进行全局规则中的**链接标准化**。
- **生成回复**:基于知识库内容和相关的图文信息,生成最终回复。
###情况二:知识库内容不能够回复同事咨询问题
- **回复固定语句**:"抱歉,您的问题可能不在服务业务范围内,请尝试调整其他问法。"。
#全局输出格式要求(仅当知识库内容能够回复同事咨询问题时生效)
- **结构化格式**,回复必须具有清晰的视觉层次,严格使用以下格式:
-- 使用标题(### 解决方案)表示回复。
-- 使用编号列表(1. 2. 3...)表示有顺序的操作步骤。
-- 使用项目符号列表(-)表示并列的要点或说明。
-- 关键信息(如服务器地址、代码关键字)使用行内代码标记(如 `hostname`)突出。
#全局内容质量要求
- **简洁精准**:确保回答直接精准有效,避免冗长,切勿过度赘述和扩展回答。
- **专业友好**:保持专业、耐心且友好的支持态度,理解同事的急切心情。
- **清晰准确**:确保技术术语解释清楚,步骤无歧义,信息准确无误。
- **回复有效性**:确保**解决方案**是准确的回复并给出了正确的执行方案。
#全局规则(所有分支适用)【要求】
- **版权合规**:如果知识库内容和同事咨询问题涉及破解、激活等风险内容,必须附加回复相关风险内容的免责声明。
- **链接标准化**:所有链接必须转换为markdown格式,不得出现原始链接,如”https://oa.servyou-it.com/,输出为[xxx](https://oa.servyou-it.com/)“,其中xxx根据上下文定义。
- **文字要求**:在**解决方案**中,不能包含文字"知识库"和"员工”。
- **文字替换**:在**解决方案**中,将"同事"文字改为称呼"您"。
- **回复字数**:回复字数不超过500字。
- **完全忠于知识库内容回复**:在**解决方案**中,不允许出现知识库外的拓展思考内容,包括dify的链接地址等。'
- id: 034760a9-98ca-4e3a-a86d-269ca66a9e69
role: user
text: '同事咨询问题:{{#17669960466150.result#}}
图文信息:{{#context#}}
知识库内容:{{#1767577724877.result#}}【附加:{{#17677487224360.result#}}】'
selected: false
title: 本地大模型分析3 (1)
type: llm
vision:
enabled: false
height: 88
id: '17669960812650'
position:
x: 5888.374478810877
y: -373.74936226508623
positionAbsolute:
x: 5888.374478810877
y: -373.74936226508623
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
items:
- input_type: variable
operation: over-write
value:
- '17669960466150'
- result
variable_selector:
- conversation
- memory_query
write_mode: over-write
- input_type: variable
operation: over-write
value:
- '17669960812650'
- text
variable_selector:
- conversation
- memory_ans
write_mode: over-write
selected: false
title: 全局变量-记忆前置问题和回复 (2)
type: assigner
version: '2'
height: 110
id: '17669987893140'
position:
x: 6176.5333029773565
y: -470.1705846854579
positionAbsolute:
x: 6176.5333029773565
y: -470.1705846854579
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
items:
- input_type: variable
operation: over-write
value:
- '1766994739449'
- result
variable_selector:
- conversation
- memory_query
write_mode: over-write
- input_type: variable
operation: over-write
value:
- '17669940385140'
- text
variable_selector:
- conversation
- memory_ans
write_mode: over-write
selected: false
title: 全局变量-记忆前置问题和回复 (3)
type: assigner
version: '2'
height: 110
id: '17669989513170'
position:
x: 6133.195841100804
y: 1083.9264082053355
positionAbsolute:
x: 6133.195841100804
y: 1083.9264082053355
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
code: "import re\n\ndef main(arg1: str):\n result = re.sub(r'.*?{\"content\"\
:', '', arg1, count=1)\n result = re.sub(r'.*?(\\\"\\\\n)', '', result,\
\ count=1)\n result = re.sub(r'(\\\"}, \\\"finish_reason\\\".*)', '',\
\ result, flags=re.DOTALL)\n return {\n \"result\": result,\n\
\ }\n"
code_language: python3
outputs:
result:
children: null
type: string
selected: false
title: 知识库格式修正1
type: code
variables:
- value_selector:
- '17669960576130'
- body
value_type: string
variable: arg1
height: 52
id: '1767577724877'
position:
x: 5296.261648985534
y: -151.6317444173636
positionAbsolute:
x: 5296.261648985534
y: -151.6317444173636
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
code: "import re\n\ndef main(arg1: str):\n result = re.sub(r'.*?{\"content\"\
:', '', arg1, count=1)\n result = re.sub(r'.*?(\\\"\\\\n)', '', result,\
\ count=1)\n result = re.sub(r'(\\\"}, \\\"finish_reason\\\".*)', '',\
\ result, flags=re.DOTALL)\n return {\n \"result\": result,\n\
\ }\n"
code_language: python3
outputs:
result:
children: null
type: string
selected: false
title: 知识库格式修正2
type: code
variables:
- value_selector:
- '17669939758770'
- body
value_type: string
variable: arg1
height: 52
id: '17675939731110'
position:
x: 5178.454419369272
y: 1459.5565107244784
positionAbsolute:
x: 5178.454419369272
y: 1459.5565107244784
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
code: "import re\n\ndef main(arg1: str):\n result = re.sub(r'.*?{\"content\"\
:', '', arg1, count=1)\n result = re.sub(r'.*?(\\\"\\\\n)', '', result,\
\ count=1)\n result = re.sub(r'(\\\"}, \\\"finish_reason\\\".*)', '',\
\ result, flags=re.DOTALL)\n return {\n \"result\": result,\n\
\ }\n"
code_language: python3
outputs:
result:
children: null
type: string
selected: false
title: 知识库格式修正3
type: code
variables:
- value_selector:
- '1762241246839'
- body
value_type: string
variable: arg1
height: 52
id: '17676676167470'
position:
x: 10285.667260026912
y: 267.7051966087703
positionAbsolute:
x: 10285.667260026912
y: 267.7051966087703
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
code: "import re\n\ndef main(arg1: str):\n result = re.sub(r'.*?{\"content\"\
:', '', arg1, count=1)\n result = re.sub(r'.*?(\\\"\\\\n)', '', result,\
\ count=1)\n result = re.sub(r'(\\\"}, \\\"finish_reason\\\".*)', '',\
\ result, flags=re.DOTALL)\n return {\n \"result\": result,\n\
\ }\n"
code_language: python3
outputs:
result:
children: null
type: string
selected: false
title: 知识库格式修正4
type: code
variables:
- value_selector:
- '17657860354750'
- body
value_type: string
variable: arg1
height: 52
id: '17676676927510'
position:
x: 10673.907899004127
y: 2023.661199565415
positionAbsolute:
x: 10673.907899004127
y: 2023.661199565415
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
code: "import re\n\ndef main(arg1: str):\n result = re.sub(r'.*?{\"content\"\
:', '', arg1, count=1)\n result = re.sub(r'.*?(\\\"\\\\n)', '', result,\
\ count=1)\n result = re.sub(r'(\\\"}, \\\"finish_reason\\\".*)', '',\
\ result, flags=re.DOTALL)\n return {\n \"result\": result,\n\
\ }\n"
code_language: python3
outputs:
result:
children: null
type: string
selected: false
title: 引导词格式修正
type: code
variables:
- value_selector:
- '17666588259460'
- body
value_type: string
variable: arg1
height: 52
id: '17677487224360'
position:
x: 3003.434211354486
y: -373.74936226508623
positionAbsolute:
x: 3003.434211354486
y: -373.74936226508623
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
code: "import re\n\ndef main(arg1: str):\n result = re.sub(r'.*?{\"content\"\
:', '', arg1, count=1)\n result = re.sub(r'.*?(\\\"\\\\n)', '', result,\
\ count=1)\n result = re.sub(r'(\\\"}, \\\"finish_reason\\\".*)', '',\
\ result, flags=re.DOTALL)\n return {\n \"result\": result,\n\
\ }\n"
code_language: python3
outputs:
result:
children: null
type: string
selected: false
title: 引导词格式修正2
type: code
variables:
- value_selector:
- '17667264218480'
- body
value_type: string
variable: arg1
height: 52
id: '17677497085030'
position:
x: 2925.420471711777
y: 1416.0668749341942
positionAbsolute:
x: 2925.420471711777
y: 1416.0668749341942
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
viewport:
x: 257.344217857632
y: 724.5007800203003
zoom: 0.25
rag_pipeline_variables: []