Postać globusa Eco², dopracowana na potrzeby tego portfolio na podstawie najnowszej oficjalnej postaci głównej: błękitny globus z zielonymi lądami, kiełkiem na czubku i brązową uśmiechniętą twarzą
Powrót do sali

Eco²

Backend · Cloud infrastructure

Wskazówki segregacji z jednego zdjęcia i rozmowy.

Wszechstronny asystent AI, który rozumie zasady segregacji odpadów w Korei.

2025.10.31 — 2026.02.10

Projekt zespołowy · podstawy infrastruktury i wdrożeń → backend domenowy → przetwarzanie asynchroniczne, agent konwersacyjny, weryfikacja

2025 새싹 해커톤 (Saessak Hackathon)Nagroda za doskonałość · 2025.12.02

  • Aplikacja webowaUsługa zamknięta

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

Jak 24 węzły faktycznie się łączą, przepływ po przepływie.

Samodzielnie zarządzany Kubernetes zbudowany z kubeadm. Mapa umieszcza 24 fizyczne węzły i działające na nich workloady w pięciu warstwach z README i łączy je faktycznymi połączeniami. Wybór przepływu wyróżnia tylko tę ścieżkę z ponumerowanymi krokami.

Rozpoznaje odpady na zdjęciu i wyjaśnia, jak się ich pozbyć, a w rozmowie wywołuje narzędzia do miejsc, pogody, cen surowców wtórnych i wyszukiwania w sieci oraz generuje obrazy. W tym projekcie zespołowym mój zakres zaczął się od klastra i podstaw wdrożeń, a potem objął backend domenowy, przetwarzanie asynchroniczne, agenta konwersacyjnego i weryfikację.

Od prac konkursowych po wzmacnianie backendu i utrzymania

Usługa zakończyła działanie; nagrane demo i raport techniczny pokazują ją w działaniu.

Mapa połączeń klastra · narysowana na nowo z manifestów i kodu w commicie a072127
Mapa połączeń klastra Eco² · 24 węzłyMapa 24 fizycznych węzłów w pięciu pasach warstw z README. Przeglądarka tylko sprawdza nazwę w Route 53; po zakończeniu TLS na ALB na porcie 443 ingress Envoy Istio na NodePort przesyła żądanie do domenowego API. Scan API kolejkuje pracę w RabbitMQ i od razu zwraca job_id; scan-worker w puli AI dopisuje (XADD) zdarzenia postępu do Redis Streams. Event Router je odczytuje, aktualizuje State KV i publikuje do Pub/Sub, a SSE Gateway wysyła je do przeglądarki. checkpoint-syncer zapisuje checkpointy Chat, a persistence consumer na węźle Chat zapisuje wiadomości w PostgreSQL. Platform Layer nie jest ścieżką żądań; konfiguruje, skaluje i obserwuje.PrzeglądarkaHTTPS · SSEAWS ALB443 · tu kończy się TLSRoute 53DNSGitHub Actions · Docker Hubobraz · rewizja manifestuLLM APIOpenAI · GoogleLangSmithśledzenie przebiegów LLMFluent BitDaemonSet · każdy węzełk8s-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 węzły · kubeadmEdge Layer1 węzełService Layer8 węzłów · Envoy sidecarIntegration Layer7 węzłówPersistence Layer5 węzłówPlatform Layer3 węzły · konfiguracja · skalowanie · obserwacjaZarządzane przez AWSPula AIdomain: worker-aipula storagedomain: worker-storageBez przypiętego węzła1zapytanie DNS2 HTTPS 443 · Przeglądarka → AWS ALB23HTTP · NodePort4VirtualService5Zadanie Celery6 consume · RabbitMQ → scan-worker67 HTTPS · Pula AI → LLM API78XADD scan:events9XREADGROUP10SETEX state11PUBLISH12SUBSCRIBE13Strumień SSE14Przywracanie po ponownym połączeniu1 HTTPS 443 · Przeglądarka → AWS ALB12HTTP · NodePort3VirtualService4Zadanie Taskiq5 consume · RabbitMQ → chat-worker56 HTTPS · Pula AI → LLM API67XADD chat:events8XREADGROUP9PUBLISH10SUBSCRIBE11Strumień SSE12checkpoint13odczyt checkpointu14synchronizacja do PostgreSQL15chat-persistence group16zapis wiadomości1zapytanie DNS2 HTTPS 443 · Przeglądarka → AWS ALB23HTTP · NodePort4ext-authz · gRPC 500515sprawdzenie blacklisty6VirtualService7gRPC8gRPC1outbox:blacklist2blacklist.events3 blacklist.events · RabbitMQ → auth-worker34zapis blacklisty5 Celery batch · RabbitMQ → users-worker56UPSERT1obraz · rewizja manifestu2Ingress → ALB · rekordy DNS3konfiguracja xDS4liczba podów5 liczba podów · KEDA → pula storage56logi7 śledzenie przebiegów LLM · Pula AI → LangSmith7

