feat: add appcode (#7507)

Co-authored-by: zhaochenxue <zhaochenxue@bixin.cn>
This commit is contained in:
chenxue 2025-06-25 09:17:27 +08:00 committed by GitHub
parent 3640d846b9
commit 17951ad157
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 22 additions and 7 deletions

View File

@ -42,11 +42,19 @@ export class AihubmixAPIClient extends BaseApiClient {
constructor(provider: Provider) {
super(provider)
const providerExtraHeaders = {
...provider,
extra_headers: {
...provider.extra_headers,
'APP-Code': 'MLTG2087'
}
}
// 初始化各个client - 现在有类型安全
const claudeClient = new AnthropicAPIClient(provider)
const geminiClient = new GeminiAPIClient({ ...provider, apiHost: 'https://aihubmix.com/gemini' })
const openaiClient = new OpenAIResponseAPIClient(provider)
const defaultClient = new OpenAIAPIClient(provider)
const claudeClient = new AnthropicAPIClient(providerExtraHeaders)
const geminiClient = new GeminiAPIClient({ ...providerExtraHeaders, apiHost: 'https://aihubmix.com/gemini' })
const openaiClient = new OpenAIResponseAPIClient(providerExtraHeaders)
const defaultClient = new OpenAIAPIClient(providerExtraHeaders)
this.clients.set('claude', claudeClient)
this.clients.set('gemini', geminiClient)

View File

@ -94,7 +94,8 @@ export class AnthropicAPIClient extends BaseApiClient<
baseURL: this.getBaseURL(),
dangerouslyAllowBrowser: true,
defaultHeaders: {
'anthropic-beta': 'output-128k-2025-02-19'
'anthropic-beta': 'output-128k-2025-02-19',
...this.provider.extra_headers
}
})
return this.sdkInstance

View File

@ -176,7 +176,10 @@ export class GeminiAPIClient extends BaseApiClient<
apiVersion: this.getApiVersion(),
httpOptions: {
baseUrl: this.getBaseURL(),
apiVersion: this.getApiVersion()
apiVersion: this.getApiVersion(),
headers: {
...this.provider.extra_headers
}
}
})

View File

@ -159,6 +159,7 @@ export abstract class OpenAIBaseClient<
baseURL: this.getBaseURL(),
defaultHeaders: {
...this.defaultHeaders(),
...this.provider.extra_headers,
...(this.provider.id === 'copilot' ? { 'editor-version': 'vscode/1.97.2' } : {}),
...(this.provider.id === 'copilot' ? { 'copilot-vision-request': 'true' } : {})
}

View File

@ -81,7 +81,8 @@ export class OpenAIResponseAPIClient extends OpenAIBaseClient<
apiKey: this.apiKey,
baseURL: this.getBaseURL(),
defaultHeaders: {
...this.defaultHeaders()
...this.defaultHeaders(),
...this.provider.extra_headers
}
})
}

View File

@ -161,6 +161,7 @@ export type Provider = {
isNotSupportArrayContent?: boolean
isVertex?: boolean
notes?: string
extra_headers?: Record<string, string>
}
export type ProviderType =