Compare commits

...

1 Commits

Author SHA1 Message Date
pablodanswer
171deb495e fix model defaults 2025-01-27 21:22:45 -08:00
2 changed files with 45 additions and 11 deletions

View File

@@ -293,19 +293,22 @@ export function ChatPage({
);
};
const llmOverrideManager = useLlmOverride(
llmProviders,
user?.preferences.default_model,
selectedChatSession
);
const [alternativeAssistant, setAlternativeAssistant] =
useState<Persona | null>(null);
const [presentingDocument, setPresentingDocument] =
useState<OnyxDocument | null>(null);
const { recentAssistants, refreshRecentAssistants } = useAssistants();
const { recentAssistants, refreshRecentAssistants, assistants } =
useAssistants();
const llmOverrideManager = useLlmOverride(
llmProviders,
user?.preferences.default_model,
selectedChatSession,
undefined,
assistants
);
const liveAssistant: Persona | undefined =
alternativeAssistant ||
@@ -336,7 +339,7 @@ export function ChatPage({
);
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [liveAssistant, user?.preferences.default_model]);
}, [liveAssistant, user?.preferences.default_model, selectedChatSession]);
const stopGenerating = () => {
const currentSession = currentSessionId();

View File

@@ -13,12 +13,16 @@ import { errorHandlingFetcher } from "./fetcher";
import { useContext, useEffect, useState } from "react";
import { DateRangePickerValue } from "@/app/ee/admin/performance/DateRangeSelector";
import { Filters, SourceMetadata } from "./search/interfaces";
import { destructureValue, structureValue } from "./llm/utils";
import {
destructureValue,
getLLMProviderOverrideForPersona,
structureValue,
} from "./llm/utils";
import { ChatSession } from "@/app/chat/interfaces";
import { AllUsersResponse } from "./types";
import { Credential } from "./connectors/credentials";
import { SettingsContext } from "@/components/settings/SettingsProvider";
import { PersonaLabel } from "@/app/admin/assistants/interfaces";
import { Persona, PersonaLabel } from "@/app/admin/assistants/interfaces";
import { LLMProviderDescriptor } from "@/app/admin/configuration/llm/interfaces";
import { isAnthropic } from "@/app/admin/configuration/llm/interfaces";
import { getSourceMetadata } from "./sources";
@@ -367,7 +371,8 @@ export function useLlmOverride(
llmProviders: LLMProviderDescriptor[],
globalModel?: string | null,
currentChatSession?: ChatSession,
defaultTemperature?: number
defaultTemperature?: number,
assistants?: Persona[]
): LlmOverrideManager {
const getValidLlmOverride = (
overrideModel: string | null | undefined
@@ -424,6 +429,32 @@ export function useLlmOverride(
defaultTemperature !== undefined ? defaultTemperature : 0
);
useEffect(() => {
const currentPersona = assistants?.find(
(a) => a.id === currentChatSession?.persona_id
);
const personaDefault = currentPersona
? getLLMProviderOverrideForPersona(currentPersona, llmProviders)
: undefined;
if (personaDefault) {
updateLLMOverride(personaDefault);
} else {
updateLLMOverride(globalDefault);
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [currentChatSession]);
useEffect(() => {
if (currentChatSession?.current_alternate_model) {
setLlmOverride(
getValidLlmOverride(currentChatSession.current_alternate_model)
);
} else {
setLlmOverride(globalDefault);
}
}, [currentChatSession]);
useEffect(() => {
setGlobalDefault(getValidLlmOverride(globalModel));
}, [globalModel, llmProviders]);