Просмотр исходного кода

Merge branch 'feat/o1'

# Conflicts:
#	dto/openai_request.go
CalciumIon 1 год назад
Родитель
Сommit
865b98a454

+ 2 - 0
common/model-ratio.go

@@ -46,6 +46,8 @@ var defaultModelRatio = map[string]float64{
 	"gpt-4o-2024-08-06":               1.25, // $2.5 / 1M tokens
 	"gpt-4o-2024-11-20":               1.25, // $2.5 / 1M tokens
 	"gpt-4o-realtime-preview":         2.5,
+	"o1":                              7.5,
+	"o1-2024-12-17":                   7.5,
 	"o1-preview":                      7.5,
 	"o1-preview-2024-09-12":           7.5,
 	"o1-mini":                         1.5,

+ 1 - 0
dto/openai_request.go

@@ -22,6 +22,7 @@ type GeneralOpenAIRequest struct {
 	StreamOptions       *StreamOptions  `json:"stream_options,omitempty"`
 	MaxTokens           uint            `json:"max_tokens,omitempty"`
 	MaxCompletionTokens uint            `json:"max_completion_tokens,omitempty"`
+	ReasoningEffort     string         `json:"reasoning_effort,omitempty"`
 	Temperature         float64         `json:"temperature,omitempty"`
 	TopP                float64         `json:"top_p,omitempty"`
 	TopK                int             `json:"top_k,omitempty"`

+ 8 - 1
relay/channel/openai/adaptor.go

@@ -109,12 +109,19 @@ func (a *Adaptor) ConvertRequest(c *gin.Context, info *relaycommon.RelayInfo, re
 	if info.ChannelType != common.ChannelTypeOpenAI {
 		request.StreamOptions = nil
 	}
-	if strings.HasPrefix(request.Model, "o1-") {
+	if strings.HasPrefix(request.Model, "o1") {
 		if request.MaxCompletionTokens == 0 && request.MaxTokens != 0 {
 			request.MaxCompletionTokens = request.MaxTokens
 			request.MaxTokens = 0
 		}
 	}
+	if request.Model == "o1" || request.Model == "o1-2024-12-17" {
+		//修改第一个Message的内容,将system改为developer
+		if len(request.Messages) > 0 && request.Messages[0].Role == "system" {
+			request.Messages[0].Role = "developer"
+		}
+	}
+
 	return request, nil
 }
 

+ 1 - 0
relay/channel/openai/constant.go

@@ -13,6 +13,7 @@ var ModelList = []string{
 	"gpt-4o-mini", "gpt-4o-mini-2024-07-18",
 	"o1-preview", "o1-preview-2024-09-12",
 	"o1-mini", "o1-mini-2024-09-12",
+	"o1", "o1-2024-12-17",
 	"gpt-4o-audio-preview", "gpt-4o-audio-preview-2024-10-01",
 	"gpt-4o-realtime-preview", "gpt-4o-realtime-preview-2024-10-01",
 	"text-embedding-ada-002", "text-embedding-3-small", "text-embedding-3-large",