449c6d4875
## H5 员工端 v4 (2026-07-13 00:48 已部署)
- 人工按钮三态文案统一为"人工坐席"
- 按钮位置移至发送键和语音按钮上方(垂直堆叠)
- 点按钮直接调 store.shakeAgent(),删除 CallAgentModal 弹窗动画
- 截图快捷键提示改为"截图->粘贴:Alt+Shift+A-Ctrl+V ---> Ctrl+V"
- 移动端隐藏截图提示(CSS 媒体查询)
- AI转人工提示改为"已为您呼叫人工坐席,请稍等!"
- 坐席接入提示改为"坐席正在查看您的信息,请等待处理回复!"
- 删除"摇铃呼叫坐席"入口和文案
- 删除孤儿组件 MessageList.vue + shake 动画 CSS
## H5 员工端 v5 (2026-07-13 02:08 已部署)
- RightPanel v2.1:删除"软件安装"和"资源权限"标签页
- 移除标签栏,智能推荐(DynamicRecommend)直接展示
- 删除 SoftwareDownloads/ApprovalLinks 引用和相关 CSS
## AI 对话链路全栈改造 Phase 1-6 (已部署)
- Phase 1: Dify JSON输出 + 后端blocking解析 + 双WS推送 + 错误降级
- Phase 2: 关键词收窄(~25强意图词) + 两级分类Prompt + 删除前端checkApprovalIntent
- Phase 3: WS扩展(ai_thinking+dynamic_recommend) + ai_structured气泡 + RightPanel v2 + 选项回传
- Phase 4: VisionService接入 + 图片消息融合(5秒窗口) + 降级策略
- Phase 5: 坐席端ai_thinking指示器 + ai_structured/byod_card渲染 + handleNewMessage修复
- Phase 6: diagnosis_stage(6值) + response_time_ms计时 + 慢响应告警(>10s)
## 坐席端 v5 (2026-07-13 01:38 已部署)
- ai_structured/byod_card 只读渲染
- AI思考指示器 UI
- handleNewMessage 透传 msg_type/extra_data 修复
- 布局优化v2.0: QuickReplyBar L1+L2悬浮 + ReplyBox左右分区 + 右栏260/560px切换
- 键盘快捷键v2.3: 纯数字路由 + ESC分层撤销 + Shift+Space用event.code
## 上下文感知智能诊断闭环 (2026-07-12 已部署)
- 三层诊断(API→Script→AI) + 三段排队(VIP→info_locked→not locked)
- 答题插队 + 五场景关闭
- 迁移052(6表+6列) + queue_service + quiz_service + closing_service
- H5前端: QueueWaiting + RightPanel双Tab + InputBar三态 + ResolveConfirmCard
- 坐席前端: pending_close结单流程 + 信息锁定(Dify步骤完成+有效回答率≥70%)
## 知识库迭代3 (2026-07-12 已部署)
- 分诊交互(H5+坐席+Dify独立应用)
- 拓扑预览(ECharts只读)
- 代答排除(4种匹配器: keyword/regex/intent/category)
- 迁移051 + 44文件43测试通过
## 后端变更
- 6个Python文件改造(h5_ai_task.py/h5.py/ai_service.py/closing_service.py等)
- funny_phrase_service.py: shake/connected/keyword 默认文案更新
- session_service.py: 企微消息文案同步
- 新增: queue.py/quiz.py/triage.py/exclusion_rules.py 等API端点
- 新增: diagnostic.py/quiz.py/triage_session.py 等模型
- 新增: closing_service/queue_service/quiz_service/triage_service 等服务
## 文档更新
- CHANGELOG.md: 新增 [未发布] 区全部变更记录
- 项目管理主文档 v2.5: 新增v0.7.3版本 + 已完成看板 + 最近搞定
- 版本记录: 新增v0.7.3条目
- AI对话链路实施计划: Phase 1-6 全部标记✅已实施
- 新增架构图/时序图/类图(mermaid)
## 部署路径修正
- 服务器项目根路径: /opt/wecom-it-desk/
- 所有前端dist均为ro bind mount,只能在宿主机源路径操作
- 服务器nginx /h5/ 是静态文件服务(非proxy_pass)
- elFinder上传二进制不可靠(MD5不匹配),改用base64分块上传
4365 lines
132 KiB
YAML
4365 lines
132 KiB
YAML
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咨询。
|
||
|
||
- **核心使命**:为同事提供准确、清晰且可立即执行的解决方案。
|
||
|
||
|
||
# 处理流程与规则
|
||
|
||
|
||
## 第一步:问答判断
|
||
|
||
- 判断知识库内容能否回复同事咨询问题。
|
||
|
||
- 此判断是后续流程的决策基础。
|
||
|
||
|
||
## 第二步:分支处理与回复生成 (整合结束语)
|
||
|
||
|
||
###情况一:知识库内容能够回复同事咨询问题
|
||
|
||
- **同时**,判断图文信息与同事咨询问题是否相关。
|
||
|
||
- **提取相关图文信息中的链接**,如”“提取其中的”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咨询。
|
||
|
||
- **核心使命**:为同事提供准确、清晰且可立即执行的解决方案。
|
||
|
||
|
||
# 处理流程与规则
|
||
|
||
|
||
## 第一步:问答判断
|
||
|
||
- 判断知识库内容能否回复同事咨询问题。
|
||
|
||
- 此判断是后续流程的决策基础。
|
||
|
||
|
||
## 第二步:分支处理与回复生成 (整合结束语)
|
||
|
||
|
||
###情况一:知识库内容能够回复同事咨询问题
|
||
|
||
- **同时**,判断图文信息与同事咨询问题是否相关。
|
||
|
||
- **提取相关图文信息中的链接**,如”“提取其中的”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咨询。
|
||
|
||
- **核心使命**:为同事提供准确、清晰且可立即执行的解决方案。
|
||
|
||
|
||
# 处理流程与规则
|
||
|
||
|
||
## 第一步:问答判断
|
||
|
||
- 判断知识库内容能否回复同事咨询问题。
|
||
|
||
- 此判断是后续流程的决策基础。
|
||
|
||
|
||
## 第二步:分支处理与回复生成 (整合结束语)
|
||
|
||
|
||
###情况一:知识库内容能够回复同事咨询问题
|
||
|
||
- **同时**,判断图文信息与同事咨询问题是否相关。
|
||
|
||
- **提取相关图文信息中的链接**,如”“提取其中的”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咨询。
|
||
|
||
- **核心使命**:为同事提供准确、清晰且可立即执行的解决方案。
|
||
|
||
|
||
# 处理流程与规则
|
||
|
||
|
||
## 第一步:问答判断
|
||
|
||
- 判断知识库内容能否回复同事咨询问题。
|
||
|
||
- 此判断是后续流程的决策基础。
|
||
|
||
|
||
## 第二步:分支处理与回复生成 (整合结束语)
|
||
|
||
|
||
###情况一:知识库内容能够回复同事咨询问题
|
||
|
||
- **同时**,判断图文信息与同事咨询问题是否相关。
|
||
|
||
- **提取相关图文信息中的链接**,如”“提取其中的”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: []
|