ui: default model support (#2015)
This commit is contained in:
@@ -93,8 +93,8 @@ export default function App() {
|
||||
try {
|
||||
const config = window.electron.getConfig();
|
||||
|
||||
const provider = config.GOOSE_PROVIDER ?? (await read('GOOSE_PROVIDER', false));
|
||||
const model = config.GOOSE_MODEL ?? (await read('GOOSE_MODEL', false));
|
||||
const provider = (await read('GOOSE_PROVIDER', false)) ?? config.GOOSE_DEFAULT_PROVIDER;
|
||||
const model = (await read('GOOSE_MODEL', false)) ?? config.GOOSE_DEFAULT_MODEL;
|
||||
|
||||
if (provider && model) {
|
||||
setView('chat');
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -113,7 +113,7 @@ const getGooseProvider = () => {
|
||||
//{env-macro-start}//
|
||||
//needed when goose is bundled for a specific provider
|
||||
//{env-macro-end}//
|
||||
return [process.env.GOOSE_PROVIDER, process.env.GOOSE_MODEL];
|
||||
return [process.env.GOOSE_DEFAULT_PROVIDER, process.env.GOOSE_DEFAULT_MODEL];
|
||||
};
|
||||
|
||||
const generateSecretKey = () => {
|
||||
@@ -144,8 +144,8 @@ let sharingUrl = getSharingUrl();
|
||||
let gooseVersion = getVersion();
|
||||
|
||||
let appConfig = {
|
||||
GOOSE_PROVIDER: provider,
|
||||
GOOSE_MODEL: model,
|
||||
GOOSE_DEFAULT_PROVIDER: provider,
|
||||
GOOSE_DEFAULT_MODEL: model,
|
||||
GOOSE_API_HOST: 'http://127.0.0.1',
|
||||
GOOSE_PORT: 0,
|
||||
GOOSE_WORKING_DIR: '',
|
||||
|
||||
Reference in New Issue
Block a user