ui: default model support (#2015)
This commit is contained in:
@@ -74,10 +74,12 @@ export async function changeModel({
|
||||
|
||||
interface getCurrentModelAndProviderProps {
|
||||
readFromConfig: (key: string, is_secret: boolean) => Promise<unknown>;
|
||||
writeToConfig?: (key: string, value: unknown, is_secret: boolean) => Promise<void>;
|
||||
}
|
||||
|
||||
export async function getCurrentModelAndProvider({
|
||||
readFromConfig,
|
||||
writeToConfig,
|
||||
}: getCurrentModelAndProviderProps) {
|
||||
let model: string;
|
||||
let provider: string;
|
||||
@@ -90,6 +92,26 @@ export async function getCurrentModelAndProvider({
|
||||
console.error(`Failed to read GOOSE_MODEL or GOOSE_PROVIDER from config`);
|
||||
throw error;
|
||||
}
|
||||
if (!model || !provider) {
|
||||
console.log('[getCurrentModelAndProvider] Checking app environment as fallback');
|
||||
return getFallbackModelAndProvider(writeToConfig);
|
||||
}
|
||||
return { model: model, provider: provider };
|
||||
}
|
||||
|
||||
export async function getFallbackModelAndProvider(
|
||||
writeToConfig: (key: string, value: unknown, is_secret: boolean) => Promise<void>
|
||||
) {
|
||||
const provider = window.appConfig.get('GOOSE_DEFAULT_PROVIDER');
|
||||
const model = window.appConfig.get('GOOSE_DEFAULT_MODEL');
|
||||
if (provider && model && writeToConfig) {
|
||||
try {
|
||||
await writeToConfig('GOOSE_MODEL', model, false);
|
||||
await writeToConfig('GOOSE_PROVIDER', provider, false);
|
||||
} catch (error) {
|
||||
console.error('[getFallbackModelAndProvider] Failed to write to config', error);
|
||||
}
|
||||
}
|
||||
return { model: model, provider: provider };
|
||||
}
|
||||
|
||||
|
||||
@@ -40,7 +40,10 @@ export function BaseModelsList({
|
||||
|
||||
const initializeCurrentModel = async () => {
|
||||
try {
|
||||
const result = await getCurrentModelAndProvider({ readFromConfig: read });
|
||||
const result = await getCurrentModelAndProvider({
|
||||
readFromConfig: read,
|
||||
writeToConfig: upsert,
|
||||
});
|
||||
if (isMounted) {
|
||||
// try to look up the model in the modelList
|
||||
let currentModel: Model;
|
||||
|
||||
@@ -118,7 +118,10 @@ export default function ProviderConfigurationModal() {
|
||||
const handleDelete = async () => {
|
||||
// Check if this is the currently active provider
|
||||
try {
|
||||
const providerModel = await getCurrentModelAndProvider({ readFromConfig: read });
|
||||
const providerModel = await getCurrentModelAndProvider({
|
||||
readFromConfig: read,
|
||||
writeToConfig: upsert,
|
||||
});
|
||||
if (currentProvider.name === providerModel.provider) {
|
||||
// It's the active provider - set state and show warning
|
||||
setIsActiveProvider(true);
|
||||
|
||||
Reference in New Issue
Block a user