51 lines
1.5 KiB
TypeScript
51 lines
1.5 KiB
TypeScript
import { Kevisual } from '../src/provider/index';
|
|
import { createOpenAICompatible } from '@ai-sdk/openai-compatible';
|
|
import { createAnthropic } from '@ai-sdk/anthropic';
|
|
import { generateText } from 'ai';
|
|
|
|
export function resolveEnvVars(value: string): string {
|
|
return value.replace(/{env:([^}]+)}/g, (_, varName) => {
|
|
const envValue = process.env[varName];
|
|
if (!envValue) {
|
|
throw new Error(`Environment variable ${varName} is not set`);
|
|
}
|
|
return envValue;
|
|
});
|
|
}
|
|
export const models = {
|
|
'doubao-ark-code-latest': 'doubao-ark-code-latest',
|
|
'GLM-4.7': 'GLM-4.7',
|
|
'MiniMax-M2.1': 'MiniMax-M2.1',
|
|
'qwen3-coder-plus': 'qwen3-coder-plus',
|
|
'hunyuan-a13b': 'hunyuan-a13b',
|
|
}
|
|
export const bailian = createOpenAICompatible({
|
|
baseURL: 'https://coding.dashscope.aliyuncs.com/v1',
|
|
name: 'custom-bailian',
|
|
apiKey: process.env.BAILIAN_CODE_API_KEY!,
|
|
});
|
|
|
|
export const zhipu = createOpenAICompatible({
|
|
baseURL: 'https://open.bigmodel.cn/api/coding/paas/v4',
|
|
name: 'custom-zhipu',
|
|
apiKey: process.env.ZHIPU_API_KEY!,
|
|
});
|
|
|
|
export const minimax = createAnthropic({
|
|
baseURL: 'https://api.minimaxi.com/anthropic/v1',
|
|
name: 'custom-minimax',
|
|
apiKey: process.env.MINIMAX_API_KEY!,
|
|
});
|
|
|
|
export const doubao = createOpenAICompatible({
|
|
baseURL: 'https://ark.cn-beijing.volces.com/api/coding/v3',
|
|
name: 'custom-doubao',
|
|
apiKey: process.env.DOUBAO_API_KEY!,
|
|
});
|
|
|
|
|
|
export const cnb = createOpenAICompatible({
|
|
baseURL: resolveEnvVars('https://api.cnb.cool/{env:CNB_REPO_SLUG}/-/ai/'),
|
|
name: 'custom-cnb',
|
|
apiKey: process.env.CNB_API_KEY!,
|
|
}); |