Het wereldbolpersonage van Eco², voor dit portfolio verfijnd op basis van het nieuwste officiële hoofdpersonage: een hemelsblauwe wereldbol met groen land, een kiemplantje bovenop en een bruin lachend gezicht
Terug naar de zaal

Eco²

Backend · Cloud infrastructure

Advies over afvalscheiding uit één foto en een gesprek.

Een alles-in-één AI-assistent die begrijpt hoe afvalscheiding in Korea werkt.

2025.10.31 — 2026.02.10

Teamproject · infrastructuur- en uitrolbasis → domeinbackend → asynchrone verwerking, conversationele agent, verificatie

2025 새싹 해커톤 (Saessak Hackathon)Prijs voor uitmuntendheid · 2025.12.02

  • WebappDienst beëindigd

Eco² vocabulary

Lens
Service Path
Request Path
Async Work
Operations
Infrastructure
Measurement
  1. edge
  2. auth offload
  3. domain api
  1. task queue
  2. scan pipeline
  3. chat agent
  4. event bus
  1. cluster
  2. gitops
  3. autoscaling
  1. observability
  2. load test
  3. evaluation

Edge: ROUTE 53 · ALB · HTTPS 443 · internet-facing · external-dns · istio-ingressgateway · NodePort · eco2-gateway · VirtualService · x-canary · AuthorizationPolicy · ENVOY SIDECAR · kiali-serverAuth Offload: AuthorizationPolicy · action: CUSTOM · notPaths · envoyExtAuthzGrpc · failOpen: false · CheckRequest · x-user-id · BlacklistCache · BootstrapFromRedis · outbox:blacklist · blacklist.events · UsersServiceDomain API: VirtualService · x-user-id · /api/v1/scan · X-Idempotency-Key · job_id · stream_url · 202 ACCEPTED · Retry-After · ScanTask · UsersService · ImageService · ENVOY SIDECARTask Queue: outbox:blacklist · blacklist.events · RabbitmqCluster · scan.direct · reward.events · dlx · x-dead-letter-exchange · chat.process · AioPikaBroker · task_acks_late · apply_async · gevent · scan.vision · scan.rule · scan.answer · scan.reward · CELERY CHAIN · QueueLength · inspect ping · QUEUE SATURATIONScan Pipeline: ScanTask · scan.direct · reward.events · apply_async · gevent · scan.vision · scan.rule · scan.answer · scan.reward · CELERY CHAIN · RewardStep · item_class_list.yaml · situation_tags.yaml · LITE RAG · JsonRegulationRetriever · PipelineStage · waste_rag · XADD · domain: worker-ai · pipeline_duration · vision_stage_durationChat Agent: ImageService · chat.process · AioPikaBroker · create_chat_graph · route_by_intent · MULTI-INTENT FANOUT · waste_rag · recyclable_price · collection_point · image_generation · aggregator · thread_id · SyncableRedisSaver · AsyncPostgresSaver · LANGSMITH_TRACING · regenerateEvent Bus: job_id · stream_url · PipelineStage · XADD · scan:events:{shard} · XREADGROUP · XACK · XAUTOCLAIM · PendingReclaimer · STATE KV · scan:state:{job_id} · sse:events:{shard} · SSEBroadcastManager · Last-Event-ID · scan_sse_connections_active · ServiceMonitor · traceparentCluster: NodePort · kubeadm init · kubeadm join · vxlanMode · BGPConfiguration · module "vpc" · worker_ai · nodeSelector · domain: worker-ai · NoSchedule · 24-NODE CLUSTERGitOps: external-dns · x-canary · dev-root · ApplicationSet · sync-wave · selfHeal · ignoreDifferences · argocd-image-updater · update-strategy: digest · write-back-method · targetRevision · ci-services.ymlAutoscaling: ignoreDifferences · ScaledObject · QueueLength · cooldownPeriod · pollingInterval · fallback · maxReplicaCount · stabilizationWindowSeconds · HorizontalPodAutoscaler · scan_sse_connections_active · prometheus-adapterObservability: 24-NODE CLUSTER · prometheus-adapter · FLUENT BIT · Elasticsearch · Kibana · kube-prometheus-stack · AlertmanagerConfig · ServiceMonitor · JAEGER · OPENTELEMETRY · traceparent · kiali-server · LANGSMITH_TRACINGLoad Test: k6 · ramping-vus · thresholds · pipeline_duration · vision_stage_duration · poll_timeout · inspect ping · WORKER RESTART · POLLING TIMEOUT · QUEUE SATURATIONEvaluation: EvalConfig · eval_mode · eval_sample_rate · eval_cost_budget_daily_usd · EvalResult · EvalGrade · code_grader · llm_grader · CUSUM · regenerate · OpenAIBARSEvaluator

