app:
description: 随机根据知识点出题
icon: 🤖
icon_background: '#FFEAD5'
icon_type: emoji
mode: advanced-chat
name: 大模型面试题出题小助手
use_icon_as_answer_icon: false
dependencies:
- current_identifier: null
type: marketplace
value:
marketplace_plugin_unique_identifier: langgenius/mimo:0.0.8@18947da24866d0e1e84558ae7dcc96d491f8d9f96c982f1704945e24a65c0362
version: null
- current_identifier: null
type: marketplace
value:
marketplace_plugin_unique_identifier: langgenius/tongyi:0.2.1@0924de1d15a8a35b0cc64ff396c68d5edddcfbc495a1e52ea57e8648434eff4b
version: null
kind: app
version: 0.6.0
workflow:
conversation_variables:
- description: 获取题目的序号
id: 587318ee-dfcf-42c6-988f-e687236aac71
name: round
selector:
- conversation
- round
value: 1
value_type: integer
- description: 每次评估的结果
id: 5afbe1bc-2e8b-4e37-a6c8-1bd91420f349
name: result
selector:
- conversation
- result
value: []
value_type: array[object]
- description: 所有的问题和答案
id: bdb1659e-6ed5-42ec-a7ed-cab6ea5f599e
name: question_bank
selector:
- conversation
- question_bank
value: {}
value_type: object
- description: 会话轮数
id: afb2b370-6e77-4e12-a1fc-c02d70fa33ae
name: conversation_num
selector:
- conversation
- conversation_num
value: 1
value_type: integer
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:
attachment_image_file_size_limit: 2
audio_file_size_limit: 50
batch_count_limit: 5
file_size_limit: 15
file_upload_limit: 20
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: knowledge-retrieval
targetType: llm
id: 1782024938772-source-llm-target
source: '1782024938772'
sourceHandle: source
target: llm
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: start
targetType: if-else
id: 1782024904545-source-1782029544547-target
source: '1782024904545'
sourceHandle: source
target: '1782029544547'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: if-else
targetType: knowledge-retrieval
id: 1782029544547-true-1782024938772-target
source: '1782029544547'
sourceHandle: 'true'
target: '1782024938772'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: llm
targetType: code
id: llm-source-1782126929042-target
source: llm
sourceHandle: source
target: '1782126929042'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: code
targetType: assigner
id: 1782126929042-source-1782028348393-target
source: '1782126929042'
sourceHandle: source
target: '1782028348393'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: assigner
targetType: template-transform
id: 1782028348393-source-1782127083665-target
source: '1782028348393'
sourceHandle: source
target: '1782127083665'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: template-transform
targetType: answer
id: 1782127083665-source-answer-target
source: '1782127083665'
sourceHandle: source
target: answer
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: if-else
targetType: template-transform
id: 1782029544547-b75dc3ef-d981-4734-be2b-87763df75140-1782127214489-target
source: '1782029544547'
sourceHandle: b75dc3ef-d981-4734-be2b-87763df75140
target: '1782127214489'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: template-transform
targetType: llm
id: 1782127214489-source-1782029621885-target
source: '1782127214489'
sourceHandle: source
target: '1782029621885'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: llm
targetType: code
id: 1782029621885-source-1782129188196-target
source: '1782029621885'
sourceHandle: source
target: '1782129188196'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: code
targetType: assigner
id: 1782129188196-source-1782129312198-target
source: '1782129188196'
sourceHandle: source
target: '1782129312198'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: assigner
targetType: template-transform
id: 1782129312198-source-1782129350420-target
source: '1782129312198'
sourceHandle: source
target: '1782129350420'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: template-transform
targetType: answer
id: 1782129350420-source-1782029787536-target
source: '1782129350420'
sourceHandle: source
target: '1782029787536'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: if-else
targetType: template-transform
id: 1782029544547-1db48f88-f8b3-49cd-b7aa-d71bb0114752-1782127214489-target
source: '1782029544547'
sourceHandle: 1db48f88-f8b3-49cd-b7aa-d71bb0114752
target: '1782127214489'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: if-else
targetType: template-transform
id: 1782029544547-509d62e1-ddf1-4e49-8105-b365ab24df28-17821297973920-target
source: '1782029544547'
sourceHandle: 509d62e1-ddf1-4e49-8105-b365ab24df28
target: '17821297973920'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: template-transform
targetType: llm
id: 17821297973920-source-17821298227620-target
source: '17821297973920'
sourceHandle: source
target: '17821298227620'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: llm
targetType: code
id: 17821298227620-source-17821302686060-target
source: '17821298227620'
sourceHandle: source
target: '17821302686060'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: code
targetType: assigner
id: 17821302686060-source-17821302974280-target
source: '17821302686060'
sourceHandle: source
target: '17821302974280'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: assigner
targetType: llm
id: 17821302974280-source-1782130352073-target
source: '17821302974280'
sourceHandle: source
target: '1782130352073'
targetHandle: target
type: custom
zIndex: 0
- data:
isInLoop: false
sourceType: llm
targetType: answer
id: 1782130352073-source-1782129845546-target
source: '1782130352073'
sourceHandle: source
target: '1782129845546'
targetHandle: target
type: custom
zIndex: 0
nodes:
- data:
selected: false
title: 用户输入
type: start
variables: []
height: 72
id: '1782024904545'
position:
x: 80
y: 282
positionAbsolute:
x: 80
y: 282
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
context:
enabled: true
variable_selector:
- '1782024938772'
- result
model:
completion_params:
temperature: 0.7
mode: chat
name: mimo-v2.5-pro
provider: langgenius/mimo/mimo
prompt_template:
- id: ca8d7571-8aa0-481a-b9d6-b8e75e86c92e
role: system
text: "你是一个精通AI大模型相关知识的面试官,现在根据知识库检索出来的面试题目和答案以及用户的问题,你需要进行整合,润色和优化,如果知识库中检索的结果为空,直接输出:暂无此相关知识点面试题。\n\
需要从检索的多道题目中随机抽3道即可\n【严格要求】\n- 必须使用双引号,不要用单引号\n最终优化后的效果可以参考示例\n示例: \n\
题目: 如何解决过拟合问题\n{\n \"1\":{\n \"question\":\"什么是RESTful API?\"\
,\n\t\"answer\":\"xxxx\"\n },\n \"2\":{\n \"question\":\"\
什么是RESTful API?\",\n\t\"answer\":\"xxxx\"\n },\n \"3\":{\n \
\ \"question\":\"什么是RESTful API?\",\n\t\"answer\":\"xxxx\"\n }\n}"
- id: eb8682ab-922f-4b2e-b13a-b7cfea7a2b88
role: user
text: '{{#sys.query#}}{{#context#}}'
reasoning_format: separated
selected: false
structured_output_enabled: true
title: 面试题提取
type: llm
vision:
enabled: false
height: 87
id: llm
position:
x: 984.5947934199883
y: 282
positionAbsolute:
x: 984.5947934199883
y: 282
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 241
- data:
answer: ' {{#1782127083665.output#}}
请回答.'
selected: false
title: 出题
type: answer
variables: []
height: 102
id: answer
position:
x: 2601.18251531201
y: 282
positionAbsolute:
x: 2601.18251531201
y: 282
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 241
- data:
dataset_ids:
- w5unqxdanURz3x/2iC5FPnk8ln2Aqwc/+upRI1FjbTmiWqaxsJ2GeBEO/saNlpkN
multiple_retrieval_config:
reranking_enable: false
reranking_mode: reranking_model
reranking_model:
model: qwen3-rerank
provider: langgenius/tongyi/tongyi
top_k: 4
query_attachment_selector: []
query_variable_selector:
- '1782024904545'
- sys.query
retrieval_mode: multiple
selected: false
title: 面试题查询
type: knowledge-retrieval
height: 89
id: '1782024938772'
position:
x: 680
y: 282
positionAbsolute:
x: 680
y: 282
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 241
- data:
items:
- input_type: constant
operation: +=
value: 1
variable_selector:
- conversation
- conversation_num
- input_type: variable
operation: over-write
value:
- '1782126929042'
- result
variable_selector:
- conversation
- question_bank
selected: false
title: 变量赋值
type: assigner
version: '2'
height: 109
id: '1782028348393'
position:
x: 1739.2792903726868
y: 282
positionAbsolute:
x: 1739.2792903726868
y: 282
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 241
- data:
cases:
- case_id: 'true'
conditions:
- comparison_operator: '='
id: 7becd8d1-658c-4be6-a2b5-098892e90c46
value: '1'
varType: number
variable_selector:
- conversation
- conversation_num
id: 'true'
logical_operator: and
- case_id: b75dc3ef-d981-4734-be2b-87763df75140
conditions:
- comparison_operator: '='
id: f9bd5bd2-7363-4806-827a-29fc404271a3
value: '2'
varType: number
variable_selector:
- conversation
- conversation_num
id: b75dc3ef-d981-4734-be2b-87763df75140
logical_operator: and
- case_id: 1db48f88-f8b3-49cd-b7aa-d71bb0114752
conditions:
- comparison_operator: '='
id: 9d24f933-deeb-4e30-aa50-5da102b4feec
value: '3'
varType: number
variable_selector:
- conversation
- conversation_num
id: 1db48f88-f8b3-49cd-b7aa-d71bb0114752
logical_operator: and
- case_id: 509d62e1-ddf1-4e49-8105-b365ab24df28
conditions:
- comparison_operator: '='
id: 50667261-3cfe-4e78-b50d-67df016602bf
value: '4'
varType: number
variable_selector:
- conversation
- conversation_num
logical_operator: and
selected: false
title: 条件分支
type: if-else
height: 267
id: '1782029544547'
position:
x: 380
y: 282
positionAbsolute:
x: 380
y: 282
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 241
- data:
context:
enabled: false
variable_selector: []
model:
completion_params:
temperature: 0.7
mode: chat
name: mimo-v2.5-pro
provider: langgenius/mimo/mimo
prompt_template:
- id: 922fc7ff-91a8-46c0-92b9-491db7495812
role: system
text: "你是一个专业技术面试官,针对面试题和用户的回答以及正确的答案,给用户本次的回答进行评估,评估分成两部分,一个是打分,满分10分,第一个部分是需要进行回答点评,输出示例参考一下:\n\
示例:\n{\n\"score\": \"3\" ,\n \"content\": \"回答太简单,基础知识不牢固\"\n}"
- id: 3bc9d5b2-b448-4e77-89e5-b77cc26c4243
role: user
text: '{{#sys.query#}}{{#1782127214489.output#}}'
reasoning_format: separated
selected: false
structured_output_enabled: true
title: 评估用户的回答
type: llm
vision:
enabled: false
height: 87
id: '1782029621885'
position:
x: 984.5947934199883
y: 410
positionAbsolute:
x: 984.5947934199883
y: 410
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 241
- data:
answer: ' {{#1782129350420.output#}}
请回答。'
selected: false
title: 出题
type: answer
variables: []
height: 102
id: '1782029787536'
position:
x: 2227.6658205922004
y: 410
positionAbsolute:
x: 2227.6658205922004
y: 410
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 241
- data:
code: "\nimport json\n\ndef main(input_data: str) -> dict:\n \"\"\"\n \
\ 将 JSON 字符串解析为 Python 字典对象\n \n Args:\n input_data: 包含 JSON\
\ 格式数据的字符串\n \n Returns:\n dict: 解析后的对象\n \"\"\"\n try:\n\
\ # 解析 JSON 字符串为 Python 字典\n parsed_data = json.loads(input_data)\n\
\ \n # 直接返回解析后的对象\n return {\n \"result\"\
: parsed_data # 返回完整的对象\n }\n \n except json.JSONDecodeError\
\ as e:\n # 如果 JSON 格式有误,返回错误信息\n return {\n \"\
error\": f\"JSON 解析失败: {str(e)}\",\n \"result\": {}\n \
\ }"
code_language: python3
outputs:
result:
children: null
type: object
selected: false
title: 数据提取
type: code
variables:
- value_selector:
- llm
- text
value_type: string
variable: input_data
height: 51
id: '1782126929042'
position:
x: 1327.6658205922001
y: 282
positionAbsolute:
x: 1327.6658205922001
y: 282
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 241
- data:
selected: false
template: '问题{{round}}: {{ bank[round|string]["question"] }}'
title: 拿到第一题
type: template-transform
variables:
- value_selector:
- conversation
- question_bank
value_type: object
variable: bank
- value_selector:
- conversation
- round
value_type: number
variable: round
height: 51
id: '1782127083665'
position:
x: 2185.1639814573095
y: 282
positionAbsolute:
x: 2185.1639814573095
y: 282
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 241
- data:
selected: false
template: "问题:{{ bank[round|string][\"question\"] }}\r\n答案:{{ bank[round|string][\"\
answer\"] }}"
title: 获取上一个问题和答案
type: template-transform
variables:
- value_selector:
- conversation
- question_bank
value_type: object
variable: bank
- value_selector:
- conversation
- round
value_type: number
variable: round
height: 51
id: '1782127214489'
position:
x: 680
y: 410
positionAbsolute:
x: 680
y: 410
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 241
- data:
code: "\nimport json\n\ndef main(input_data: str) -> dict:\n \"\"\"\n \
\ 将 JSON 字符串解析为 Python 字典对象\n \n Args:\n input_data: 包含 JSON\
\ 格式数据的字符串\n \n Returns:\n dict: 解析后的对象\n \"\"\"\n try:\n\
\ # 解析 JSON 字符串为 Python 字典\n parsed_data = json.loads(input_data)\n\
\ \n # 直接返回解析后的对象\n return {\n \"result\"\
: parsed_data # 返回完整的对象\n }\n \n except json.JSONDecodeError\
\ as e:\n # 如果 JSON 格式有误,返回错误信息\n return {\n \"\
error\": f\"JSON 解析失败: {str(e)}\",\n \"result\": {}\n \
\ }"
code_language: python3
outputs:
result:
children: null
type: object
selected: false
title: 数据提取
type: code
variables:
- value_selector:
- '1782029621885'
- text
value_type: string
variable: input_data
height: 51
id: '1782129188196'
position:
x: 1327.6658205922001
y: 410
positionAbsolute:
x: 1327.6658205922001
y: 410
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 241
- data:
items:
- input_type: variable
operation: append
value:
- '1782129188196'
- result
variable_selector:
- conversation
- result
- input_type: constant
operation: +=
value: 1
variable_selector:
- conversation
- conversation_num
- input_type: constant
operation: +=
value: 1
variable_selector:
- conversation
- round
selected: false
title: 变量赋值
type: assigner
version: '2'
height: 135
id: '1782129312198'
position:
x: 1627.6658205922001
y: 410
positionAbsolute:
x: 1627.6658205922001
y: 410
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 241
- data:
selected: false
template: '问题{{round}}: {{ bank[round|string]["question"] }}'
title: 拿到题目
type: template-transform
variables:
- value_selector:
- conversation
- question_bank
value_type: object
variable: bank
- value_selector:
- conversation
- round
value_type: number
variable: round
height: 51
id: '1782129350420'
position:
x: 1928.6658205922001
y: 410
positionAbsolute:
x: 1928.6658205922001
y: 410
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 241
- data:
desc: ''
isInIteration: false
isInLoop: false
selected: false
template: "问题:{{ bank[round|string][\"question\"] }}\r\n答案:{{ bank[round|string][\"\
answer\"] }}"
title: 获取上一个问题和答案
type: template-transform
variables:
- value_selector:
- conversation
- question_bank
value_type: object
variable: bank
- value_selector:
- conversation
- round
value_type: number
variable: round
height: 51
id: '17821297973920'
position:
x: 680
y: 512.1969433795373
positionAbsolute:
x: 680
y: 512.1969433795373
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 241
- data:
context:
enabled: true
variable_selector:
- conversation
- result
desc: ''
isInIteration: false
isInLoop: false
model:
completion_params:
temperature: 0.7
mode: chat
name: mimo-v2.5-pro
provider: langgenius/mimo/mimo
prompt_template:
- id: 922fc7ff-91a8-46c0-92b9-491db7495812
role: system
text: "你是一个专业技术面试官,针对面试题和正确的答案{{#17821297973920.output#}}用户的回答{{#sys.query#}},给用户本次的回答进行评估,评估分成两部分,一个是打分,满分10分,第一个部分是需要进行回答点评,本次评价参考一下:\n\
示例:\n{\n\"score\": \"3\" ,\n \"content\": \"回答太简单,基础知识不牢固\"\n}"
- id: 3bc9d5b2-b448-4e77-89e5-b77cc26c4243
role: user
text: '{{#sys.query#}}{{#17821297973920.output#}}'
reasoning_format: separated
selected: false
structured_output_enabled: true
title: 评估用户的回答
type: llm
vision:
enabled: false
height: 87
id: '17821298227620'
position:
x: 984.5947934199883
y: 527.1300219944987
positionAbsolute:
x: 984.5947934199883
y: 527.1300219944987
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 241
- data:
answer: '{{#1782130352073.text#}}'
selected: false
title: 最终结果
type: answer
variables: []
height: 102
id: '1782129845546'
position:
x: 2289.7468850331697
y: 558.6021499595491
positionAbsolute:
x: 2289.7468850331697
y: 558.6021499595491
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 241
- data:
code: "\nimport json\n\ndef main(input_data: str) -> dict:\n \"\"\"\n \
\ 将 JSON 字符串解析为 Python 字典对象\n \n Args:\n input_data: 包含 JSON\
\ 格式数据的字符串\n \n Returns:\n dict: 解析后的对象\n \"\"\"\n try:\n\
\ # 解析 JSON 字符串为 Python 字典\n parsed_data = json.loads(input_data)\n\
\ \n # 直接返回解析后的对象\n return {\n \"result\"\
: parsed_data # 返回完整的对象\n }\n \n except json.JSONDecodeError\
\ as e:\n # 如果 JSON 格式有误,返回错误信息\n return {\n \"\
error\": f\"JSON 解析失败: {str(e)}\",\n \"result\": {}\n \
\ }"
code_language: python3
desc: ''
isInIteration: false
isInLoop: false
outputs:
result:
children: null
type: object
selected: false
title: 数据提取
type: code
variables:
- value_selector:
- '17821298227620'
- text
value_type: string
variable: input_data
height: 51
id: '17821302686060'
position:
x: 1305.5836873577473
y: 533.3307861496144
positionAbsolute:
x: 1305.5836873577473
y: 533.3307861496144
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 241
- data:
desc: ''
isInIteration: false
isInLoop: false
items:
- input_type: variable
operation: append
value:
- '17821302686060'
- result
variable_selector:
- conversation
- result
- input_type: constant
operation: +=
value: 1
variable_selector:
- conversation
- conversation_num
selected: false
title: 变量赋值
type: assigner
version: '2'
height: 109
id: '17821302974280'
position:
x: 1627.6658205922001
y: 558.6021499595491
positionAbsolute:
x: 1627.6658205922001
y: 558.6021499595491
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 241
- data:
context:
enabled: true
variable_selector:
- conversation
- result
model:
completion_params:
temperature: 0.7
mode: chat
name: mimo-v2.5-pro
provider: langgenius/mimo/mimo
prompt_template:
- id: 65b0c1b2-010a-4f52-aeee-e676891a6002
role: system
text: "你是一个信息整理助手,需要将用户历史答题成绩{{#context#}}和每次结果评估合并一块进行汇总,然后将结果进行整理输出。\n\
需要获取出结果中的每次score的值进行求和,得到总分\n然后计算平均分\n最后根据每次的结果评价content来进行整理润色\n结合总分和平均分。如果总分大于20分总可以录用通过,如果低于20分则不予录用\n\
请参考以下示例输出:\n示例: \n您的总分是: 30分\n平均分是: 10分\n综合评价: 您表现的非常优秀,恭喜通过本次面试"
selected: false
title: 结果汇总
type: llm
vision:
enabled: false
height: 87
id: '1782130352073'
position:
x: 1928.6658205922001
y: 558.6021499595491
positionAbsolute:
x: 1928.6658205922001
y: 558.6021499595491
selected: true
sourcePosition: right
targetPosition: left
type: custom
width: 241
viewport:
x: -1323.9000454398356
y: -39.78438025996468
zoom: 1.0000000000000007
rag_pipeline_variables: []