更新若干功能
This commit is contained in:
49
service/ai/factory.go
Normal file
49
service/ai/factory.go
Normal file
@@ -0,0 +1,49 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user