fixed /chat
This commit is contained in:
@@ -31,23 +31,15 @@ export function usePiModels() {
|
||||
enabled: isAuthenticated,
|
||||
queryFn: async () => {
|
||||
const data = await client.get<{ models: ModelOption[]; providerNames?: Record<string, string>; hostHome?: string }>('/pi/models');
|
||||
|
||||
console.log('[usePiModels] Fetched models:', {
|
||||
modelCount: data.models.length,
|
||||
providerNames: data.providerNames,
|
||||
providers: [...new Set(data.models.map((m: ModelOption) => m.provider))]
|
||||
});
|
||||
|
||||
// Store provider names for later use
|
||||
|
||||
if (data.providerNames) {
|
||||
globalProviderNames = data.providerNames;
|
||||
console.log('[usePiModels] Stored provider names:', globalProviderNames);
|
||||
}
|
||||
|
||||
if (data.hostHome) {
|
||||
globalHostHome = data.hostHome;
|
||||
}
|
||||
|
||||
|
||||
return data.models;
|
||||
},
|
||||
staleTime: 5 * 60 * 1000,
|
||||
@@ -86,3 +78,23 @@ export function useVisiblePiModels() {
|
||||
return isExplicitlyEnabled || isFromNewProvider;
|
||||
});
|
||||
}
|
||||
|
||||
/** Strict filtering — only explicitly enabled models, no "new provider" passthrough. */
|
||||
export function useEnabledPiModels() {
|
||||
const models = usePiModels();
|
||||
const { settings } = useSettings();
|
||||
const enabled = settings.ai?.enabledModels ?? [];
|
||||
const disabledProviders = new Set(settings.ai?.disabledProviders ?? []);
|
||||
|
||||
const providerFiltered = disabledProviders.size > 0
|
||||
? models.filter((m) => !disabledProviders.has(m.provider))
|
||||
: models;
|
||||
|
||||
if (enabled.length === 0) return providerFiltered;
|
||||
|
||||
// Match by modelKey (new format), model id, or model name (legacy formats)
|
||||
const enabledSet = new Set(enabled);
|
||||
return providerFiltered.filter((m) =>
|
||||
enabledSet.has(modelKey(m)) || enabledSet.has(m.id) || enabledSet.has(m.name),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -49,6 +49,7 @@ export type UserSettings = {
|
||||
chat: {
|
||||
defaultProvider: 'pi';
|
||||
defaultModel: string | null;
|
||||
defaultProjectModel: string | null;
|
||||
systemPrompt: string;
|
||||
temperature: number;
|
||||
defaultPwd: string;
|
||||
@@ -79,6 +80,7 @@ export const DEFAULT_SETTINGS: UserSettings = {
|
||||
chat: {
|
||||
defaultProvider: 'pi',
|
||||
defaultModel: null,
|
||||
defaultProjectModel: null,
|
||||
systemPrompt: '',
|
||||
temperature: 1,
|
||||
defaultPwd: '~',
|
||||
|
||||
Reference in New Issue
Block a user