Karakter bola dunia Eco², disempurnakan untuk portofolio ini dari karakter utama resmi terbaru: bola dunia biru langit dengan daratan hijau, tunas di atas kepala, dan wajah tersenyum berwarna cokelat
Kembali ke ruang pamer

Eco²

Backend · Cloud infrastructure

Panduan daur ulang dari satu foto dan percakapan.

Asisten AI serba ada yang memahami cara kerja daur ulang di Korea.

2025.10.31 — 2026.02.10

Proyek tim · fondasi infrastruktur dan deployment → backend domain → pemrosesan asinkron, agen percakapan, verifikasi

2025 새싹 해커톤 (Saessak Hackathon)Penghargaan Keunggulan · 2025.12.02

  • Aplikasi webLayanan ditutup

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

Bagaimana 24 node benar-benar terhubung, satu alur demi satu alur.

Kubernetes yang dikelola sendiri, dibangun dengan kubeadm. Peta menempatkan 24 node fisik dan workload di atasnya di dalam lima lapisan README, lalu menghubungkannya dengan koneksi yang sebenarnya. Pilih satu alur dan hanya jalur itu yang disorot, dengan langkah bernomor.

Asisten ini mengenali sampah dari foto dan menjelaskan cara membuangnya, dan dalam percakapan memanggil alat untuk lokasi, cuaca, harga barang daur ulang, dan pencarian web, serta membuat gambar. Dalam proyek tim ini saya memulai dari fondasi klaster dan deployment, lalu memperluas cakupan ke backend domain, pemrosesan asinkron, agen percakapan, dan verifikasi.

Dari pengembangan kompetisi hingga penguatan backend dan operasi

Layanan telah selesai beroperasi; video demo yang direkam dan laporan teknis memperlihatkan cara kerjanya.

Peta koneksi klaster · digambar ulang dari manifest dan kode pada commit a072127
Peta koneksi klaster Eco² · 24 nodePeta 24 node fisik di dalam lima pita lapisan README. Browser hanya mencari nama di Route 53; setelah TLS berakhir di ALB pada 443, Istio ingress Envoy di NodePort mengirim permintaan ke API domain. Scan API memasukkan pekerjaan ke antrean RabbitMQ dan langsung mengembalikan job_id; scan-worker di pool AI melakukan XADD event progres ke Redis Streams. Event Router membacanya, memperbarui State KV, dan menerbitkan ke Pub/Sub, lalu SSE Gateway mengirimkannya ke browser. checkpoint-syncer menyimpan checkpoint Chat dan persistence consumer di node Chat menyimpan pesan di PostgreSQL. Platform Layer bukan jalur permintaan; lapisan ini mengonfigurasi, menskalakan, dan mengamati.BrowserHTTPS · SSEAWS ALB443 · TLS berakhir di siniRoute 53DNSGitHub Actions · Docker Hubimage · revisi manifestLLM APIOpenAI · GoogleLangSmithPenelusuran eksekusi LLMFluent BitDaemonSet · setiap 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-memoryKlaster Kubernetes24 node · kubeadmEdge Layer1 nodeService Layer8 node · Envoy sidecarIntegration Layer7 nodePersistence Layer5 nodePlatform Layer3 node · konfigurasi · skala · observasiDikelola AWSPool AIdomain: worker-aiPool storagedomain: worker-storageTanpa node tetap1Pencarian DNS2 HTTPS 443 · Browser → AWS ALB23HTTP · NodePort4VirtualService5Tugas Celery6 consume · RabbitMQ → scan-worker67 HTTPS · Pool AI → LLM API78XADD scan:events9XREADGROUP10SETEX state11PUBLISH12SUBSCRIBE13Stream SSE14Pemulihan saat tersambung ulang1 HTTPS 443 · Browser → AWS ALB12HTTP · NodePort3VirtualService4Tugas Taskiq5 consume · RabbitMQ → chat-worker56 HTTPS · Pool AI → LLM API67XADD chat:events8XREADGROUP9PUBLISH10SUBSCRIBE11Stream SSE12checkpoint13baca checkpoint14sinkronkan ke PostgreSQL15chat-persistence group16simpan pesan1Pencarian DNS2 HTTPS 443 · Browser → AWS ALB23HTTP · NodePort4ext-authz · gRPC 500515cek blacklist6VirtualService7gRPC8gRPC1outbox:blacklist2blacklist.events3 blacklist.events · RabbitMQ → auth-worker34simpan blacklist5 Celery batch · RabbitMQ → users-worker56UPSERT1image · revisi manifest2Ingress → ALB · record DNS3konfigurasi xDS4jumlah pod5 jumlah pod · KEDA → Pool storage56log7 Penelusuran eksekusi LLM · Pool AI → LangSmith7