Hoe de 24 nodes werkelijk verbonden zijn, stroom voor stroom.

Zelfbeheerde Kubernetes, opgezet met kubeadm. De kaart plaatst de 24 fysieke nodes en de workloads erop binnen de vijf lagen van de README en verbindt ze met hun werkelijke verbindingen. Kies een stroom en alleen dat pad wordt gemarkeerd, met genummerde stappen.

Hij herkent afval op een foto en legt uit hoe het moet worden weggegooid, en in een gesprek roept hij tools aan voor locaties, weer, recyclingprijzen en zoeken op het web, en genereert hij afbeeldingen. In dit teamproject begon ik bij de cluster- en uitrolbasis en breidde ik mijn reikwijdte uit naar de domeinbackend, asynchrone verwerking, de conversationele agent en verificatie.

Van de ontwikkeling voor de wedstrijd tot het verstevigen van backend en beheer

De dienst is niet meer in bedrijf; een opgenomen demo en het technische rapport tonen hem in werking.

Verbindingskaart van het cluster · opnieuw getekend op basis van de manifests en code op commit a072127
Verbindingskaart van het Eco²-cluster · 24 nodesEen kaart van de 24 fysieke nodes binnen de vijf laagbanden van de README. De browser zoekt in Route 53 alleen de naam op; nadat TLS op de ALB op 443 eindigt, stuurt de Istio-ingress-Envoy op een NodePort het verzoek naar een domein-API. De Scan-API zet het werk in RabbitMQ en geeft meteen een job_id terug; scan-worker in de AI-pool schrijft voortgangsevents met XADD naar Redis Streams. De Event Router leest ze, werkt State KV bij en publiceert naar Pub/Sub, en de SSE Gateway stuurt ze naar de browser. checkpoint-syncer slaat Chat-checkpoints op en de persistence-consumer op de Chat-node slaat berichten op in PostgreSQL. De Platform Layer is geen verzoekpad; die configureert, schaalt en observeert.BrowserHTTPS · SSEAWS ALB443 · TLS eindigt hierRoute 53DNSGitHub Actions · Docker Hubimage · manifestrevisieLLM APIOpenAI · GoogleLangSmithLLM-run-tracingFluent BitDaemonSet · elke nodek8s-masterALB Controller · ExternalDNSArgo CD image updaterIstiodcontrol planek8s-ingress-gatewayIstio ingress Envoyk8s-api-scanScan APIk8s-api-chatChat APImessage consumerpersistence consumerk8s-api-authauth APIext-authzk8s-api-infoInfo APIinfo-workerk8s-api-charactercharacter APIk8s-api-imageimages APIk8s-api-usersusers APIk8s-api-locationlocation APIk8s-sse-gatewaySSE Gatewayk8s-event-routerEvent Routerk8s-rabbitmqRabbitMQk8s-worker-aik8s-worker-ai-2k8s-worker-storagek8s-worker-storage-2k8s-redis-pubsubPub/Subk8s-redis-streamsStreamsState KVk8s-redis-cacheCachek8s-postgresqlPostgreSQLk8s-redis-authblacklistk8s-monitoringKEDAPrometheusGrafanaAlertmanagerk8s-loggingElasticsearchKibanascan-workerchat-workercheckpoint-syncerauth-relayauth-workerusers-workercharacter-workercharacter-match-workerKialiJaeger · dev in-memoryKubernetes-cluster24 nodes · kubeadmEdge Layer1 nodeService Layer8 nodes · Envoy-sidecarIntegration Layer7 nodesPersistence Layer5 nodesPlatform Layer3 nodes · configureren · schalen · observerenBeheerd door AWSAI-pooldomain: worker-aistoragepooldomain: worker-storageGeen vaste node1DNS-lookup2 HTTPS 443 · Browser → AWS ALB23HTTP · NodePort4VirtualService5Celery-taak6 consume · RabbitMQ → scan-worker67 HTTPS · AI-pool → LLM API78XADD scan:events9XREADGROUP10SETEX state11PUBLISH12SUBSCRIBE13SSE-stream14Herstel bij herverbinding1 HTTPS 443 · Browser → AWS ALB12HTTP · NodePort3VirtualService4Taskiq-taak5 consume · RabbitMQ → chat-worker56 HTTPS · AI-pool → LLM API67XADD chat:events8XREADGROUP9PUBLISH10SUBSCRIBE11SSE-stream12checkpoint13checkpoint lezen14synchroniseren naar PostgreSQL15chat-persistence group16berichten opslaan1DNS-lookup2 HTTPS 443 · Browser → AWS ALB23HTTP · NodePort4ext-authz · gRPC 500515blacklist opzoeken6VirtualService7gRPC8gRPC1outbox:blacklist2blacklist.events3 blacklist.events · RabbitMQ → auth-worker34blacklist opslaan5 Celery batch · RabbitMQ → users-worker56UPSERT1image · manifestrevisie2Ingress → ALB · DNS-records3xDS-configuratie4aantal Pods5 aantal Pods · KEDA → storagepool56logs7 LLM-run-tracing · AI-pool → LangSmith7

