From 752f23dbae004aab36508430a81e237625c9a062 Mon Sep 17 00:00:00 2001 From: Claus Ibsen Date: Mon, 31 Aug 2026 12:22:45 +0200 Subject: [PATCH] chore: fix Vertex AI global region URL in LlmClient CLOUD_ML_REGION=global must use the aiplatform.googleapis.com host with no region prefix; the region-prefixed host only applies to regional locations (e.g. us-east5). The unconditional prefix broke the TUI's F8 AI panel and camel ask/explain/harden when Vertex AI env vars were set to the global region. Closes #25936 Co-Authored-By: Claude Sonnet 5 --- .../apache/camel/dsl/jbang/core/commands/LlmClient.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/LlmClient.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/LlmClient.java index 18d517badab59..94f94b788887c 100644 --- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/LlmClient.java +++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/LlmClient.java @@ -1226,9 +1226,13 @@ private JsonObject buildAnthropicRequest(String systemPrompt, JsonArray messages private String resolveAnthropicUrl() { if (isVertexAi()) { String vertexModel = resolveVertexModel(model); + // The "global" location uses the global host with no region prefix; + // regional locations (e.g. us-east5) prefix the host with the region. + String host + = "global".equals(vertexRegion) ? "aiplatform.googleapis.com" : vertexRegion + "-aiplatform.googleapis.com"; return String.format( - "https://%s-aiplatform.googleapis.com/v1/projects/%s/locations/%s/publishers/anthropic/models/%s:rawPredict", - vertexRegion, vertexProjectId, vertexRegion, vertexModel); + "https://%s/v1/projects/%s/locations/%s/publishers/anthropic/models/%s:rawPredict", + host, vertexProjectId, vertexRegion, vertexModel); } String base = url != null ? url : DEFAULT_ANTHROPIC_URL; if (base.endsWith("/")) {