Permintaan Scan → pengiriman langsung

Permintaan analisis foto menjadi pekerjaan dalam antrean, dan event progresnya kembali ke browser yang sama.

  1. Browserpencarian DNS: Pencarian DNSRoute 53

    Hanya nama yang di-resolve dari record Route 53. Permintaan tidak melewati DNS.

  2. Browseraliran data: HTTPS 443AWS ALB

    TLS berakhir di ALB.

  3. AWS ALBaliran data: HTTP · NodePortIstio ingress Envoyk8s-ingress-gateway

    Diteruskan ke Istio ingress Envoy melalui NodePort target instance EC2.

  4. Istio ingress Envoyk8s-ingress-gatewayaliran data: VirtualServiceScan APIk8s-api-scan

    Dirutekan ke Scan API, yang memasukkan pekerjaan ke antrean dan langsung mengembalikan job_id; polling hasil dijawab 202 sampai job selesai.

  5. Scan APIk8s-api-scanaliran data: Tugas CeleryRabbitMQk8s-rabbitmq

    Tugas Scan masuk ke RabbitMQ.

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

    scan-worker (Celery · gevent) di pool AI mengambilnya dan menjalankan Vision → Rule → Answer → Reward. Keempat tahap adalah Celery task yang dirangkai, bukan node.

  7. Pool AIk8s-worker-ai · k8s-worker-ai-2aliran data: HTTPSLLM API

    Worker scan dan chat memanggil API OpenAI dan Google.

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

    Event progres ditulis ke salah satu dari empat shard Streams.

  9. Streamsk8s-redis-streamsaliran data: XREADGROUPEvent Routerk8s-event-router

    Event Router membacanya sebagai consumer group dan melakukan XACK setelah diproses; pending dan reclaim menjaga pengiriman at-least-once.

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

    Router menulis status terbaru dan penanda pemrosesan ganda ke State KV di node Redis yang sama.

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

    Dikirim secara real-time di kanal job tersebut dalam shard Pub/Sub.

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

    SSE Gateway berlangganan melalui satu listener bersama per proses dan menyebarkannya ke setiap browser yang terhubung.

  13. SSE Gatewayk8s-sse-gatewayaliran data: Stream SSEBrowser

    Koneksi yang dibuka melalui jalur ALB dan ingress yang sama. Pengiriman bersifat at-least-once; duplikat ditangani secara idempoten.

  14. State KVk8s-redis-streamsaliran data: Pemulihan saat tersambung ulangSSE Gatewayk8s-sse-gateway

    Saat tersambung ulang dengan Last-Event-ID, State KV dan Streams yang disimpan mengisi event yang terlewat.

Chat · token dan penyimpanan

Token Chat mengambil jalur event yang sama dengan Scan; checkpoint dan pesan disimpan oleh dua workload yang berbeda.

  1. Browseraliran data: HTTPS 443AWS ALB

    TLS berakhir di ALB.

  2. AWS ALBaliran data: HTTP · NodePortIstio ingress Envoyk8s-ingress-gateway

    Diteruskan ke Istio ingress Envoy melalui NodePort target instance EC2.

  3. Istio ingress Envoyk8s-ingress-gatewayaliran data: VirtualServiceChat APIk8s-api-chat

    Dirutekan ke Chat API.

  4. Chat APIk8s-api-chataliran data: Tugas TaskiqRabbitMQk8s-rabbitmq

    Tugas Chat masuk ke RabbitMQ.

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

    chat-worker (Taskiq · asyncio) mengklasifikasikan maksud dengan LangGraph, lalu menjalankan vision bila perlu, alat yang dipilih, aggregator, dan ringkasan bila perlu, kemudian menjawab. Setiap permintaan hanya menjalankan cabang yang dibutuhkannya.

  6. Pool AIk8s-worker-ai · k8s-worker-ai-2aliran data: HTTPSLLM API

    Worker scan dan chat memanggil API OpenAI dan Google.

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

    Token dan event tahap ditulis ke empat shard Streams; dari situ jalur pengirimannya sama dengan Scan.

  8. Streamsk8s-redis-streamsaliran data: XREADGROUPEvent Routerk8s-event-router

    Event Router membacanya sebagai consumer group dan melakukan XACK setelah diproses; pending dan reclaim menjaga pengiriman at-least-once.

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

    Dikirim secara real-time di kanal job tersebut dalam shard Pub/Sub.

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

    SSE Gateway berlangganan melalui satu listener bersama per proses dan menyebarkannya ke setiap browser yang terhubung.

  11. SSE Gatewayk8s-sse-gatewayaliran data: Stream SSEBrowser

    Koneksi yang dibuka melalui jalur ALB dan ingress yang sama. Pengiriman bersifat at-least-once; duplikat ditangani secara idempoten.

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

    Checkpoint LangGraph disimpan di Redis Cache.

  13. Cachek8s-redis-cachealiran data: baca checkpointcheckpoint-syncerk8s-worker-ai · k8s-worker-ai-2

    checkpoint-syncer membaca checkpoint dari Redis.

  14. checkpoint-syncerk8s-worker-ai · k8s-worker-ai-2aliran data: sinkronkan ke PostgreSQLPostgreSQLk8s-postgresql

    AsyncPostgresSaver menyimpannya di PostgreSQL secara asinkron.

  15. Streamsk8s-redis-streamsaliran data: chat-persistence grouppersistence consumerk8s-api-chat

    Persistence consumer di node Chat membaca event done sebagai consumer group.

  16. persistence consumerk8s-api-chataliran data: simpan pesanPostgreSQLk8s-postgresql

    Pesan Chat disimpan ke PostgreSQL. Ini workload yang berbeda dari checkpoint-syncer.

