[codex] fix profile scoped model selection (#881)
* fix profile scoped model selection * test profile scoped provider refresh
This commit is contained in:
@@ -4,6 +4,7 @@ import * as systemApi from '@/api/hermes/system'
|
||||
import type { AvailableModelGroup, CustomProvider } from '@/api/hermes/system'
|
||||
import { hasApiKey } from '@/api/client'
|
||||
import { useAppStore } from './app'
|
||||
import { useProfilesStore } from './profiles'
|
||||
|
||||
export const useModelsStore = defineStore('models', () => {
|
||||
const providers = ref<AvailableModelGroup[]>([])
|
||||
@@ -36,13 +37,12 @@ export const useModelsStore = defineStore('models', () => {
|
||||
if (!hasApiKey()) return
|
||||
loading.value = true
|
||||
try {
|
||||
const res = await systemApi.fetchAvailableModels()
|
||||
const profile = useProfilesStore().activeProfileName || 'default'
|
||||
const res = await systemApi.fetchAvailableModelsForProfile(profile)
|
||||
providers.value = res.groups
|
||||
allProviders.value = res.allProviders
|
||||
defaultModel.value = res.default
|
||||
defaultProvider.value = res.default_provider || ''
|
||||
const appStore = useAppStore()
|
||||
appStore.applyAvailableModelsResponse(res)
|
||||
} catch (err) {
|
||||
console.error('Failed to fetch providers:', err)
|
||||
} finally {
|
||||
@@ -61,11 +61,13 @@ export const useModelsStore = defineStore('models', () => {
|
||||
async function addProvider(data: CustomProvider) {
|
||||
await systemApi.addCustomProvider(data)
|
||||
await fetchProviders()
|
||||
await useAppStore().reloadModels()
|
||||
}
|
||||
|
||||
async function removeProvider(name: string) {
|
||||
await systemApi.removeCustomProvider(name)
|
||||
await fetchProviders()
|
||||
await useAppStore().reloadModels()
|
||||
}
|
||||
|
||||
return {
|
||||
|
||||
@@ -2,6 +2,7 @@ import { defineStore } from 'pinia'
|
||||
import { ref } from 'vue'
|
||||
import * as profilesApi from '@/api/hermes/profiles'
|
||||
import type { HermesProfile, HermesProfileDetail } from '@/api/hermes/profiles'
|
||||
import { useAppStore } from './app'
|
||||
|
||||
const ACTIVE_PROFILE_STORAGE_KEY = 'hermes_active_profile_name'
|
||||
|
||||
@@ -141,6 +142,7 @@ export const useProfilesStore = defineStore('profiles', () => {
|
||||
// 假设切换成功(API 返回了 200),保持已设置的状态
|
||||
console.warn('Failed to refresh profiles list after switch, assuming switch succeeded:', err)
|
||||
}
|
||||
await useAppStore().reloadModels()
|
||||
}
|
||||
return ok
|
||||
} finally {
|
||||
|
||||
Reference in New Issue
Block a user