mirror of
				https://github.com/songquanpeng/one-api.git
				synced 2025-11-04 07:43:41 +08:00 
			
		
		
		
	feat: add deepseek-reasoner & gemini-2.0-flash-thinking-exp-01-21 (#2045)
* feat: add MILLI_USD constant and update pricing for deepseek services * feat: add support for new Gemini model version 'gemini-2.0-flash-thinking-exp-01-21'
This commit is contained in:
		@@ -7,7 +7,6 @@ import (
 | 
			
		||||
	"net/http"
 | 
			
		||||
 | 
			
		||||
	"github.com/gin-gonic/gin"
 | 
			
		||||
	"github.com/songquanpeng/one-api/common/config"
 | 
			
		||||
	"github.com/songquanpeng/one-api/common/helper"
 | 
			
		||||
	channelhelper "github.com/songquanpeng/one-api/relay/adaptor"
 | 
			
		||||
	"github.com/songquanpeng/one-api/relay/adaptor/openai"
 | 
			
		||||
@@ -24,8 +23,11 @@ func (a *Adaptor) Init(meta *meta.Meta) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (a *Adaptor) GetRequestURL(meta *meta.Meta) (string, error) {
 | 
			
		||||
	defaultVersion := config.GeminiVersion
 | 
			
		||||
	if meta.ActualModelName == "gemini-2.0-flash-exp" {
 | 
			
		||||
	var defaultVersion string
 | 
			
		||||
	switch meta.ActualModelName {
 | 
			
		||||
	case "gemini-2.0-flash-exp",
 | 
			
		||||
		"gemini-2.0-flash-thinking-exp",
 | 
			
		||||
		"gemini-2.0-flash-thinking-exp-01-21":
 | 
			
		||||
		defaultVersion = "v1beta"
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -7,5 +7,5 @@ var ModelList = []string{
 | 
			
		||||
	"gemini-1.5-flash", "gemini-1.5-pro",
 | 
			
		||||
	"text-embedding-004", "aqa",
 | 
			
		||||
	"gemini-2.0-flash-exp",
 | 
			
		||||
	"gemini-2.0-flash-thinking-exp",
 | 
			
		||||
	"gemini-2.0-flash-thinking-exp", "gemini-2.0-flash-thinking-exp-01-21",
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -18,7 +18,8 @@ var ModelList = []string{
 | 
			
		||||
	"gemini-pro", "gemini-pro-vision",
 | 
			
		||||
	"gemini-1.5-pro-001", "gemini-1.5-flash-001",
 | 
			
		||||
	"gemini-1.5-pro-002", "gemini-1.5-flash-002",
 | 
			
		||||
	"gemini-2.0-flash-exp", "gemini-2.0-flash-thinking-exp",
 | 
			
		||||
	"gemini-2.0-flash-exp",
 | 
			
		||||
	"gemini-2.0-flash-thinking-exp", "gemini-2.0-flash-thinking-exp-01-21",
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type Adaptor struct {
 | 
			
		||||
 
 | 
			
		||||
@@ -9,9 +9,10 @@ import (
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	USD2RMB = 7
 | 
			
		||||
	USD     = 500 // $0.002 = 1 -> $1 = 500
 | 
			
		||||
	RMB     = USD / USD2RMB
 | 
			
		||||
	USD2RMB   = 7
 | 
			
		||||
	USD       = 500 // $0.002 = 1 -> $1 = 500
 | 
			
		||||
	MILLI_USD = 1.0 / 1000 * USD
 | 
			
		||||
	RMB       = USD / USD2RMB
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// ModelRatio
 | 
			
		||||
@@ -109,15 +110,16 @@ var ModelRatio = map[string]float64{
 | 
			
		||||
	"bge-large-en":       0.002 * RMB,
 | 
			
		||||
	"tao-8k":             0.002 * RMB,
 | 
			
		||||
	// https://ai.google.dev/pricing
 | 
			
		||||
	"gemini-pro":                    1, // $0.00025 / 1k characters -> $0.001 / 1k tokens
 | 
			
		||||
	"gemini-1.0-pro":                1,
 | 
			
		||||
	"gemini-1.5-pro":                1,
 | 
			
		||||
	"gemini-1.5-pro-001":            1,
 | 
			
		||||
	"gemini-1.5-flash":              1,
 | 
			
		||||
	"gemini-1.5-flash-001":          1,
 | 
			
		||||
	"gemini-2.0-flash-exp":          1,
 | 
			
		||||
	"gemini-2.0-flash-thinking-exp": 1,
 | 
			
		||||
	"aqa":                           1,
 | 
			
		||||
	"gemini-pro":                          1, // $0.00025 / 1k characters -> $0.001 / 1k tokens
 | 
			
		||||
	"gemini-1.0-pro":                      1,
 | 
			
		||||
	"gemini-1.5-pro":                      1,
 | 
			
		||||
	"gemini-1.5-pro-001":                  1,
 | 
			
		||||
	"gemini-1.5-flash":                    1,
 | 
			
		||||
	"gemini-1.5-flash-001":                1,
 | 
			
		||||
	"gemini-2.0-flash-exp":                1,
 | 
			
		||||
	"gemini-2.0-flash-thinking-exp":       1,
 | 
			
		||||
	"gemini-2.0-flash-thinking-exp-01-21": 1,
 | 
			
		||||
	"aqa":                                 1,
 | 
			
		||||
	// https://open.bigmodel.cn/pricing
 | 
			
		||||
	"glm-4":         0.1 * RMB,
 | 
			
		||||
	"glm-4v":        0.1 * RMB,
 | 
			
		||||
@@ -279,8 +281,8 @@ var ModelRatio = map[string]float64{
 | 
			
		||||
	"command-r":             0.5 / 1000 * USD,
 | 
			
		||||
	"command-r-plus":        3.0 / 1000 * USD,
 | 
			
		||||
	// https://platform.deepseek.com/api-docs/pricing/
 | 
			
		||||
	"deepseek-chat":  1.0 / 1000 * RMB,
 | 
			
		||||
	"deepseek-coder": 1.0 / 1000 * RMB,
 | 
			
		||||
	"deepseek-chat":     0.14 * MILLI_USD,
 | 
			
		||||
	"deepseek-reasoner": 0.55 * MILLI_USD,
 | 
			
		||||
	// https://www.deepl.com/pro?cta=header-prices
 | 
			
		||||
	"deepl-zh": 25.0 / 1000 * USD,
 | 
			
		||||
	"deepl-en": 25.0 / 1000 * USD,
 | 
			
		||||
@@ -337,6 +339,11 @@ var CompletionRatio = map[string]float64{
 | 
			
		||||
	// aws llama3
 | 
			
		||||
	"llama3-8b-8192(33)":  0.0006 / 0.0003,
 | 
			
		||||
	"llama3-70b-8192(33)": 0.0035 / 0.00265,
 | 
			
		||||
	// whisper
 | 
			
		||||
	"whisper-1": 0, // only count input tokens
 | 
			
		||||
	// deepseek
 | 
			
		||||
	"deepseek-chat":     0.28 / 0.14,
 | 
			
		||||
	"deepseek-reasoner": 2.19 / 0.55,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user