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

643 lines
18 KiB
YAML

app:
description: ''
icon: 🤖
icon_background: '#FFEAD5'
icon_type: emoji
mode: workflow
name: Schoolnieuws
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: 15
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: 1789912805545--1789913220684-target
selected: false
source: '1789912805545'
sourceHandle: source
target: '1789913220684'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: knowledge-retrieval
targetType: llm
id: 1789913220684--1789913283624-target
selected: false
source: '1789913220684'
sourceHandle: source
target: '1789913283624'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: llm
targetType: llm
id: 1789913283624--1789913447671-target
selected: false
source: '1789913283624'
sourceHandle: source
target: '1789913447671'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: llm
targetType: llm
id: 1789913447671--1789914224310-target
source: '1789913447671'
sourceHandle: source
target: '1789914224310'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: llm
targetType: llm
id: 1789914224310--1789921225442-target
source: '1789914224310'
sourceHandle: source
target: '1789921225442'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: llm
targetType: code
id: 1789921225442--1789921317767-target
source: '1789921225442'
sourceHandle: source
target: '1789921317767'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: code
targetType: if-else
id: 1789921317767--1789921457891-target
source: '1789921317767'
sourceHandle: source
target: '1789921457891'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: if-else
targetType: end
id: 1789921457891-true-1789921490100-target
source: '1789921457891'
sourceHandle: 'true'
target: '1789921490100'
targetHandle: target
type: custom
zIndex: 0
- data:
isInIteration: false
isInLoop: false
sourceType: if-else
targetType: end
id: 1789921457891-false-1789921594492-target
source: '1789921457891'
sourceHandle: 'false'
target: '1789921594492'
targetHandle: target
type: custom
zIndex: 0
nodes:
- data:
selected: false
title: User Input
type: start
variables:
- default: ''
hint: ''
label: Wat is er gebeurd of gaat er gebeuren? (wie, wat, waar, wanneer)
options: []
placeholder: ''
required: true
type: paragraph
variable: kernboodschap
- default: ''
hint: ''
label: 'Voor welke klas of afdeling? (of: hele school)'
options: []
placeholder: ''
required: true
type: text-input
variable: afdeling
- hint: ''
label: Welke toon past bij dit bericht?
options:
- informatief
- feestelijk
- dringend
placeholder: ''
required: true
type: select
variable: toon
height: 160
id: '1789912805545'
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:
- IV2tjRVYYkvBu0I6hVYVdNJjRHrmp51bTmvGIX9NBOn/1djPKkYpUIg0wBgi7B9m
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:
- '1789912805545'
- kernboodschap
retrieval_mode: multiple
selected: false
title: Knowledge Retrieval
type: knowledge-retrieval
height: 89
id: '1789913220684'
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:
- '1789913220684'
- result
model:
completion_params: {}
mode: chat
name: gpt-5-mini
provider: langgenius/openai/openai
prompt_template:
- id: 1a49e20d-2818-4aba-b105-370c308a6f25
role: system
text: 'Begin je antwoord met de regel WEBSITE en daarna een lege regel.
Je schrijft voor Het Voorbeeldcollege, een school voor voortgezet onderwijs.
Schrijf een nieuwsbericht voor de website van maximaal 200 woorden. De
kop is een actieve zin van maximaal acht woorden, zonder uitroepteken.
De eerste alinea beantwoordt wie, wat, waar en wanneer. Sluit af met een
vervolgstap of contactmogelijkheid. Houd je strikt aan de schrijfwijzer
hieronder: taalniveau B1, u voor ouders, te vermijden woorden, namen en
foto''s van leerlingen. Pas de toon aan die is gekozen. Verzin geen feiten.
Ontbreekt iets, schrijf dan [INVULLEN].
Schrijfwijzer: {{#context#}}
Afdeling: {{#1789912805545.afdeling#}}
Toon: {{#1789912805545.toon#}}
Kernboodschap: {{#1789912805545.kernboodschap#}}'
selected: false
title: Website
type: llm
vision:
enabled: false
height: 87
id: '1789913283624'
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:
- '1789913220684'
- result
model:
completion_params: {}
mode: chat
name: gpt-5-mini
provider: langgenius/openai/openai
prompt_template:
- id: 6c41b62b-abf0-44df-9daa-bdcecce7a7eb
role: system
text: 'Begin je antwoord met de regel OUDERAPP en daarna een lege regel.
Je schrijft voor Het Voorbeeldcollege, een school voor voortgezet onderwijs.
Schrijf een bericht voor de ouderapp van maximaal 80 woorden: ouders lezen
dit op hun telefoon. Eén boodschap, één datum, één actie; geen inleiding
en geen kop. Spreek ouders aan met u. Houd je strikt aan de schrijfwijzer
hieronder. Pas de toon aan die is gekozen. Verzin geen feiten. Ontbreekt
iets, schrijf dan [INVULLEN].
Schrijfwijzer: {{#context#}}
Afdeling: {{#1789912805545.afdeling#}}
Toon: {{#1789912805545.toon#}}
Kernboodschap: {{#1789912805545.kernboodschap#}}'
selected: false
title: Ouderapp
type: llm
vision:
enabled: false
height: 87
id: '1789913447671'
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:
- '1789913220684'
- result
model:
completion_params: {}
mode: chat
name: gpt-5-mini
provider: langgenius/openai/openai
prompt_template:
- id: 9cabb98b-c62a-4ab2-b7b7-1f1f43556a13
role: system
text: 'Begin je antwoord met de regel SOCIAL en daarna een lege regel.
Je schrijft voor Het Voorbeeldcollege, een school voor voortgezet onderwijs.
Schrijf een bericht voor de sociale media van de school (Instagram en
LinkedIn) van maximaal 60 woorden. Warm en concreet, geen jubeltaal. Sluit
af met maximaal drie hashtags, waarvan altijd #Voorbeeldcollege. Geen
namen van leerlingen en geen verwijzing naar herkenbare foto''s van leerlingen.
Houd je aan de schrijfwijzer hieronder. Pas de toon aan die is gekozen.
Verzin geen feiten. Ontbreekt iets, schrijf dan [INVULLEN].
Schrijfwijzer: {{#context#}}
Afdeling: {{#1789912805545.afdeling#}}
Toon: {{#1789912805545.toon#}}
Kernboodschap: {{#1789912805545.kernboodschap#}}'
selected: false
title: Social
type: llm
vision:
enabled: false
height: 87
id: '1789914224310'
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:
- '1789913220684'
- result
model:
completion_params: {}
mode: chat
name: gpt-5-mini
provider: langgenius/openai/openai
prompt_template:
- id: 7eac55b9-216b-467a-bb85-252c3f21cc98
role: system
text: 'Je bent de controleur van Het Voorbeeldcollege. Hieronder staat een
conceptbericht voor de ouderapp. Beoordeel het op deze punten uit de schrijfwijzer:
maximaal 80 woorden; ouders worden aangesproken met u; één boodschap,
één datum en één actie; geen afkortingen en geen woorden uit de lijst
te vermijden woorden; geen namen van leerlingen; taalniveau B1 (korte
zinnen, gewone woorden).
Werk in twee stappen. Stap 1: noem kort wat niet klopt (of schrijf: niets).
Stap 2: geef de verbeterde versie. Verzin geen feiten; wat niet in het
concept staat, blijft [INVULLEN]. Haal geen feiten, data of tijden weg
die in het concept staan; een uiterste datum om aan te melden hoort bij
de actie en blijft staan. Verander cijfers niet in woorden.
Geef als antwoord ALLEEN de verbeterde tekst, zonder stap 1, zonder kop
en zonder uitleg. Is het concept al goed, geef het dan ongewijzigd terug.
Schrijfwijzer: {{#context#}}
Conceptbericht: {{#1789913447671.text#}}'
selected: false
title: Controleur
type: llm
vision:
enabled: false
height: 87
id: '1789921225442'
position:
x: 1590
y: 282
positionAbsolute:
x: 1590
y: 282
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
zIndex: 0
- data:
code: "def main(website: str, ouderapp: str, social: str) -> dict:\n redenen\
\ = []\n verboden = [\"middels\", \"omtrent\", \"z.s.m.\", \"d.m.v.\"\
, \" a.s.\", \"gelieve\", \"ouder(s)/verzorger(s)\"]\n teksten = ((\"\
website\", website, 230), (\"ouderapp\", ouderapp, 90), (\"social\", social,\
\ 70))\n for naam, tekst, maximum in teksten:\n aantal = len(tekst.split())\n\
\ if aantal > maximum:\n redenen.append(f\"{naam}: {aantal}\
\ woorden, maximaal {maximum}\")\n if \"[INVULLEN]\" in tekst:\n\
\ redenen.append(f\"{naam}: bevat [INVULLEN], er ontbreekt informatie\"\
)\n for woord in verboden:\n if woord in tekst.lower():\n\
\ redenen.append(f\"{naam}: bevat het te vermijden woord\
\ '{woord.strip()}'\")\n if \"#voorbeeldcollege\" not in social.lower():\n\
\ redenen.append(\"social: #Voorbeeldcollege ontbreekt\")\n return\
\ {\n \"ok\": 0 if redenen else 1,\n \"redenen\": \"\\n\"\
.join(redenen) if redenen else \"Alle regels in orde.\",\n }\n"
code_language: python3
outputs:
ok:
children: null
type: number
redenen:
children: null
type: string
selected: false
title: Poortwachter
type: code
variables:
- value_selector:
- '1789913283624'
- text
value_type: string
variable: website
- value_selector:
- '1789921225442'
- text
value_type: string
variable: ouderapp
- value_selector:
- '1789914224310'
- text
value_type: string
variable: social
height: 51
id: '1789921317767'
position:
x: 1892
y: 282
positionAbsolute:
x: 1892
y: 282
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
zIndex: 0
- data:
cases:
- case_id: 'true'
conditions:
- comparison_operator: '='
id: 82d4d0c5-8725-45db-abd5-ec4977e37d2f
value: '1'
varType: number
variable_selector:
- '1789921317767'
- ok
logical_operator: and
selected: false
title: IF/ELSE
type: if-else
height: 123
id: '1789921457891'
position:
x: 2194
y: 282
positionAbsolute:
x: 2194
y: 282
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
zIndex: 0
- data:
outputs:
- value_selector:
- '1789913283624'
- text
value_type: string
variable: website
- value_selector:
- '1789921225442'
- text
value_type: string
variable: ouderapp
- value_selector:
- '1789914224310'
- text
value_type: string
variable: social
selected: false
title: Goedgekeurd
type: end
height: 140
id: '1789921490100'
position:
x: 2496
y: 282
positionAbsolute:
x: 2496
y: 282
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
zIndex: 0
- data:
outputs:
- value_selector:
- '1789921317767'
- redenen
value_type: string
variable: afgekeurd_omdat
- value_selector:
- '1789913283624'
- text
value_type: string
variable: concept_website
- value_selector:
- '1789921225442'
- text
value_type: string
variable: concept_ouderapp
- value_selector:
- '1789914224310'
- text
value_type: string
variable: concept_social
selected: false
title: Naar de communicatiemedewerker
type: end
height: 166
id: '1789921594492'
position:
x: 2496
y: 461
positionAbsolute:
x: 2496
y: 461
selected: false
sourcePosition: right
targetPosition: left
type: custom
width: 242
zIndex: 0
viewport:
x: -1050.7133416209424
y: 53.85916780978505
zoom: 0.558163294467307
rag_pipeline_variables: []