enable switching embedding models in the UI
This commit is contained in:
parent
88d73625b5
commit
bd7341af88
2 changed files with 18 additions and 7 deletions
|
|
@ -34,20 +34,25 @@ export const EmbeddingModelInput = ({
|
||||||
modelsData,
|
modelsData,
|
||||||
currentProvider = "openai",
|
currentProvider = "openai",
|
||||||
}: EmbeddingModelInputProps) => {
|
}: EmbeddingModelInputProps) => {
|
||||||
|
const isDisabled = Boolean(disabled);
|
||||||
|
const tooltipMessage = isDisabled
|
||||||
|
? "Locked to keep embeddings consistent"
|
||||||
|
: "Choose the embedding model for ingest and retrieval";
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<LabelWrapper
|
<LabelWrapper
|
||||||
helperText="Model used for knowledge ingest and retrieval"
|
helperText="Model used for knowledge ingest and retrieval"
|
||||||
id="embedding-model-select"
|
id="embedding-model-select"
|
||||||
label="Embedding model"
|
label="Embedding model"
|
||||||
>
|
>
|
||||||
<Select disabled={disabled} value={value} onValueChange={onChange}>
|
<Select disabled={isDisabled} value={value} onValueChange={onChange}>
|
||||||
<Tooltip delayDuration={0}>
|
<Tooltip delayDuration={0}>
|
||||||
<TooltipTrigger asChild>
|
<TooltipTrigger asChild>
|
||||||
<SelectTrigger disabled id="embedding-model-select">
|
<SelectTrigger disabled={isDisabled} id="embedding-model-select">
|
||||||
<SelectValue placeholder="Select an embedding model" />
|
<SelectValue placeholder="Select an embedding model" />
|
||||||
</SelectTrigger>
|
</SelectTrigger>
|
||||||
</TooltipTrigger>
|
</TooltipTrigger>
|
||||||
<TooltipContent>Locked to keep embeddings consistent</TooltipContent>
|
<TooltipContent>{tooltipMessage}</TooltipContent>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
<SelectContent>
|
<SelectContent>
|
||||||
<ModelSelectItems
|
<ModelSelectItems
|
||||||
|
|
|
||||||
|
|
@ -243,6 +243,8 @@ function KnowledgeSourcesPage() {
|
||||||
updateFlowSettingMutation.mutate({ embedding_model: newModel });
|
updateFlowSettingMutation.mutate({ embedding_model: newModel });
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const isEmbeddingModelSelectDisabled = updateFlowSettingMutation.isPending;
|
||||||
|
|
||||||
// Update chunk size setting with debounce
|
// Update chunk size setting with debounce
|
||||||
const handleChunkSizeChange = (value: string) => {
|
const handleChunkSizeChange = (value: string) => {
|
||||||
const numValue = Math.max(0, parseInt(value) || 0);
|
const numValue = Math.max(0, parseInt(value) || 0);
|
||||||
|
|
@ -1029,8 +1031,7 @@ function KnowledgeSourcesPage() {
|
||||||
label="Embedding model"
|
label="Embedding model"
|
||||||
>
|
>
|
||||||
<Select
|
<Select
|
||||||
// Disabled until API supports multiple embedding models
|
disabled={isEmbeddingModelSelectDisabled}
|
||||||
disabled={true}
|
|
||||||
value={
|
value={
|
||||||
settings.knowledge?.embedding_model ||
|
settings.knowledge?.embedding_model ||
|
||||||
modelsData?.embedding_models?.find((m) => m.default)
|
modelsData?.embedding_models?.find((m) => m.default)
|
||||||
|
|
@ -1041,12 +1042,17 @@ function KnowledgeSourcesPage() {
|
||||||
>
|
>
|
||||||
<Tooltip>
|
<Tooltip>
|
||||||
<TooltipTrigger asChild>
|
<TooltipTrigger asChild>
|
||||||
<SelectTrigger disabled id="embedding-model-select">
|
<SelectTrigger
|
||||||
|
disabled={isEmbeddingModelSelectDisabled}
|
||||||
|
id="embedding-model-select"
|
||||||
|
>
|
||||||
<SelectValue placeholder="Select an embedding model" />
|
<SelectValue placeholder="Select an embedding model" />
|
||||||
</SelectTrigger>
|
</SelectTrigger>
|
||||||
</TooltipTrigger>
|
</TooltipTrigger>
|
||||||
<TooltipContent>
|
<TooltipContent>
|
||||||
Locked to keep embeddings consistent
|
{isEmbeddingModelSelectDisabled
|
||||||
|
? "Please wait while we update your settings"
|
||||||
|
: "Choose the embedding model used for new ingests"}
|
||||||
</TooltipContent>
|
</TooltipContent>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
<SelectContent>
|
<SelectContent>
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue