El personaje-globo de Eco², retocado para este portafolio a partir del último personaje principal oficial: un globo celeste con tierras verdes, un brote encima y una cara sonriente marrón
Volver a la sala

Eco²

Backend · Cloud infrastructure

Indicaciones de reciclaje a partir de una foto y una conversación.

Un asistente de IA todo en uno que entiende cómo funciona el reciclaje en Corea.

2025.10.31 — 2026.02.10

Proyecto en equipo · base de infraestructura y despliegue → backend de dominio → procesamiento asíncrono, agente conversacional, verificación

2025 새싹 해커톤 (hackatón Saessak)Premio a la excelencia · 2025.12.02

  • Aplicación webServicio cerrado

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

Cómo se conectan realmente los 24 nodos, un flujo a la vez.

Kubernetes autogestionado construido con kubeadm. El mapa sitúa los 24 nodos físicos y sus workloads dentro de las cinco capas del README y los une con sus conexiones reales. Al elegir un flujo solo se resalta esa ruta, con pasos numerados.

Identifica residuos a partir de una foto y explica cómo desecharlos, y en la conversación llama a herramientas de lugares, clima, precios de reciclaje y búsqueda web, y genera imágenes. En este proyecto en equipo empecé por el clúster y la base de despliegue, y amplié mi alcance al backend de dominio, el procesamiento asíncrono, el agente conversacional y la verificación.

Desde el desarrollo para el concurso hasta el refuerzo del backend y la operación

El servicio terminó su ciclo; una demo grabada y el informe técnico lo muestran en funcionamiento.

Mapa de conexiones del clúster · redibujado a partir de los manifests y el código en el commit a072127
Mapa de conexiones del clúster de Eco² · 24 nodosUn mapa de los 24 nodos físicos dentro de las cinco bandas de capas del README. El navegador solo resuelve el nombre en Route 53; tras terminar TLS en el ALB en el 443, el Envoy de ingress de Istio en un NodePort envía la solicitud a una API de dominio. La API de Scan encola el trabajo en RabbitMQ y devuelve un job_id de inmediato; scan-worker, en el pool de IA, añade con XADD los eventos de progreso a Redis Streams. El Event Router los lee, actualiza State KV y publica en Pub/Sub, y el SSE Gateway los envía al navegador. checkpoint-syncer guarda los checkpoints de Chat y el persistence consumer del nodo de Chat guarda los mensajes en PostgreSQL. La Platform Layer no es una ruta de solicitudes; configura, escala y observa.NavegadorHTTPS · SSEAWS ALB443 · aquí termina TLSRoute 53DNSGitHub Actions · Docker Hubimagen · revisión de manifestLLM APIOpenAI · GoogleLangSmithtrazado de ejecuciones de LLMFluent BitDaemonSet · cada nodok8s-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-memoryClúster de Kubernetes24 nodos · kubeadmEdge Layer1 nodoService Layer8 nodos · sidecar EnvoyIntegration Layer7 nodosPersistence Layer5 nodosPlatform Layer3 nodos · configurar · escalar · observarAdministrado por AWSPool de IAdomain: worker-aipool de almacenamientodomain: worker-storageSin nodo fijado1Consulta DNS2 HTTPS 443 · Navegador → AWS ALB23HTTP · NodePort4VirtualService5Tarea de Celery6 consume · RabbitMQ → scan-worker67 HTTPS · Pool de IA → LLM API78XADD scan:events9XREADGROUP10SETEX state11PUBLISH12SUBSCRIBE13Stream SSE14Recuperación al reconectar1 HTTPS 443 · Navegador → AWS ALB12HTTP · NodePort3VirtualService4Tarea de Taskiq5 consume · RabbitMQ → chat-worker56 HTTPS · Pool de IA → LLM API67XADD chat:events8XREADGROUP9PUBLISH10SUBSCRIBE11Stream SSE12checkpoint13leer el checkpoint14sincronizar con PostgreSQL15chat-persistence group16guardar mensajes1Consulta DNS2 HTTPS 443 · Navegador → AWS ALB23HTTP · NodePort4ext-authz · gRPC 500515consulta de la blacklist6VirtualService7gRPC8gRPC1outbox:blacklist2blacklist.events3 blacklist.events · RabbitMQ → auth-worker34guardar la blacklist5 Celery batch · RabbitMQ → users-worker56UPSERT1imagen · revisión de manifest2Ingress → ALB · registros DNS3Configuración xDS4número de pods5 número de pods · KEDA → pool de almacenamiento56logs7 trazado de ejecuciones de LLM · Pool de IA → LangSmith7

