package ai import "errors" // 支持的 Provider 标识。 const ( ProviderSpark = "spark" ProviderDeepSeek = "deepseek" ) // New 是 Provider 工厂:按标识与 API Key 创建对应实例。 func New(provider, apiKey string) (Provider, error) { switch provider { case ProviderSpark: return newSpark(apiKey) case ProviderDeepSeek: return newDeepSeek(apiKey) default: return nil, errors.New("AI_PROVIDER_INVALID") } } // newSpark 创建讯飞星火 Lite(OpenAI 兼容 HTTP 端点,APIPassword 鉴权,Lite 免费)。 func newSpark(apiPassword string) (Provider, error) { if apiPassword == "" { return nil, errors.New("AI_KEY_MISSING") } return &openAICompatible{ name: ProviderSpark, baseURL: "https://spark-api-open.xf-yun.com/v1", model: "lite", apiKey: apiPassword, client: newHTTPClient(), }, nil } // newDeepSeek 创建 DeepSeek(OpenAI 兼容)。 func newDeepSeek(apiKey string) (Provider, error) { if apiKey == "" { return nil, errors.New("AI_KEY_MISSING") } return &openAICompatible{ name: ProviderDeepSeek, baseURL: "https://api.deepseek.com", model: "deepseek-chat", apiKey: apiKey, client: newHTTPClient(), }, nil }