更新若干功能

This commit is contained in:
李琦
2026-08-14 07:52:01 +08:00
parent 153c7ed448
commit 89bc265f68
196 changed files with 17675 additions and 0 deletions

49
service/ai/factory.go Normal file
View 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 创建讯飞星火 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
}