Scan-verzoek → live levering

Een verzoek om fotoanalyse wordt werk in de queue, en de voortgangsevents ervan komen terug bij dezelfde browser.

  1. BrowserDNS-lookup: DNS-lookupRoute 53

    Alleen de naam wordt opgezocht in de Route 53-records. Verzoeken gaan niet door DNS.

  2. Browserdatastroom: HTTPS 443AWS ALB

    TLS eindigt op de ALB.

  3. AWS ALBdatastroom: HTTP · NodePortIstio ingress Envoyk8s-ingress-gateway

    Via de NodePort van het EC2-instancetarget doorgegeven aan de Istio-ingress-Envoy.

  4. Istio ingress Envoyk8s-ingress-gatewaydatastroom: VirtualServiceScan APIk8s-api-scan

    Gerouteerd naar de Scan-API, die het werk in de queue zet en meteen een job_id teruggeeft; een opvraging van het resultaat antwoordt 202 tot de job klaar is.

  5. Scan APIk8s-api-scandatastroom: Celery-taakRabbitMQk8s-rabbitmq

    De Scan-taak gaat RabbitMQ in.

  6. RabbitMQk8s-rabbitmqdatastroom: consumescan-workerk8s-worker-ai · k8s-worker-ai-2

    scan-worker (Celery · gevent) in de AI-pool neemt hem aan en voert Vision → Rule → Answer → Reward uit. De vier fasen zijn aaneengeschakelde Celery-taken, geen nodes.

  7. AI-poolk8s-worker-ai · k8s-worker-ai-2datastroom: HTTPSLLM API

    De scan- en chatworkers roepen de API’s van OpenAI en Google aan.

  8. scan-workerk8s-worker-ai · k8s-worker-ai-2datastroom: XADD scan:eventsStreamsk8s-redis-streams

    Voortgangsevents worden naar een van vier Streams-shards geschreven.

  9. Streamsk8s-redis-streamsdatastroom: XREADGROUPEvent Routerk8s-event-router

    De Event Router leest ze als consumer group en XACKt na verwerking; pending en reclaim houden de levering at-least-once.

  10. Event Routerk8s-event-routerdatastroom: SETEX stateState KVk8s-redis-streams

    Hij schrijft de laatste toestand en een markering tegen dubbele verwerking naar State KV op dezelfde Redis-node.

  11. Event Routerk8s-event-routerdatastroom: PUBLISHPub/Subk8s-redis-pubsub

    In realtime geleverd op het kanaal van de job in shard-Pub/Sub.

  12. Pub/Subk8s-redis-pubsubdatastroom: SUBSCRIBESSE Gatewayk8s-sse-gateway

    De SSE Gateway abonneert via één gedeelde listener per proces en verdeelt naar elke verbonden browser.

  13. SSE Gatewayk8s-sse-gatewaydatastroom: SSE-streamBrowser

    Een verbinding die over hetzelfde ALB- en ingresspad wordt geopend. Levering is at-least-once; duplicaten worden idempotent afgehandeld.

  14. State KVk8s-redis-streamsdatastroom: Herstel bij herverbindingSSE Gatewayk8s-sse-gateway

    Bij herverbinding met Last-Event-ID vullen State KV en de bewaarde Streams gemiste events aan.

Chat · tokens en opslag

