diff --git a/crates/goose-server/src/routes/providers_and_keys.json b/crates/goose-server/src/routes/providers_and_keys.json index e4079e3d411e..5864f51076e3 100644 --- a/crates/goose-server/src/routes/providers_and_keys.json +++ b/crates/goose-server/src/routes/providers_and_keys.json @@ -9,7 +9,7 @@ "name": "Anthropic", "description": "Use Claude and other Anthropic models", "models": ["claude-3.5-sonnet-2"], - "required_keys": ["ANTHROPIC_API_KEY"] + "required_keys": ["ANTHROPIC_API_KEY", "ANTHROPIC_HOST"] }, "databricks": { "name": "Databricks", diff --git a/crates/goose/src/providers/anthropic.rs b/crates/goose/src/providers/anthropic.rs index 588642f8fb0e..4118c5982bc4 100644 --- a/crates/goose/src/providers/anthropic.rs +++ b/crates/goose/src/providers/anthropic.rs @@ -133,7 +133,7 @@ impl Provider for AnthropicProvider { ConfigKey::new("ANTHROPIC_API_KEY", true, true, None), ConfigKey::new( "ANTHROPIC_HOST", - false, + true, false, Some("https://api.anthropic.com"), ), diff --git a/documentation/docs/getting-started/providers.md b/documentation/docs/getting-started/providers.md index a199e3841ee3..3328d51008e5 100644 --- a/documentation/docs/getting-started/providers.md +++ b/documentation/docs/getting-started/providers.md @@ -20,7 +20,7 @@ Goose relies heavily on tool calling capabilities and currently works best with | Provider | Description | Parameters | |-----------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [Amazon Bedrock](https://aws.amazon.com/bedrock/) | Offers a variety of foundation models, including Claude, Jurassic-2, and others. **AWS environment variables must be set in advance, not configured through `goose configure`** | `AWS_PROFILE`, or `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_REGION`, ... | -| [Anthropic](https://www.anthropic.com/) | Offers Claude, an advanced AI model for natural language tasks. | `ANTHROPIC_API_KEY` | +| [Anthropic](https://www.anthropic.com/) | Offers Claude, an advanced AI model for natural language tasks. | `ANTHROPIC_API_KEY`, `ANTHROPIC_HOST` (optional) | | [Azure OpenAI](https://learn.microsoft.com/en-us/azure/ai-services/openai/) | Access Azure-hosted OpenAI models, including GPT-4 and GPT-3.5. | `AZURE_OPENAI_API_KEY`, `AZURE_OPENAI_ENDPOINT`, `AZURE_OPENAI_DEPLOYMENT_NAME` | | [Databricks](https://www.databricks.com/) | Unified data analytics and AI platform for building and deploying models. | `DATABRICKS_HOST`, `DATABRICKS_TOKEN` | | [Gemini](https://ai.google.dev/gemini-api/docs) | Advanced LLMs by Google with multimodal capabilities (text, images). | `GOOGLE_API_KEY` | diff --git a/ui/desktop/src/components/settings/api_keys/utils.tsx b/ui/desktop/src/components/settings/api_keys/utils.tsx index 9477251266ee..da3be29eded4 100644 --- a/ui/desktop/src/components/settings/api_keys/utils.tsx +++ b/ui/desktop/src/components/settings/api_keys/utils.tsx @@ -5,6 +5,7 @@ import { default_key_value, required_keys } from '../models/hardcoded_stuff'; // export function isSecretKey(keyName: string): boolean { // Endpoints and hosts should not be stored as secrets const nonSecretKeys = [ + 'ANTHROPIC_HOST', 'DATABRICKS_HOST', 'OLLAMA_HOST', 'OPENAI_HOST', diff --git a/ui/desktop/src/components/settings/models/hardcoded_stuff.tsx b/ui/desktop/src/components/settings/models/hardcoded_stuff.tsx index 94185b4e7589..751260eaf87b 100644 --- a/ui/desktop/src/components/settings/models/hardcoded_stuff.tsx +++ b/ui/desktop/src/components/settings/models/hardcoded_stuff.tsx @@ -57,7 +57,7 @@ export const short_list = ['gpt-4o', 'claude-3-5-sonnet-latest']; export const required_keys = { OpenAI: ['OPENAI_API_KEY', 'OPENAI_HOST', 'OPENAI_BASE_PATH'], - Anthropic: ['ANTHROPIC_API_KEY'], + Anthropic: ['ANTHROPIC_API_KEY', 'ANTHROPIC_HOST'], Databricks: ['DATABRICKS_HOST'], Groq: ['GROQ_API_KEY'], Ollama: ['OLLAMA_HOST'], @@ -69,6 +69,7 @@ export const required_keys = { }; export const default_key_value = { + ANTHROPIC_HOST: 'https://api.anthropic.com', OPENAI_HOST: 'https://api.openai.com', OPENAI_BASE_PATH: 'v1/chat/completions', OLLAMA_HOST: 'localhost', diff --git a/ui/desktop/src/components/settings_v2/providers/ProviderRegistry.tsx b/ui/desktop/src/components/settings_v2/providers/ProviderRegistry.tsx index 0dd7aa16297a..059e2922688d 100644 --- a/ui/desktop/src/components/settings_v2/providers/ProviderRegistry.tsx +++ b/ui/desktop/src/components/settings_v2/providers/ProviderRegistry.tsx @@ -91,6 +91,11 @@ export const PROVIDER_REGISTRY: ProviderRegistry[] = [ name: 'ANTHROPIC_API_KEY', is_secret: true, }, + { + name: 'ANTHROPIC_HOST', + is_secret: false, + default: 'https://api.anthropic.com', + }, ], }, },