From eea41c04d9e7cc13e87b8ee6c53bd45eb357da0f Mon Sep 17 00:00:00 2001 From: Lucas Oliveira Date: Thu, 18 Sep 2025 17:39:42 -0300 Subject: [PATCH] Refactored to have models inside ollama --- frontend/src/app/onboarding/advanced.tsx | 99 +++++++++++-------- .../src/app/onboarding/ibm-onboarding.tsx | 44 ++++++++- .../src/app/onboarding/model-selector.tsx | 1 + .../src/app/onboarding/ollama-onboarding.tsx | 44 +++++++-- .../src/app/onboarding/openai-onboarding.tsx | 37 ++++++- frontend/src/app/onboarding/page.tsx | 15 ++- 6 files changed, 188 insertions(+), 52 deletions(-) diff --git a/frontend/src/app/onboarding/advanced.tsx b/frontend/src/app/onboarding/advanced.tsx index ae734444..32071ba1 100644 --- a/frontend/src/app/onboarding/advanced.tsx +++ b/frontend/src/app/onboarding/advanced.tsx @@ -1,4 +1,3 @@ -import { useState } from "react"; import { LabelWrapper } from "@/components/label-wrapper"; import OllamaLogo from "@/components/logo/ollama-logo"; import { @@ -12,59 +11,77 @@ import { Switch } from "@/components/ui/switch"; import { ModelSelector } from "./model-selector"; export function AdvancedOnboarding({ - modelProvider, + icon, + languageModels, + embeddingModels, + languageModel, + embeddingModel, + setLanguageModel, + setEmbeddingModel, + sampleDataset, + setSampleDataset, }: { - modelProvider: string; + icon?: React.ReactNode; + languageModels?: { value: string; label: string }[]; + embeddingModels?: { value: string; label: string }[]; + languageModel?: string; + embeddingModel?: string; + setLanguageModel?: (model: string) => void; + setEmbeddingModel?: (model: string) => void; + sampleDataset: boolean; + setSampleDataset: (dataset: boolean) => void; }) { - const [model, setModel] = useState(""); - const options = [ - { value: "gpt-4", label: "GPT-4" }, - { value: "gpt-4-turbo", label: "GPT-4 Turbo" }, - { value: "gpt-3.5-turbo", label: "GPT-3.5 Turbo" }, - { value: "claude-3-opus", label: "Claude 3 Opus" }, - { value: "claude-3-sonnet", label: "Claude 3 Sonnet" }, - ]; + const hasEmbeddingModels = + embeddingModels && embeddingModel && setEmbeddingModel; + const hasLanguageModels = languageModels && languageModel && setLanguageModel; return ( Advanced settings - - } - value={model} - onValueChange={setModel} - /> - - - } - value={model} - onValueChange={setModel} - /> - - + {hasEmbeddingModels && ( + + + + )} + {hasLanguageModels && ( + + + + )} + {(hasLanguageModels || hasEmbeddingModels) && } - + diff --git a/frontend/src/app/onboarding/ibm-onboarding.tsx b/frontend/src/app/onboarding/ibm-onboarding.tsx index fccbc732..f77e2d99 100644 --- a/frontend/src/app/onboarding/ibm-onboarding.tsx +++ b/frontend/src/app/onboarding/ibm-onboarding.tsx @@ -1,14 +1,46 @@ +import { useState } from "react"; import { LabelInput } from "@/components/label-input"; +import IBMLogo from "@/components/logo/ibm-logo"; import type { Settings } from "../api/queries/useGetSettingsQuery"; import { AdvancedOnboarding } from "./advanced"; export function IBMOnboarding({ settings, setSettings, + sampleDataset, + setSampleDataset, }: { settings: Settings; setSettings: (settings: Settings) => void; + sampleDataset: boolean; + setSampleDataset: (dataset: boolean) => void; }) { + const languageModels = [ + { value: "gpt-oss", label: "gpt-oss" }, + { value: "llama3.1", label: "llama3.1" }, + { value: "llama3.2", label: "llama3.2" }, + { value: "llama3.3", label: "llama3.3" }, + { value: "llama3.4", label: "llama3.4" }, + { value: "llama3.5", label: "llama3.5" }, + ]; + const embeddingModels = [ + { value: "text-embedding-3-small", label: "text-embedding-3-small" }, + ]; + const [languageModel, setLanguageModel] = useState("gpt-oss"); + const [embeddingModel, setEmbeddingModel] = useState( + "text-embedding-3-small", + ); + const handleLanguageModelChange = (model: string) => { + setLanguageModel(model); + }; + + const handleEmbeddingModelChange = (model: string) => { + setEmbeddingModel(model); + }; + + const handleSampleDatasetChange = (dataset: boolean) => { + setSampleDataset(dataset); + }; return ( <> - + } + languageModels={languageModels} + embeddingModels={embeddingModels} + languageModel={languageModel} + embeddingModel={embeddingModel} + sampleDataset={sampleDataset} + setLanguageModel={handleLanguageModelChange} + setEmbeddingModel={handleEmbeddingModelChange} + setSampleDataset={handleSampleDatasetChange} + /> ); } diff --git a/frontend/src/app/onboarding/model-selector.tsx b/frontend/src/app/onboarding/model-selector.tsx index 5314cb0e..c6cdebab 100644 --- a/frontend/src/app/onboarding/model-selector.tsx +++ b/frontend/src/app/onboarding/model-selector.tsx @@ -35,6 +35,7 @@ export function ModelSelector({ return ( + {/** biome-ignore lint/a11y/useSemanticElements: has to be a Button */}