feat: 初始化考培练系统项目
- 从服务器拉取完整代码 - 按框架规范整理项目结构 - 配置 Drone CI 测试环境部署 - 包含后端(FastAPI)、前端(Vue3)、管理端 技术栈: Vue3 + TypeScript + FastAPI + MySQL
This commit is contained in:
187
docs/规划/dify 工作流/恩喜-00-SQL 执行器-考陪练专用.yml
Normal file
187
docs/规划/dify 工作流/恩喜-00-SQL 执行器-考陪练专用.yml
Normal file
@@ -0,0 +1,187 @@
|
||||
app:
|
||||
description: 考陪练系统专用的 sql 执行器
|
||||
icon: 🤖
|
||||
icon_background: '#FFEAD5'
|
||||
mode: workflow
|
||||
name: 恩喜-00-SQL 执行器-考陪练专用
|
||||
use_icon_as_answer_icon: false
|
||||
dependencies: []
|
||||
kind: app
|
||||
version: 0.5.0
|
||||
workflow:
|
||||
conversation_variables: []
|
||||
environment_variables: []
|
||||
features:
|
||||
file_upload:
|
||||
allowed_file_extensions:
|
||||
- .JPG
|
||||
- .JPEG
|
||||
- .PNG
|
||||
- .GIF
|
||||
- .WEBP
|
||||
- .SVG
|
||||
allowed_file_types:
|
||||
- image
|
||||
allowed_file_upload_methods:
|
||||
- local_file
|
||||
- remote_url
|
||||
enabled: false
|
||||
fileUploadConfig:
|
||||
audio_file_size_limit: 50
|
||||
batch_count_limit: 5
|
||||
file_size_limit: 15
|
||||
image_file_batch_limit: 10
|
||||
image_file_size_limit: 10
|
||||
single_chunk_attachment_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: start
|
||||
targetType: http-request
|
||||
id: 1758989617994-source-1758989692485-target
|
||||
source: '1758989617994'
|
||||
sourceHandle: source
|
||||
target: '1758989692485'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInIteration: false
|
||||
isInLoop: false
|
||||
sourceType: http-request
|
||||
targetType: end
|
||||
id: 1758989692485-source-1758989723090-target
|
||||
source: '1758989692485'
|
||||
sourceHandle: source
|
||||
target: '1758989723090'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
nodes:
|
||||
- data:
|
||||
desc: ''
|
||||
selected: false
|
||||
title: 开始
|
||||
type: start
|
||||
variables:
|
||||
- label: SQL 语句
|
||||
max_length: 1000000
|
||||
options: []
|
||||
required: true
|
||||
type: paragraph
|
||||
variable: sql
|
||||
height: 109
|
||||
id: '1758989617994'
|
||||
position:
|
||||
x: 80
|
||||
y: 282
|
||||
positionAbsolute:
|
||||
x: 80
|
||||
y: 282
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
authorization:
|
||||
config: null
|
||||
type: no-auth
|
||||
body:
|
||||
data:
|
||||
- type: text
|
||||
value: "{\n \"sql\": \"{{#1758989617994.sql#}}\",\n \"params\":\
|
||||
\ {}\n }"
|
||||
type: raw-text
|
||||
desc: ''
|
||||
headers: 'Content-Type:application/json
|
||||
|
||||
X-API-Key:dify-2025-kaopeilian'
|
||||
method: POST
|
||||
params: ''
|
||||
retry_config:
|
||||
max_retries: 3
|
||||
retry_enabled: true
|
||||
retry_interval: 100
|
||||
selected: true
|
||||
ssl_verify: false
|
||||
timeout:
|
||||
max_connect_timeout: 0
|
||||
max_read_timeout: 0
|
||||
max_write_timeout: 0
|
||||
title: HTTP 请求
|
||||
type: http-request
|
||||
url: https://fw.ireborn.com.cn/api/v1/sql/execute-simple
|
||||
variables: []
|
||||
height: 137
|
||||
id: '1758989692485'
|
||||
position:
|
||||
x: 385
|
||||
y: 282
|
||||
positionAbsolute:
|
||||
x: 385
|
||||
y: 282
|
||||
selected: true
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
desc: ''
|
||||
outputs:
|
||||
- value_selector:
|
||||
- '1758989692485'
|
||||
- body
|
||||
value_type: string
|
||||
variable: body
|
||||
- value_selector:
|
||||
- '1758989692485'
|
||||
- status_code
|
||||
value_type: number
|
||||
variable: status_code
|
||||
selected: false
|
||||
title: 结束
|
||||
type: end
|
||||
height: 114
|
||||
id: '1758989723090'
|
||||
position:
|
||||
x: 688
|
||||
y: 282
|
||||
positionAbsolute:
|
||||
x: 688
|
||||
y: 282
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
viewport:
|
||||
x: 213.76058260198113
|
||||
y: 11.06197629555595
|
||||
zoom: 0.6935832932101428
|
||||
rag_pipeline_variables: []
|
||||
771
docs/规划/dify 工作流/恩喜-01-知识点分析-考陪练.yml
Normal file
771
docs/规划/dify 工作流/恩喜-01-知识点分析-考陪练.yml
Normal file
@@ -0,0 +1,771 @@
|
||||
app:
|
||||
description: 上传提炼知识点
|
||||
icon: 🤖
|
||||
icon_background: '#E4FBCC'
|
||||
mode: workflow
|
||||
name: 恩喜-01-知识点分析-考陪练
|
||||
use_icon_as_answer_icon: false
|
||||
dependencies:
|
||||
- current_identifier: null
|
||||
type: marketplace
|
||||
value:
|
||||
marketplace_plugin_unique_identifier: langgenius/openrouter:0.0.22@99ef4cf4e08292c28806abaf24f295ed66e04e4b9e74385b487fd0767c7f56df
|
||||
version: null
|
||||
kind: app
|
||||
version: 0.5.0
|
||||
workflow:
|
||||
conversation_variables: []
|
||||
environment_variables: []
|
||||
features:
|
||||
file_upload:
|
||||
allowed_file_extensions:
|
||||
- .JPG
|
||||
- .JPEG
|
||||
- .PNG
|
||||
- .GIF
|
||||
- .WEBP
|
||||
- .SVG
|
||||
allowed_file_types:
|
||||
- image
|
||||
allowed_file_upload_methods:
|
||||
- local_file
|
||||
- remote_url
|
||||
enabled: false
|
||||
fileUploadConfig:
|
||||
audio_file_size_limit: 50
|
||||
batch_count_limit: 5
|
||||
file_size_limit: 15
|
||||
image_file_batch_limit: 10
|
||||
image_file_size_limit: 10
|
||||
single_chunk_attachment_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: document-extractor
|
||||
targetType: llm
|
||||
id: 1757513748987-source-1757513757216-target
|
||||
selected: false
|
||||
source: '1757513748987'
|
||||
sourceHandle: source
|
||||
target: '1757513757216'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInIteration: false
|
||||
isInLoop: false
|
||||
sourceType: llm
|
||||
targetType: code
|
||||
id: 1757513757216-source-1757516212204-target
|
||||
selected: false
|
||||
source: '1757513757216'
|
||||
sourceHandle: source
|
||||
target: '1757516212204'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInIteration: false
|
||||
isInLoop: false
|
||||
sourceType: llm
|
||||
targetType: end
|
||||
id: 1757513757216-fail-branch-1757572091560-target
|
||||
selected: false
|
||||
source: '1757513757216'
|
||||
sourceHandle: fail-branch
|
||||
target: '1757572091560'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInIteration: false
|
||||
isInLoop: false
|
||||
sourceType: code
|
||||
targetType: end
|
||||
id: 1757516212204-fail-branch-1757576655478-target
|
||||
selected: false
|
||||
source: '1757516212204'
|
||||
sourceHandle: fail-branch
|
||||
target: '1757576655478'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInIteration: false
|
||||
isInLoop: false
|
||||
sourceType: code
|
||||
targetType: iteration
|
||||
id: 1757516212204-source-1757687332404-target
|
||||
selected: false
|
||||
source: '1757516212204'
|
||||
sourceHandle: source
|
||||
target: '1757687332404'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInLoop: false
|
||||
sourceType: iteration
|
||||
targetType: end
|
||||
id: 1757687332404-source-1757522230050-target
|
||||
selected: false
|
||||
source: '1757687332404'
|
||||
sourceHandle: source
|
||||
target: '1757522230050'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInIteration: true
|
||||
isInLoop: false
|
||||
iteration_id: '1757687332404'
|
||||
sourceType: iteration-start
|
||||
targetType: code
|
||||
id: 1757687332404start-source-1758575376121-target
|
||||
selected: false
|
||||
source: 1757687332404start
|
||||
sourceHandle: source
|
||||
target: '1758575376121'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 1002
|
||||
- data:
|
||||
isInIteration: false
|
||||
isInLoop: false
|
||||
sourceType: start
|
||||
targetType: tool
|
||||
id: 1757513649648-source-1766636080995-target
|
||||
source: '1757513649648'
|
||||
sourceHandle: source
|
||||
target: '1766636080995'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInLoop: false
|
||||
sourceType: tool
|
||||
targetType: document-extractor
|
||||
id: 1766636080995-source-1757513748987-target
|
||||
source: '1766636080995'
|
||||
sourceHandle: source
|
||||
target: '1757513748987'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInLoop: false
|
||||
sourceType: tool
|
||||
targetType: end
|
||||
id: 1766636080995-fail-branch-1764240729694-target
|
||||
source: '1766636080995'
|
||||
sourceHandle: fail-branch
|
||||
target: '1764240729694'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInIteration: true
|
||||
isInLoop: false
|
||||
iteration_id: '1757687332404'
|
||||
sourceType: code
|
||||
targetType: tool
|
||||
id: 1758575376121-source-1766636254081-target
|
||||
source: '1758575376121'
|
||||
sourceHandle: source
|
||||
target: '1766636254081'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 1002
|
||||
nodes:
|
||||
- data:
|
||||
desc: ''
|
||||
selected: false
|
||||
title: 开始
|
||||
type: start
|
||||
variables:
|
||||
- allowed_file_extensions: []
|
||||
allowed_file_types:
|
||||
- document
|
||||
- audio
|
||||
- video
|
||||
- image
|
||||
allowed_file_upload_methods:
|
||||
- local_file
|
||||
- remote_url
|
||||
label: file
|
||||
max_length: 1
|
||||
options: []
|
||||
required: true
|
||||
type: file
|
||||
variable: file
|
||||
- label: course_name
|
||||
max_length: 255
|
||||
options: []
|
||||
required: true
|
||||
type: text-input
|
||||
variable: course_name
|
||||
- default: '1'
|
||||
label: course_id
|
||||
max_length: 48
|
||||
options: []
|
||||
required: true
|
||||
type: number
|
||||
variable: course_id
|
||||
- default: '16'
|
||||
label: material_id
|
||||
max_length: 48
|
||||
options: []
|
||||
required: true
|
||||
type: number
|
||||
variable: material_id
|
||||
height: 187
|
||||
id: '1757513649648'
|
||||
position:
|
||||
x: 30
|
||||
y: 283
|
||||
positionAbsolute:
|
||||
x: 30
|
||||
y: 283
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
desc: ''
|
||||
is_array_file: true
|
||||
selected: false
|
||||
title: 文档提取器
|
||||
type: document-extractor
|
||||
variable_selector:
|
||||
- '1757513649648'
|
||||
- file
|
||||
height: 104
|
||||
id: '1757513748987'
|
||||
position:
|
||||
x: 934
|
||||
y: 281
|
||||
positionAbsolute:
|
||||
x: 934
|
||||
y: 281
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
context:
|
||||
enabled: false
|
||||
variable_selector: []
|
||||
desc: ''
|
||||
error_strategy: fail-branch
|
||||
model:
|
||||
completion_params:
|
||||
temperature: 0.1
|
||||
mode: chat
|
||||
name: google/gemini-3-pro-preview
|
||||
provider: langgenius/openrouter/openrouter
|
||||
prompt_template:
|
||||
- id: f0a75809-0e24-491f-bd19-964d8b2eae4c
|
||||
role: system
|
||||
text: "# 角色\n你是一个文件拆解高手,擅长将用户提交的内容进行精准拆分,拆分后的内容做个简单的优化处理使其更具可读性,但要尽量使用原文的原词原句。\n\
|
||||
\n## 技能\n### 技能 1: 内容拆分\n1. 当用户提交内容后,拆分为多段。\n2. 对拆分后的内容做简单优化,使其更具可读性,比如去掉奇怪符号(如换行符、乱码),若语句不通顺,或格式原因导致错位,则重新表达。用户可能会提交录音转文字的内容,因此可能是有错字的,注意修复这些小瑕疵。\n\
|
||||
3. 优化过程中,尽量使用原文的原词原句,特别是话术类,必须保持原有的句式、保持原词原句,而不是重构。\n4. 注意是拆分而不是重写,不需要润色,尽量不做任何处理。\n\
|
||||
5. 输出到 content。\n\n### 技能 2: 为每一个选段概括一个标题\n1. 为每个拆分出来的选段概括一个标题,并输出到 title。\n\
|
||||
\n### 技能 3: 为每一个选段说明与主题的关联\n1. 详细说明这一段与全文核心主题的关联,并输出到 topic_relation。\n\
|
||||
\n### 技能 4: 为每一个选段打上一个类型标签\n1. 用户提交的内容很有可能是一个课程、一篇讲义、一个产品的说明书,通常是用户希望他公司的员工或高管学习的知识。\n\
|
||||
2. 用户通常是医疗美容机构或轻医美、生活美容连锁品牌。\n3. 你要为每个选段打上一个知识类型的标签,最好是这几个类型中的一个:\"理论知识\"\
|
||||
, \"诊断设计\", \"操作步骤\", \"沟通话术\", \"案例分析\", \"注意事项\", \"技巧方法\", \"客诉处理\"\
|
||||
。当然你也可以为这个选段匹配一个更适合的。\n\n## 输出要求(严格按要求输出)\n请直接输出一个纯净的 JSON 数组(Array),不要包含\
|
||||
\ Markdown 标记(如 ```json),也不要包含任何解释性文字。格式如下:\n\n[\n {\n \"title\":\
|
||||
\ \"知识点标题\",\n \"content\": \"知识点内容\",\n \"topic_relation\": \"\
|
||||
知识点与主题的关系\",\n \"type\": \"知识点类型\"\n },\n {\n \"title\": \"第二个知识点标题\"\
|
||||
,\n \"content\": \"第二个知识点内容...\",\n \"topic_relation\": \"...\"\
|
||||
,\n \"type\": \"...\"\n }\n]\n\n## 限制\n- 仅围绕用户提交的内容进行拆分和关联标注,不涉及其他无关内容。\n\
|
||||
- 拆分后的内容必须最大程度保持与原文一致。\n- 关联说明需清晰合理。\n- 不论如何,不要拆分超过 20 段!"
|
||||
- id: bc1168ad-45de-475e-9365-8791306c8bb3
|
||||
role: user
|
||||
text: '课程主题:{{#1757513649648.course_name#}}
|
||||
|
||||
## 用户提交的内容:
|
||||
|
||||
{{#1757513748987.text#}}
|
||||
|
||||
|
||||
## 注意
|
||||
|
||||
- 以json的格式输出
|
||||
|
||||
- 不论如何,不要拆分超过20 段!'
|
||||
selected: false
|
||||
structured_output:
|
||||
schema:
|
||||
additionalProperties: false
|
||||
properties:
|
||||
content:
|
||||
description: 知识点内容
|
||||
type: string
|
||||
title:
|
||||
description: 知识点标题
|
||||
type: string
|
||||
required:
|
||||
- title
|
||||
- content
|
||||
type: object
|
||||
structured_output_enabled: false
|
||||
title: 知识点提取
|
||||
type: llm
|
||||
variables: []
|
||||
vision:
|
||||
enabled: false
|
||||
height: 124
|
||||
id: '1757513757216'
|
||||
position:
|
||||
x: 1236
|
||||
y: 283
|
||||
positionAbsolute:
|
||||
x: 1236
|
||||
y: 283
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
code: "import json\nimport re\ndef main(arg1: str) -> dict:\n # --- 内部辅助函数:清洗文本以适配\
|
||||
\ SQL ---\n def clean_text_for_sql(text):\n if not isinstance(text,\
|
||||
\ str):\n return text\n \n # 1. 【关键修改】将物理换行符替换为\
|
||||
\ SQL 转义换行符 (\\\\n)\n # 这样 SQL 语句本身是一行,但数据库会将其解释为换行\n text\
|
||||
\ = text.replace('\\n', '\\\\n').replace('\\r', '')\n \n #\
|
||||
\ 2. 将单引号替换为两个单引号(SQL 标准转义),防止截断\n text = text.replace(\"'\", \"\
|
||||
''\")\n \n return text\n try:\n if not arg1:\n \
|
||||
\ return {\"data\": []}\n \n # --- 1. 提取 JSON 字符串\
|
||||
\ (保持不变) ---\n json_str = arg1\n match = re.search(r'```json\\\
|
||||
s*(.*?)\\s*```', arg1, re.DOTALL)\n if match:\n json_str\
|
||||
\ = match.group(1)\n else:\n start = arg1.find('[')\n\
|
||||
\ end = arg1.rfind(']')\n if start != -1 and end !=\
|
||||
\ -1:\n json_str = arg1[start:end+1]\n # --- 2. 解析\
|
||||
\ JSON ---\n data_list = json.loads(json_str)\n \n \
|
||||
\ # --- 3. 校验与清洗数据 ---\n if not isinstance(data_list, list):\n \
|
||||
\ if isinstance(data_list, dict) and \"items\" in data_list:\n\
|
||||
\ data_list = data_list[\"items\"]\n else:\n \
|
||||
\ return {\"data\": []}\n if len(data_list) >= 30:\n\
|
||||
\ data_list = data_list[:29]\n \n # 遍历列表进行清洗\n\
|
||||
\ cleaned_list = []\n for item in data_list:\n \
|
||||
\ if isinstance(item, dict):\n cleaned_item = {\n \
|
||||
\ \"title\": clean_text_for_sql(item.get(\"title\", \"\")),\n\
|
||||
\ \"content\": clean_text_for_sql(item.get(\"content\"\
|
||||
, \"\")),\n \"topic_relation\": clean_text_for_sql(item.get(\"\
|
||||
topic_relation\", \"\")),\n \"type\": clean_text_for_sql(item.get(\"\
|
||||
type\", \"\"))\n }\n cleaned_list.append(cleaned_item)\n\
|
||||
\ \n return {\"data\": cleaned_list}\n \n except json.JSONDecodeError\
|
||||
\ as e:\n print(f\"JSON解析错误: {str(e)}\")\n return {\"data\"\
|
||||
: []}\n except Exception as e:\n print(f\"处理过程中发生错误: {str(e)}\"\
|
||||
)\n return {\"data\": []}"
|
||||
code_language: python3
|
||||
desc: ''
|
||||
error_strategy: fail-branch
|
||||
outputs:
|
||||
data:
|
||||
children: null
|
||||
type: array[object]
|
||||
retry_config:
|
||||
max_retries: 3
|
||||
retry_enabled: true
|
||||
retry_interval: 1000
|
||||
selected: false
|
||||
title: 转换格式
|
||||
type: code
|
||||
variables:
|
||||
- value_selector:
|
||||
- '1757513757216'
|
||||
- text
|
||||
value_type: string
|
||||
variable: arg1
|
||||
height: 117
|
||||
id: '1757516212204'
|
||||
position:
|
||||
x: 1538
|
||||
y: 283
|
||||
positionAbsolute:
|
||||
x: 1538
|
||||
y: 283
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
desc: ''
|
||||
outputs:
|
||||
- value_selector:
|
||||
- '1757687332404'
|
||||
- output
|
||||
value_type: array[string]
|
||||
variable: output
|
||||
selected: false
|
||||
title: 结束
|
||||
type: end
|
||||
height: 88
|
||||
id: '1757522230050'
|
||||
position:
|
||||
x: 2708
|
||||
y: 572
|
||||
positionAbsolute:
|
||||
x: 2708
|
||||
y: 572
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
desc: ''
|
||||
outputs:
|
||||
- value_selector:
|
||||
- '1757513757216'
|
||||
- error_message
|
||||
value_type: string
|
||||
variable: reasoning_content
|
||||
selected: false
|
||||
title: 结束 2
|
||||
type: end
|
||||
height: 88
|
||||
id: '1757572091560'
|
||||
position:
|
||||
x: 1361.0212171476019
|
||||
y: 472.6567992168116
|
||||
positionAbsolute:
|
||||
x: 1361.0212171476019
|
||||
y: 472.6567992168116
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
desc: ''
|
||||
outputs:
|
||||
- value_selector:
|
||||
- '1757516212204'
|
||||
- error_message
|
||||
value_type: string
|
||||
variable: result
|
||||
selected: false
|
||||
title: 结束 3
|
||||
type: end
|
||||
height: 88
|
||||
id: '1757576655478'
|
||||
position:
|
||||
x: 2123
|
||||
y: 283
|
||||
positionAbsolute:
|
||||
x: 2123
|
||||
y: 283
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
desc: ''
|
||||
error_handle_mode: continue-on-error
|
||||
height: 410
|
||||
is_parallel: true
|
||||
iterator_input_type: array[object]
|
||||
iterator_selector:
|
||||
- '1757516212204'
|
||||
- data
|
||||
output_selector:
|
||||
- '1758575376121'
|
||||
- title
|
||||
output_type: array[string]
|
||||
parallel_nums: 10
|
||||
selected: false
|
||||
start_node_id: 1757687332404start
|
||||
title: 迭代
|
||||
type: iteration
|
||||
width: 1310.983478660764
|
||||
height: 410
|
||||
id: '1757687332404'
|
||||
position:
|
||||
x: 1939.6507421681436
|
||||
y: 396.2369270862009
|
||||
positionAbsolute:
|
||||
x: 1939.6507421681436
|
||||
y: 396.2369270862009
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 1311
|
||||
zIndex: 1
|
||||
- data:
|
||||
desc: ''
|
||||
isInIteration: true
|
||||
selected: false
|
||||
title: ''
|
||||
type: iteration-start
|
||||
draggable: false
|
||||
height: 48
|
||||
id: 1757687332404start
|
||||
parentId: '1757687332404'
|
||||
position:
|
||||
x: 60
|
||||
y: 62
|
||||
positionAbsolute:
|
||||
x: 1999.6507421681436
|
||||
y: 458.2369270862009
|
||||
selectable: false
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom-iteration-start
|
||||
width: 44
|
||||
zIndex: 1002
|
||||
- data:
|
||||
code: "def main(arg1: dict) -> dict:\n # 上一个节点已经完成了所有清洗工作(包括换行符转义 \\n 和单引号转义\
|
||||
\ '')\n # 这里只需要直接透传数据即可,不要再做任何处理\n return {\n \"title\": arg1.get(\"\
|
||||
title\"),\n \"content\": arg1.get(\"content\"),\n \"topic_relation\"\
|
||||
: arg1.get(\"topic_relation\"),\n \"type\": arg1.get(\"type\")\n\
|
||||
\ }"
|
||||
code_language: python3
|
||||
desc: ''
|
||||
isInIteration: true
|
||||
isInLoop: false
|
||||
iteration_id: '1757687332404'
|
||||
outputs:
|
||||
content:
|
||||
children: null
|
||||
type: string
|
||||
title:
|
||||
children: null
|
||||
type: string
|
||||
topic_relation:
|
||||
children: null
|
||||
type: string
|
||||
type:
|
||||
children: null
|
||||
type: string
|
||||
selected: false
|
||||
title: 内容提取
|
||||
type: code
|
||||
variables:
|
||||
- value_selector:
|
||||
- '1757687332404'
|
||||
- item
|
||||
value_type: object
|
||||
variable: arg1
|
||||
height: 52
|
||||
id: '1758575376121'
|
||||
parentId: '1757687332404'
|
||||
position:
|
||||
x: 204
|
||||
y: 60
|
||||
positionAbsolute:
|
||||
x: 2143.6507421681436
|
||||
y: 456.2369270862009
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
zIndex: 1002
|
||||
- data:
|
||||
outputs:
|
||||
- value_selector:
|
||||
- '1766636080995'
|
||||
- text
|
||||
value_type: string
|
||||
variable: error_message
|
||||
selected: true
|
||||
title: 结束 5
|
||||
type: end
|
||||
height: 88
|
||||
id: '1764240729694'
|
||||
position:
|
||||
x: 934
|
||||
y: 411
|
||||
positionAbsolute:
|
||||
x: 934
|
||||
y: 411
|
||||
selected: true
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
error_strategy: fail-branch
|
||||
is_team_authorization: true
|
||||
paramSchemas:
|
||||
- auto_generate: null
|
||||
default: null
|
||||
form: llm
|
||||
human_description:
|
||||
en_US: ''
|
||||
ja_JP: ''
|
||||
pt_BR: ''
|
||||
zh_Hans: ''
|
||||
label:
|
||||
en_US: SQL 语句
|
||||
ja_JP: SQL 语句
|
||||
pt_BR: SQL 语句
|
||||
zh_Hans: SQL 语句
|
||||
llm_description: ''
|
||||
max: null
|
||||
min: null
|
||||
name: sql
|
||||
options: []
|
||||
placeholder:
|
||||
en_US: ''
|
||||
ja_JP: ''
|
||||
pt_BR: ''
|
||||
zh_Hans: ''
|
||||
precision: null
|
||||
required: true
|
||||
scope: null
|
||||
template: null
|
||||
type: string
|
||||
params:
|
||||
sql: ''
|
||||
plugin_id: null
|
||||
plugin_unique_identifier: null
|
||||
provider_icon:
|
||||
background: '#FFEAD5'
|
||||
content: 🤖
|
||||
provider_id: 2e7e915c-606c-4230-b4bd-ff95efb72f39
|
||||
provider_name: 恩喜-00-SQL 执行器-考陪练专用
|
||||
provider_type: workflow
|
||||
retry_config:
|
||||
max_retries: 3
|
||||
retry_enabled: true
|
||||
retry_interval: 1000
|
||||
selected: false
|
||||
title: 恩喜-00-SQL 执行器-考陪练专用
|
||||
tool_configurations: {}
|
||||
tool_description: 考陪练系统专用的 sql 执行器
|
||||
tool_label: 恩喜-00-SQL 执行器-考陪练专用
|
||||
tool_name: SQL_executor_enxi
|
||||
tool_node_version: '2'
|
||||
tool_parameters:
|
||||
sql:
|
||||
type: mixed
|
||||
value: DELETE FROM knowledge_points WHERE material_id = {{#1757513649648.material_id#}};
|
||||
type: tool
|
||||
height: 117
|
||||
id: '1766636080995'
|
||||
position:
|
||||
x: 369.1162304946969
|
||||
y: 472.6567992168116
|
||||
positionAbsolute:
|
||||
x: 369.1162304946969
|
||||
y: 472.6567992168116
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
isInIteration: true
|
||||
isInLoop: false
|
||||
is_team_authorization: true
|
||||
iteration_id: '1757687332404'
|
||||
paramSchemas:
|
||||
- auto_generate: null
|
||||
default: null
|
||||
form: llm
|
||||
human_description:
|
||||
en_US: ''
|
||||
ja_JP: ''
|
||||
pt_BR: ''
|
||||
zh_Hans: ''
|
||||
label:
|
||||
en_US: SQL 语句
|
||||
ja_JP: SQL 语句
|
||||
pt_BR: SQL 语句
|
||||
zh_Hans: SQL 语句
|
||||
llm_description: ''
|
||||
max: null
|
||||
min: null
|
||||
name: sql
|
||||
options: []
|
||||
placeholder:
|
||||
en_US: ''
|
||||
ja_JP: ''
|
||||
pt_BR: ''
|
||||
zh_Hans: ''
|
||||
precision: null
|
||||
required: true
|
||||
scope: null
|
||||
template: null
|
||||
type: string
|
||||
params:
|
||||
sql: ''
|
||||
plugin_id: null
|
||||
plugin_unique_identifier: null
|
||||
provider_icon:
|
||||
background: '#FFEAD5'
|
||||
content: 🤖
|
||||
provider_id: 2e7e915c-606c-4230-b4bd-ff95efb72f39
|
||||
provider_name: 恩喜-00-SQL 执行器-考陪练专用
|
||||
provider_type: workflow
|
||||
selected: false
|
||||
title: 恩喜-00-SQL 执行器-考陪练专用
|
||||
tool_configurations: {}
|
||||
tool_description: 考陪练系统专用的 sql 执行器
|
||||
tool_label: 恩喜-00-SQL 执行器-考陪练专用
|
||||
tool_name: SQL_executor_enxi
|
||||
tool_node_version: '2'
|
||||
tool_parameters:
|
||||
sql:
|
||||
type: mixed
|
||||
value: INSERT INTO knowledge_points (course_id, material_id, name, description,
|
||||
type, source, topic_relation) VALUES ({{#1757513649648.course_id#}},
|
||||
{{#1757513649648.material_id#}}, '{{#1758575376121.title#}}', '{{#1758575376121.content#}}',
|
||||
'{{#1758575376121.type#}}', 1, '{{#1758575376121.topic_relation#}}');
|
||||
type: tool
|
||||
height: 52
|
||||
id: '1766636254081'
|
||||
parentId: '1757687332404'
|
||||
position:
|
||||
x: 552.0682037973988
|
||||
y: 83.70934394330777
|
||||
positionAbsolute:
|
||||
x: 2491.7189459655424
|
||||
y: 479.9462710295087
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
zIndex: 1002
|
||||
viewport:
|
||||
x: -154.69868384174993
|
||||
y: 184.48211749520988
|
||||
zoom: 0.5480921885368025
|
||||
rag_pipeline_variables: []
|
||||
658
docs/规划/dify 工作流/恩喜-02-试题生成器-考陪练.yml
Normal file
658
docs/规划/dify 工作流/恩喜-02-试题生成器-考陪练.yml
Normal file
@@ -0,0 +1,658 @@
|
||||
app:
|
||||
description: 动态生成考试题目
|
||||
icon: 🤖
|
||||
icon_background: '#FBE8FF'
|
||||
mode: workflow
|
||||
name: 恩喜-02-试题生成器-考陪练
|
||||
use_icon_as_answer_icon: false
|
||||
dependencies:
|
||||
- current_identifier: null
|
||||
type: marketplace
|
||||
value:
|
||||
marketplace_plugin_unique_identifier: langgenius/openrouter:0.0.22@99ef4cf4e08292c28806abaf24f295ed66e04e4b9e74385b487fd0767c7f56df
|
||||
version: null
|
||||
kind: app
|
||||
version: 0.5.0
|
||||
workflow:
|
||||
conversation_variables: []
|
||||
environment_variables: []
|
||||
features:
|
||||
file_upload:
|
||||
allowed_file_extensions:
|
||||
- .JPG
|
||||
- .JPEG
|
||||
- .PNG
|
||||
- .GIF
|
||||
- .WEBP
|
||||
- .SVG
|
||||
allowed_file_types:
|
||||
- image
|
||||
allowed_file_upload_methods:
|
||||
- local_file
|
||||
- remote_url
|
||||
enabled: false
|
||||
fileUploadConfig:
|
||||
audio_file_size_limit: 50
|
||||
batch_count_limit: 5
|
||||
file_size_limit: 15
|
||||
image_file_batch_limit: 10
|
||||
image_file_size_limit: 10
|
||||
single_chunk_attachment_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: if-else
|
||||
targetType: code
|
||||
id: 1757697174164-false-1759336370957-target
|
||||
source: '1757697174164'
|
||||
sourceHandle: 'false'
|
||||
target: '1759336370957'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInLoop: false
|
||||
sourceType: llm
|
||||
targetType: end
|
||||
id: 1759336189971-source-1757522219070-target
|
||||
source: '1759336189971'
|
||||
sourceHandle: source
|
||||
target: '1757522219070'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInLoop: false
|
||||
sourceType: if-else
|
||||
targetType: llm
|
||||
id: 1757697174164-true-17593434940720-target
|
||||
source: '1757697174164'
|
||||
sourceHandle: 'true'
|
||||
target: '17593434940720'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInLoop: false
|
||||
sourceType: llm
|
||||
targetType: end
|
||||
id: 17593434940720-source-17576978306140-target
|
||||
source: '17593434940720'
|
||||
sourceHandle: source
|
||||
target: '17576978306140'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInIteration: false
|
||||
isInLoop: false
|
||||
sourceType: start
|
||||
targetType: tool
|
||||
id: 1757517722090-source-1766636474539-target
|
||||
source: '1757517722090'
|
||||
sourceHandle: source
|
||||
target: '1766636474539'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInLoop: false
|
||||
sourceType: tool
|
||||
targetType: if-else
|
||||
id: 1766636474539-source-1757697174164-target
|
||||
source: '1766636474539'
|
||||
sourceHandle: source
|
||||
target: '1757697174164'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInIteration: false
|
||||
isInLoop: false
|
||||
sourceType: code
|
||||
targetType: tool
|
||||
id: 1759336370957-source-1766636566272-target
|
||||
source: '1759336370957'
|
||||
sourceHandle: source
|
||||
target: '1766636566272'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInLoop: false
|
||||
sourceType: tool
|
||||
targetType: llm
|
||||
id: 1766636566272-source-1759336189971-target
|
||||
source: '1766636566272'
|
||||
sourceHandle: source
|
||||
target: '1759336189971'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
nodes:
|
||||
- data:
|
||||
desc: ''
|
||||
selected: false
|
||||
title: 开始
|
||||
type: start
|
||||
variables:
|
||||
- default: '1'
|
||||
label: course_id
|
||||
max_length: 255
|
||||
options: []
|
||||
required: true
|
||||
type: number
|
||||
variable: course_id
|
||||
- default: '1'
|
||||
hint: ''
|
||||
label: position_id
|
||||
max_length: 48
|
||||
options: []
|
||||
placeholder: ''
|
||||
required: true
|
||||
type: number
|
||||
variable: position_id
|
||||
- default: ''
|
||||
hint: ''
|
||||
label: mistake_records
|
||||
max_length: 480000
|
||||
options: []
|
||||
placeholder: ''
|
||||
required: false
|
||||
type: paragraph
|
||||
variable: mistake_records
|
||||
- default: '4'
|
||||
hint: ''
|
||||
label: single_choice_count
|
||||
max_length: 48
|
||||
options: []
|
||||
placeholder: ''
|
||||
required: false
|
||||
type: number
|
||||
variable: single_choice_count
|
||||
- default: '2'
|
||||
hint: ''
|
||||
label: multiple_choice_count
|
||||
max_length: 48
|
||||
options: []
|
||||
placeholder: ''
|
||||
required: false
|
||||
type: number
|
||||
variable: multiple_choice_count
|
||||
- default: '1'
|
||||
hint: ''
|
||||
label: true_false_count
|
||||
max_length: 48
|
||||
options: []
|
||||
placeholder: ''
|
||||
required: false
|
||||
type: number
|
||||
variable: true_false_count
|
||||
- default: '2'
|
||||
hint: ''
|
||||
label: fill_blank_count
|
||||
max_length: 48
|
||||
options: []
|
||||
placeholder: ''
|
||||
required: false
|
||||
type: number
|
||||
variable: fill_blank_count
|
||||
- default: '1'
|
||||
hint: ''
|
||||
label: essay_count
|
||||
max_length: 48
|
||||
options: []
|
||||
placeholder: ''
|
||||
required: false
|
||||
type: number
|
||||
variable: essay_count
|
||||
- default: '3'
|
||||
hint: ''
|
||||
label: difficulty_level
|
||||
max_length: 48
|
||||
options: []
|
||||
placeholder: ''
|
||||
required: false
|
||||
type: number
|
||||
variable: difficulty_level
|
||||
height: 317
|
||||
id: '1757517722090'
|
||||
position:
|
||||
x: 113.18367757866764
|
||||
y: 380.7254702687234
|
||||
positionAbsolute:
|
||||
x: 113.18367757866764
|
||||
y: 380.7254702687234
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
desc: ''
|
||||
outputs:
|
||||
- value_selector:
|
||||
- '1759336189971'
|
||||
- text
|
||||
value_type: string
|
||||
variable: result
|
||||
selected: false
|
||||
title: 结束
|
||||
type: end
|
||||
height: 88
|
||||
id: '1757522219070'
|
||||
position:
|
||||
x: 2675.4479082184957
|
||||
y: 699.3770729563379
|
||||
positionAbsolute:
|
||||
x: 2675.4479082184957
|
||||
y: 699.3770729563379
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
cases:
|
||||
- case_id: 'true'
|
||||
conditions:
|
||||
- comparison_operator: not empty
|
||||
id: 2b42b816-606a-4753-8494-5451b3d7ab42
|
||||
value: ''
|
||||
varType: string
|
||||
variable_selector:
|
||||
- '1757517722090'
|
||||
- mistake_records
|
||||
id: 'true'
|
||||
logical_operator: and
|
||||
desc: ''
|
||||
selected: false
|
||||
title: 条件分支
|
||||
type: if-else
|
||||
height: 124
|
||||
id: '1757697174164'
|
||||
position:
|
||||
x: 1075.7946800832713
|
||||
y: 393.17560717622047
|
||||
positionAbsolute:
|
||||
x: 1075.7946800832713
|
||||
y: 393.17560717622047
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
desc: ''
|
||||
outputs:
|
||||
- value_selector:
|
||||
- '17593434940720'
|
||||
- text
|
||||
value_type: string
|
||||
variable: result
|
||||
selected: false
|
||||
title: 结束 (1)
|
||||
type: end
|
||||
height: 88
|
||||
id: '17576978306140'
|
||||
position:
|
||||
x: 1890.5828711788172
|
||||
y: 199.92291499877138
|
||||
positionAbsolute:
|
||||
x: 1890.5828711788172
|
||||
y: 199.92291499877138
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
context:
|
||||
enabled: false
|
||||
variable_selector: []
|
||||
model:
|
||||
completion_params:
|
||||
exclude_reasoning_tokens: true
|
||||
response_format: json_object
|
||||
temperature: 0.7
|
||||
mode: chat
|
||||
name: google/gemini-2.5-flash
|
||||
provider: langgenius/openrouter/openrouter
|
||||
prompt_template:
|
||||
- id: df690399-5bed-4567-9b1d-5d31584d65e8
|
||||
role: system
|
||||
text: "## 角色\n你是一位经验丰富的考试出题专家,能够依据用户提供的知识内容,结合用户的岗位特征,随机地生成{{#1759336370957.result#}}题考题。你会以专业、严谨且清晰的方式出题。\n\
|
||||
\n## 输出{{#1757517722090.single_choice_count#}}道单选题\n1、每道题目只能有 1 个正确答案。\n\
|
||||
2、干扰项要具有合理性和迷惑性,且所有选项必须与主题相关。\n3、答案解析要简明扼要,说明选择理由。\n4、为每道题记录出题来源的知识点 id。\n\
|
||||
5、请以 JSON 格式输出。\n6、为每道题输出一个序号。\n\n### 输出结构:\n{\n \"num\": \"题号\",\n\
|
||||
\ \"type\": \"single_choice\",\n \"topic\": {\n \"title\"\
|
||||
: \"清晰完整的题目描述\",\n \"options\": {\n \"opt1\": \"A:符合语境的选项\"\
|
||||
,\n \"opt2\": \"B:符合语境的选项\",\n \"opt3\": \"C:符合语境的选项\"\
|
||||
,\n \"opt4\": \"D:符合语境的选项\"\n }\n },\n \"knowledge_point_id\"\
|
||||
: \"出题来源知识点的id\",\n \"correct\": \"其中一个选项的全部原文\",\n \"analysis\"\
|
||||
: \"准确的答案解析,包含选择原因和知识点说明\"\n}\n\n- 严格按照以上格式输出\n\n## 输出{{#1757517722090.multiple_choice_count#}}道多选题\n\
|
||||
1、每道题目有多个正确答案。\n2、\"type\": \"multiple_choice\"\n3、其它事项同单选题。\n\n## 输出{{#1757517722090.true_false_count#}}道判断题\n\
|
||||
1、每道题目只有 \"正确\" 或 \"错误\" 两种答案。\n2、题目表述应明确清晰,避免歧义。\n3、题目应直接陈述事实或观点,便于做出是非判断。\n\
|
||||
4、其它事项同单选题。\n\n### 输出结构:\n{\n \"num\": \"题号\",\n \"type\": \"true_false\"\
|
||||
,\n \"topic\": {\n \"title\": \"清晰完整的题目描述\"\n },\n \"\
|
||||
knowledge_point_id\": \" 出题来源知识点的id\",\n \"correct\": \"正确\", // 或\
|
||||
\ \"错误\",表示正确答案是对还是错\n \"analysis\": \"准确的答案解析,包含判断原因和知识点说明\"\n}\n\n\
|
||||
- 严格按照以上格式输出\n\n## 输出{{#1757517722090.fill_blank_count#}}道填空题\n1. 题干应明确完整,空缺处需用横线“___”标示,且只能有一处空缺\n\
|
||||
2. 答案应唯一且明确,避免开放性表述\n3. 空缺长度应与答案长度大致匹配\n4. 解析需说明答案依据及相关知识点\n5. 其余要求与单选题一致\n\
|
||||
\n### 输出结构:\n{\n \"num\": \"题号\",\n \"type\": \"fill_blank\",\n\
|
||||
\ \"topic\": {\n \"title\": \"包含___空缺的题目描述\"\n },\n \"\
|
||||
knowledge_point_id\": \"出题来源知识点的id\",\n \"correct\": \"准确的填空答案\",\n\
|
||||
\ \"analysis\": \"解析答案的依据和相关知识点说明\"\n}\n\n- 严格按照以上格式输出\n\n### 输出{{#1757517722090.essay_count#}}道问答题\n\
|
||||
1. 问题应具体明确,限定回答范围\n2. 答案需条理清晰,突出核心要点\n3. 解析可补充扩展说明或评分要点\n4. 避免过于宽泛或需要主观发挥的问题\n\
|
||||
5. 其余要求同单选题\n\n### 输出结构:\n{\n \"num\": \"题号\",\n \"type\": \"essay\"\
|
||||
,\n \"topic\": {\n \"title\": \"需要详细回答的问题描述\"\n },\n \"\
|
||||
knowledge_point_id\": \"出题来源知识点的id\",\n \"correct\": \"完整准确的参考答案(分点或连贯表述)\"\
|
||||
,\n \"analysis\": \"对答案的补充说明、评分要点或相关知识点扩展\"\n}\n\n## 特殊要求\n1. 题目难度:{{#1757517722090.difficulty_level#}}级(5\
|
||||
\ 级为最难)\n2. 避免使用模棱两可的表述\n3. 选项内容要互斥,不能有重叠\n4. 每个选项长度尽量均衡\n5. 正确答案(A、B、C、D)分布要合理,避免规律性\n\
|
||||
6. 正确答案必须使用其中一个选项中的全部原文,严禁修改\n7. knowledge_point_id 必须是唯一的,即每道题的知识点来源只允许填一个\
|
||||
\ id。\n\n请按以上要求生成题目,确保每道题目质量。"
|
||||
- id: 9cb9ef44-bbfc-464d-9634-8873babcb6e4
|
||||
role: user
|
||||
text: '# 请针对岗位特征、待出题的知识点内容进行出题。
|
||||
|
||||
## 岗位信息:
|
||||
|
||||
{{#1766636474539.text#}}
|
||||
|
||||
|
||||
---
|
||||
|
||||
## 知识点:
|
||||
|
||||
{{#1766636566272.text#}}'
|
||||
selected: false
|
||||
structured_output_enabled: false
|
||||
title: 第一轮出题
|
||||
type: llm
|
||||
vision:
|
||||
enabled: false
|
||||
height: 88
|
||||
id: '1759336189971'
|
||||
position:
|
||||
x: 2233.770517088806
|
||||
y: 854.8259046963252
|
||||
positionAbsolute:
|
||||
x: 2233.770517088806
|
||||
y: 854.8259046963252
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
code: "from typing import Dict\n\n\ndef main(\n single_choice_count: float,\n\
|
||||
\ multiple_choice_count: float,\n true_false_count: float,\n fill_blank_count:\
|
||||
\ float,\n essay_count: float,\n) -> Dict[str, str]:\n total = (\n\
|
||||
\ single_choice_count\n + multiple_choice_count\n +\
|
||||
\ true_false_count\n + fill_blank_count\n + essay_count\n\
|
||||
\ )\n # 将总和转换为字符串类型\n return {\n \"result\": str(total),\n\
|
||||
\ }\n"
|
||||
code_language: python3
|
||||
outputs:
|
||||
result:
|
||||
children: null
|
||||
type: string
|
||||
selected: false
|
||||
title: 计算总题量
|
||||
type: code
|
||||
variables:
|
||||
- value_selector:
|
||||
- '1757517722090'
|
||||
- single_choice_count
|
||||
value_type: number
|
||||
variable: single_choice_count
|
||||
- value_selector:
|
||||
- '1757517722090'
|
||||
- multiple_choice_count
|
||||
value_type: number
|
||||
variable: multiple_choice_count
|
||||
- value_selector:
|
||||
- '1757517722090'
|
||||
- true_false_count
|
||||
value_type: number
|
||||
variable: true_false_count
|
||||
- value_selector:
|
||||
- '1757517722090'
|
||||
- fill_blank_count
|
||||
value_type: number
|
||||
variable: fill_blank_count
|
||||
- value_selector:
|
||||
- '1757517722090'
|
||||
- essay_count
|
||||
value_type: number
|
||||
variable: essay_count
|
||||
height: 52
|
||||
id: '1759336370957'
|
||||
position:
|
||||
x: 1120.8286797224275
|
||||
y: 773.2970549304636
|
||||
positionAbsolute:
|
||||
x: 1120.8286797224275
|
||||
y: 773.2970549304636
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
context:
|
||||
enabled: false
|
||||
variable_selector: []
|
||||
model:
|
||||
completion_params:
|
||||
response_format: json_object
|
||||
temperature: 0.7
|
||||
mode: chat
|
||||
name: google/gemini-2.5-flash
|
||||
provider: langgenius/openrouter/openrouter
|
||||
prompt_template:
|
||||
- id: df690399-5bed-4567-9b1d-5d31584d65e8
|
||||
role: system
|
||||
text: "## 角色\n你是一位经验丰富的考试出题专家,能够依据用户提供的错题记录,重新为用户出题。你会为每道错题重新出一题,你会以专业、严谨且清晰的方式出题。\n\
|
||||
\n## 输出单选题\n1、每道题目只能有 1 个正确答案。\n2、干扰项要具有合理性和迷惑性,且所有选项必须与主题相关。\n3、答案解析要简明扼要,说明选择理由。\n\
|
||||
4、为每道题记录出题来源的知识点 id。\n5、请以 JSON 格式输出。\n6、为每道题输出一个序号。\n\n### 输出结构:\n{\n\
|
||||
\ \"num\": \"题号\",\n \"type\": \"single_choice\",\n \"topic\"\
|
||||
: {\n \"title\": \"清晰完整的题目描述\",\n \"options\": {\n \
|
||||
\ \"opt1\": \"A:符合语境的选项\",\n \"opt2\": \"B:符合语境的选项\"\
|
||||
,\n \"opt3\": \"C:符合语境的选项\",\n \"opt4\": \"D:符合语境的选项\"\
|
||||
\n }\n },\n \"knowledge_point_id\": \"出题来源知识点的id\",\n \
|
||||
\ \"correct\": \"其中一个选项的全部原文\",\n \"analysis\": \"准确的答案解析,包含选择原因和知识点说明\"\
|
||||
\n}\n\n- 严格按照以上格式输出\n\n\n## 特殊要求\n1. 题目难度:{{#1757517722090.difficulty_level#}}级(5\
|
||||
\ 级为最难)\n2. 避免使用模棱两可的表述\n3. 选项内容要互斥,不能有重叠\n4. 每个选项长度尽量均衡\n5. 正确答案(A、B、C、D)分布要合理,避免规律性\n\
|
||||
6. 正确答案必须使用其中一个选项中的全部原文,严禁修改\n7. knowledge_point_id 必须是唯一的,即每道题的知识点来源只允许填一个\
|
||||
\ id。\n\n请按以上要求生成题目,确保每道题目质量。"
|
||||
- id: 9cb9ef44-bbfc-464d-9634-8873babcb6e4
|
||||
role: user
|
||||
text: '## 错题记录:
|
||||
|
||||
{{#1757517722090.mistake_records#}}'
|
||||
selected: false
|
||||
structured_output_enabled: false
|
||||
title: 错题重出
|
||||
type: llm
|
||||
vision:
|
||||
enabled: false
|
||||
height: 88
|
||||
id: '17593434940720'
|
||||
position:
|
||||
x: 1542.474476799452
|
||||
y: 294.89553593472453
|
||||
positionAbsolute:
|
||||
x: 1542.474476799452
|
||||
y: 294.89553593472453
|
||||
selected: true
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
is_team_authorization: true
|
||||
paramSchemas:
|
||||
- auto_generate: null
|
||||
default: null
|
||||
form: llm
|
||||
human_description:
|
||||
en_US: ''
|
||||
ja_JP: ''
|
||||
pt_BR: ''
|
||||
zh_Hans: ''
|
||||
label:
|
||||
en_US: SQL 语句
|
||||
ja_JP: SQL 语句
|
||||
pt_BR: SQL 语句
|
||||
zh_Hans: SQL 语句
|
||||
llm_description: ''
|
||||
max: null
|
||||
min: null
|
||||
name: sql
|
||||
options: []
|
||||
placeholder:
|
||||
en_US: ''
|
||||
ja_JP: ''
|
||||
pt_BR: ''
|
||||
zh_Hans: ''
|
||||
precision: null
|
||||
required: true
|
||||
scope: null
|
||||
template: null
|
||||
type: string
|
||||
params:
|
||||
sql: ''
|
||||
plugin_id: null
|
||||
plugin_unique_identifier: null
|
||||
provider_icon:
|
||||
background: '#FFEAD5'
|
||||
content: 🤖
|
||||
provider_id: 2e7e915c-606c-4230-b4bd-ff95efb72f39
|
||||
provider_name: 恩喜-00-SQL 执行器-考陪练专用
|
||||
provider_type: workflow
|
||||
selected: false
|
||||
title: 恩喜-00-查询岗位
|
||||
tool_configurations: {}
|
||||
tool_description: 考陪练系统专用的 sql 执行器
|
||||
tool_label: 恩喜-00-SQL 执行器-考陪练专用
|
||||
tool_name: SQL_executor_enxi
|
||||
tool_node_version: '2'
|
||||
tool_parameters:
|
||||
sql:
|
||||
type: mixed
|
||||
value: SELECT id, name, description, skills, level FROM positions WHERE
|
||||
id = 1 AND is_deleted = FALSE
|
||||
type: tool
|
||||
height: 52
|
||||
id: '1766636474539'
|
||||
position:
|
||||
x: 680.6972117920154
|
||||
y: 459.1566958608885
|
||||
positionAbsolute:
|
||||
x: 680.6972117920154
|
||||
y: 459.1566958608885
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
is_team_authorization: true
|
||||
paramSchemas:
|
||||
- auto_generate: null
|
||||
default: null
|
||||
form: llm
|
||||
human_description:
|
||||
en_US: ''
|
||||
ja_JP: ''
|
||||
pt_BR: ''
|
||||
zh_Hans: ''
|
||||
label:
|
||||
en_US: SQL 语句
|
||||
ja_JP: SQL 语句
|
||||
pt_BR: SQL 语句
|
||||
zh_Hans: SQL 语句
|
||||
llm_description: ''
|
||||
max: null
|
||||
min: null
|
||||
name: sql
|
||||
options: []
|
||||
placeholder:
|
||||
en_US: ''
|
||||
ja_JP: ''
|
||||
pt_BR: ''
|
||||
zh_Hans: ''
|
||||
precision: null
|
||||
required: true
|
||||
scope: null
|
||||
template: null
|
||||
type: string
|
||||
params:
|
||||
sql: ''
|
||||
plugin_id: null
|
||||
plugin_unique_identifier: null
|
||||
provider_icon:
|
||||
background: '#FFEAD5'
|
||||
content: 🤖
|
||||
provider_id: 2e7e915c-606c-4230-b4bd-ff95efb72f39
|
||||
provider_name: 恩喜-00-SQL 执行器-考陪练专用
|
||||
provider_type: workflow
|
||||
selected: false
|
||||
title: 恩喜-00-查询知识点
|
||||
tool_configurations: {}
|
||||
tool_description: 考陪练系统专用的 sql 执行器
|
||||
tool_label: 恩喜-00-SQL 执行器-考陪练专用
|
||||
tool_name: SQL_executor_enxi
|
||||
tool_node_version: '2'
|
||||
tool_parameters:
|
||||
sql:
|
||||
type: mixed
|
||||
value: SELECT kp.id, kp.name, kp.description, kp.topic_relation FROM knowledge_points
|
||||
kp INNER JOIN course_materials cm ON kp.material_id = cm.id WHERE kp.course_id
|
||||
= {{#1757517722090.course_id#}} AND kp.is_deleted = FALSE AND cm.is_deleted
|
||||
= FALSE ORDER BY RAND() LIMIT {{#1759336370957.result#}}
|
||||
type: tool
|
||||
height: 52
|
||||
id: '1766636566272'
|
||||
position:
|
||||
x: 1751.0251613776625
|
||||
y: 1090.0135783943633
|
||||
positionAbsolute:
|
||||
x: 1751.0251613776625
|
||||
y: 1090.0135783943633
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
viewport:
|
||||
x: 208.8157315753573
|
||||
y: 57.80270447312665
|
||||
zoom: 0.3556496204015805
|
||||
rag_pipeline_variables: []
|
||||
290
docs/规划/dify 工作流/恩喜-03-陪练知识准备-考陪练.yml
Normal file
290
docs/规划/dify 工作流/恩喜-03-陪练知识准备-考陪练.yml
Normal file
@@ -0,0 +1,290 @@
|
||||
app:
|
||||
description: 要陪练的知识点读取
|
||||
icon: 🤖
|
||||
icon_background: '#FFEAD5'
|
||||
mode: workflow
|
||||
name: 恩喜-03-陪练知识准备-考陪练
|
||||
use_icon_as_answer_icon: false
|
||||
dependencies:
|
||||
- current_identifier: null
|
||||
type: marketplace
|
||||
value:
|
||||
marketplace_plugin_unique_identifier: langgenius/openrouter:0.0.22@99ef4cf4e08292c28806abaf24f295ed66e04e4b9e74385b487fd0767c7f56df
|
||||
version: null
|
||||
kind: app
|
||||
version: 0.5.0
|
||||
workflow:
|
||||
conversation_variables: []
|
||||
environment_variables: []
|
||||
features:
|
||||
file_upload:
|
||||
allowed_file_extensions:
|
||||
- .JPG
|
||||
- .JPEG
|
||||
- .PNG
|
||||
- .GIF
|
||||
- .WEBP
|
||||
- .SVG
|
||||
allowed_file_types:
|
||||
- image
|
||||
allowed_file_upload_methods:
|
||||
- local_file
|
||||
- remote_url
|
||||
enabled: false
|
||||
fileUploadConfig:
|
||||
audio_file_size_limit: 50
|
||||
batch_count_limit: 5
|
||||
file_size_limit: 15
|
||||
image_file_batch_limit: 10
|
||||
image_file_size_limit: 10
|
||||
single_chunk_attachment_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: llm
|
||||
targetType: end
|
||||
id: 1759345165645-source-1759259743998-target
|
||||
source: '1759345165645'
|
||||
sourceHandle: source
|
||||
target: '1759259743998'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInIteration: false
|
||||
isInLoop: false
|
||||
sourceType: start
|
||||
targetType: tool
|
||||
id: 1759259735113-source-1766637070902-target
|
||||
source: '1759259735113'
|
||||
sourceHandle: source
|
||||
target: '1766637070902'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInLoop: false
|
||||
sourceType: tool
|
||||
targetType: llm
|
||||
id: 1766637070902-source-1759345165645-target
|
||||
source: '1766637070902'
|
||||
sourceHandle: source
|
||||
target: '1759345165645'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
nodes:
|
||||
- data:
|
||||
selected: false
|
||||
title: 开始
|
||||
type: start
|
||||
variables:
|
||||
- default: ''
|
||||
hint: ''
|
||||
label: course_id
|
||||
max_length: 9000
|
||||
options: []
|
||||
placeholder: ''
|
||||
required: true
|
||||
type: paragraph
|
||||
variable: course_id
|
||||
height: 109
|
||||
id: '1759259735113'
|
||||
position:
|
||||
x: 80
|
||||
y: 282
|
||||
positionAbsolute:
|
||||
x: 80
|
||||
y: 282
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
outputs:
|
||||
- value_selector:
|
||||
- '1759345165645'
|
||||
- text
|
||||
value_type: string
|
||||
variable: result
|
||||
selected: false
|
||||
title: 结束
|
||||
type: end
|
||||
height: 88
|
||||
id: '1759259743998'
|
||||
position:
|
||||
x: 1894
|
||||
y: 309
|
||||
positionAbsolute:
|
||||
x: 1894
|
||||
y: 309
|
||||
selected: true
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
context:
|
||||
enabled: false
|
||||
variable_selector: []
|
||||
model:
|
||||
completion_params:
|
||||
temperature: 0.7
|
||||
mode: chat
|
||||
name: google/gemini-2.5-flash
|
||||
provider: langgenius/openrouter/openrouter
|
||||
prompt_template:
|
||||
- id: c5d3c09c-d33c-430a-a8f3-663627411364
|
||||
role: system
|
||||
text: '你是一个训练场景研究专家,能将用户提交的知识点,转变为一个模拟陪练的场景,并严格按照以下格式输出。
|
||||
|
||||
|
||||
输出标准:
|
||||
|
||||
{
|
||||
|
||||
"scene": {
|
||||
|
||||
"name": "轻医美产品咨询陪练",
|
||||
|
||||
"description": "模拟客户咨询轻医美产品的场景",
|
||||
|
||||
"background": "客户对脸部抗衰项目感兴趣。",
|
||||
|
||||
"ai_role": "AI扮演一位30岁女性客户",
|
||||
|
||||
"objectives": ["了解客户需求", "介绍产品优势", "处理价格异议"],
|
||||
|
||||
"keywords": ["抗衰", "玻尿酸", "价格"],
|
||||
|
||||
"type": "product-intro",
|
||||
|
||||
"difficulty": "intermediate"
|
||||
|
||||
}
|
||||
|
||||
}'
|
||||
- id: 2da57109-d891-46a6-8094-6f6ff63f8e5b
|
||||
role: user
|
||||
text: '{{#1766637070902.text#}}'
|
||||
selected: false
|
||||
title: LLM
|
||||
type: llm
|
||||
vision:
|
||||
enabled: false
|
||||
height: 88
|
||||
id: '1759345165645'
|
||||
position:
|
||||
x: 1487
|
||||
y: 266
|
||||
positionAbsolute:
|
||||
x: 1487
|
||||
y: 266
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
is_team_authorization: true
|
||||
paramSchemas:
|
||||
- auto_generate: null
|
||||
default: null
|
||||
form: llm
|
||||
human_description:
|
||||
en_US: ''
|
||||
ja_JP: ''
|
||||
pt_BR: ''
|
||||
zh_Hans: ''
|
||||
label:
|
||||
en_US: SQL 语句
|
||||
ja_JP: SQL 语句
|
||||
pt_BR: SQL 语句
|
||||
zh_Hans: SQL 语句
|
||||
llm_description: ''
|
||||
max: null
|
||||
min: null
|
||||
name: sql
|
||||
options: []
|
||||
placeholder:
|
||||
en_US: ''
|
||||
ja_JP: ''
|
||||
pt_BR: ''
|
||||
zh_Hans: ''
|
||||
precision: null
|
||||
required: true
|
||||
scope: null
|
||||
template: null
|
||||
type: string
|
||||
params:
|
||||
sql: ''
|
||||
plugin_id: null
|
||||
plugin_unique_identifier: null
|
||||
provider_icon:
|
||||
background: '#FFEAD5'
|
||||
content: 🤖
|
||||
provider_id: 2e7e915c-606c-4230-b4bd-ff95efb72f39
|
||||
provider_name: 恩喜-00-SQL 执行器-考陪练专用
|
||||
provider_type: workflow
|
||||
retry_config:
|
||||
max_retries: 3
|
||||
retry_enabled: true
|
||||
retry_interval: 1000
|
||||
selected: false
|
||||
title: 恩喜-00-SQL 执行器-考陪练专用
|
||||
tool_configurations: {}
|
||||
tool_description: 考陪练系统专用的 sql 执行器
|
||||
tool_label: 恩喜-00-SQL 执行器-考陪练专用
|
||||
tool_name: SQL_executor_enxi
|
||||
tool_node_version: '2'
|
||||
tool_parameters:
|
||||
sql:
|
||||
type: mixed
|
||||
value: SELECT kp.name, kp.description FROM knowledge_points kp INNER JOIN
|
||||
course_materials cm ON kp.material_id = cm.id WHERE kp.course_id = {{#1759259735113.course_id#}}
|
||||
AND kp.is_deleted = 0 AND cm.is_deleted = 0 ORDER BY kp.id;
|
||||
type: tool
|
||||
height: 81
|
||||
id: '1766637070902'
|
||||
position:
|
||||
x: 786.8609430099932
|
||||
y: 494.8734381122215
|
||||
positionAbsolute:
|
||||
x: 786.8609430099932
|
||||
y: 494.8734381122215
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
viewport:
|
||||
x: 203.70985243053667
|
||||
y: 193.70165441393362
|
||||
zoom: 0.4438204415451904
|
||||
rag_pipeline_variables: []
|
||||
273
docs/规划/dify 工作流/恩喜-04-与课程对话-考陪练.yml
Normal file
273
docs/规划/dify 工作流/恩喜-04-与课程对话-考陪练.yml
Normal file
@@ -0,0 +1,273 @@
|
||||
app:
|
||||
description: 考陪练系统专用
|
||||
icon: 🤖
|
||||
icon_background: '#FFEAD5'
|
||||
mode: advanced-chat
|
||||
name: 恩喜-04-与课程对话-考陪练
|
||||
use_icon_as_answer_icon: false
|
||||
dependencies:
|
||||
- current_identifier: null
|
||||
type: marketplace
|
||||
value:
|
||||
marketplace_plugin_unique_identifier: langgenius/openrouter:0.0.22@99ef4cf4e08292c28806abaf24f295ed66e04e4b9e74385b487fd0767c7f56df
|
||||
version: null
|
||||
kind: app
|
||||
version: 0.5.0
|
||||
workflow:
|
||||
conversation_variables: []
|
||||
environment_variables: []
|
||||
features:
|
||||
file_upload:
|
||||
allowed_file_extensions:
|
||||
- .JPG
|
||||
- .JPEG
|
||||
- .PNG
|
||||
- .GIF
|
||||
- .WEBP
|
||||
- .SVG
|
||||
allowed_file_types:
|
||||
- image
|
||||
allowed_file_upload_methods:
|
||||
- local_file
|
||||
- remote_url
|
||||
enabled: false
|
||||
fileUploadConfig:
|
||||
audio_file_size_limit: 50
|
||||
batch_count_limit: 5
|
||||
file_size_limit: 15
|
||||
image_file_batch_limit: 10
|
||||
image_file_size_limit: 10
|
||||
single_chunk_attachment_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:
|
||||
sourceType: llm
|
||||
targetType: answer
|
||||
id: llm-answer
|
||||
source: llm
|
||||
sourceHandle: source
|
||||
target: answer
|
||||
targetHandle: target
|
||||
type: custom
|
||||
- data:
|
||||
isInIteration: false
|
||||
isInLoop: false
|
||||
sourceType: start
|
||||
targetType: tool
|
||||
id: 1760457791548-source-1766637272902-target
|
||||
source: '1760457791548'
|
||||
sourceHandle: source
|
||||
target: '1766637272902'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInLoop: false
|
||||
sourceType: tool
|
||||
targetType: llm
|
||||
id: 1766637272902-source-llm-target
|
||||
source: '1766637272902'
|
||||
sourceHandle: source
|
||||
target: llm
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
nodes:
|
||||
- data:
|
||||
selected: false
|
||||
title: 开始
|
||||
type: start
|
||||
variables:
|
||||
- default: ''
|
||||
hint: ''
|
||||
label: course_id
|
||||
max_length: 256
|
||||
options: []
|
||||
placeholder: ''
|
||||
required: true
|
||||
type: text-input
|
||||
variable: course_id
|
||||
height: 109
|
||||
id: '1760457791548'
|
||||
position:
|
||||
x: 80
|
||||
y: 282
|
||||
positionAbsolute:
|
||||
x: 80
|
||||
y: 282
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
context:
|
||||
enabled: false
|
||||
variable_selector: []
|
||||
memory:
|
||||
query_prompt_template: '{{#sys.query#}}'
|
||||
role_prefix:
|
||||
assistant: ''
|
||||
user: ''
|
||||
window:
|
||||
enabled: true
|
||||
size: 10
|
||||
model:
|
||||
completion_params:
|
||||
temperature: 0.7
|
||||
mode: chat
|
||||
name: google/gemini-2.5-flash
|
||||
provider: langgenius/openrouter/openrouter
|
||||
prompt_template:
|
||||
- id: b5d31fea-e978-4229-81ed-ac3fe42f2f18
|
||||
role: system
|
||||
text: '你是知识拆解专家,精通以下知识库(课程)内容。请根据用户的问题,从知识库中找到最相关的信息,进行深入分析后,用简洁清晰的语言回答用户。为用户提供与课程对话的服务。
|
||||
|
||||
|
||||
回答要求:
|
||||
|
||||
1. 直接针对问题核心,避免冗长铺垫
|
||||
|
||||
2. 使用通俗易懂的语言,必要时举例说明
|
||||
|
||||
3. 突出关键要点,帮助用户快速理解
|
||||
|
||||
4. 如果知识库中没有相关内容,请如实告知
|
||||
|
||||
|
||||
知识库:
|
||||
|
||||
{{#1766637272902.text#}}'
|
||||
selected: false
|
||||
title: LLM
|
||||
type: llm
|
||||
vision:
|
||||
enabled: false
|
||||
height: 88
|
||||
id: llm
|
||||
position:
|
||||
x: 980
|
||||
y: 282
|
||||
positionAbsolute:
|
||||
x: 980
|
||||
y: 282
|
||||
selected: true
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
answer: '{{#llm.text#}}'
|
||||
selected: false
|
||||
title: 直接回复
|
||||
type: answer
|
||||
variables: []
|
||||
height: 103
|
||||
id: answer
|
||||
position:
|
||||
x: 1280
|
||||
y: 282
|
||||
positionAbsolute:
|
||||
x: 1280
|
||||
y: 282
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
is_team_authorization: true
|
||||
paramSchemas:
|
||||
- auto_generate: null
|
||||
default: null
|
||||
form: llm
|
||||
human_description:
|
||||
en_US: ''
|
||||
ja_JP: ''
|
||||
pt_BR: ''
|
||||
zh_Hans: ''
|
||||
label:
|
||||
en_US: SQL 语句
|
||||
ja_JP: SQL 语句
|
||||
pt_BR: SQL 语句
|
||||
zh_Hans: SQL 语句
|
||||
llm_description: ''
|
||||
max: null
|
||||
min: null
|
||||
name: sql
|
||||
options: []
|
||||
placeholder:
|
||||
en_US: ''
|
||||
ja_JP: ''
|
||||
pt_BR: ''
|
||||
zh_Hans: ''
|
||||
precision: null
|
||||
required: true
|
||||
scope: null
|
||||
template: null
|
||||
type: string
|
||||
params:
|
||||
sql: ''
|
||||
plugin_id: null
|
||||
plugin_unique_identifier: null
|
||||
provider_icon:
|
||||
background: '#FFEAD5'
|
||||
content: 🤖
|
||||
provider_id: 2e7e915c-606c-4230-b4bd-ff95efb72f39
|
||||
provider_name: 恩喜-00-SQL 执行器-考陪练专用
|
||||
provider_type: workflow
|
||||
selected: false
|
||||
title: 恩喜-00-SQL 执行器-考陪练专用
|
||||
tool_configurations: {}
|
||||
tool_description: 考陪练系统专用的 sql 执行器
|
||||
tool_label: 恩喜-00-SQL 执行器-考陪练专用
|
||||
tool_name: SQL_executor_enxi
|
||||
tool_node_version: '2'
|
||||
tool_parameters:
|
||||
sql:
|
||||
type: mixed
|
||||
value: SELECT kp.name, kp.description FROM knowledge_points kp INNER JOIN
|
||||
course_materials cm ON kp.material_id = cm.id WHERE kp.course_id = {{#1760457791548.course_id#}}
|
||||
AND kp.is_deleted = 0 AND cm.is_deleted = 0 ORDER BY kp.id;
|
||||
type: tool
|
||||
height: 52
|
||||
id: '1766637272902'
|
||||
position:
|
||||
x: 573.1013773769109
|
||||
y: 452.5465761475262
|
||||
positionAbsolute:
|
||||
x: 573.1013773769109
|
||||
y: 452.5465761475262
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
viewport:
|
||||
x: 264.91206019696983
|
||||
y: 183.58250340914594
|
||||
zoom: 0.523860819025226
|
||||
rag_pipeline_variables: []
|
||||
380
docs/规划/dify 工作流/恩喜-05-智能工牌能力分析与课程推荐-考陪练.yml
Normal file
380
docs/规划/dify 工作流/恩喜-05-智能工牌能力分析与课程推荐-考陪练.yml
Normal file
@@ -0,0 +1,380 @@
|
||||
app:
|
||||
description: 智能工牌能力分析与课程推荐
|
||||
icon: 🤖
|
||||
icon_background: '#FFEAD5'
|
||||
mode: workflow
|
||||
name: 恩喜-05-智能工牌能力分析与课程推荐-考陪练
|
||||
use_icon_as_answer_icon: false
|
||||
dependencies:
|
||||
- current_identifier: null
|
||||
type: marketplace
|
||||
value:
|
||||
marketplace_plugin_unique_identifier: langgenius/openrouter:0.0.22@99ef4cf4e08292c28806abaf24f295ed66e04e4b9e74385b487fd0767c7f56df
|
||||
version: null
|
||||
kind: app
|
||||
version: 0.5.0
|
||||
workflow:
|
||||
conversation_variables: []
|
||||
environment_variables: []
|
||||
features:
|
||||
file_upload:
|
||||
allowed_file_extensions:
|
||||
- .JPG
|
||||
- .JPEG
|
||||
- .PNG
|
||||
- .GIF
|
||||
- .WEBP
|
||||
- .SVG
|
||||
allowed_file_types:
|
||||
- image
|
||||
allowed_file_upload_methods:
|
||||
- local_file
|
||||
- remote_url
|
||||
enabled: false
|
||||
fileUploadConfig:
|
||||
audio_file_size_limit: 50
|
||||
batch_count_limit: 5
|
||||
file_size_limit: 15
|
||||
image_file_batch_limit: 10
|
||||
image_file_size_limit: 10
|
||||
single_chunk_attachment_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: llm
|
||||
targetType: end
|
||||
id: 1759345165645-source-1759259743998-target
|
||||
source: '1759345165645'
|
||||
sourceHandle: source
|
||||
target: '1759259743998'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInIteration: false
|
||||
isInLoop: false
|
||||
sourceType: start
|
||||
targetType: tool
|
||||
id: 1759259735113-source-1766637417515-target
|
||||
source: '1759259735113'
|
||||
sourceHandle: source
|
||||
target: '1766637417515'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInIteration: false
|
||||
isInLoop: false
|
||||
sourceType: tool
|
||||
targetType: tool
|
||||
id: 1766637417515-source-1766637451330-target
|
||||
source: '1766637417515'
|
||||
sourceHandle: source
|
||||
target: '1766637451330'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInLoop: false
|
||||
sourceType: tool
|
||||
targetType: llm
|
||||
id: 1766637451330-source-1759345165645-target
|
||||
source: '1766637451330'
|
||||
sourceHandle: source
|
||||
target: '1759345165645'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
nodes:
|
||||
- data:
|
||||
selected: false
|
||||
title: 开始
|
||||
type: start
|
||||
variables:
|
||||
- default: ''
|
||||
hint: ''
|
||||
label: dialogue_history
|
||||
max_length: 90000
|
||||
options: []
|
||||
placeholder: ''
|
||||
required: true
|
||||
type: paragraph
|
||||
variable: dialogue_history
|
||||
- default: ''
|
||||
hint: ''
|
||||
label: user_id
|
||||
max_length: 48
|
||||
options: []
|
||||
placeholder: ''
|
||||
required: true
|
||||
type: text-input
|
||||
variable: user_id
|
||||
height: 135
|
||||
id: '1759259735113'
|
||||
position:
|
||||
x: 80
|
||||
y: 282
|
||||
positionAbsolute:
|
||||
x: 80
|
||||
y: 282
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
outputs:
|
||||
- value_selector:
|
||||
- '1759345165645'
|
||||
- text
|
||||
value_type: string
|
||||
variable: result
|
||||
selected: false
|
||||
title: 结束
|
||||
type: end
|
||||
height: 88
|
||||
id: '1759259743998'
|
||||
position:
|
||||
x: 1813.2223142363105
|
||||
y: 283.53180246801287
|
||||
positionAbsolute:
|
||||
x: 1813.2223142363105
|
||||
y: 283.53180246801287
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
context:
|
||||
enabled: false
|
||||
variable_selector: []
|
||||
model:
|
||||
completion_params:
|
||||
temperature: 0.7
|
||||
mode: chat
|
||||
name: google/gemini-2.5-flash
|
||||
provider: langgenius/openrouter/openrouter
|
||||
prompt_template:
|
||||
- id: c5d3c09c-d33c-430a-a8f3-663627411364
|
||||
role: system
|
||||
text: "你是话术分析专家,用户是一家轻医美连锁品牌的员工,用户提交的是用户自己与顾客的对话记录,你做分析与评分。并严格按照以下格式输出。并根据课程列表,为该用户提供选课建议。\n\
|
||||
\n输出标准:\n{\n \"analysis\": {\n \"total_score\": 82,\n \"ability_dimensions\"\
|
||||
: [\n {\n \"name\": \"专业知识\",\n \"score\": 88,\n \
|
||||
\ \"feedback\": \"产品知识扎实,能准确回答客户问题。建议:继续深化对新产品的了解。\"\n },\n\
|
||||
\ {\n \"name\": \"沟通技巧\",\n \"score\": 92,\n \
|
||||
\ \"feedback\": \"语言表达清晰流畅,善于倾听客户需求。建议:可以多使用开放式问题引导。\"\n },\n \
|
||||
\ {\n \"name\": \"操作技能\",\n \"score\": 85,\n \"\
|
||||
feedback\": \"基本操作熟练,流程规范。建议:提升复杂场景的应对速度。\"\n },\n {\n \
|
||||
\ \"name\": \"客户服务\",\n \"score\": 90,\n \"feedback\"\
|
||||
: \"服务态度优秀,客户体验良好。建议:进一步提升个性化服务能力。\"\n },\n {\n \"name\"\
|
||||
: \"安全意识\",\n \"score\": 79,\n \"feedback\": \"基本安全规范掌握,但在细节提醒上还可加强。\"\
|
||||
\n },\n {\n \"name\": \"应变能力\",\n \"score\": 76,\n\
|
||||
\ \"feedback\": \"面对突发情况反应较快,但处理方式可以更灵活多样。\"\n }\n ],\n\
|
||||
\ \"course_recommendations\": [\n {\n \"course_id\": 5,\n\
|
||||
\ \"course_name\": \"应变能力提升训练营\",\n \"recommendation_reason\"\
|
||||
: \"该课程专注于提升应变能力,包含大量实战案例分析和模拟演练,针对您当前的薄弱环节(应变能力76分)设计。通过学习可提升15分左右。\"\
|
||||
,\n \"priority\": \"high\",\n \"match_score\": 95\n \
|
||||
\ },\n {\n \"course_id\": 3,\n \"course_name\": \"\
|
||||
安全规范与操作标准\",\n \"recommendation_reason\": \"系统讲解安全规范和操作标准,通过案例教学帮助建立安全意识。当前您的安全意识得分为79分,通过本课程学习预计可提升12分。\"\
|
||||
,\n \"priority\": \"high\",\n \"match_score\": 88\n \
|
||||
\ },\n {\n \"course_id\": 7,\n \"course_name\": \"\
|
||||
高级销售技巧\",\n \"recommendation_reason\": \"进阶课程,帮助您将已有的沟通优势(92分)转化为更高级的销售技能,进一步巩固客户服务能力(90分)。\"\
|
||||
,\n \"priority\": \"medium\",\n \"match_score\": 82\n \
|
||||
\ }\n ]\n }\n}"
|
||||
- id: 2da57109-d891-46a6-8094-6f6ff63f8e5b
|
||||
role: user
|
||||
text: '对话记录:{{#1759259735113.dialogue_history#}}
|
||||
|
||||
---
|
||||
|
||||
用户的信息和岗位:{{#1766637451330.text#}}
|
||||
|
||||
---
|
||||
|
||||
所有可选课程:{{#1766637451330.text#}}'
|
||||
selected: false
|
||||
title: LLM
|
||||
type: llm
|
||||
vision:
|
||||
enabled: false
|
||||
height: 88
|
||||
id: '1759345165645'
|
||||
position:
|
||||
x: 1363.5028016995486
|
||||
y: 288.04877731559196
|
||||
positionAbsolute:
|
||||
x: 1363.5028016995486
|
||||
y: 288.04877731559196
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
is_team_authorization: true
|
||||
paramSchemas:
|
||||
- auto_generate: null
|
||||
default: null
|
||||
form: llm
|
||||
human_description:
|
||||
en_US: ''
|
||||
ja_JP: ''
|
||||
pt_BR: ''
|
||||
zh_Hans: ''
|
||||
label:
|
||||
en_US: SQL 语句
|
||||
ja_JP: SQL 语句
|
||||
pt_BR: SQL 语句
|
||||
zh_Hans: SQL 语句
|
||||
llm_description: ''
|
||||
max: null
|
||||
min: null
|
||||
name: sql
|
||||
options: []
|
||||
placeholder:
|
||||
en_US: ''
|
||||
ja_JP: ''
|
||||
pt_BR: ''
|
||||
zh_Hans: ''
|
||||
precision: null
|
||||
required: true
|
||||
scope: null
|
||||
template: null
|
||||
type: string
|
||||
params:
|
||||
sql: ''
|
||||
plugin_id: null
|
||||
plugin_unique_identifier: null
|
||||
provider_icon:
|
||||
background: '#FFEAD5'
|
||||
content: 🤖
|
||||
provider_id: 2e7e915c-606c-4230-b4bd-ff95efb72f39
|
||||
provider_name: 恩喜-00-SQL 执行器-考陪练专用
|
||||
provider_type: workflow
|
||||
selected: true
|
||||
title: 恩喜-00-获取用户信息
|
||||
tool_configurations: {}
|
||||
tool_description: 考陪练系统专用的 sql 执行器
|
||||
tool_label: 恩喜-00-SQL 执行器-考陪练专用
|
||||
tool_name: SQL_executor_enxi
|
||||
tool_node_version: '2'
|
||||
tool_parameters:
|
||||
sql:
|
||||
type: mixed
|
||||
value: SELECT p.id as position_id, p.name as position_name, p.code, p.description,
|
||||
p.skills, p.level, p.status FROM positions p INNER JOIN position_members
|
||||
pm ON p.id = pm.position_id WHERE pm.user_id = {{#1759259735113.user_id#}}
|
||||
AND pm.is_deleted = 0 AND p.is_deleted = 0
|
||||
type: tool
|
||||
height: 52
|
||||
id: '1766637417515'
|
||||
position:
|
||||
x: 587
|
||||
y: 448
|
||||
positionAbsolute:
|
||||
x: 587
|
||||
y: 448
|
||||
selected: true
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
is_team_authorization: true
|
||||
paramSchemas:
|
||||
- auto_generate: null
|
||||
default: null
|
||||
form: llm
|
||||
human_description:
|
||||
en_US: ''
|
||||
ja_JP: ''
|
||||
pt_BR: ''
|
||||
zh_Hans: ''
|
||||
label:
|
||||
en_US: SQL 语句
|
||||
ja_JP: SQL 语句
|
||||
pt_BR: SQL 语句
|
||||
zh_Hans: SQL 语句
|
||||
llm_description: ''
|
||||
max: null
|
||||
min: null
|
||||
name: sql
|
||||
options: []
|
||||
placeholder:
|
||||
en_US: ''
|
||||
ja_JP: ''
|
||||
pt_BR: ''
|
||||
zh_Hans: ''
|
||||
precision: null
|
||||
required: true
|
||||
scope: null
|
||||
template: null
|
||||
type: string
|
||||
params:
|
||||
sql: ''
|
||||
plugin_id: null
|
||||
plugin_unique_identifier: null
|
||||
provider_icon:
|
||||
background: '#FFEAD5'
|
||||
content: 🤖
|
||||
provider_id: 2e7e915c-606c-4230-b4bd-ff95efb72f39
|
||||
provider_name: 恩喜-00-SQL 执行器-考陪练专用
|
||||
provider_type: workflow
|
||||
selected: false
|
||||
title: 恩喜-00-获取所有课程
|
||||
tool_configurations: {}
|
||||
tool_description: 考陪练系统专用的 sql 执行器
|
||||
tool_label: 恩喜-00-SQL 执行器-考陪练专用
|
||||
tool_name: SQL_executor_enxi
|
||||
tool_node_version: '2'
|
||||
tool_parameters:
|
||||
sql:
|
||||
type: mixed
|
||||
value: SELECT id, name, description, category, tags, difficulty_level,
|
||||
duration_hours FROM courses WHERE status = 'published' AND is_deleted
|
||||
= FALSE ORDER BY sort_order
|
||||
type: tool
|
||||
height: 52
|
||||
id: '1766637451330'
|
||||
position:
|
||||
x: 889
|
||||
y: 448
|
||||
positionAbsolute:
|
||||
x: 889
|
||||
y: 448
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
viewport:
|
||||
x: -85.25185611291681
|
||||
y: 136.04491275815266
|
||||
zoom: 0.488825051752638
|
||||
rag_pipeline_variables: []
|
||||
214
docs/规划/dify 工作流/通用-答案判断器-考陪练.yml
Normal file
214
docs/规划/dify 工作流/通用-答案判断器-考陪练.yml
Normal file
@@ -0,0 +1,214 @@
|
||||
app:
|
||||
description: 判断填空题与问答题是否回答正确
|
||||
icon: 🤖
|
||||
icon_background: '#FFEAD5'
|
||||
mode: workflow
|
||||
name: 通用-答案判断器-考陪练
|
||||
use_icon_as_answer_icon: false
|
||||
dependencies:
|
||||
- current_identifier: null
|
||||
type: marketplace
|
||||
value:
|
||||
marketplace_plugin_unique_identifier: langgenius/openrouter:0.0.22@99ef4cf4e08292c28806abaf24f295ed66e04e4b9e74385b487fd0767c7f56df
|
||||
version: null
|
||||
kind: app
|
||||
version: 0.5.0
|
||||
workflow:
|
||||
conversation_variables: []
|
||||
environment_variables: []
|
||||
features:
|
||||
file_upload:
|
||||
allowed_file_extensions:
|
||||
- .JPG
|
||||
- .JPEG
|
||||
- .PNG
|
||||
- .GIF
|
||||
- .WEBP
|
||||
- .SVG
|
||||
allowed_file_types:
|
||||
- image
|
||||
allowed_file_upload_methods:
|
||||
- local_file
|
||||
- remote_url
|
||||
enabled: false
|
||||
fileUploadConfig:
|
||||
audio_file_size_limit: 50
|
||||
batch_count_limit: 5
|
||||
file_size_limit: 15
|
||||
image_file_size_limit: 10
|
||||
video_file_size_limit: 100
|
||||
workflow_file_upload_limit: 10
|
||||
image:
|
||||
enabled: false
|
||||
number_limits: 3
|
||||
transfer_methods:
|
||||
- local_file
|
||||
- remote_url
|
||||
number_limits: 3
|
||||
opening_statement: ''
|
||||
retriever_resource:
|
||||
enabled: true
|
||||
sensitive_word_avoidance:
|
||||
enabled: false
|
||||
speech_to_text:
|
||||
enabled: false
|
||||
suggested_questions: []
|
||||
suggested_questions_after_answer:
|
||||
enabled: false
|
||||
text_to_speech:
|
||||
enabled: false
|
||||
language: ''
|
||||
voice: ''
|
||||
graph:
|
||||
edges:
|
||||
- data:
|
||||
isInIteration: false
|
||||
isInLoop: false
|
||||
sourceType: start
|
||||
targetType: llm
|
||||
id: 1759259735113-source-1759345165645-target
|
||||
source: '1759259735113'
|
||||
sourceHandle: source
|
||||
target: '1759345165645'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInIteration: false
|
||||
isInLoop: false
|
||||
sourceType: llm
|
||||
targetType: end
|
||||
id: 1759345165645-source-1759259743998-target
|
||||
source: '1759345165645'
|
||||
sourceHandle: source
|
||||
target: '1759259743998'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
nodes:
|
||||
- data:
|
||||
selected: false
|
||||
title: 开始
|
||||
type: start
|
||||
variables:
|
||||
- default: ''
|
||||
hint: ''
|
||||
label: question
|
||||
max_length: 4800
|
||||
options: []
|
||||
placeholder: ''
|
||||
required: true
|
||||
type: paragraph
|
||||
variable: question
|
||||
- default: ''
|
||||
hint: ''
|
||||
label: correct_answer
|
||||
max_length: 9000
|
||||
options: []
|
||||
placeholder: ''
|
||||
required: true
|
||||
type: paragraph
|
||||
variable: correct_answer
|
||||
- default: ''
|
||||
hint: ''
|
||||
label: user_answer
|
||||
max_length: 9000
|
||||
options: []
|
||||
placeholder: ''
|
||||
required: true
|
||||
type: paragraph
|
||||
variable: user_answer
|
||||
- default: ''
|
||||
hint: ''
|
||||
label: analysis
|
||||
max_length: 9000
|
||||
options: []
|
||||
placeholder: ''
|
||||
required: true
|
||||
type: paragraph
|
||||
variable: analysis
|
||||
height: 166
|
||||
id: '1759259735113'
|
||||
position:
|
||||
x: 80
|
||||
y: 282
|
||||
positionAbsolute:
|
||||
x: 80
|
||||
y: 282
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
outputs:
|
||||
- value_selector:
|
||||
- '1759345165645'
|
||||
- text
|
||||
value_type: string
|
||||
variable: result
|
||||
selected: false
|
||||
title: 结束
|
||||
type: end
|
||||
height: 88
|
||||
id: '1759259743998'
|
||||
position:
|
||||
x: 994
|
||||
y: 309
|
||||
positionAbsolute:
|
||||
x: 994
|
||||
y: 309
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
context:
|
||||
enabled: false
|
||||
variable_selector: []
|
||||
model:
|
||||
completion_params:
|
||||
temperature: 0.7
|
||||
mode: chat
|
||||
name: google/gemini-2.5-flash
|
||||
provider: langgenius/openrouter/openrouter
|
||||
prompt_template:
|
||||
- id: c5d3c09c-d33c-430a-a8f3-663627411364
|
||||
role: system
|
||||
text: '你是一个答案判断器,根据用户提交的答案,比对题目、答案、解析。给出正确或错误的判断。
|
||||
|
||||
- 注意:仅输出“正确”或“错误”,无需更多字符和说明。'
|
||||
- id: 2da57109-d891-46a6-8094-6f6ff63f8e5b
|
||||
role: user
|
||||
text: '题目:{{#1759259735113.question#}}。
|
||||
|
||||
正确答案:{{#1759259735113.correct_answer#}}。
|
||||
|
||||
解析:{{#1759259735113.analysis#}}。
|
||||
|
||||
|
||||
考生的回答:{{#1759259735113.user_answer#}}。'
|
||||
selected: true
|
||||
title: LLM
|
||||
type: llm
|
||||
vision:
|
||||
enabled: false
|
||||
height: 88
|
||||
id: '1759345165645'
|
||||
position:
|
||||
x: 587
|
||||
y: 266
|
||||
positionAbsolute:
|
||||
x: 587
|
||||
y: 266
|
||||
selected: true
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
viewport:
|
||||
x: 189.67940233231604
|
||||
y: 148.41666226499444
|
||||
zoom: 0.7229018098572999
|
||||
rag_pipeline_variables: []
|
||||
202
docs/规划/dify 工作流/通用-陪练分析报告-考陪练.yml
Normal file
202
docs/规划/dify 工作流/通用-陪练分析报告-考陪练.yml
Normal file
@@ -0,0 +1,202 @@
|
||||
app:
|
||||
description: 考陪练的陪练后分析并给出报告
|
||||
icon: 🤖
|
||||
icon_background: '#FFEAD5'
|
||||
mode: workflow
|
||||
name: 通用-陪练分析报告-考陪练
|
||||
use_icon_as_answer_icon: false
|
||||
dependencies:
|
||||
- current_identifier: null
|
||||
type: marketplace
|
||||
value:
|
||||
marketplace_plugin_unique_identifier: langgenius/openrouter:0.0.22@99ef4cf4e08292c28806abaf24f295ed66e04e4b9e74385b487fd0767c7f56df
|
||||
version: null
|
||||
kind: app
|
||||
version: 0.5.0
|
||||
workflow:
|
||||
conversation_variables: []
|
||||
environment_variables: []
|
||||
features:
|
||||
file_upload:
|
||||
allowed_file_extensions:
|
||||
- .JPG
|
||||
- .JPEG
|
||||
- .PNG
|
||||
- .GIF
|
||||
- .WEBP
|
||||
- .SVG
|
||||
allowed_file_types:
|
||||
- image
|
||||
allowed_file_upload_methods:
|
||||
- local_file
|
||||
- remote_url
|
||||
enabled: false
|
||||
fileUploadConfig:
|
||||
audio_file_size_limit: 50
|
||||
batch_count_limit: 5
|
||||
file_size_limit: 15
|
||||
image_file_size_limit: 10
|
||||
video_file_size_limit: 100
|
||||
workflow_file_upload_limit: 10
|
||||
image:
|
||||
enabled: false
|
||||
number_limits: 3
|
||||
transfer_methods:
|
||||
- local_file
|
||||
- remote_url
|
||||
number_limits: 3
|
||||
opening_statement: ''
|
||||
retriever_resource:
|
||||
enabled: true
|
||||
sensitive_word_avoidance:
|
||||
enabled: false
|
||||
speech_to_text:
|
||||
enabled: false
|
||||
suggested_questions: []
|
||||
suggested_questions_after_answer:
|
||||
enabled: false
|
||||
text_to_speech:
|
||||
enabled: false
|
||||
language: ''
|
||||
voice: ''
|
||||
graph:
|
||||
edges:
|
||||
- data:
|
||||
isInIteration: false
|
||||
isInLoop: false
|
||||
sourceType: start
|
||||
targetType: llm
|
||||
id: 1759259735113-source-1759345165645-target
|
||||
source: '1759259735113'
|
||||
sourceHandle: source
|
||||
target: '1759345165645'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
- data:
|
||||
isInIteration: false
|
||||
isInLoop: false
|
||||
sourceType: llm
|
||||
targetType: end
|
||||
id: 1759345165645-source-1759259743998-target
|
||||
source: '1759345165645'
|
||||
sourceHandle: source
|
||||
target: '1759259743998'
|
||||
targetHandle: target
|
||||
type: custom
|
||||
zIndex: 0
|
||||
nodes:
|
||||
- data:
|
||||
selected: false
|
||||
title: 开始
|
||||
type: start
|
||||
variables:
|
||||
- default: ''
|
||||
hint: ''
|
||||
label: dialogue_history
|
||||
max_length: 90000
|
||||
options: []
|
||||
placeholder: ''
|
||||
required: true
|
||||
type: paragraph
|
||||
variable: dialogue_history
|
||||
height: 88
|
||||
id: '1759259735113'
|
||||
position:
|
||||
x: 80
|
||||
y: 282
|
||||
positionAbsolute:
|
||||
x: 80
|
||||
y: 282
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
outputs:
|
||||
- value_selector:
|
||||
- '1759345165645'
|
||||
- text
|
||||
value_type: string
|
||||
variable: result
|
||||
selected: true
|
||||
title: 结束
|
||||
type: end
|
||||
height: 88
|
||||
id: '1759259743998'
|
||||
position:
|
||||
x: 1037.0765156072616
|
||||
y: 266
|
||||
positionAbsolute:
|
||||
x: 1037.0765156072616
|
||||
y: 266
|
||||
selected: true
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
- data:
|
||||
context:
|
||||
enabled: false
|
||||
variable_selector: []
|
||||
model:
|
||||
completion_params:
|
||||
temperature: 0.7
|
||||
mode: chat
|
||||
name: google/gemini-2.5-flash
|
||||
provider: langgenius/openrouter/openrouter
|
||||
prompt_template:
|
||||
- id: c5d3c09c-d33c-430a-a8f3-663627411364
|
||||
role: system
|
||||
text: "你是话术分析专家,用户是一家轻医美连锁品牌的员工,用户提交的是用户自己与顾客的对话记录,你做分析与评分。并严格按照以下格式输出。\n\
|
||||
\n输出标准:\n{\n \"analysis\": {\n \"total_score\": 88,\n \"score_breakdown\"\
|
||||
: [\n {\"name\": \"开场技巧\", \"score\": 92, \"description\": \"开场自然,快速建立信任\"\
|
||||
},\n {\"name\": \"需求挖掘\", \"score\": 90, \"description\": \"能够有效识别客户需求\"\
|
||||
},\n {\"name\": \"产品介绍\", \"score\": 88, \"description\": \"产品介绍清晰,重点突出\"\
|
||||
},\n {\"name\": \"异议处理\", \"score\": 85, \"description\": \"处理客户异议还需加强\"\
|
||||
},\n {\"name\": \"成交技巧\", \"score\": 86, \"description\": \"成交话术运用良好\"\
|
||||
}\n ],\n \"ability_dimensions\": [\n {\"name\": \"沟通表达\", \"\
|
||||
score\": 90, \"feedback\": \"语言流畅,表达清晰,语调富有亲和力\"},\n {\"name\": \"\
|
||||
倾听理解\", \"score\": 92, \"feedback\": \"能够准确理解客户意图,给予恰当回应\"},\n {\"\
|
||||
name\": \"情绪控制\", \"score\": 88, \"feedback\": \"整体情绪稳定,面对异议时保持专业\"},\n\
|
||||
\ {\"name\": \"专业知识\", \"score\": 93, \"feedback\": \"对医美项目知识掌握扎实\"\
|
||||
},\n {\"name\": \"销售技巧\", \"score\": 87, \"feedback\": \"销售流程把控良好\"\
|
||||
},\n {\"name\": \"应变能力\", \"score\": 85, \"feedback\": \"面对突发问题能够快速反应\"\
|
||||
}\n ],\n \"dialogue_annotations\": [\n {\"sequence\": 1, \"\
|
||||
tags\": [\"亮点话术\"], \"comment\": \"开场专业,身份介绍清晰\"},\n {\"sequence\"\
|
||||
: 3, \"tags\": [\"金牌话术\"], \"comment\": \"巧妙引导,从客户角度出发\"},\n {\"\
|
||||
sequence\": 5, \"tags\": [\"亮点话术\"], \"comment\": \"类比生动,让客户容易理解\"},\n\
|
||||
\ {\"sequence\": 7, \"tags\": [\"金牌话术\"], \"comment\": \"专业解答,打消客户疑虑\"\
|
||||
}\n ],\n \"suggestions\": [\n {\"title\": \"控制语速\", \"content\"\
|
||||
: \"您的语速偏快,建议适当放慢,给客户更多思考时间\", \"example\": \"说完产品优势后,停顿2-3秒,观察客户反应\"\
|
||||
},\n {\"title\": \"多用开放式问题\", \"content\": \"增加开放式问题的使用,更深入了解客户需求\"\
|
||||
, \"example\": \"您对未来的保障有什么期望?而不是您需要保险吗?\"},\n {\"title\": \"强化成交信号识别\"\
|
||||
, \"content\": \"客户已经表现出兴趣时,要及时推进成交\", \"example\": \"当客户问费用多少时,这是购买信号,应该立即报价并促成\"\
|
||||
}\n ]\n }\n}"
|
||||
- id: 2da57109-d891-46a6-8094-6f6ff63f8e5b
|
||||
role: user
|
||||
text: '{{#1759259735113.dialogue_history#}}'
|
||||
selected: false
|
||||
title: LLM
|
||||
type: llm
|
||||
vision:
|
||||
enabled: false
|
||||
height: 88
|
||||
id: '1759345165645'
|
||||
position:
|
||||
x: 587
|
||||
y: 266
|
||||
positionAbsolute:
|
||||
x: 587
|
||||
y: 266
|
||||
selected: false
|
||||
sourcePosition: right
|
||||
targetPosition: left
|
||||
type: custom
|
||||
width: 242
|
||||
viewport:
|
||||
x: 49.06021215084729
|
||||
y: -2.7868017986568248
|
||||
zoom: 0.5755553326202135
|
||||
rag_pipeline_variables: []
|
||||
Reference in New Issue
Block a user