Files
2026-09-21 09:24:25 +02:00

634 lines
17 KiB
YAML

app:
description: ''
icon: 🤖
icon_background: '#FFEAD5'
icon_type: emoji
mode: workflow
name: School news
use_icon_as_answer_icon: false
dependencies:
- current_identifier: null
type: marketplace
value:
marketplace_plugin_unique_identifier: langgenius/openai:1.0.5@51583313a5988d5dca405063831ffeeacdc1f2e95f32a8c10b4c281ceef39ebb
version: null
- current_identifier: null
type: marketplace
value:
marketplace_plugin_unique_identifier: langgenius/tongyi:0.2.22@9cea96ffc7977f536c02999c80ff1283b1819aab9b6fa2fdf789d0c6c7d03715
version: null
kind: app
version: 0.7.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:
attachment_image_file_size_limit: 2
audio_file_size_limit: 50
batch_count_limit: 5
file_size_limit: 15
file_upload_limit: 50
image_file_batch_limit: 10
image_file_size_limit: 10
knowledge_file_size_limit: 50
single_chunk_attachment_limit: 10
skill_file_size_limit: 50
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: knowledge-retrieval
id: 1789970877464--1789971129095-target
source: '1789970877464'
sourceHandle: source
target: '1789971129095'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: knowledge-retrieval
targetType: llm
id: 1789971129095--1789971168021-target
source: '1789971129095'
sourceHandle: source
target: '1789971168021'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: llm
targetType: llm
id: 1789971168021--1789971306805-target
source: '1789971168021'
sourceHandle: source
target: '1789971306805'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: llm
targetType: llm
id: 1789971306805--1789971527769-target
source: '1789971306805'
sourceHandle: source
target: '1789971527769'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: llm
targetType: llm
id: 1789971527769--1789974076229-target
source: '1789971527769'
sourceHandle: ''
target: '1789974076229'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: llm
targetType: code
id: 1789974076229--1789974245797-target
source: '1789974076229'
sourceHandle: ''
target: '1789974245797'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: code
targetType: if-else
id: 1789974245797--1789974430545-target
source: '1789974245797'
sourceHandle: ''
target: '1789974430545'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: if-else
targetType: end
id: 1789974430545-true-1789974474578-target
source: '1789974430545'
sourceHandle: 'true'
target: '1789974474578'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: if-else
targetType: end
id: 1789974430545-false-1789974564321-target
source: '1789974430545'
sourceHandle: 'false'
target: '1789974564321'
targetHandle: target
type: custom
zIndex: 0
nodes:
- data:
selected: false
title: User Input
type: start
variables:
- default: ''
hint: ''
label: What has happened or is going to happen? (who, what, where, when)
options: []
placeholder: ''
required: true
type: paragraph
variable: core_message
- default: ''
hint: ''
label: 'For which class or year group? (or: whole school)'
options: []
placeholder: ''
required: true
type: text-input
variable: year_group
- hint: ''
label: Which tone fits this message?
options:
- informative
- celebratory
- urgent
placeholder: ''
required: true
type: select
variable: tone
height: 160
id: '1789970877464'
position:
x: 80
y: 282
positionAbsolute:
x: 80
y: 282
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
zIndex: 0
- data:
dataset_ids:
- oTycHUKIxz5h9TqTOxYZojCNnbtTICvzVXxyCqucL8j6opdim+1j1Pa/ejwe91Qg
multiple_retrieval_config:
reranking_enable: true
reranking_mode: reranking_model
reranking_model:
model: qwen3-rerank
provider: langgenius/tongyi/tongyi
top_k: 4
query_attachment_selector: []
query_variable_selector:
- '1789970877464'
- core_message
retrieval_mode: multiple
selected: false
title: Knowledge Retrieval
type: knowledge-retrieval
height: 89
id: '1789971129095'
position:
x: 382
y: 282
positionAbsolute:
x: 382
y: 282
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
zIndex: 0
- data:
context:
enabled: true
variable_selector:
- '1789971129095'
- result
model:
completion_params: {}
mode: chat
name: gpt-5-mini
provider: langgenius/openai/openai
prompt_template:
- id: 8cfee75c-0407-46b1-bcec-b19c6bb59459
role: system
text: 'Start your answer with the line WEBSITE followed by an empty line.
You write for Example College, a secondary school. Write a news item for
the website of at most 200 words. The headline is an active sentence of
at most eight words, without an exclamation mark. The first paragraph
answers who, what, where and when. End with a next step or a way to get
in touch. Stick strictly to the style guide below: reading level B1, formal
address for parents, words to avoid, names and photos of students. Adapt
to the chosen tone. Invent no facts. If something is missing, write [FILL
IN].
Style guide: {{#context#}}
Year group: {{#1789970877464.year_group#}}
Tone: {{#1789970877464.tone#}}
Core message: {{#1789970877464.core_message#}}'
selected: false
title: Website
type: llm
vision:
enabled: false
height: 87
id: '1789971168021'
position:
x: 684
y: 282
positionAbsolute:
x: 684
y: 282
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
zIndex: 0
- data:
context:
enabled: true
variable_selector:
- '1789971129095'
- result
model:
completion_params: {}
mode: chat
name: gpt-5-mini
provider: langgenius/openai/openai
prompt_template:
- id: 6d05c2e0-dfe6-4cd7-8cb8-f527927ed86e
role: system
text: 'Start your answer with the line PARENT APP followed by an empty line.
You write for Example College, a secondary school. Write a message for
the parent app of at most 80 words: parents read this on their phone.
One message, one date, one action; no introduction and no headline. Address
parents formally. Stick strictly to the style guide below. Adapt to the
chosen tone. Invent no facts. If something is missing, write [FILL IN].
Style guide: {{#context#}}
Year group: {{#1789970877464.year_group#}}
Tone: {{#1789970877464.tone#}}
Core message: {{#1789970877464.core_message#}}'
selected: false
title: Parent app
type: llm
vision:
enabled: false
height: 87
id: '1789971306805'
position:
x: 986
y: 282
positionAbsolute:
x: 986
y: 282
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
zIndex: 0
- data:
context:
enabled: true
variable_selector:
- '1789971129095'
- result
model:
completion_params: {}
mode: chat
name: gpt-5-mini
provider: langgenius/openai/openai
prompt_template:
- id: e86f1562-baba-4d04-b3f8-f47f4348b803
role: system
text: 'Start your answer with the line SOCIAL followed by an empty line.
You write for Example College, a secondary school. Write a post for the
school''s social media (Instagram and LinkedIn) of at most 60 words. Warm
and concrete, no hype. End with at most three hashtags, always including
#ExampleCollege. No names of students and no reference to recognisable
photos of students. Stick to the style guide below. Adapt to the chosen
tone. Invent no facts. If something is missing, write [FILL IN].
Style guide: {{#context#}}
Year group: {{#1789970877464.year_group#}}
Tone: {{#1789970877464.tone#}}
Core message: {{#1789970877464.core_message#}}'
selected: false
title: Social
type: llm
vision:
enabled: false
height: 87
id: '1789971527769'
position:
x: 1288
y: 282
positionAbsolute:
x: 1288
y: 282
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
zIndex: 0
- data:
context:
enabled: true
variable_selector:
- '1789971129095'
- result
model:
completion_params: {}
mode: chat
name: gpt-5-mini
provider: langgenius/openai/openai
prompt_template:
- id: 46332227-30db-4baf-a45f-59440772a731
role: system
text: 'You are the checker of Example College. Below is a draft message
for the parent app. Assess it on these points from the style guide: at
most 80 words; parents are addressed formally; one message, one date and
one action; no abbreviations and no words from the list of words to avoid;
no names of students; reading level B1 (short sentences, everyday words).
Work in two steps. Step 1: briefly name what is wrong (or write: nothing).
Step 2: give the improved version. Invent no facts; what is not in the
draft stays [FILL IN]. Do not remove facts, dates or times that are in
the draft; a deadline for signing up belongs to the action and stays.
Do not change digits into words.
As your answer give ONLY the improved text, without step 1, without a
heading and without explanation. If the draft is already good, return
it unchanged.
Style guide: {{#context#}}
Draft message: {{#1789971306805.text#}}'
selected: false
title: Checker
type: llm
vision:
enabled: false
height: 87
id: '1789974076229'
position:
x: 1590
y: 282
positionAbsolute:
x: 1590
y: 282
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
code: "def main(website: str, parent_app: str, social: str) -> dict:\n \
\ reasons = []\n forbidden = [\"by means of\", \"with regard to\", \"\
asap\", \"w.r.t.\", \"kindly\", \"parent(s)/carer(s)\", \"utilise\"]\n \
\ texts = ((\"website\", website, 230), (\"parent app\", parent_app, 90),\
\ (\"social\", social, 70))\n for name, text, maximum in texts:\n \
\ count = len(text.split())\n if count > maximum:\n \
\ reasons.append(f\"{name}: {count} words, maximum {maximum}\")\n \
\ if \"[FILL IN]\" in text:\n reasons.append(f\"{name}: contains\
\ [FILL IN], information is missing\")\n for word in forbidden:\n\
\ if word in text.lower():\n reasons.append(f\"\
{name}: contains the word to avoid '{word.strip()}'\")\n if \"#examplecollege\"\
\ not in social.lower():\n reasons.append(\"social: #ExampleCollege\
\ is missing\")\n return {\n \"ok\": 0 if reasons else 1,\n \
\ \"reasons\": \"\\n\".join(reasons) if reasons else \"All rules satisfied.\"\
,\n }\n"
code_language: python3
outputs:
ok:
children: null
type: number
reasons:
children: null
type: string
selected: false
title: Gatekeeper
type: code
variables:
- value_selector:
- '1789971168021'
- text
value_type: string
variable: website
- value_selector:
- '1789974076229'
- text
value_type: string
variable: parent_app
- value_selector:
- '1789971527769'
- text
value_type: string
variable: social
height: 51
id: '1789974245797'
position:
x: 1892
y: 282
positionAbsolute:
x: 1892
y: 282
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
cases:
- case_id: 'true'
conditions:
- comparison_operator: '='
id: 905ee344-fc66-4bfd-91d0-773aa3a8ffe4
value: '1'
varType: number
variable_selector:
- '1789974245797'
- ok
logical_operator: and
selected: false
title: IF/ELSE
type: if-else
height: 123
id: '1789974430545'
position:
x: 2194
y: 282
positionAbsolute:
x: 2194
y: 282
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
outputs:
- value_selector:
- '1789971168021'
- text
value_type: string
variable: website
- value_selector:
- '1789974076229'
- text
value_type: string
variable: parent_app
- value_selector:
- '1789971527769'
- text
value_type: string
variable: social
selected: false
title: Approved
type: end
height: 140
id: '1789974474578'
position:
x: 2496
y: 282
positionAbsolute:
x: 2496
y: 282
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
- data:
outputs:
- value_selector:
- '1789974245797'
- reasons
value_type: string
variable: rejected_because
- value_selector:
- '1789971168021'
- text
value_type: string
variable: draft_website
- value_selector:
- '1789974076229'
- text
value_type: string
variable: draft_parent_app
- value_selector:
- '1789971527769'
- text
value_type: string
variable: draft_social
selected: false
title: To the communications officer
type: end
height: 166
id: '1789974564321'
position:
x: 2496
y: 461
positionAbsolute:
x: 2496
y: 461
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
viewport:
x: -679.6126274026951
y: 109.12408509473971
zoom: 0.4152130788699637
rag_pipeline_variables: []