Chattokens volgen hetzelfde eventpad als Scan; checkpoints en berichten worden door twee verschillende workloads opgeslagen.

  1. Browserdatastroom: HTTPS 443AWS ALB

    TLS eindigt op de ALB.

  2. AWS ALBdatastroom: HTTP · NodePortIstio ingress Envoyk8s-ingress-gateway

    Via de NodePort van het EC2-instancetarget doorgegeven aan de Istio-ingress-Envoy.

  3. Istio ingress Envoyk8s-ingress-gatewaydatastroom: VirtualServiceChat APIk8s-api-chat

    Gerouteerd naar de Chat-API.

  4. Chat APIk8s-api-chatdatastroom: Taskiq-taakRabbitMQk8s-rabbitmq

    De Chat-taak gaat RabbitMQ in.

  5. RabbitMQk8s-rabbitmqdatastroom: consumechat-workerk8s-worker-ai · k8s-worker-ai-2

    chat-worker (Taskiq · asyncio) classificeert de intentie met LangGraph, voert daarna zo nodig vision, de gekozen tools, de aggregator en zo nodig een samenvatting uit, en antwoordt. Elk verzoek voert alleen de takken uit die het nodig heeft.

  6. AI-poolk8s-worker-ai · k8s-worker-ai-2datastroom: HTTPSLLM API

    De scan- en chatworkers roepen de API’s van OpenAI en Google aan.

  7. chat-workerk8s-worker-ai · k8s-worker-ai-2datastroom: XADD chat:eventsStreamsk8s-redis-streams

    Tokens en fase-events worden naar vier Streams-shards geschreven; vanaf daar is het leveringspad hetzelfde als bij Scan.

  8. Streamsk8s-redis-streamsdatastroom: XREADGROUPEvent Routerk8s-event-router

    De Event Router leest ze als consumer group en XACKt na verwerking; pending en reclaim houden de levering at-least-once.

  9. Event Routerk8s-event-routerdatastroom: PUBLISHPub/Subk8s-redis-pubsub

    In realtime geleverd op het kanaal van de job in shard-Pub/Sub.

  10. Pub/Subk8s-redis-pubsubdatastroom: SUBSCRIBESSE Gatewayk8s-sse-gateway

    De SSE Gateway abonneert via één gedeelde listener per proces en verdeelt naar elke verbonden browser.

  11. SSE Gatewayk8s-sse-gatewaydatastroom: SSE-streamBrowser

    Een verbinding die over hetzelfde ALB- en ingresspad wordt geopend. Levering is at-least-once; duplicaten worden idempotent afgehandeld.

  12. chat-workerk8s-worker-ai · k8s-worker-ai-2datastroom: checkpointCachek8s-redis-cache

    De LangGraph-checkpoint staat in Redis Cache.

  13. Cachek8s-redis-cachedatastroom: checkpoint lezencheckpoint-syncerk8s-worker-ai · k8s-worker-ai-2

    checkpoint-syncer leest de checkpoint uit Redis.

  14. checkpoint-syncerk8s-worker-ai · k8s-worker-ai-2datastroom: synchroniseren naar PostgreSQLPostgreSQLk8s-postgresql

    AsyncPostgresSaver slaat hem asynchroon op in PostgreSQL.

  15. Streamsk8s-redis-streamsdatastroom: chat-persistence grouppersistence consumerk8s-api-chat

    De persistence-consumer op de Chat-node leest done-events als consumer group.

  16. persistence consumerk8s-api-chatdatastroom: berichten opslaanPostgreSQLk8s-postgresql

    Chatberichten worden in PostgreSQL opgeslagen. Dit is een andere workload dan checkpoint-syncer.

Ingang · authenticatie

Het synchrone pad van de ingang van het cluster tot een domein-API. Alleen paden onder een policy controleren eerst de authenticatie; Pod-verkeer tussen nodes loopt over Calico VXLAN.

  1. BrowserDNS-lookup: DNS-lookupRoute 53

    Alleen de naam wordt opgezocht in de Route 53-records. Verzoeken gaan niet door DNS.

  2. Browserdatastroom: HTTPS 443AWS ALB

    TLS eindigt op de ALB.

  3. AWS ALBdatastroom: HTTP · NodePortIstio ingress Envoyk8s-ingress-gateway

    Via de NodePort van het EC2-instancetarget doorgegeven aan de Istio-ingress-Envoy.

  4. Istio ingress Envoyk8s-ingress-gatewaydatastroom: ext-authz · gRPC 50051ext-authzk8s-api-auth

    Alleen paden onder een CUSTOM-policy vragen eerst de Go-ext-authz (timeout 2 s, failOpen false). Paden zoals login, health en docs zijn uitgezonderd.

  5. ext-authzk8s-api-authdatastroom: blacklist opzoekenblacklistk8s-redis-auth

    Het token wordt gecontroleerd tegen de Redis-blacklist.

  6. Istio ingress Envoyk8s-ingress-gatewaydatastroom: VirtualServiceChat APIk8s-api-chat

    Gerouteerd naar de Chat-API.

  7. Chat APIk8s-api-chatdatastroom: gRPCimages APIk8s-api-image

    De synchrone aanroep chat → images die in de README wordt genoemd.

  8. auth APIk8s-api-authdatastroom: gRPCusers APIk8s-api-users

    De synchrone aanroep auth → users die in de README wordt genoemd.