Solicitud de Scan → entrega en vivo

Una solicitud de análisis de foto se convierte en trabajo encolado, y sus eventos de progreso vuelven al mismo navegador.

  1. Navegadorconsulta DNS: Consulta DNSRoute 53

    Solo se resuelve el nombre a partir de los registros de Route 53. Las solicitudes no pasan por el DNS.

  2. Navegadorflujo de datos: HTTPS 443AWS ALB

    TLS termina en el ALB.

  3. AWS ALBflujo de datos: HTTP · NodePortIstio ingress Envoyk8s-ingress-gateway

    Se entrega al Envoy de ingress de Istio a través del NodePort del destino de instancia EC2.

  4. Istio ingress Envoyk8s-ingress-gatewayflujo de datos: VirtualServiceScan APIk8s-api-scan

    Se enruta a la API de Scan, que encola el trabajo y devuelve un job_id de inmediato; la consulta del resultado responde 202 hasta que el trabajo termina.

  5. Scan APIk8s-api-scanflujo de datos: Tarea de CeleryRabbitMQk8s-rabbitmq

    La tarea de Scan va a RabbitMQ.

  6. RabbitMQk8s-rabbitmqflujo de datos: consumescan-workerk8s-worker-ai · k8s-worker-ai-2

    scan-worker (Celery · gevent), en el pool de IA, la toma y ejecuta Vision → Rule → Answer → Reward. Las cuatro etapas son tareas de Celery encadenadas, no nodos.

  7. Pool de IAk8s-worker-ai · k8s-worker-ai-2flujo de datos: HTTPSLLM API

    Los workers de scan y chat llaman a las API de OpenAI y Google.

  8. scan-workerk8s-worker-ai · k8s-worker-ai-2flujo de datos: XADD scan:eventsStreamsk8s-redis-streams

    Los eventos de progreso se escriben en uno de los cuatro shards de Streams.

  9. Streamsk8s-redis-streamsflujo de datos: XREADGROUPEvent Routerk8s-event-router

    El Event Router los lee como consumer group y hace XACK tras procesarlos; pending y reclaim mantienen la entrega at-least-once.

  10. Event Routerk8s-event-routerflujo de datos: SETEX stateState KVk8s-redis-streams

    Escribe el último estado y una marca de procesamiento duplicado en State KV, en el mismo nodo de Redis.

  11. Event Routerk8s-event-routerflujo de datos: PUBLISHPub/Subk8s-redis-pubsub

    Se entrega en tiempo real en el canal del trabajo, en el Pub/Sub de shard.

  12. Pub/Subk8s-redis-pubsubflujo de datos: SUBSCRIBESSE Gatewayk8s-sse-gateway

    El SSE Gateway se suscribe mediante un único listener compartido por proceso y reparte a cada navegador conectado.

  13. SSE Gatewayk8s-sse-gatewayflujo de datos: Stream SSENavegador

    Una conexión abierta por la misma ruta de ALB e ingress. La entrega es at-least-once; los duplicados se manejan de forma idempotente.

  14. State KVk8s-redis-streamsflujo de datos: Recuperación al reconectarSSE Gatewayk8s-sse-gateway

    Al reconectar con Last-Event-ID, State KV y los Streams conservados completan los eventos perdidos.

Chat · tokens y almacenamiento