Masuk · autentikasi

Jalur sinkron dari titik masuk klaster ke domain API. Hanya jalur yang dijaga kebijakan yang memeriksa autentikasi lebih dahulu; lalu lintas pod antar-node berjalan di atas Calico VXLAN.

  1. Browserpencarian DNS: Pencarian DNSRoute 53

    Hanya nama yang di-resolve dari record Route 53. Permintaan tidak melewati DNS.

  2. Browseraliran data: HTTPS 443AWS ALB

    TLS berakhir di ALB.

  3. AWS ALBaliran data: HTTP · NodePortIstio ingress Envoyk8s-ingress-gateway

    Diteruskan ke Istio ingress Envoy melalui NodePort target instance EC2.

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

    Hanya jalur di bawah kebijakan CUSTOM yang lebih dahulu bertanya ke Go ext-authz (timeout 2 s, failOpen false). Jalur seperti login, health, dan docs dikecualikan.

  5. ext-authzk8s-api-authaliran data: cek blacklistblacklistk8s-redis-auth

    Token diperiksa terhadap blacklist Redis.

  6. Istio ingress Envoyk8s-ingress-gatewayaliran data: VirtualServiceChat APIk8s-api-chat

    Dirutekan ke Chat API.

  7. Chat APIk8s-api-chataliran data: gRPCimages APIk8s-api-image

    Panggilan sinkron chat → images yang disebut di README.

  8. auth APIk8s-api-authaliran data: gRPCusers APIk8s-api-users

    Panggilan sinkron auth → users yang disebut di README.

Pool storage · penulisan asinkron

Blacklist autentikasi dan kepemilikan karakter disimpan oleh worker pool storage yang mengambil pekerjaannya dari RabbitMQ.

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

    auth-relay (auth-Bus di README) membaca outbox Redis.

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

    Relay menerbitkan ulang ke RabbitMQ, dengan percobaan ulang dan DLQ.

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

    auth-worker menerima event blacklist.

  4. auth-workerk8s-worker-storage · k8s-worker-storage-2aliran data: simpan blacklistblacklistk8s-redis-auth

    Event disimpan di blacklist Redis.

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

    users-worker menerima pekerjaan kepemilikan karakter secara batch.

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

    Diterapkan ke PostgreSQL.

Konfigurasi · skala · observasi