Żądanie Scan → dostarczanie na żywo

Żądanie analizy zdjęcia staje się zakolejkowaną pracą, a jego zdarzenia postępu wracają do tej samej przeglądarki.

  1. Przeglądarkazapytanie DNS: zapytanie DNSRoute 53

    Z rekordów Route 53 rozwiązywana jest tylko nazwa. Żądania nie przechodzą przez DNS.

  2. Przeglądarkaprzepływ danych: HTTPS 443AWS ALB

    TLS kończy się na ALB.

  3. AWS ALBprzepływ danych: HTTP · NodePortIstio ingress Envoyk8s-ingress-gateway

    Przekazywane do ingress Envoy Istio przez NodePort celu typu instancja EC2.

  4. Istio ingress Envoyk8s-ingress-gatewayprzepływ danych: VirtualServiceScan APIk8s-api-scan

    Kierowane do Scan API, które kolejkuje pracę i od razu zwraca job_id; zapytanie o wynik odpowiada 202, dopóki zadanie się nie zakończy.

  5. Scan APIk8s-api-scanprzepływ danych: Zadanie CeleryRabbitMQk8s-rabbitmq

    Zadanie Scan trafia do RabbitMQ.

  6. RabbitMQk8s-rabbitmqprzepływ danych: consumescan-workerk8s-worker-ai · k8s-worker-ai-2

    scan-worker (Celery · gevent) w puli AI pobiera je i wykonuje Vision → Rule → Answer → Reward. Cztery etapy to połączone w łańcuch zadania Celery, a nie węzły.

  7. Pula AIk8s-worker-ai · k8s-worker-ai-2przepływ danych: HTTPSLLM API

    Workery scan i chat wywołują API OpenAI i Google.

  8. scan-workerk8s-worker-ai · k8s-worker-ai-2przepływ danych: XADD scan:eventsStreamsk8s-redis-streams

    Zdarzenia postępu są zapisywane do jednego z czterech shardów Streams.

  9. Streamsk8s-redis-streamsprzepływ danych: XREADGROUPEvent Routerk8s-event-router

    Event Router odczytuje je jako consumer group i po przetworzeniu wykonuje XACK; pending i reclaim utrzymują dostarczanie typu at-least-once.

  10. Event Routerk8s-event-routerprzepływ danych: SETEX stateState KVk8s-redis-streams

    Zapisuje najnowszy stan i znacznik duplikatu do State KV na tym samym węźle Redis.

  11. Event Routerk8s-event-routerprzepływ danych: PUBLISHPub/Subk8s-redis-pubsub

    Dostarczane w czasie rzeczywistym na kanale zadania w shardowanym Pub/Sub.

  12. Pub/Subk8s-redis-pubsubprzepływ danych: SUBSCRIBESSE Gatewayk8s-sse-gateway

    SSE Gateway subskrybuje przez jeden współdzielony listener na proces i rozsyła do każdej podłączonej przeglądarki.

  13. SSE Gatewayk8s-sse-gatewayprzepływ danych: Strumień SSEPrzeglądarka

    Połączenie otwarte tą samą ścieżką przez ALB i ingress. Dostarczanie typu at-least-once; duplikaty są obsługiwane idempotentnie.

  14. State KVk8s-redis-streamsprzepływ danych: Przywracanie po ponownym połączeniuSSE Gatewayk8s-sse-gateway

    Po ponownym połączeniu z Last-Event-ID State KV i zachowane Streams uzupełniają pominięte zdarzenia.

Chat · tokeny i zapis

