feat(provider): 添加独立的 Provider 模块管理模型提供商

实现可扩展的 Provider 系统,支持动态注册自定义提供商:

Core 模块 (packages/core/src/provider/):
- types.ts: Provider 相关类型定义
- builtin/: 内置提供商 (Anthropic, OpenAI, DeepSeek)
- registry.ts: ProviderRegistry 单例类
- config.ts: 配置持久化 (~/.ai-terminal-assistant/providers.json)
- utils.ts: 连接测试等工具函数

Server API (packages/server/src/routes/providers.ts):
- GET/POST/PUT/DELETE /providers 提供商管理
- POST /providers/:id/test 连接测试
- 自定义模型管理接口

Frontend (packages/ui/):
- ProvidersPanel 组件用于管理提供商
- API client 函数和类型定义

主要功能:
- 支持动态注册 OpenAI 兼容服务 (Ollama, vLLM 等)
- 每个提供商独立的 API Key 配置
- 预设模型列表 + 自定义模型输入
- 连接测试验证
This commit is contained in:
2025-12-13 01:50:27 +08:00
parent 1d69fd876d
commit 6ec6fe2f9f
24 changed files with 2609 additions and 342 deletions
+54
View File
@@ -0,0 +1,54 @@
/**
* Provider Module
*
* 模型提供商管理模块
*/
// Types
export type {
BuiltinProviderType,
ProviderType,
ModelCapabilities,
ModelInfo,
ProviderInfo,
ProviderConfig,
CustomProviderDefinition,
ConnectionTestResult,
ProviderFactory,
RegisteredProvider,
ProvidersConfigFile,
ProviderListItem,
ProviderDetail,
} from './types.js';
// Registry
export {
ProviderRegistry,
providerRegistry,
getProviderRegistry,
} from './registry.js';
// Builtin providers
export {
builtinProviders,
getBuiltinProviders,
getBuiltinProvider,
isBuiltinProvider,
} from './builtin/index.js';
// Config utilities
export {
loadProvidersConfig,
saveProvidersConfig,
resolveApiKey,
getConfigDir,
getConfigPath,
} from './config.js';
// Utils
export {
testOpenAICompatibleConnection,
createOpenAICompatibleFactory,
isValidProviderId,
isValidUrl,
} from './utils.js';