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: []