Los tokens de Chat siguen la misma ruta de eventos que Scan; los checkpoints y los mensajes los guardan dos workloads distintos.

  1. Navegadorflujo de datos: HTTPS 443AWS ALB

    TLS termina en el ALB.

  2. AWS ALBflujo de datos: HTTP · NodePortIstio ingress Envoyk8s-ingress-gateway

    Se entrega al Envoy de ingress de Istio a través del NodePort del destino de instancia EC2.

  3. Istio ingress Envoyk8s-ingress-gatewayflujo de datos: VirtualServiceChat APIk8s-api-chat

    Se enruta a la API de Chat.

  4. Chat APIk8s-api-chatflujo de datos: Tarea de TaskiqRabbitMQk8s-rabbitmq

    La tarea de Chat va a RabbitMQ.

  5. RabbitMQk8s-rabbitmqflujo de datos: consumechat-workerk8s-worker-ai · k8s-worker-ai-2

    chat-worker (Taskiq · asyncio) clasifica la intención con LangGraph, luego ejecuta la visión si hace falta, las herramientas seleccionadas, el agregador y un resumen si hace falta, y responde. Cada solicitud solo ejecuta las ramas que necesita.

  6. Pool de IAk8s-worker-ai · k8s-worker-ai-2flujo de datos: HTTPSLLM API

    Los workers de scan y chat llaman a las API de OpenAI y Google.

  7. chat-workerk8s-worker-ai · k8s-worker-ai-2flujo de datos: XADD chat:eventsStreamsk8s-redis-streams

    Los tokens y los eventos de etapa se escriben en cuatro shards de Streams; desde ahí, la ruta de entrega es la misma que la de Scan.

  8. Streamsk8s-redis-streamsflujo de datos: XREADGROUPEvent Routerk8s-event-router

    El Event Router los lee como consumer group y hace XACK tras procesarlos; pending y reclaim mantienen la entrega at-least-once.

  9. Event Routerk8s-event-routerflujo de datos: PUBLISHPub/Subk8s-redis-pubsub

    Se entrega en tiempo real en el canal del trabajo, en el Pub/Sub de shard.

  10. Pub/Subk8s-redis-pubsubflujo de datos: SUBSCRIBESSE Gatewayk8s-sse-gateway

    El SSE Gateway se suscribe mediante un único listener compartido por proceso y reparte a cada navegador conectado.

  11. SSE Gatewayk8s-sse-gatewayflujo de datos: Stream SSENavegador

    Una conexión abierta por la misma ruta de ALB e ingress. La entrega es at-least-once; los duplicados se manejan de forma idempotente.

  12. chat-workerk8s-worker-ai · k8s-worker-ai-2flujo de datos: checkpointCachek8s-redis-cache

    El checkpoint de LangGraph se guarda en Redis Cache.

  13. Cachek8s-redis-cacheflujo de datos: leer el checkpointcheckpoint-syncerk8s-worker-ai · k8s-worker-ai-2

    checkpoint-syncer lee el checkpoint desde Redis.

  14. checkpoint-syncerk8s-worker-ai · k8s-worker-ai-2flujo de datos: sincronizar con PostgreSQLPostgreSQLk8s-postgresql

    AsyncPostgresSaver lo guarda en PostgreSQL de forma asíncrona.

  15. Streamsk8s-redis-streamsflujo de datos: chat-persistence grouppersistence consumerk8s-api-chat

    El persistence consumer del nodo de Chat lee los eventos done como consumer group.

  16. persistence consumerk8s-api-chatflujo de datos: guardar mensajesPostgreSQLk8s-postgresql

    Los mensajes de Chat se guardan en PostgreSQL. Es un workload distinto de checkpoint-syncer.

Entrada · autenticación

