feat: support deepseek (#60)

This commit is contained in:
Buer 2024-02-02 10:03:00 +08:00 committed by GitHub
parent 332b6fd397
commit 48f9ed29e8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 54 additions and 0 deletions

View File

@ -191,6 +191,7 @@ const (
ChannelTypeGemini = 25
ChannelTypeBaichuan = 26
ChannelTypeMiniMax = 27
ChannelTypeDeepseek = 28
)
var ChannelBaseURLs = []string{
@ -222,6 +223,7 @@ var ChannelBaseURLs = []string{
"", //25
"https://api.baichuan-ai.com", //26
"https://api.minimax.chat/v1", //27
"https://api.deepseek.com", //28
}
const (

View File

@ -108,6 +108,8 @@ func init() {
"abab5.5-chat": {1.0714, ChannelTypeMiniMax}, // ¥0.015 / 1k tokens
"abab6-chat": {14.2857, ChannelTypeMiniMax}, // ¥0.2 / 1k tokens
"embo-01": {0.0357, ChannelTypeMiniMax}, // ¥0.0005 / 1k tokens
"deepseek-coder": {0.75, ChannelTypeDeepseek}, // 暂定 $0.0015 / 1K tokens
"deepseek-chat": {0.75, ChannelTypeDeepseek}, // 暂定 $0.0015 / 1K tokens
}
ModelRatio = make(map[string]float64)

View File

@ -0,0 +1,36 @@
package deepseek
import (
"one-api/common/requester"
"one-api/model"
"one-api/providers/base"
"one-api/providers/openai"
)
type DeepseekProviderFactory struct{}
// 创建 DeepseekProvider
func (f DeepseekProviderFactory) Create(channel *model.Channel) base.ProviderInterface {
config := getDeepseekConfig()
return &DeepseekProvider{
OpenAIProvider: openai.OpenAIProvider{
BaseProvider: base.BaseProvider{
Config: config,
Channel: channel,
Requester: requester.NewHTTPRequester(*channel.Proxy, openai.RequestErrorHandle),
},
BalanceAction: false,
},
}
}
func getDeepseekConfig() base.ProviderConfig {
return base.ProviderConfig{
BaseURL: "https://api.deepseek.com",
ChatCompletions: "/v1/chat/completions",
}
}
type DeepseekProvider struct {
openai.OpenAIProvider
}

View File

@ -15,6 +15,7 @@ import (
"one-api/providers/base"
"one-api/providers/claude"
"one-api/providers/closeai"
"one-api/providers/deepseek"
"one-api/providers/gemini"
"one-api/providers/minimax"
"one-api/providers/openai"
@ -56,6 +57,7 @@ func init() {
providerFactories[common.ChannelTypeGemini] = gemini.GeminiProviderFactory{}
providerFactories[common.ChannelTypeBaichuan] = baichuan.BaichuanProviderFactory{}
providerFactories[common.ChannelTypeMiniMax] = minimax.MiniMaxProviderFactory{}
providerFactories[common.ChannelTypeDeepseek] = deepseek.DeepseekProviderFactory{}
}

View File

@ -77,6 +77,12 @@ export const CHANNEL_OPTIONS = {
value: 27,
color: 'orange'
},
28: {
key: 28,
text: 'Deepseek',
value: 28,
color: 'default'
},
24: {
key: 24,
text: 'Azure Speech',

View File

@ -175,6 +175,12 @@ const typeConfig = {
prompt: {
key: '按照如下格式输入APISecret|groupID'
}
},
28: {
input: {
models: ['deepseek-coder', 'deepseek-chat'],
test_model: 'deepseek-chat'
}
}
};