Tokeny Chat idą tą samą ścieżką zdarzeń co Scan; checkpointy i wiadomości zapisują dwa różne workloady.

  1. Przeglądarkaprzepływ danych: HTTPS 443AWS ALB

    TLS kończy się na ALB.

  2. AWS ALBprzepływ danych: HTTP · NodePortIstio ingress Envoyk8s-ingress-gateway

    Przekazywane do ingress Envoy Istio przez NodePort celu typu instancja EC2.

  3. Istio ingress Envoyk8s-ingress-gatewayprzepływ danych: VirtualServiceChat APIk8s-api-chat

    Kierowane do Chat API.

  4. Chat APIk8s-api-chatprzepływ danych: Zadanie TaskiqRabbitMQk8s-rabbitmq

    Zadanie Chat trafia do RabbitMQ.

  5. RabbitMQk8s-rabbitmqprzepływ danych: consumechat-workerk8s-worker-ai · k8s-worker-ai-2

    chat-worker (Taskiq · asyncio) klasyfikuje intencję za pomocą LangGraph, a następnie w razie potrzeby uruchamia vision, wybrane narzędzia, aggregator i w razie potrzeby podsumowanie, po czym odpowiada. Każde żądanie wykonuje tylko potrzebne mu gałęzie.

  6. Pula AIk8s-worker-ai · k8s-worker-ai-2przepływ danych: HTTPSLLM API

    Workery scan i chat wywołują API OpenAI i Google.

  7. chat-workerk8s-worker-ai · k8s-worker-ai-2przepływ danych: XADD chat:eventsStreamsk8s-redis-streams

    Tokeny i zdarzenia etapów są zapisywane do czterech shardów Streams; dalej ścieżka dostarczania jest taka sama jak w Scan.

  8. Streamsk8s-redis-streamsprzepływ danych: XREADGROUPEvent Routerk8s-event-router

    Event Router odczytuje je jako consumer group i po przetworzeniu wykonuje XACK; pending i reclaim utrzymują dostarczanie typu at-least-once.

  9. Event Routerk8s-event-routerprzepływ danych: PUBLISHPub/Subk8s-redis-pubsub

    Dostarczane w czasie rzeczywistym na kanale zadania w shardowanym Pub/Sub.

  10. Pub/Subk8s-redis-pubsubprzepływ danych: SUBSCRIBESSE Gatewayk8s-sse-gateway

    SSE Gateway subskrybuje przez jeden współdzielony listener na proces i rozsyła do każdej podłączonej przeglądarki.

  11. SSE Gatewayk8s-sse-gatewayprzepływ danych: Strumień SSEPrzeglądarka

    Połączenie otwarte tą samą ścieżką przez ALB i ingress. Dostarczanie typu at-least-once; duplikaty są obsługiwane idempotentnie.

  12. chat-workerk8s-worker-ai · k8s-worker-ai-2przepływ danych: checkpointCachek8s-redis-cache

    Checkpoint LangGraph jest przechowywany w Redis Cache.

  13. Cachek8s-redis-cacheprzepływ danych: odczyt checkpointucheckpoint-syncerk8s-worker-ai · k8s-worker-ai-2

    checkpoint-syncer odczytuje checkpoint z Redis.

  14. checkpoint-syncerk8s-worker-ai · k8s-worker-ai-2przepływ danych: synchronizacja do PostgreSQLPostgreSQLk8s-postgresql

    AsyncPostgresSaver zapisuje go asynchronicznie w PostgreSQL.

  15. Streamsk8s-redis-streamsprzepływ danych: chat-persistence grouppersistence consumerk8s-api-chat

    Persistence consumer na węźle Chat odczytuje zdarzenia done jako consumer group.

  16. persistence consumerk8s-api-chatprzepływ danych: zapis wiadomościPostgreSQLk8s-postgresql

    Wiadomości Chat są zapisywane w PostgreSQL. To inny workload niż checkpoint-syncer.

Wejście · uwierzytelnianie