La ruta síncrona desde la entrada del clúster hasta una API de dominio. Solo las rutas protegidas por una política comprueban primero la autenticación; el tráfico de pods entre nodos va por Calico VXLAN.

  1. Navegadorconsulta DNS: Consulta DNSRoute 53

    Solo se resuelve el nombre a partir de los registros de Route 53. Las solicitudes no pasan por el DNS.

  2. Navegadorflujo de datos: HTTPS 443AWS ALB

    TLS termina en el ALB.

  3. AWS ALBflujo de datos: HTTP · NodePortIstio ingress Envoyk8s-ingress-gateway

    Se entrega al Envoy de ingress de Istio a través del NodePort del destino de instancia EC2.

  4. Istio ingress Envoyk8s-ingress-gatewayflujo de datos: ext-authz · gRPC 50051ext-authzk8s-api-auth

    Solo las rutas bajo una política CUSTOM consultan primero al ext-authz en Go (tiempo de espera de 2 s, failOpen false). Rutas como login, health y docs quedan excluidas.

  5. ext-authzk8s-api-authflujo de datos: consulta de la blacklistblacklistk8s-redis-auth

    El token se comprueba contra la blacklist de Redis.

  6. Istio ingress Envoyk8s-ingress-gatewayflujo de datos: VirtualServiceChat APIk8s-api-chat

    Se enruta a la API de Chat.

  7. Chat APIk8s-api-chatflujo de datos: gRPCimages APIk8s-api-image

    La llamada síncrona chat → images indicada en el README.

  8. auth APIk8s-api-authflujo de datos: gRPCusers APIk8s-api-users

    La llamada síncrona auth → users indicada en el README.

Pool de almacenamiento · escrituras asíncronas

La blacklist de autenticación y la propiedad de los personajes las guardan los workers del pool de almacenamiento, que reciben su trabajo de RabbitMQ.

  1. blacklistk8s-redis-authflujo de datos: outbox:blacklistauth-relayk8s-worker-storage · k8s-worker-storage-2

    auth-relay (el auth-Bus del README) lee el outbox de Redis.

  2. auth-relayk8s-worker-storage · k8s-worker-storage-2flujo de datos: blacklist.eventsRabbitMQk8s-rabbitmq

    Vuelve a publicar en RabbitMQ, con reintentos y una DLQ.

  3. RabbitMQk8s-rabbitmqflujo de datos: blacklist.eventsauth-workerk8s-worker-storage · k8s-worker-storage-2

    auth-worker recibe los eventos de la blacklist.

  4. auth-workerk8s-worker-storage · k8s-worker-storage-2flujo de datos: guardar la blacklistblacklistk8s-redis-auth

    Se guardan en la blacklist de Redis.

  5. RabbitMQk8s-rabbitmqflujo de datos: Celery batchusers-workerk8s-worker-storage · k8s-worker-storage-2

    users-worker recibe por lotes el trabajo de propiedad de personajes.

  6. users-workerk8s-worker-storage · k8s-worker-storage-2flujo de datos: UPSERTPostgreSQLk8s-postgresql

    Se aplica a PostgreSQL.

Configurar · escalar · observar

La Platform Layer no es un paso por el que pasen las solicitudes; despliega, configura, escala y observa las demás capas. Los nodos son instancias EC2 creadas con Terraform, con kubeadm y Calico instalados mediante Ansible; la CI solo valida el Terraform y nunca lo aplica automáticamente.

  1. GitHub Actions · Docker Hubconfiguración · escalado: imagen · revisión de manifestArgo CD image updaterk8s-master

    Argo CD alinea la configuración del clúster mediante App-of-Apps y Sync Waves. Solo se confirmó la ubicación en el control plane del image updater.

  2. ALB Controller · ExternalDNSk8s-masterconfiguración · escalado: Ingress → ALB · registros DNSAdministrado por AWS

    El ALB Controller y ExternalDNS configuran los recursos del lado de AWS. No es una ruta que sigan las solicitudes.

  3. Istiodk8s-masterconfiguración · escalado: Configuración xDSIstio ingress Envoyk8s-ingress-gateway

    Istiod envía por xDS la configuración de Gateway, VirtualService y EnvoyFilter al Envoy de ingress y al sidecar Envoy de cada API.

  4. KEDAk8s-monitoringconfiguración · escalado: número de podsPool de IAk8s-worker-ai · k8s-worker-ai-2

    KEDA ajusta el número de pods de los workers. El número de nodos no cambia.

  5. KEDAk8s-monitoringconfiguración · escalado: número de podspool de almacenamientok8s-worker-storage · k8s-worker-storage-2

    Los pods de los workers del pool de almacenamiento se escalan igual.

  6. Fluent Bitobservabilidad: logsElasticsearchk8s-logging

    Fluent Bit es un DaemonSet en cada nodo y envía los logs a Elasticsearch.

  7. Pool de IAk8s-worker-ai · k8s-worker-ai-2observabilidad: trazado de ejecuciones de LLMLangSmith

    Las trazas de las llamadas a LLM van a LangSmith, un SaaS externo.

