♻️ refactor: standardize string quotes and improve logging in Anthropic integration

This commit is contained in:
Vaayne 2025-09-29 14:42:50 +08:00
parent cc871b7a72
commit cff9068359
3 changed files with 15 additions and 22 deletions

View File

@ -77,19 +77,19 @@ export function getSdkClient(provider: Provider, oauthToken?: string | null): An
? provider.apiHost ? provider.apiHost
: (provider.anthropicApiHost && provider.anthropicApiHost.trim()) || provider.apiHost : (provider.anthropicApiHost && provider.anthropicApiHost.trim()) || provider.apiHost
logger.debug("Anthropic API baseURL", { baseURL, providerId: provider.id }); logger.debug('Anthropic API baseURL', { baseURL, providerId: provider.id })
if (provider.id === "aihubmix") { if (provider.id === 'aihubmix') {
return new Anthropic({ return new Anthropic({
apiKey: provider.apiKey, apiKey: provider.apiKey,
baseURL, baseURL,
dangerouslyAllowBrowser: true, dangerouslyAllowBrowser: true,
defaultHeaders: { defaultHeaders: {
"anthropic-beta": "output-128k-2025-02-19", 'anthropic-beta': 'output-128k-2025-02-19',
"APP-Code": "MLTG2087", 'APP-Code': 'MLTG2087',
...provider.extra_headers, ...provider.extra_headers
}, }
}); })
} }
return new Anthropic({ return new Anthropic({

View File

@ -27,25 +27,18 @@ export class ModelsService {
for (const model of models) { for (const model of models) {
const provider = providers.find((p) => p.id === model.provider) const provider = providers.find((p) => p.id === model.provider)
logger.debug( logger.debug(`Processing model ${model.id} from provider ${model.provider}`, {
`Processing model ${model.id} from provider ${model.provider}`, isAnthropicModel: provider?.isAnthropicModel
{ isAnthropicModel: provider?.isAnthropicModel } })
);
if ( if (
!provider || !provider ||
(filter.providerType === "anthropic" && (filter.providerType === 'anthropic' && provider.isAnthropicModel && !provider.isAnthropicModel(model))
provider.isAnthropicModel &&
!provider.isAnthropicModel(model))
) { ) {
continue; continue
} }
// Special case: For "aihubmix", it should be covered by above condition, but just in case // Special case: For "aihubmix", it should be covered by above condition, but just in case
if ( if (provider.id === 'aihubmix' && filter.providerType === 'anthropic' && !model.id.includes('claude')) {
provider.id === "aihubmix" && continue
filter.providerType === "anthropic" &&
!model.id.includes("claude")
) {
continue;
} }
const openAIModel = transformModelToOpenAI(model, provider) const openAIModel = transformModelToOpenAI(model, provider)

View File

@ -2618,7 +2618,7 @@ const migrateConfig = {
provider.anthropicApiHost = 'https://api-inference.modelscope.cn' provider.anthropicApiHost = 'https://api-inference.modelscope.cn'
break break
case 'aihubmix': case 'aihubmix':
provider.anthropicApiHost = "https://aihubmix.com"; provider.anthropicApiHost = 'https://aihubmix.com'
provider.isAnthropicModel = (m: Model) => m.id.includes('claude') provider.isAnthropicModel = (m: Model) => m.id.includes('claude')
break break
} }