Synchroniczna ścieżka od wejścia do klastra do domenowego API. Tylko ścieżki chronione polityką najpierw sprawdzają uwierzytelnienie; ruch podów między węzłami odbywa się przez Calico VXLAN.

  1. Przeglądarkazapytanie DNS: zapytanie DNSRoute 53

    Z rekordów Route 53 rozwiązywana jest tylko nazwa. Żądania nie przechodzą przez DNS.

  2. Przeglądarkaprzepływ danych: HTTPS 443AWS ALB

    TLS kończy się na ALB.

  3. AWS ALBprzepływ danych: HTTP · NodePortIstio ingress Envoyk8s-ingress-gateway

    Przekazywane do ingress Envoy Istio przez NodePort celu typu instancja EC2.

  4. Istio ingress Envoyk8s-ingress-gatewayprzepływ danych: ext-authz · gRPC 50051ext-authzk8s-api-auth

    Tylko ścieżki objęte polityką CUSTOM najpierw pytają Go ext-authz (limit czasu 2 s, failOpen false). Ścieżki takie jak logowanie, health i docs są wyłączone.

  5. ext-authzk8s-api-authprzepływ danych: sprawdzenie blacklistyblacklistk8s-redis-auth

    Token jest sprawdzany w blackliście Redis.

  6. Istio ingress Envoyk8s-ingress-gatewayprzepływ danych: VirtualServiceChat APIk8s-api-chat

    Kierowane do Chat API.

  7. Chat APIk8s-api-chatprzepływ danych: gRPCimages APIk8s-api-image

    Synchroniczne wywołanie chat → images wymienione w README.

  8. auth APIk8s-api-authprzepływ danych: gRPCusers APIk8s-api-users

    Synchroniczne wywołanie auth → users wymienione w README.

Pula storage · zapisy asynchroniczne

Blacklistę uwierzytelniania i własność postaci zapisują workery puli storage, które pobierają pracę z RabbitMQ.

  1. blacklistk8s-redis-authprzepływ danych: outbox:blacklistauth-relayk8s-worker-storage · k8s-worker-storage-2

    auth-relay (auth-Bus z README) odczytuje outbox Redis.

  2. auth-relayk8s-worker-storage · k8s-worker-storage-2przepływ danych: blacklist.eventsRabbitMQk8s-rabbitmq

    Publikuje ponownie do RabbitMQ, z ponowieniami i DLQ.

  3. RabbitMQk8s-rabbitmqprzepływ danych: blacklist.eventsauth-workerk8s-worker-storage · k8s-worker-storage-2

    auth-worker odbiera zdarzenia blacklisty.

  4. auth-workerk8s-worker-storage · k8s-worker-storage-2przepływ danych: zapis blacklistyblacklistk8s-redis-auth

    Są zapisywane w blackliście Redis.

  5. RabbitMQk8s-rabbitmqprzepływ danych: Celery batchusers-workerk8s-worker-storage · k8s-worker-storage-2

    users-worker odbiera pracę dotyczącą własności postaci w partiach.

  6. users-workerk8s-worker-storage · k8s-worker-storage-2przepływ danych: UPSERTPostgreSQLk8s-postgresql

    Jest ona stosowana w PostgreSQL.

Konfiguracja · skalowanie · obserwacja

Platform Layer nie jest etapem, przez który przechodzą żądania; wdraża, konfiguruje, skaluje i obserwuje pozostałe warstwy. Węzły to instancje EC2 utworzone przez Terraform, z kubeadm i Calico zainstalowanymi przez Ansible; CI tylko waliduje Terraform i nigdy nie stosuje go automatycznie.

  1. GitHub Actions · Docker Hubkonfiguracja · skalowanie: obraz · rewizja manifestuArgo CD image updaterk8s-master

    Argo CD uzgadnia konfigurację klastra przez App-of-Apps i Sync Waves. Potwierdzono tylko umieszczenie image updatera w control-plane.

  2. ALB Controller · ExternalDNSk8s-masterkonfiguracja · skalowanie: Ingress → ALB · rekordy DNSZarządzane przez AWS

    ALB Controller i ExternalDNS konfigurują zasoby po stronie AWS. To nie jest ścieżka, którą idą żądania.

  3. Istiodk8s-masterkonfiguracja · skalowanie: konfiguracja xDSIstio ingress Envoyk8s-ingress-gateway

    Istiod przekazuje przez xDS konfigurację Gateway, VirtualService i EnvoyFilter do ingress Envoy i do sidecara Envoy każdego API.

  4. KEDAk8s-monitoringkonfiguracja · skalowanie: liczba podówPula AIk8s-worker-ai · k8s-worker-ai-2

    KEDA dostosowuje liczbę podów workerów. Liczba węzłów się nie zmienia.

  5. KEDAk8s-monitoringkonfiguracja · skalowanie: liczba podówpula storagek8s-worker-storage · k8s-worker-storage-2

    Pody workerów puli storage są skalowane w ten sam sposób.

  6. Fluent Bitobserwowalność: logiElasticsearchk8s-logging

    Fluent Bit to DaemonSet na każdym węźle, wysyłający logi do Elasticsearch.

  7. Pula AIk8s-worker-ai · k8s-worker-ai-2obserwowalność: śledzenie przebiegów LLMLangSmith

    Ślady wywołań LLM trafiają do LangSmith, zewnętrznej usługi SaaS.

