fix(proxy): detect dashscope compatible-mode profiles

This commit is contained in:
Tam Nhu Tran
2026-04-14 23:49:34 -04:00
parent 7b64852495
commit a6aa576d5a
3 changed files with 28 additions and 6 deletions
+13 -6
View File
@@ -1,4 +1,8 @@
import { resolveDroidProvider, type DroidProvider } from '../targets/droid-provider';
import {
inferDroidProviderFromBaseUrl,
resolveDroidProvider,
type DroidProvider,
} from '../targets/droid-provider';
export interface OpenAICompatProfileConfig {
profileName: string;
@@ -41,11 +45,14 @@ export function resolveOpenAICompatProfileConfig(
return null;
}
const provider = resolveDroidProvider({
provider: env.CCS_DROID_PROVIDER,
baseUrl,
model: env.ANTHROPIC_MODEL,
});
const providerFromUrl = inferDroidProviderFromBaseUrl(baseUrl);
const provider = isOpenAICompatProvider(providerFromUrl)
? providerFromUrl
: resolveDroidProvider({
provider: env.CCS_DROID_PROVIDER,
baseUrl,
model: env.ANTHROPIC_MODEL,
});
if (!isOpenAICompatProvider(provider)) {
return null;
}
+2
View File
@@ -86,8 +86,10 @@ export function inferDroidProviderFromBaseUrl(
host.includes('api.deepinfra.com') ||
host.includes('api.fireworks.ai') ||
host.includes('inference.baseten.co') ||
host.includes('dashscope') ||
host.includes('huggingface.co') ||
host.includes('ollama.com') ||
pathname.includes('/compatible-mode') ||
pathname.includes('/openai') ||
pathname.includes('/chat/completions')
) {
+13
View File
@@ -37,4 +37,17 @@ describe('resolveOpenAICompatProfileConfig', () => {
expect(result).toBeNull();
});
it('prefers OpenAI-compatible URL inference over stale anthropic provider hints', () => {
const result = resolveOpenAICompatProfileConfig('q', '/tmp/q.settings.json', {
ANTHROPIC_BASE_URL: 'https://dashscope-us.aliyuncs.com/compatible-mode/v1',
ANTHROPIC_AUTH_TOKEN: 'q-token',
ANTHROPIC_MODEL: 'qwen3.6-plus',
CCS_DROID_PROVIDER: 'anthropic',
});
expect(result).not.toBeNull();
expect(result?.provider).toBe('generic-chat-completion-api');
expect(result?.model).toBe('qwen3.6-plus');
});
});