Skip to content

Commit e65ce52

Browse files
author
echoVic
committed
feat(chat): 添加 Blade Claude 服务支持
新增 blade-claude 作为新的 provider 类型,通过私有包 blade-auth-service 实现 Claude 模型的聊天服务适配。同时扩展内置模型配置,支持 Blade 提供的免费 Claude 模型。 - 添加 BladeClaudeChatService 实现 IChatService 接口 - 扩展内置模型配置,新增 Claude 模型支持 - 更新相关类型定义和依赖配置
1 parent 1c6261a commit e65ce52

7 files changed

Lines changed: 245 additions & 48 deletions

File tree

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@
116116
"ansi-escapes": "^7.2.0",
117117
"async-mutex": "^0.5.0",
118118
"axios": "^1.12.2",
119+
"blade-auth-service": "^1.0.1",
119120
"chalk": "^5.4.1",
120121
"diff": "^8.0.2",
121122
"fast-glob": "^3.3.3",

pnpm-lock.yaml

Lines changed: 12 additions & 23 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/config/builtinModels.ts

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
* 内置模型配置
33
*
44
* 提供开箱即用的免费模型,让用户无需配置即可体验 Blade
5-
* 当前支持:智谱 GLM-4 (由 Blade 团队提供免费额度)
5+
* 当前支持:
6+
* - 智谱 GLM-4.7 (由 Blade 团队提供免费额度)
7+
* - Claude Sonnet 4 (由 Blade 团队提供免费额度)
68
*/
79

810
import type { ModelConfig, ProviderType } from './types.js';
@@ -20,7 +22,8 @@ interface BuiltinModelDefinition {
2022
}
2123

2224
const BUILTIN_API_KEY = 'blade-free-tier';
23-
const BUILTIN_MODEL_ID = 'blade-builtin-glm47';
25+
const BUILTIN_GLM_MODEL_ID = 'blade-builtin-glm47';
26+
const BUILTIN_CLAUDE_MODEL_ID = 'blade-builtin-claude';
2427

2528
const BUILTIN_MODELS: BuiltinModelDefinition[] = [
2629
{
@@ -34,10 +37,25 @@ const BUILTIN_MODELS: BuiltinModelDefinition[] = [
3437
maxOutputTokens: 16384,
3538
supportsThinking: true,
3639
},
40+
{
41+
name: '✨ Claude Opus 4.5 (内置免费)',
42+
provider: 'blade-claude',
43+
baseUrl: '', // 由私有包处理
44+
model: 'claude-opus-4-5',
45+
apiKey: BUILTIN_API_KEY,
46+
description: 'Claude Opus 4.5 - 由 Blade 提供免费额度',
47+
maxContextTokens: 200000,
48+
maxOutputTokens: 16384,
49+
supportsThinking: false,
50+
},
3751
];
3852

3953
export function getBuiltinModelId(): string {
40-
return BUILTIN_MODEL_ID;
54+
return BUILTIN_GLM_MODEL_ID;
55+
}
56+
57+
export function getBuiltinClaudeModelId(): string {
58+
return BUILTIN_CLAUDE_MODEL_ID;
4159
}
4260

4361
export function isBuiltinApiKey(apiKey: string): boolean {
@@ -48,9 +66,16 @@ export function isBuiltinModel(model: ModelConfig): boolean {
4866
return isBuiltinApiKey(model.apiKey);
4967
}
5068

51-
function createBuiltinModelConfig(definition: BuiltinModelDefinition): ModelConfig {
69+
export function isBuiltinClaudeModel(model: ModelConfig): boolean {
70+
return model.provider === 'blade-claude' && isBuiltinApiKey(model.apiKey);
71+
}
72+
73+
function createBuiltinModelConfig(
74+
definition: BuiltinModelDefinition,
75+
id: string
76+
): ModelConfig {
5277
return {
53-
id: BUILTIN_MODEL_ID,
78+
id,
5479
name: definition.name,
5580
provider: definition.provider,
5681
baseUrl: definition.baseUrl,
@@ -63,5 +88,12 @@ function createBuiltinModelConfig(definition: BuiltinModelDefinition): ModelConf
6388
}
6489

6590
export function getDefaultBuiltinModel(): ModelConfig {
66-
return createBuiltinModelConfig(BUILTIN_MODELS[0]);
91+
return createBuiltinModelConfig(BUILTIN_MODELS[0], BUILTIN_GLM_MODEL_ID);
92+
}
93+
94+
export function getAllBuiltinModels(): ModelConfig[] {
95+
return [
96+
createBuiltinModelConfig(BUILTIN_MODELS[0], BUILTIN_GLM_MODEL_ID),
97+
createBuiltinModelConfig(BUILTIN_MODELS[1], BUILTIN_CLAUDE_MODEL_ID),
98+
];
6799
}

src/config/types.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,16 @@
1313
* - azure-openai: Azure OpenAI Service
1414
* - antigravity: Google Antigravity(OAuth 认证,统一网关访问 Claude/Gemini/GPT-OSS)
1515
* - copilot: GitHub Copilot(OAuth 认证,访问 GPT-4o/Claude/Gemini 等模型)
16+
* - blade-claude: Blade 内置 Claude(通过私有包访问)
1617
*/
1718
export type ProviderType =
1819
| 'openai-compatible'
1920
| 'anthropic'
2021
| 'gemini'
2122
| 'azure-openai'
2223
| 'antigravity'
23-
| 'copilot';
24+
| 'copilot'
25+
| 'blade-claude';
2426

2527
/**
2628
* 权限模式枚举

0 commit comments

Comments
 (0)