diff --git a/surfsense_web/components/settings/model-connections/bedrock-connect-form.tsx b/surfsense_web/components/settings/model-connections/bedrock-connect-form.tsx
index 3115ac223..f76308421 100644
--- a/surfsense_web/components/settings/model-connections/bedrock-connect-form.tsx
+++ b/surfsense_web/components/settings/model-connections/bedrock-connect-form.tsx
@@ -87,14 +87,14 @@ export function BedrockConnectForm({ onDraftChange }: ProviderConnectFormProps)
setAccessKeyId(event.target.value)}
- placeholder="AKIAIOSFODNN7EXAMPLE"
+ placeholder="Enter your AWS access key ID"
/>
>
) : null}
diff --git a/surfsense_web/components/settings/model-connections/default-connect-form.tsx b/surfsense_web/components/settings/model-connections/default-connect-form.tsx
index ce638f5e6..14b0f4c1b 100644
--- a/surfsense_web/components/settings/model-connections/default-connect-form.tsx
+++ b/surfsense_web/components/settings/model-connections/default-connect-form.tsx
@@ -2,6 +2,8 @@ import { useEffect, useState } from "react";
import { ApiBaseUrlField, ApiKeyField } from "./connect-fields";
import type { ProviderConnectFormProps } from "./provider-metadata";
+const OPTIONAL_API_KEY_PROVIDERS = new Set(["ollama_chat", "lm_studio", "openai_compatible"]);
+
function baseUrlHint(provider: string) {
if (provider === "ollama_chat" || provider === "lm_studio") {
return "For local servers, use host.docker.internal instead of localhost.";
@@ -28,13 +30,14 @@ export function DefaultConnectForm({
}: ProviderConnectFormProps) {
const [baseUrl, setBaseUrl] = useState(defaultBaseUrl);
const [apiKey, setApiKey] = useState("");
- const isOllama = provider === "ollama_chat";
+ const isApiKeyOptional = OPTIONAL_API_KEY_PROVIDERS.has(provider);
const hint = baseUrlHint(provider);
- const canSubmit = !(baseUrlRequired && !baseUrl.trim());
+ const apiKeyValue = apiKey.trim();
+ const canSubmit = !(baseUrlRequired && !baseUrl.trim()) && (isApiKeyOptional || Boolean(apiKeyValue));
useEffect(() => {
- onDraftChange({ base_url: baseUrl || null, api_key: apiKey || null, extra: {} }, canSubmit);
- }, [apiKey, baseUrl, canSubmit, onDraftChange]);
+ onDraftChange({ base_url: baseUrl || null, api_key: apiKeyValue || null, extra: {} }, canSubmit);
+ }, [apiKeyValue, baseUrl, canSubmit, onDraftChange]);
return (
@@ -47,8 +50,8 @@ export function DefaultConnectForm({
);