38 lines
1.3 KiB
TypeScript
38 lines
1.3 KiB
TypeScript
import { useSettingsStore } from '@/lib/store/settings';
|
|
import {
|
|
getThinkingConfigKey,
|
|
normalizeThinkingConfig,
|
|
supportsConfigurableThinking,
|
|
} from '@/lib/ai/thinking-config';
|
|
import { findModelById } from '@/lib/ai/model-aliases';
|
|
import { getCatalogThinkingCapability } from '@/lib/ai/model-metadata';
|
|
|
|
/**
|
|
* Get current model configuration from settings store
|
|
*/
|
|
export function getCurrentModelConfig() {
|
|
const { providerId, modelId, providersConfig, thinkingConfigs } = useSettingsStore.getState();
|
|
const modelString = `${providerId}:${modelId}`;
|
|
|
|
// Get current provider's config
|
|
const providerConfig = providersConfig[providerId];
|
|
const modelInfo = findModelById(providerId, providerConfig?.models, modelId);
|
|
const thinking =
|
|
modelInfo?.capabilities?.thinking ?? getCatalogThinkingCapability(providerId, modelId);
|
|
const thinkingConfig = supportsConfigurableThinking(thinking)
|
|
? normalizeThinkingConfig(thinking, thinkingConfigs[getThinkingConfigKey(providerId, modelId)])
|
|
: undefined;
|
|
|
|
return {
|
|
providerId,
|
|
modelId,
|
|
modelString,
|
|
apiKey: providerConfig?.apiKey || '',
|
|
baseUrl: providerConfig?.baseUrl || '',
|
|
providerType: providerConfig?.type,
|
|
requiresApiKey: providerConfig?.requiresApiKey,
|
|
isServerConfigured: providerConfig?.isServerConfigured,
|
|
thinkingConfig,
|
|
};
|
|
}
|