Każde połączenie z tą samą wagą. Wybór przepływu wyróżnia tylko jego ścieżkę z ponumerowanymi krokami.

  • Linia ciągła · kierunek przepływu żądań, pracy, zdarzeń i zapisów
  • Kropkowana · zapytanie DNS; żądania przez nie nie przechodzą
  • Linia przerywana · konfiguracja lub skalowanie; nie ścieżka danych
  • Długa kreska z kropką · logi i śledzenie przebiegów
  • Gruba czarna linia · wybrany przepływ; liczby podają kolejność
  • Ramka · fizyczny węzeł, nazwa hosta w nagłówku
  • Wewnętrzny element · workload działający na tym węźle
  • Przerywana obwódka · dwuwęzłowa pula planowania
  • Przerywana ramka · poza klastrem, nie liczona jako węzeł
  • Pomarańczowy obrys · miejsce, w którym decyduje model
  • Control plane1 węzeł
  • Domain API8 węzłów
  • Pula AI2 węzły
  • pula storage2 węzły
  • Data5 węzłów
  • Platform6 węzłów

Pięć warstw z README (pasy) i grupy fizyczne (odcień nagłówka każdego węzła) grupują te same 24 węzły inaczej. State KV dzieli węzeł ze Streams i nie jest liczony osobno; Route 53, ALB i usługi spoza klastra nie są węzłami. Pula to zakres planowania, a nie twierdzenie, że każdy pod działa na obu węzłach.

Układ 24 węzłów · według listy węzłów z panelu z January 21, 2026

24węzły

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

  1. 1Control plane

    role: control-plane

    kube-apiserver · scheduler · controller-manager · etcd oraz kontrolery platformy.

    1. k8s-master
  2. 8Domain API

    domain: <usługa>

    Jeden węzeł na domenę. Wywołania wewnętrzne używają 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

    Dwie pule planowania po dwa węzły. KEDA zmienia liczbę podów; liczba węzłów pozostaje taka sama.

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

    Redis jest podzielony według przeznaczenia na cztery węzły. Magazyn PostgreSQL to EBS CSI · gp3.

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

    Komunikaty, obserwowalność, ingress i dostarczanie w czasie rzeczywistym mają każdy własny węzeł.

    1. k8s-rabbitmq
    2. k8s-monitoring
    3. k8s-logging
    4. k8s-ingress-gateway
    5. k8s-sse-gateway
    6. k8s-event-router
Każdy węzeł
  • Fluent Bit · DaemonSet
  • Calico

Skonfigurowane modele · według dostawcy

Usługa została wyłączona, więc są to modele skonfigurowane w repozytorium, a nie dziś dostępne opcje. Każda rola jest wymieniona osobno; to nie jest lista zweryfikowanych przebiegów.

  • OpenAI

    Domyślny dostawca Chat

    Chat

    • openai/gpt-5.2domyślny

    Domyślnym modelem jest gpt-5.2; model wskazany w żądaniu ma pierwszeństwo.

    Scan

    • gpt-5.2domyślny
    • gpt-5.2-pro
    • gpt-5.1
    • gpt-5
    • gpt-5-pro
    • gpt-5-mini

    Modele spoza mapowania 13 modeli są odrzucane.

    Mapowanie obrazów

    • gpt-image-1.5

    Oddzielny od gpt-5.2, modelu orkiestracji Responses. Generowanie obrazów jest domyślnie wyłączone.

    Ewaluacja

    • gpt-4o-minidomyślny

    Oceniający LLM do ewaluacji rozmów, oddzielny od modelu Chat.

  • Google

    Gdy Chat wybiera Google

    Chat

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

    Przy wybranym Google domyślny jest gemini-3-flash-preview.

    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

    Mapowanie obrazów

    • gemini-3-pro-image-preview