Storagepool · asynchroon opslaan

De authenticatie-blacklist en het personagebezit worden opgeslagen door workers in de storagepool die hun werk uit RabbitMQ halen.

  1. blacklistk8s-redis-authdatastroom: outbox:blacklistauth-relayk8s-worker-storage · k8s-worker-storage-2

    auth-relay (de auth-Bus uit de README) leest de Redis-outbox.

  2. auth-relayk8s-worker-storage · k8s-worker-storage-2datastroom: blacklist.eventsRabbitMQk8s-rabbitmq

    Hij publiceert opnieuw naar RabbitMQ, met retries en een DLQ.

  3. RabbitMQk8s-rabbitmqdatastroom: blacklist.eventsauth-workerk8s-worker-storage · k8s-worker-storage-2

    auth-worker ontvangt de blacklist-events.

  4. auth-workerk8s-worker-storage · k8s-worker-storage-2datastroom: blacklist opslaanblacklistk8s-redis-auth

    Ze worden opgeslagen in de Redis-blacklist.

  5. RabbitMQk8s-rabbitmqdatastroom: Celery batchusers-workerk8s-worker-storage · k8s-worker-storage-2

    users-worker ontvangt werk voor personagebezit in batches.

  6. users-workerk8s-worker-storage · k8s-worker-storage-2datastroom: UPSERTPostgreSQLk8s-postgresql

    Het wordt toegepast op PostgreSQL.

Configureren · schalen · observeren

De Platform Layer is geen stap waar verzoeken doorheen gaan; die rolt uit, configureert, schaalt en observeert de andere lagen. De nodes zijn met Terraform gemaakte EC2-instances, waarop Ansible kubeadm en Calico heeft geïnstalleerd; CI valideert Terraform alleen en past het nooit automatisch toe.

  1. GitHub Actions · Docker Hubconfigureren · schalen: image · manifestrevisieArgo CD image updaterk8s-master

    Argo CD brengt de clusterconfiguratie in lijn via App-of-Apps en Sync Waves. Alleen de control-plane-plaatsing van de image updater is bevestigd.

  2. ALB Controller · ExternalDNSk8s-masterconfigureren · schalen: Ingress → ALB · DNS-recordsBeheerd door AWS

    De ALB Controller en ExternalDNS configureren resources aan AWS-zijde. Dit is geen pad dat verzoeken nemen.

  3. Istiodk8s-masterconfigureren · schalen: xDS-configuratieIstio ingress Envoyk8s-ingress-gateway

    Istiod pusht de configuratie van Gateway, VirtualService en EnvoyFilter via xDS naar de ingress-Envoy en naar de Envoy-sidecar van elke API.

  4. KEDAk8s-monitoringconfigureren · schalen: aantal PodsAI-poolk8s-worker-ai · k8s-worker-ai-2

    KEDA past het aantal worker-Pods aan. Het aantal nodes verandert niet.

  5. KEDAk8s-monitoringconfigureren · schalen: aantal Podsstoragepoolk8s-worker-storage · k8s-worker-storage-2

    Worker-Pods in de storagepool worden op dezelfde manier geschaald.

  6. Fluent Bitobserveerbaarheid: logsElasticsearchk8s-logging

    Fluent Bit is een DaemonSet op elke node en stuurt logs naar Elasticsearch.

  7. AI-poolk8s-worker-ai · k8s-worker-ai-2observeerbaarheid: LLM-run-tracingLangSmith

    LLM-aanroeptraces gaan naar LangSmith, een externe SaaS.