Platform Layer bukan langkah yang dilalui permintaan; lapisan ini men-deploy, mengonfigurasi, menskalakan, dan mengamati lapisan lain. Node-nya adalah instance EC2 yang dibuat dengan Terraform, dengan kubeadm dan Calico dipasang oleh Ansible; CI hanya memvalidasi Terraform dan tidak pernah menerapkannya secara otomatis.

  1. GitHub Actions · Docker Hubkonfigurasi · penskalaan: image · revisi manifestArgo CD image updaterk8s-master

    Argo CD menyelaraskan konfigurasi klaster melalui App-of-Apps dan Sync Waves. Hanya penempatan control-plane milik image updater yang dikonfirmasi.

  2. ALB Controller · ExternalDNSk8s-masterkonfigurasi · penskalaan: Ingress → ALB · record DNSDikelola AWS

    ALB Controller dan ExternalDNS mengonfigurasi sumber daya di sisi AWS. Ini bukan jalur yang dilalui permintaan.

  3. Istiodk8s-masterkonfigurasi · penskalaan: konfigurasi xDSIstio ingress Envoyk8s-ingress-gateway

    Istiod mendorong konfigurasi Gateway, VirtualService, dan EnvoyFilter melalui xDS ke ingress Envoy dan ke Envoy sidecar setiap API.

  4. KEDAk8s-monitoringkonfigurasi · penskalaan: jumlah podPool AIk8s-worker-ai · k8s-worker-ai-2

    KEDA menyesuaikan jumlah pod worker. Jumlah node tidak berubah.

  5. KEDAk8s-monitoringkonfigurasi · penskalaan: jumlah podPool storagek8s-worker-storage · k8s-worker-storage-2

    Pod worker pool storage diskalakan dengan cara yang sama.

  6. Fluent Bitobservabilitas: logElasticsearchk8s-logging

    Fluent Bit adalah DaemonSet di setiap node dan mengirim log ke Elasticsearch.

  7. Pool AIk8s-worker-ai · k8s-worker-ai-2observabilitas: Penelusuran eksekusi LLMLangSmith

    Trace panggilan LLM dikirim ke LangSmith, SaaS eksternal.

Setiap koneksi dengan bobot yang sama. Pilih alur untuk menyorot hanya jalurnya, dengan langkah bernomor.

  • Garis utuh · arah aliran permintaan, pekerjaan, event, dan penulisan
  • Garis titik · pencarian DNS; permintaan tidak melewatinya
  • Garis putus · konfigurasi atau penskalaan; bukan jalur data
  • Garis titik-strip panjang · log dan pelacakan eksekusi
  • Garis hitam tebal · alur yang dipilih; angka menunjukkan urutan
  • Kotak · node fisik, nama host di bagian kepala
  • Chip dalam · workload yang berjalan di node itu
  • Bingkai putus · pool penjadwalan dua node
  • Kotak putus · di luar klaster, tidak dihitung sebagai node
  • Garis tepi oranye · tempat model memutuskan
  • Control plane1 node
  • Domain API8 node
  • Pool AI2 node
  • Pool storage2 node
  • Data5 node
  • Platform6 node

Lima lapisan README (pita) dan kelompok fisik (warna kepala setiap node) mengelompokkan 24 node yang sama secara berbeda. State KV berbagi node dengan Streams dan tidak dihitung terpisah; Route 53, ALB, dan layanan di luar klaster bukan node. Pool adalah rentang penjadwalan, bukan klaim bahwa setiap pod berjalan di kedua node.

Tata letak 24 node · dari daftar node dasbor January 21, 2026

24node

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

  1. 1Control plane

    role: control-plane

    kube-apiserver · scheduler · controller-manager · etcd, ditambah controller platform.

    1. k8s-master
  2. 8Domain API

    domain: <layanan>

    Satu node per domain. Panggilan internal memakai 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

    Dua pool penjadwalan masing-masing dua node. KEDA mengubah jumlah pod; jumlah node tetap.

    Pool storagedomain: worker-storage
    1. k8s-worker-storage
    2. k8s-worker-storage-2
    Pool AIdomain: worker-ai
    1. k8s-worker-ai
    2. k8s-worker-ai-2
  4. 5Data

    Redis dibagi ke empat node sesuai keperluan. Penyimpanan PostgreSQL adalah EBS CSI · gp3.

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

    Perpesanan, observabilitas, jalur masuk, dan pengiriman real-time masing-masing memiliki node sendiri.

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

Model yang dikonfigurasi · per penyedia

Layanan sudah ditutup, jadi ini adalah model yang dikonfigurasi di repositori, bukan pilihan yang tersedia hari ini. Setiap peran dicantumkan terpisah; ini bukan daftar eksekusi yang terverifikasi.

  • OpenAI

    Penyedia bawaan Chat

    Chat

    • openai/gpt-5.2bawaan

    Model bawaannya gpt-5.2; model yang disebut dalam permintaan dipakai sebagai gantinya.

    Scan

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

    Model di luar pemetaan 13 model ditolak.

    Pemetaan gambar

    • gpt-image-1.5

    Terpisah dari gpt-5.2, model orkestrasi Responses. Pembuatan gambar mati secara bawaan.

    Evaluasi

    • gpt-4o-minibawaan

    LLM grader untuk evaluasi percakapan, terpisah dari model Chat.

  • Google

    Saat Chat memilih Google

    Chat

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

    Dengan Google dipilih, gemini-3-flash-preview menjadi bawaan.

    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

    Pemetaan gambar

    • gemini-3-pro-image-preview