diff --git a/arch/arch_config_schema.yaml b/arch/arch_config_schema.yaml index b30282a0..5e259942 100644 --- a/arch/arch_config_schema.yaml +++ b/arch/arch_config_schema.yaml @@ -70,6 +70,7 @@ properties: provider_interface: type: string enum: + - arch - claude - deepseek - groq diff --git a/arch/envoy.template.yaml b/arch/envoy.template.yaml index 56070bfe..92db9f3b 100644 --- a/arch/envoy.template.yaml +++ b/arch/envoy.template.yaml @@ -472,6 +472,31 @@ static_resources: clusters: + - name: arch + connect_timeout: 0.5s + type: LOGICAL_DNS + dns_lookup_family: V4_ONLY + lb_policy: ROUND_ROBIN + load_assignment: + cluster_name: arch + endpoints: + - lb_endpoints: + - endpoint: + address: + socket_address: + address: archfc.katanemo.dev + port_value: 443 + hostname: "archfc.katanemo.dev" + transport_socket: + name: envoy.transport_sockets.tls + typed_config: + "@type": type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.UpstreamTlsContext + sni: archfc.katanemo.dev + common_tls_context: + tls_params: + tls_minimum_protocol_version: TLSv1_2 + tls_maximum_protocol_version: TLSv1_3 + - name: claude connect_timeout: 0.5s type: LOGICAL_DNS @@ -752,22 +777,6 @@ static_resources: port_value: 9091 hostname: localhost - - name: router_model_host - connect_timeout: 0.5s - type: LOGICAL_DNS - dns_lookup_family: V4_ONLY - lb_policy: ROUND_ROBIN - load_assignment: - cluster_name: router_model_host - endpoints: - - lb_endpoints: - - endpoint: - address: - socket_address: - address: 34.30.16.38 - port_value: 8000 - hostname: router_model_host - - name: arch_prompt_gateway_listener connect_timeout: 0.5s type: LOGICAL_DNS diff --git a/crates/brightstaff/src/router/llm_router.rs b/crates/brightstaff/src/router/llm_router.rs index 8d8c057f..48851184 100644 --- a/crates/brightstaff/src/router/llm_router.rs +++ b/crates/brightstaff/src/router/llm_router.rs @@ -120,6 +120,11 @@ impl RouterService { ); } + llm_route_request_headers.insert( + header::HeaderName::from_static("model"), + header::HeaderValue::from_static("arch-router"), + ); + let start_time = std::time::Instant::now(); let res = self .client diff --git a/crates/common/src/configuration.rs b/crates/common/src/configuration.rs index 87293583..655361e9 100644 --- a/crates/common/src/configuration.rs +++ b/crates/common/src/configuration.rs @@ -145,6 +145,8 @@ pub struct EmbeddingProviver { #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Hash)] pub enum LlmProviderType { + #[serde(rename = "arch")] + Arch, #[serde(rename = "claude")] Claude, #[serde(rename = "deepseek")] @@ -160,6 +162,7 @@ pub enum LlmProviderType { impl Display for LlmProviderType { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { match self { + LlmProviderType::Arch => write!(f, "arch"), LlmProviderType::Claude => write!(f, "claude"), LlmProviderType::Deepseek => write!(f, "deepseek"), LlmProviderType::Groq => write!(f, "groq"),