diff --git a/surfsense_web/app/dashboard/[search_space_id]/onboard/page.tsx b/surfsense_web/app/dashboard/[search_space_id]/onboard/page.tsx index 7382429d2..b81310e09 100644 --- a/surfsense_web/app/dashboard/[search_space_id]/onboard/page.tsx +++ b/surfsense_web/app/dashboard/[search_space_id]/onboard/page.tsx @@ -198,18 +198,18 @@ const OnboardPage = () => { className="grid grid-cols-1 md:grid-cols-3 gap-6 mb-10" > router.push(`/dashboard/${searchSpaceId}/team`)} - colorScheme="emerald" - delay={0.7} + buttonText="Start Chatting" + onClick={() => router.push(`/dashboard/${searchSpaceId}/researcher`)} + colorScheme="violet" + delay={0.9} /> { /> router.push(`/dashboard/${searchSpaceId}/researcher`)} - colorScheme="violet" - delay={0.9} + buttonText="Manage Team" + onClick={() => router.push(`/dashboard/${searchSpaceId}/team`)} + colorScheme="emerald" + delay={0.7} /> + {/* Advanced Settings */} diff --git a/surfsense_web/components/onboard/setup-llm-step.tsx b/surfsense_web/components/onboard/setup-llm-step.tsx index 9735061ee..825b8a030 100644 --- a/surfsense_web/components/onboard/setup-llm-step.tsx +++ b/surfsense_web/components/onboard/setup-llm-step.tsx @@ -521,21 +521,50 @@ export function SetupLLMStep({ handleInputChange("api_key", e.target.value)} required /> + {formData.provider === "OLLAMA" && ( +

+ 💡 Ollama doesn't require authentication — enter any value (e.g., "ollama") +

+ )}
handleInputChange("api_base", e.target.value)} /> + {/* Ollama-specific help */} + {formData.provider === "OLLAMA" && ( +
+

💡 Ollama API Base URL Examples:

+
+ + +
+
+ )}
diff --git a/surfsense_web/components/search-space-form.tsx b/surfsense_web/components/search-space-form.tsx index ccb290dc8..d683772ef 100644 --- a/surfsense_web/components/search-space-form.tsx +++ b/surfsense_web/components/search-space-form.tsx @@ -36,7 +36,7 @@ import { cn } from "@/lib/utils"; // Define the form schema with Zod const searchSpaceFormSchema = z.object({ - name: z.string().min(3, "Name must be at least 3 characters"), + name: z.string().min(1, "Name is required"), description: z.string().optional(), }); diff --git a/surfsense_web/components/settings/model-config-manager.tsx b/surfsense_web/components/settings/model-config-manager.tsx index 16bd57e71..234301b7c 100644 --- a/surfsense_web/components/settings/model-config-manager.tsx +++ b/surfsense_web/components/settings/model-config-manager.tsx @@ -677,11 +677,16 @@ export function ModelConfigManager({ searchSpaceId }: ModelConfigManagerProps) { handleInputChange("api_key", e.target.value)} required /> + {formData.provider === "OLLAMA" && ( +

+ 💡 Ollama doesn't require authentication — enter any value (e.g., "ollama") +

+ )}
@@ -718,6 +723,30 @@ export function ModelConfigManager({ searchSpaceId }: ModelConfigManagerProps) {

)} + {/* Ollama-specific help */} + {formData.provider === "OLLAMA" && ( +
+

💡 Ollama API Base URL Examples:

+
+ + +
+
+ )}
{/* Optional Inference Parameters */} diff --git a/surfsense_web/contracts/enums/llm-providers.ts b/surfsense_web/contracts/enums/llm-providers.ts index cbe33d840..40b7ee2df 100644 --- a/surfsense_web/contracts/enums/llm-providers.ts +++ b/surfsense_web/contracts/enums/llm-providers.ts @@ -109,6 +109,7 @@ export const LLM_PROVIDERS: LLMProvider[] = [ label: "Ollama", example: "ollama/llama3.1, ollama/mistral", description: "Run models locally", + apiBase: "http://localhost:11434", }, { value: "ALIBABA_QWEN",