mirror of
https://github.com/tiennm99/ccs.git
synced 2026-10-13 02:14:32 +00:00
fix(proxy): detect dashscope compatible-mode profiles
This commit is contained in:
1 parent
7b64852495
commit
a6aa576d5a
3 files changed
+28
-6
No files matched your search
@@ -1,4 +1,8 @@
|
|||||||
import { resolveDroidProvider, type DroidProvider } from '../targets/droid-provider';
|
import {
|
||||||
|
inferDroidProviderFromBaseUrl,
|
||||||
|
resolveDroidProvider,
|
||||||
|
type DroidProvider,
|
||||||
|
} from '../targets/droid-provider';
|
||||||
|
|
||||||
export interface OpenAICompatProfileConfig {
|
export interface OpenAICompatProfileConfig {
|
||||||
profileName: string;
|
profileName: string;
|
||||||
@@ -41,11 +45,14 @@ export function resolveOpenAICompatProfileConfig(
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
const provider = resolveDroidProvider({
|
const providerFromUrl = inferDroidProviderFromBaseUrl(baseUrl);
|
||||||
provider: env.CCS_DROID_PROVIDER,
|
const provider = isOpenAICompatProvider(providerFromUrl)
|
||||||
baseUrl,
|
? providerFromUrl
|
||||||
model: env.ANTHROPIC_MODEL,
|
: resolveDroidProvider({
|
||||||
});
|
provider: env.CCS_DROID_PROVIDER,
|
||||||
|
baseUrl,
|
||||||
|
model: env.ANTHROPIC_MODEL,
|
||||||
|
});
|
||||||
if (!isOpenAICompatProvider(provider)) {
|
if (!isOpenAICompatProvider(provider)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -86,8 +86,10 @@ export function inferDroidProviderFromBaseUrl(
|
|||||||
host.includes('api.deepinfra.com') ||
|
host.includes('api.deepinfra.com') ||
|
||||||
host.includes('api.fireworks.ai') ||
|
host.includes('api.fireworks.ai') ||
|
||||||
host.includes('inference.baseten.co') ||
|
host.includes('inference.baseten.co') ||
|
||||||
|
host.includes('dashscope') ||
|
||||||
host.includes('huggingface.co') ||
|
host.includes('huggingface.co') ||
|
||||||
host.includes('ollama.com') ||
|
host.includes('ollama.com') ||
|
||||||
|
pathname.includes('/compatible-mode') ||
|
||||||
pathname.includes('/openai') ||
|
pathname.includes('/openai') ||
|
||||||
pathname.includes('/chat/completions')
|
pathname.includes('/chat/completions')
|
||||||
) {
|
) {
|
||||||
|
|||||||
@@ -37,4 +37,17 @@ describe('resolveOpenAICompatProfileConfig', () => {
|
|||||||
|
|
||||||
expect(result).toBeNull();
|
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