Todas las conexiones con el mismo grosor. Elija un flujo para resaltar solo su recorrido, con pasos numerados.

  • Continua · dirección en la que fluyen solicitudes, trabajo, eventos y escrituras
  • Punteada · consulta DNS; las solicitudes no pasan por ella
  • Discontinua · configuración o escalado; no es una ruta de datos
  • Raya y punto largos · registros y trazado de ejecuciones
  • Línea negra gruesa · el flujo seleccionado; los números dan el orden
  • Recuadro · un nodo físico, con el nombre del host en la cabecera
  • Chip interior · una carga de trabajo que corre en ese nodo
  • Marco discontinuo · un pool de programación de dos nodos
  • Recuadro discontinuo · fuera del clúster, no se cuenta como nodo
  • Contorno naranja · donde decide un modelo
  • Control plane1 nodo
  • Domain API8 nodos
  • Pool de IA2 nodos
  • pool de almacenamiento2 nodos
  • Data5 nodos
  • Platform6 nodos

Las cinco capas del README (las bandas) y los grupos físicos (el tono de la cabecera de cada nodo) agrupan de forma distinta los mismos 24 nodos. State KV comparte el nodo de Streams y no se cuenta aparte; Route 53, el ALB y los servicios fuera del clúster no son nodos. Un pool es un rango de scheduling, no la afirmación de que cada pod se ejecute en ambos nodos.

Disposición de 24 nodos · según la lista de nodos del panel del January 21, 2026

24nodos

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

  1. 1Control plane

    role: control-plane

    kube-apiserver · scheduler · controller-manager · etcd, además de los controladores de la plataforma.

    1. k8s-master
  2. 8Domain API

    domain: <servicio>

    Un nodo por dominio. Las llamadas internas usan 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

    Dos pools de scheduling de dos nodos cada uno. KEDA cambia el número de pods; el número de nodos se mantiene.

    pool de almacenamientodomain: worker-storage
    1. k8s-worker-storage
    2. k8s-worker-storage-2
    Pool de IAdomain: worker-ai
    1. k8s-worker-ai
    2. k8s-worker-ai-2
  4. 5Data

    Redis se reparte en cuatro nodos por propósito. El almacenamiento de PostgreSQL es EBS CSI · gp3.

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

    La mensajería, la observabilidad, el ingress y la entrega en tiempo real tienen cada uno su propio nodo.

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

Modelos configurados · por proveedor

El servicio se cerró, así que son los modelos configurados en el repositorio, no opciones disponibles hoy. Cada rol se indica por separado; no es una lista de ejecuciones verificadas.

  • OpenAI

    Proveedor predeterminado de Chat

    Chat

    • openai/gpt-5.2por defecto

    El modelo predeterminado es gpt-5.2; si la solicitud indica un modelo, se usa ese.

    Scan

    • gpt-5.2por defecto
    • gpt-5.2-pro
    • gpt-5.1
    • gpt-5
    • gpt-5-pro
    • gpt-5-mini

    Se rechazan los modelos fuera del mapeo de 13 modelos.

    Mapeo de imágenes

    • gpt-image-1.5

    Aparte de gpt-5.2, el modelo de orquestación de Responses. La generación de imágenes está desactivada por defecto.

    Evaluación

    • gpt-4o-minipor defecto

    El calificador LLM de la evaluación de conversaciones, aparte del modelo de Chat.

  • Google

    Cuando Chat elige Google

    Chat

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

    Con Google seleccionado, gemini-3-flash-preview es el predeterminado.

    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

    Mapeo de imágenes

    • gemini-3-pro-image-preview