35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
import { useSettingsStore } from '@/lib/store/settings';
|
|
import {
|
|
getThinkingConfigKey,
|
|
normalizeThinkingConfig,
|
|
supportsConfigurableThinking,
|
|
} from '@/lib/ai/thinking-config';
|
|
|
|
/**
|
|
* 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 = providerConfig?.models.find((model) => model.id === modelId);
|
|
const thinking = modelInfo?.capabilities?.thinking;
|
|
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,
|
|
};
|
|
}
|