Compare commits

...
Sign in to create a new pull request.

3 commits

Author SHA1 Message Date
Lucas Oliveira
e12a2ca5d5 Merge remote-tracking branch 'origin/main' into fix/model_selector 2025-10-03 09:38:09 -03:00
Lucas Oliveira
4225bbeb0d Changed settings page to use model selector 2025-10-02 14:09:46 -03:00
Lucas Oliveira
8360388101 updated model selector to not call function when model is empty 2025-10-02 14:09:31 -03:00
2 changed files with 13 additions and 26 deletions

View file

@ -44,7 +44,7 @@ export function ModelSelector({
const [searchValue, setSearchValue] = useState(""); const [searchValue, setSearchValue] = useState("");
useEffect(() => { useEffect(() => {
if (value && (!options.find((option) => option.value === value) && !custom)) { if (value && value !== "" && (!options.find((option) => option.value === value) && !custom)) {
onValueChange(""); onValueChange("");
} }
}, [options, value, custom, onValueChange]); }, [options, value, custom, onValueChange]);

View file

@ -13,6 +13,7 @@ import {
import { useGetSettingsQuery } from "@/app/api/queries/useGetSettingsQuery"; import { useGetSettingsQuery } from "@/app/api/queries/useGetSettingsQuery";
import { ConfirmationDialog } from "@/components/confirmation-dialog"; import { ConfirmationDialog } from "@/components/confirmation-dialog";
import { LabelWrapper } from "@/components/label-wrapper"; import { LabelWrapper } from "@/components/label-wrapper";
import OpenAILogo from "@/components/logo/openai-logo";
import { ProtectedRoute } from "@/components/protected-route"; import { ProtectedRoute } from "@/components/protected-route";
import { Button } from "@/components/ui/button"; import { Button } from "@/components/ui/button";
import { import {
@ -40,6 +41,7 @@ import {
UI_CONSTANTS, UI_CONSTANTS,
} from "@/lib/constants"; } from "@/lib/constants";
import { useDebounce } from "@/lib/debounce"; import { useDebounce } from "@/lib/debounce";
import { ModelSelector } from "../onboarding/components/model-selector";
import { getFallbackModels, type ModelProvider } from "./helpers/model-helpers"; import { getFallbackModels, type ModelProvider } from "./helpers/model-helpers";
import { ModelSelectItems } from "./helpers/model-select-item"; import { ModelSelectItems } from "./helpers/model-select-item";
@ -864,34 +866,19 @@ function KnowledgeSourcesPage() {
<CardContent> <CardContent>
<div className="space-y-6"> <div className="space-y-6">
<div className="space-y-2"> <div className="space-y-2">
<LabelWrapper <LabelWrapper
helperText="Model used for chat"
id="model-select"
label="Language model" label="Language model"
required helperText="Model used for chat"
id="embedding-model"
required={true}
> >
<Select <ModelSelector
value={ options={modelsData?.language_models || []}
settings.agent?.llm_model || noOptionsPlaceholder={modelsData ? "No language models detected." : "Loading models..."}
modelsData?.language_models?.find((m) => m.default) icon={<OpenAILogo className="w-4 h-4" />}
?.value || value={modelsData ? settings.agent?.llm_model || "" : ""}
"gpt-4"
}
onValueChange={handleModelChange} onValueChange={handleModelChange}
> />
<SelectTrigger id="model-select">
<SelectValue placeholder="Select a model" />
</SelectTrigger>
<SelectContent>
<ModelSelectItems
models={modelsData?.language_models}
fallbackModels={
getFallbackModels(currentProvider).language
}
provider={currentProvider}
/>
</SelectContent>
</Select>
</LabelWrapper> </LabelWrapper>
</div> </div>
<div className="space-y-2"> <div className="space-y-2">