mirror of
https://github.com/EthanMarti/infio-copilot.git
synced 2026-01-18 09:12:52 +00:00
update test settings
This commit is contained in:
parent
9b4bfe97b4
commit
34d0f1f70c
@ -104,13 +104,13 @@ const CustomProviderSettings: React.FC<CustomProviderSettingsProps> = ({ plugin,
|
|||||||
newSettings.chatModelProvider = selectedProvider;
|
newSettings.chatModelProvider = selectedProvider;
|
||||||
newSettings.chatModelId = defaultModels.chat;
|
newSettings.chatModelId = defaultModels.chat;
|
||||||
hasUpdates = true;
|
hasUpdates = true;
|
||||||
console.log(t("settings.ModelProvider.chatModelConfigured", { provider: selectedProvider, model: defaultModels.chat }));
|
console.debug(t("settings.ModelProvider.chatModelConfigured", { provider: selectedProvider, model: defaultModels.chat }));
|
||||||
}
|
}
|
||||||
if (defaultModels.autoComplete) {
|
if (defaultModels.autoComplete) {
|
||||||
newSettings.applyModelProvider = selectedProvider;
|
newSettings.applyModelProvider = selectedProvider;
|
||||||
newSettings.applyModelId = defaultModels.autoComplete;
|
newSettings.applyModelId = defaultModels.autoComplete;
|
||||||
hasUpdates = true;
|
hasUpdates = true;
|
||||||
console.log(t("settings.ModelProvider.autocompleteModelConfigured", { provider: selectedProvider, model: defaultModels.autoComplete }));
|
console.debug(t("settings.ModelProvider.autocompleteModelConfigured", { provider: selectedProvider, model: defaultModels.autoComplete }));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -122,7 +122,7 @@ const CustomProviderSettings: React.FC<CustomProviderSettingsProps> = ({ plugin,
|
|||||||
newSettings.embeddingModelProvider = embeddingProvider;
|
newSettings.embeddingModelProvider = embeddingProvider;
|
||||||
newSettings.embeddingModelId = embeddingDefaultModels.embedding;
|
newSettings.embeddingModelId = embeddingDefaultModels.embedding;
|
||||||
hasUpdates = true;
|
hasUpdates = true;
|
||||||
console.log(t("settings.ModelProvider.embeddingModelConfigured", { provider: embeddingProvider, model: embeddingDefaultModels.embedding }));
|
console.debug(t("settings.ModelProvider.embeddingModelConfigured", { provider: embeddingProvider, model: embeddingDefaultModels.embedding }));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -172,7 +172,7 @@ const CustomProviderSettings: React.FC<CustomProviderSettingsProps> = ({ plugin,
|
|||||||
};
|
};
|
||||||
|
|
||||||
const testApiConnection = async (provider: ApiProvider, modelId?: string) => {
|
const testApiConnection = async (provider: ApiProvider, modelId?: string) => {
|
||||||
console.log(`Testing connection for ${provider}...`);
|
console.debug(`Testing connection for ${provider}...`);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// 动态导入LLMManager以避免循环依赖
|
// 动态导入LLMManager以避免循环依赖
|
||||||
@ -231,7 +231,7 @@ const CustomProviderSettings: React.FC<CustomProviderSettingsProps> = ({ plugin,
|
|||||||
|
|
||||||
// 检查响应是否有效
|
// 检查响应是否有效
|
||||||
if (response && response.choices && response.choices.length > 0) {
|
if (response && response.choices && response.choices.length > 0) {
|
||||||
console.log(`✅ ${provider} connection test successful:`, response.choices[0]?.message?.content);
|
console.debug(`✅ ${provider} connection test successful:`, response.choices[0]?.message?.content);
|
||||||
// ApiKeyComponent expects no return value on success, just no thrown error
|
// ApiKeyComponent expects no return value on success, just no thrown error
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
@ -290,7 +290,7 @@ const CustomProviderSettings: React.FC<CustomProviderSettingsProps> = ({ plugin,
|
|||||||
modelId: string,
|
modelId: string,
|
||||||
isCustom: boolean = false
|
isCustom: boolean = false
|
||||||
) => {
|
) => {
|
||||||
console.log(`updateChatModelId: ${provider} -> ${modelId}, isCustom: ${isCustom}`)
|
console.debug(`updateChatModelId: ${provider} -> ${modelId}, isCustom: ${isCustom}`)
|
||||||
const providerSettingKey = getProviderSettingKey(provider);
|
const providerSettingKey = getProviderSettingKey(provider);
|
||||||
const providerSettings = settings[providerSettingKey] || {};
|
const providerSettings = settings[providerSettingKey] || {};
|
||||||
const currentModels = providerSettings.models || [];
|
const currentModels = providerSettings.models || [];
|
||||||
@ -312,7 +312,7 @@ const CustomProviderSettings: React.FC<CustomProviderSettingsProps> = ({ plugin,
|
|||||||
};
|
};
|
||||||
|
|
||||||
const updateApplyModelId = (provider: ApiProvider, modelId: string, isCustom: boolean = false) => {
|
const updateApplyModelId = (provider: ApiProvider, modelId: string, isCustom: boolean = false) => {
|
||||||
console.log(`updateApplyModelId: ${provider} -> ${modelId}, isCustom: ${isCustom}`)
|
console.debug(`updateApplyModelId: ${provider} -> ${modelId}, isCustom: ${isCustom}`)
|
||||||
const providerSettingKey = getProviderSettingKey(provider);
|
const providerSettingKey = getProviderSettingKey(provider);
|
||||||
const providerSettings = settings[providerSettingKey] || {};
|
const providerSettings = settings[providerSettingKey] || {};
|
||||||
const currentModels = providerSettings.models || [];
|
const currentModels = providerSettings.models || [];
|
||||||
@ -334,7 +334,7 @@ const CustomProviderSettings: React.FC<CustomProviderSettingsProps> = ({ plugin,
|
|||||||
};
|
};
|
||||||
|
|
||||||
const updateEmbeddingModelId = (provider: ApiProvider, modelId: string, isCustom: boolean = false) => {
|
const updateEmbeddingModelId = (provider: ApiProvider, modelId: string, isCustom: boolean = false) => {
|
||||||
console.log(`updateEmbeddingModelId: ${provider} -> ${modelId}, isCustom: ${isCustom}`)
|
console.debug(`updateEmbeddingModelId: ${provider} -> ${modelId}, isCustom: ${isCustom}`)
|
||||||
const providerSettingKey = getProviderSettingKey(provider);
|
const providerSettingKey = getProviderSettingKey(provider);
|
||||||
const providerSettings = settings[providerSettingKey] || {};
|
const providerSettings = settings[providerSettingKey] || {};
|
||||||
const currentModels = providerSettings.models || [];
|
const currentModels = providerSettings.models || [];
|
||||||
|
|||||||
@ -183,7 +183,7 @@ export const ComboBoxComponent: React.FC<ComboBoxComponentProps> = ({
|
|||||||
|
|
||||||
// 统一处理模型选择和保存
|
// 统一处理模型选择和保存
|
||||||
const handleModelSelect = (provider: ApiProvider, modelId: string, isCustom?: boolean) => {
|
const handleModelSelect = (provider: ApiProvider, modelId: string, isCustom?: boolean) => {
|
||||||
console.log(`handleModelSelect: ${provider} -> ${modelId}`)
|
console.debug(`handleModelSelect: ${provider} -> ${modelId}`)
|
||||||
|
|
||||||
// 检查是否是自定义模型(不在官方模型列表中)
|
// 检查是否是自定义模型(不在官方模型列表中)
|
||||||
// const isCustomModel = !modelIds.includes(modelId);
|
// const isCustomModel = !modelIds.includes(modelId);
|
||||||
@ -197,7 +197,7 @@ export const ComboBoxComponent: React.FC<ComboBoxComponentProps> = ({
|
|||||||
const ids = isEmbedding
|
const ids = isEmbedding
|
||||||
? GetEmbeddingProviderModelIds(modelProvider)
|
? GetEmbeddingProviderModelIds(modelProvider)
|
||||||
: await GetProviderModelIds(modelProvider, settings);
|
: await GetProviderModelIds(modelProvider, settings);
|
||||||
console.log(`📝 Fetched ${ids.length} official models for ${modelProvider}:`, ids);
|
console.debug(`📝 Fetched ${ids.length} official models for ${modelProvider}:`, ids);
|
||||||
setModelIds(ids);
|
setModelIds(ids);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -207,14 +207,14 @@ export const ComboBoxComponent: React.FC<ComboBoxComponentProps> = ({
|
|||||||
const combinedModelIds = useMemo(() => {
|
const combinedModelIds = useMemo(() => {
|
||||||
const providerKey = getProviderSettingKey(modelProvider);
|
const providerKey = getProviderSettingKey(modelProvider);
|
||||||
const providerModels = settings?.[providerKey]?.models;
|
const providerModels = settings?.[providerKey]?.models;
|
||||||
console.log(`🔍 Custom models in settings for ${modelProvider}:`, providerModels || 'none')
|
console.debug(`🔍 Custom models in settings for ${modelProvider}:`, providerModels || 'none')
|
||||||
// Ensure providerModels is an array of strings
|
// Ensure providerModels is an array of strings
|
||||||
if (!providerModels || !Array.isArray(providerModels)) {
|
if (!providerModels || !Array.isArray(providerModels)) {
|
||||||
console.log(`📋 Using only official models (${modelIds.length}):`, modelIds);
|
console.debug(`📋 Using only official models (${modelIds.length}):`, modelIds);
|
||||||
return modelIds;
|
return modelIds;
|
||||||
}
|
}
|
||||||
const additionalModels = providerModels.filter((model): model is string => typeof model === 'string');
|
const additionalModels = providerModels.filter((model): model is string => typeof model === 'string');
|
||||||
console.log(`📋 Combined models: ${modelIds.length} official + ${additionalModels.length} custom`);
|
console.debug(`📋 Combined models: ${modelIds.length} official + ${additionalModels.length} custom`);
|
||||||
return [...modelIds, ...additionalModels];
|
return [...modelIds, ...additionalModels];
|
||||||
}, [modelIds, settings, modelProvider]);
|
}, [modelIds, settings, modelProvider]);
|
||||||
|
|
||||||
|
|||||||
@ -64,12 +64,14 @@ describe('parseSmartCopilotSettings', () => {
|
|||||||
apiKey: '',
|
apiKey: '',
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
useCustomUrl: false,
|
useCustomUrl: false,
|
||||||
|
models: [],
|
||||||
},
|
},
|
||||||
anthropicProvider: {
|
anthropicProvider: {
|
||||||
name: 'Anthropic',
|
name: 'Anthropic',
|
||||||
apiKey: '',
|
apiKey: '',
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
useCustomUrl: false,
|
useCustomUrl: false,
|
||||||
|
models: [],
|
||||||
},
|
},
|
||||||
ollamaChatModel: {
|
ollamaChatModel: {
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
@ -141,60 +143,70 @@ describe('parseSmartCopilotSettings', () => {
|
|||||||
apiKey: '',
|
apiKey: '',
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
useCustomUrl: false,
|
useCustomUrl: false,
|
||||||
|
models: [],
|
||||||
},
|
},
|
||||||
googleProvider: {
|
googleProvider: {
|
||||||
name: 'Google',
|
name: 'Google',
|
||||||
apiKey: '',
|
apiKey: '',
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
useCustomUrl: false,
|
useCustomUrl: false,
|
||||||
|
models: [],
|
||||||
},
|
},
|
||||||
groqProvider: {
|
groqProvider: {
|
||||||
name: 'Groq',
|
name: 'Groq',
|
||||||
apiKey: '',
|
apiKey: '',
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
useCustomUrl: false,
|
useCustomUrl: false,
|
||||||
|
models: [],
|
||||||
},
|
},
|
||||||
grokProvider: {
|
grokProvider: {
|
||||||
name: 'Grok',
|
name: 'Grok',
|
||||||
apiKey: '',
|
apiKey: '',
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
useCustomUrl: false,
|
useCustomUrl: false,
|
||||||
|
models: [],
|
||||||
},
|
},
|
||||||
infioProvider: {
|
infioProvider: {
|
||||||
name: 'Infio',
|
name: 'Infio',
|
||||||
apiKey: '',
|
apiKey: '',
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
useCustomUrl: false,
|
useCustomUrl: false,
|
||||||
|
models: [],
|
||||||
},
|
},
|
||||||
ollamaProvider: {
|
ollamaProvider: {
|
||||||
apiKey: 'ollama',
|
apiKey: 'ollama',
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
name: 'Ollama',
|
name: 'Ollama',
|
||||||
useCustomUrl: true,
|
useCustomUrl: true,
|
||||||
|
models: [],
|
||||||
},
|
},
|
||||||
openaiProvider: {
|
openaiProvider: {
|
||||||
name: 'OpenAI',
|
name: 'OpenAI',
|
||||||
apiKey: '',
|
apiKey: '',
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
useCustomUrl: false,
|
useCustomUrl: false,
|
||||||
|
models: [],
|
||||||
},
|
},
|
||||||
openaicompatibleProvider: {
|
openaicompatibleProvider: {
|
||||||
name: 'OpenAICompatible',
|
name: 'OpenAICompatible',
|
||||||
apiKey: '',
|
apiKey: '',
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
useCustomUrl: true,
|
useCustomUrl: true,
|
||||||
|
models: [],
|
||||||
},
|
},
|
||||||
openrouterProvider: {
|
openrouterProvider: {
|
||||||
name: 'OpenRouter',
|
name: 'OpenRouter',
|
||||||
apiKey: '',
|
apiKey: '',
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
useCustomUrl: false,
|
useCustomUrl: false,
|
||||||
|
models: [],
|
||||||
},
|
},
|
||||||
siliconflowProvider: {
|
siliconflowProvider: {
|
||||||
name: 'SiliconFlow',
|
name: 'SiliconFlow',
|
||||||
apiKey: '',
|
apiKey: '',
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
useCustomUrl: false,
|
useCustomUrl: false,
|
||||||
|
models: [],
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@ -277,12 +289,14 @@ describe('settings migration', () => {
|
|||||||
apiKey: '',
|
apiKey: '',
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
useCustomUrl: false,
|
useCustomUrl: false,
|
||||||
|
models: [],
|
||||||
},
|
},
|
||||||
anthropicProvider: {
|
anthropicProvider: {
|
||||||
name: 'Anthropic',
|
name: 'Anthropic',
|
||||||
apiKey: '',
|
apiKey: '',
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
useCustomUrl: false,
|
useCustomUrl: false,
|
||||||
|
models: [],
|
||||||
},
|
},
|
||||||
ollamaChatModel: {
|
ollamaChatModel: {
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
@ -354,60 +368,70 @@ describe('settings migration', () => {
|
|||||||
apiKey: '',
|
apiKey: '',
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
useCustomUrl: false,
|
useCustomUrl: false,
|
||||||
|
models: [],
|
||||||
},
|
},
|
||||||
googleProvider: {
|
googleProvider: {
|
||||||
name: 'Google',
|
name: 'Google',
|
||||||
apiKey: '',
|
apiKey: '',
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
useCustomUrl: false,
|
useCustomUrl: false,
|
||||||
|
models: [],
|
||||||
},
|
},
|
||||||
groqProvider: {
|
groqProvider: {
|
||||||
name: 'Groq',
|
name: 'Groq',
|
||||||
apiKey: '',
|
apiKey: '',
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
useCustomUrl: false,
|
useCustomUrl: false,
|
||||||
|
models: [],
|
||||||
},
|
},
|
||||||
grokProvider: {
|
grokProvider: {
|
||||||
name: 'Grok',
|
name: 'Grok',
|
||||||
apiKey: '',
|
apiKey: '',
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
useCustomUrl: false,
|
useCustomUrl: false,
|
||||||
|
models: [],
|
||||||
},
|
},
|
||||||
infioProvider: {
|
infioProvider: {
|
||||||
name: 'Infio',
|
name: 'Infio',
|
||||||
apiKey: '',
|
apiKey: '',
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
useCustomUrl: false,
|
useCustomUrl: false,
|
||||||
|
models: [],
|
||||||
},
|
},
|
||||||
ollamaProvider: {
|
ollamaProvider: {
|
||||||
apiKey: 'ollama',
|
apiKey: 'ollama',
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
name: 'Ollama',
|
name: 'Ollama',
|
||||||
useCustomUrl: true,
|
useCustomUrl: true,
|
||||||
|
models: [],
|
||||||
},
|
},
|
||||||
openaiProvider: {
|
openaiProvider: {
|
||||||
name: 'OpenAI',
|
name: 'OpenAI',
|
||||||
apiKey: '',
|
apiKey: '',
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
useCustomUrl: false,
|
useCustomUrl: false,
|
||||||
|
models: [],
|
||||||
},
|
},
|
||||||
openaicompatibleProvider: {
|
openaicompatibleProvider: {
|
||||||
name: 'OpenAICompatible',
|
name: 'OpenAICompatible',
|
||||||
apiKey: '',
|
apiKey: '',
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
useCustomUrl: true,
|
useCustomUrl: true,
|
||||||
|
models: [],
|
||||||
},
|
},
|
||||||
openrouterProvider: {
|
openrouterProvider: {
|
||||||
name: 'OpenRouter',
|
name: 'OpenRouter',
|
||||||
apiKey: '',
|
apiKey: '',
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
useCustomUrl: false,
|
useCustomUrl: false,
|
||||||
|
models: [],
|
||||||
},
|
},
|
||||||
siliconflowProvider: {
|
siliconflowProvider: {
|
||||||
name: 'SiliconFlow',
|
name: 'SiliconFlow',
|
||||||
apiKey: '',
|
apiKey: '',
|
||||||
baseUrl: '',
|
baseUrl: '',
|
||||||
useCustomUrl: false,
|
useCustomUrl: false,
|
||||||
|
models: [],
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@ -433,7 +433,7 @@ function migrateSettings(
|
|||||||
currentVersion < migration.toVersion &&
|
currentVersion < migration.toVersion &&
|
||||||
migration.toVersion <= SETTINGS_SCHEMA_VERSION
|
migration.toVersion <= SETTINGS_SCHEMA_VERSION
|
||||||
) {
|
) {
|
||||||
console.log(
|
console.debug(
|
||||||
`Migrating settings from ${migration.fromVersion} to ${migration.toVersion}`,
|
`Migrating settings from ${migration.fromVersion} to ${migration.toVersion}`,
|
||||||
)
|
)
|
||||||
currentData = migration.migrate(currentData)
|
currentData = migration.migrate(currentData)
|
||||||
|
|||||||
@ -665,7 +665,7 @@ export class PromptGenerator {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (isOverThreshold) {
|
if (isOverThreshold) {
|
||||||
console.log("isOverThreshold", isOverThreshold)
|
console.debug("isOverThreshold", isOverThreshold)
|
||||||
fileContentsPrompts = files.map((file) => {
|
fileContentsPrompts = files.map((file) => {
|
||||||
return `<file_content path="${file.path}">\n(Content omitted due to token limit. Relevant sections will be provided by semantic search below.)\n</file_content>`
|
return `<file_content path="${file.path}">\n(Content omitted due to token limit. Relevant sections will be provided by semantic search below.)\n</file_content>`
|
||||||
}).join('\n')
|
}).join('\n')
|
||||||
@ -1017,7 +1017,7 @@ ${transcript.map((t) => `${t.offset}: ${t.text}`).join('\n')}`,
|
|||||||
// 首先检查缓存
|
// 首先检查缓存
|
||||||
const cachedData = await this.convertDataManager.findBySource(url)
|
const cachedData = await this.convertDataManager.findBySource(url)
|
||||||
if (cachedData) {
|
if (cachedData) {
|
||||||
console.log(`Using cached video conversion for: ${url}`)
|
console.debug(`Using cached video conversion for: ${url}`)
|
||||||
return [cachedData.content, cachedData.contentPath]
|
return [cachedData.content, cachedData.contentPath]
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1059,7 +1059,7 @@ ${transcript.map((t) => `${t.offset}: ${t.text}`).join('\n')}`,
|
|||||||
// 首先检查缓存
|
// 首先检查缓存
|
||||||
const cachedData = await this.convertDataManager.findBySource(file.path)
|
const cachedData = await this.convertDataManager.findBySource(file.path)
|
||||||
if (cachedData) {
|
if (cachedData) {
|
||||||
console.log(`Using cached document conversion for: ${file.path}`)
|
console.debug(`Using cached document conversion for: ${file.path}`)
|
||||||
return [cachedData.content, cachedData.contentPath]
|
return [cachedData.content, cachedData.contentPath]
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1294,7 +1294,7 @@ ${transcript.map((t) => `${t.offset}: ${t.text}`).join('\n')}`,
|
|||||||
content,
|
content,
|
||||||
})
|
})
|
||||||
|
|
||||||
console.log(`Saved conversion data to cache: ${source}`)
|
console.debug(`Saved conversion data to cache: ${source}`)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Failed to save conversion data to cache:', error)
|
console.error('Failed to save conversion data to cache:', error)
|
||||||
throw error
|
throw error
|
||||||
@ -1326,7 +1326,7 @@ ${transcript.map((t) => `${t.offset}: ${t.text}`).join('\n')}`,
|
|||||||
// 创建图片文件
|
// 创建图片文件
|
||||||
await this.app.vault.createBinary(targetPath, bytes.buffer)
|
await this.app.vault.createBinary(targetPath, bytes.buffer)
|
||||||
|
|
||||||
console.log(`Image saved: ${targetPath}`)
|
console.debug(`Image saved: ${targetPath}`)
|
||||||
return targetPath
|
return targetPath
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(`Failed to save image to ${targetPath}:`, error)
|
console.error(`Failed to save image to ${targetPath}:`, error)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user