✨ feat: support deepseek (#60)
This commit is contained in:
parent
332b6fd397
commit
48f9ed29e8
@ -191,6 +191,7 @@ const (
|
|||||||
ChannelTypeGemini = 25
|
ChannelTypeGemini = 25
|
||||||
ChannelTypeBaichuan = 26
|
ChannelTypeBaichuan = 26
|
||||||
ChannelTypeMiniMax = 27
|
ChannelTypeMiniMax = 27
|
||||||
|
ChannelTypeDeepseek = 28
|
||||||
)
|
)
|
||||||
|
|
||||||
var ChannelBaseURLs = []string{
|
var ChannelBaseURLs = []string{
|
||||||
@ -222,6 +223,7 @@ var ChannelBaseURLs = []string{
|
|||||||
"", //25
|
"", //25
|
||||||
"https://api.baichuan-ai.com", //26
|
"https://api.baichuan-ai.com", //26
|
||||||
"https://api.minimax.chat/v1", //27
|
"https://api.minimax.chat/v1", //27
|
||||||
|
"https://api.deepseek.com", //28
|
||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -108,6 +108,8 @@ func init() {
|
|||||||
"abab5.5-chat": {1.0714, ChannelTypeMiniMax}, // ¥0.015 / 1k tokens
|
"abab5.5-chat": {1.0714, ChannelTypeMiniMax}, // ¥0.015 / 1k tokens
|
||||||
"abab6-chat": {14.2857, ChannelTypeMiniMax}, // ¥0.2 / 1k tokens
|
"abab6-chat": {14.2857, ChannelTypeMiniMax}, // ¥0.2 / 1k tokens
|
||||||
"embo-01": {0.0357, ChannelTypeMiniMax}, // ¥0.0005 / 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)
|
ModelRatio = make(map[string]float64)
|
||||||
|
36
providers/deepseek/base.go
Normal file
36
providers/deepseek/base.go
Normal 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
|
||||||
|
}
|
@ -15,6 +15,7 @@ import (
|
|||||||
"one-api/providers/base"
|
"one-api/providers/base"
|
||||||
"one-api/providers/claude"
|
"one-api/providers/claude"
|
||||||
"one-api/providers/closeai"
|
"one-api/providers/closeai"
|
||||||
|
"one-api/providers/deepseek"
|
||||||
"one-api/providers/gemini"
|
"one-api/providers/gemini"
|
||||||
"one-api/providers/minimax"
|
"one-api/providers/minimax"
|
||||||
"one-api/providers/openai"
|
"one-api/providers/openai"
|
||||||
@ -56,6 +57,7 @@ func init() {
|
|||||||
providerFactories[common.ChannelTypeGemini] = gemini.GeminiProviderFactory{}
|
providerFactories[common.ChannelTypeGemini] = gemini.GeminiProviderFactory{}
|
||||||
providerFactories[common.ChannelTypeBaichuan] = baichuan.BaichuanProviderFactory{}
|
providerFactories[common.ChannelTypeBaichuan] = baichuan.BaichuanProviderFactory{}
|
||||||
providerFactories[common.ChannelTypeMiniMax] = minimax.MiniMaxProviderFactory{}
|
providerFactories[common.ChannelTypeMiniMax] = minimax.MiniMaxProviderFactory{}
|
||||||
|
providerFactories[common.ChannelTypeDeepseek] = deepseek.DeepseekProviderFactory{}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,6 +77,12 @@ export const CHANNEL_OPTIONS = {
|
|||||||
value: 27,
|
value: 27,
|
||||||
color: 'orange'
|
color: 'orange'
|
||||||
},
|
},
|
||||||
|
28: {
|
||||||
|
key: 28,
|
||||||
|
text: 'Deepseek',
|
||||||
|
value: 28,
|
||||||
|
color: 'default'
|
||||||
|
},
|
||||||
24: {
|
24: {
|
||||||
key: 24,
|
key: 24,
|
||||||
text: 'Azure Speech',
|
text: 'Azure Speech',
|
||||||
|
@ -175,6 +175,12 @@ const typeConfig = {
|
|||||||
prompt: {
|
prompt: {
|
||||||
key: '按照如下格式输入:APISecret|groupID'
|
key: '按照如下格式输入:APISecret|groupID'
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
28: {
|
||||||
|
input: {
|
||||||
|
models: ['deepseek-coder', 'deepseek-chat'],
|
||||||
|
test_model: 'deepseek-chat'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user