Alle verbindingen even zwaar. Kies een stroom om alleen het pad daarvan te markeren, met genummerde stappen.

  • Doorgetrokken · richting waarin verzoeken, werk, events en schrijfacties stromen
  • Gestippeld · DNS-lookup; verzoeken gaan er niet doorheen
  • Gestreept · configureren of schalen; geen datapad
  • Lange streep-punt · logs en run-tracing
  • Dikke zwarte lijn · de gekozen stroom; nummers geven de volgorde
  • Vak · een fysieke node, hostnaam in de kop
  • Binnenchip · een workload die op die node draait
  • Gestreept kader · een schedulingpool van twee nodes
  • Gestreept vak · buiten het cluster, niet als node geteld
  • Oranje omlijning · waar een model beslist
  • Control plane1 node
  • Domain API8 nodes
  • AI-pool2 nodes
  • storagepool2 nodes
  • Data5 nodes
  • Platform6 nodes

De vijf lagen van de README (de banden) en de fysieke groepen (de tint van de kop van elke node) groeperen dezelfde 24 nodes verschillend. State KV deelt de Streams-node en wordt niet apart geteld; Route 53, de ALB en diensten buiten het cluster zijn geen nodes. Een pool is een schedulingbereik, geen bewering dat elke pod op beide nodes draait.

Opbouw met 24 nodes · volgens de nodelijst van het dashboard van January 21, 2026

24nodes

24 = 1 control plane + 8 API + 4 worker + 5 data + 6 platform

  1. 1Control plane

    role: control-plane

    kube-apiserver · scheduler · controller-manager · etcd, plus de platformcontrollers.

    1. k8s-master
  2. 8Domain API

    domain: <dienst>

    Eén node per domein. Interne aanroepen gebruiken gRPC.

    1. k8s-api-auth
    2. k8s-api-users
    3. k8s-api-scan
    4. k8s-api-character
    5. k8s-api-location
    6. k8s-api-image
    7. k8s-api-chat
    8. k8s-api-info
  3. 4Execution worker

    Twee schedulingpools van elk twee nodes. KEDA wijzigt het aantal pods; het aantal nodes blijft gelijk.

    storagepooldomain: worker-storage
    1. k8s-worker-storage
    2. k8s-worker-storage-2
    AI-pooldomain: worker-ai
    1. k8s-worker-ai
    2. k8s-worker-ai-2
  4. 5Data

    Redis is per doel opgesplitst over vier nodes. De opslag van PostgreSQL is EBS CSI · gp3.

    1. k8s-postgresql
    2. k8s-redis-auth
    3. k8s-redis-streams
    4. k8s-redis-cache
    5. k8s-redis-pubsub
  5. 6Platform

    Messaging, observeerbaarheid, ingress en realtime levering hebben elk een eigen node.

    1. k8s-rabbitmq
    2. k8s-monitoring
    3. k8s-logging
    4. k8s-ingress-gateway
    5. k8s-sse-gateway
    6. k8s-event-router
Elke node
  • Fluent Bit · DaemonSet
  • Calico

Geconfigureerde modellen · per provider

De dienst is beëindigd, dus dit zijn de modellen die in de repository zijn geconfigureerd, geen keuzes die vandaag beschikbaar zijn. Elke rol staat apart vermeld; dit is geen lijst van geverifieerde runs.

  • OpenAI

    Standaardprovider voor Chat

    Chat

    • openai/gpt-5.2standaard

    Het standaardmodel is gpt-5.2; een model dat in het verzoek wordt genoemd, wordt in plaats daarvan gebruikt.

    Scan

    • gpt-5.2standaard
    • gpt-5.2-pro
    • gpt-5.1
    • gpt-5
    • gpt-5-pro
    • gpt-5-mini

    Modellen buiten de toewijzing van 13 modellen worden geweigerd.

    Beeldtoewijzing

    • gpt-image-1.5

    Los van gpt-5.2, het orchestratiemodel voor Responses. Beeldgeneratie staat standaard uit.

    Evaluatie

    • gpt-4o-ministandaard

    De LLM-grader voor gespreksevaluatie, los van het Chat-model.

  • Google

    Als Chat Google kiest

    Chat

    • google/gemini-3-pro-preview
    • google/gemini-3-flash-preview

    Met Google geselecteerd is gemini-3-flash-preview de standaard.

    Scan

    • gemini-3-pro-preview
    • gemini-3-flash-preview
    • gemini-2.5-pro
    • gemini-2.5-flash
    • gemini-2.5-flash-lite
    • gemini-2.0-flash
    • gemini-2.0-flash-lite

    Beeldtoewijzing

    • gemini-3-pro-image-preview