openrag/frontend/app/onboarding/_components/advanced.tsx
Cole Goldsmith d47038e097
Reorganize folders within frontend (#407)
* reorganize folder structure

* move folders from merge

* fix import issue

* run format

* update configs
2025-11-17 08:23:23 -06:00

79 lines
2.2 KiB
TypeScript

import { LabelWrapper } from "@/components/label-wrapper";
import {
Accordion,
AccordionContent,
AccordionItem,
AccordionTrigger,
} from "@/components/ui/accordion";
import { ModelSelector } from "./model-selector";
export function AdvancedOnboarding({
icon,
languageModels,
embeddingModels,
languageModel,
embeddingModel,
setLanguageModel,
setEmbeddingModel,
sampleDataset,
setSampleDataset,
}: {
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 hasEmbeddingModels =
embeddingModels !== undefined &&
embeddingModel !== undefined &&
setEmbeddingModel !== undefined;
const hasLanguageModels =
languageModels !== undefined &&
languageModel !== undefined &&
setLanguageModel !== undefined;
return (
<Accordion type="single" collapsible>
<AccordionItem value="item-1">
<AccordionTrigger>Advanced settings</AccordionTrigger>
<AccordionContent className="space-y-6">
{hasEmbeddingModels && (
<LabelWrapper
label="Embedding model"
helperText="Model used for knowledge ingest and retrieval"
id="embedding-model"
required={true}
>
<ModelSelector
options={embeddingModels}
icon={icon}
value={embeddingModel}
onValueChange={setEmbeddingModel}
/>
</LabelWrapper>
)}
{hasLanguageModels && (
<LabelWrapper
label="Language model"
helperText="Model used for chat"
id="embedding-model"
required={true}
>
<ModelSelector
options={languageModels}
icon={icon}
value={languageModel}
onValueChange={setLanguageModel}
/>
</LabelWrapper>
)}
</AccordionContent>
</AccordionItem>
</Accordion>
);
}