admin: address: socket_address: { address: 0.0.0.0, port_value: 9901 } static_resources: listeners: address: socket_address: address: 0.0.0.0 port_value: 10000 filter_chains: - filters: - name: envoy.filters.network.http_connection_manager typed_config: "@type": type.googleapis.com/envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager stat_prefix: arch_ingress_http codec_type: AUTO scheme_header_transformation: scheme_to_overwrite: https access_log: - name: envoy.access_loggers.file typed_config: "@type": type.googleapis.com/envoy.extensions.access_loggers.file.v3.FileAccessLog path: "/var/log/arch_access.log" route_config: name: local_routes virtual_hosts: - name: local_service domains: - "*" routes: - match: prefix: "/mistral/v1/chat/completions" route: auto_host_rewrite: true cluster: mistral_7b_instruct timeout: 60s {% for provider in arch_llm_providers %} - match: prefix: "/" headers: - name: "x-arch-llm-provider" string_match: exact: {{ provider.name }} route: auto_host_rewrite: true cluster: {{ provider.provider }} timeout: 60s {% endfor %} http_filters: - name: envoy.filters.http.wasm typed_config: "@type": type.googleapis.com/udpa.type.v1.TypedStruct type_url: type.googleapis.com/envoy.extensions.filters.http.wasm.v3.Wasm value: config: name: "http_config" configuration: "@type": "type.googleapis.com/google.protobuf.StringValue" value: | {{ arch_config | indent(30) }} vm_config: runtime: "envoy.wasm.runtime.v8" code: local: filename: "/etc/envoy/proxy-wasm-plugins/intelligent_prompt_gateway.wasm" - name: envoy.filters.http.router typed_config: "@type": type.googleapis.com/envoy.extensions.filters.http.router.v3.Router clusters: - name: openai connect_timeout: 5s type: LOGICAL_DNS dns_lookup_family: V4_ONLY lb_policy: ROUND_ROBIN load_assignment: cluster_name: openai endpoints: - lb_endpoints: - endpoint: address: socket_address: address: api.openai.com port_value: 443 hostname: "api.openai.com" transport_socket: name: envoy.transport_sockets.tls typed_config: "@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext sni: api.openai.com common_tls_context: tls_params: tls_minimum_protocol_version: TLSv1_2 tls_maximum_protocol_version: TLSv1_3 - name: mistral connect_timeout: 5s type: LOGICAL_DNS dns_lookup_family: V4_ONLY lb_policy: ROUND_ROBIN load_assignment: cluster_name: mistral endpoints: - lb_endpoints: - endpoint: address: socket_address: address: api.mistral.ai port_value: 443 hostname: "api.mistral.ai" transport_socket: name: envoy.transport_sockets.tls typed_config: "@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext sni: api.mistral.ai - name: model_server connect_timeout: 5s type: STRICT_DNS dns_lookup_family: V4_ONLY lb_policy: ROUND_ROBIN load_assignment: cluster_name: model_server endpoints: - lb_endpoints: - endpoint: address: socket_address: address: host.docker.internal port_value: 51000 hostname: "model_server" - name: mistral_7b_instruct connect_timeout: 5s type: STRICT_DNS dns_lookup_family: V4_ONLY lb_policy: ROUND_ROBIN load_assignment: cluster_name: mistral_7b_instruct endpoints: - lb_endpoints: - endpoint: address: socket_address: address: mistral_7b_instruct port_value: 10001 hostname: "mistral_7b_instruct" - name: arch_fc connect_timeout: 5s type: STRICT_DNS dns_lookup_family: V4_ONLY lb_policy: ROUND_ROBIN load_assignment: cluster_name: arch_fc endpoints: - lb_endpoints: - endpoint: address: socket_address: address: host.docker.internal port_value: 51000 hostname: "arch_fc" {% for _, cluster in arch_clusters.items() %} - name: {{ cluster.name }} {% if cluster.connect_timeout -%} connect_timeout: {{ cluster.connect_timeout }} {% else -%} connect_timeout: 5s {% endif -%} type: LOGICAL_DNS dns_lookup_family: V4_ONLY lb_policy: ROUND_ROBIN load_assignment: cluster_name: {{ cluster.name }} endpoints: - lb_endpoints: - endpoint: address: socket_address: address: {{ cluster.endpoint }} port_value: {{ cluster.port }} hostname: {{ cluster.name }} {% endfor %}