mirror of
https://github.com/tiennm99/ccs.git
synced 2026-07-16 04:18:05 +00:00
fix(proxy): detect dashscope compatible-mode profiles
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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')
|
||||
) {
|
||||
|
||||
@@ -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');
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user