Files
code-utils/service/ai/factory.go
2026-08-14 07:52:01 +08:00

50 lines
1.2 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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 创建讯飞星火 LiteOpenAI 兼容 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 创建 DeepSeekOpenAI 兼容)。
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
}