chore: rename metalib to relaymeta

This commit is contained in:
JustSong
2025-01-31 17:10:01 +08:00
parent 7d3e75a0b5
commit 47918f3143
4 changed files with 14 additions and 8 deletions

View File

@@ -8,12 +8,14 @@ import (
"strings" "strings"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/songquanpeng/one-api/common/config" "github.com/songquanpeng/one-api/common/config"
"github.com/songquanpeng/one-api/relay/adaptor" "github.com/songquanpeng/one-api/relay/adaptor"
"github.com/songquanpeng/one-api/relay/adaptor/doubao" "github.com/songquanpeng/one-api/relay/adaptor/doubao"
"github.com/songquanpeng/one-api/relay/adaptor/minimax" "github.com/songquanpeng/one-api/relay/adaptor/minimax"
"github.com/songquanpeng/one-api/relay/adaptor/novita" "github.com/songquanpeng/one-api/relay/adaptor/novita"
"github.com/songquanpeng/one-api/relay/channeltype" "github.com/songquanpeng/one-api/relay/channeltype"
"github.com/songquanpeng/one-api/relay/constant/role"
"github.com/songquanpeng/one-api/relay/meta" "github.com/songquanpeng/one-api/relay/meta"
"github.com/songquanpeng/one-api/relay/model" "github.com/songquanpeng/one-api/relay/model"
"github.com/songquanpeng/one-api/relay/relaymode" "github.com/songquanpeng/one-api/relay/relaymode"
@@ -85,11 +87,12 @@ func (a *Adaptor) ConvertRequest(c *gin.Context, relayMode int, request *model.G
} }
// o1/o1-mini/o1-preview do not support system prompt and max_tokens // o1/o1-mini/o1-preview do not support system prompt and max_tokens
// refer: https://platform.openai.com/docs/api-reference/chat/create#chat-create-messages
if strings.HasPrefix(request.Model, "o1") { if strings.HasPrefix(request.Model, "o1") {
request.MaxTokens = 0 request.MaxTokens = 0
request.Messages = func(raw []model.Message) (filtered []model.Message) { request.Messages = func(raw []model.Message) (filtered []model.Message) {
for i := range raw { for i := range raw {
if raw[i].Role != "system" { if raw[i].Role != role.System {
filtered = append(filtered, raw[i]) filtered = append(filtered, raw[i])
} }
} }

View File

@@ -3,4 +3,5 @@ package role
const ( const (
System = "system" System = "system"
Assistant = "assistant" Assistant = "assistant"
Developer = "developer"
) )

View File

@@ -10,6 +10,7 @@ import (
"net/http" "net/http"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/songquanpeng/one-api/common" "github.com/songquanpeng/one-api/common"
"github.com/songquanpeng/one-api/common/ctxkey" "github.com/songquanpeng/one-api/common/ctxkey"
"github.com/songquanpeng/one-api/common/logger" "github.com/songquanpeng/one-api/common/logger"
@@ -18,7 +19,7 @@ import (
"github.com/songquanpeng/one-api/relay/adaptor/openai" "github.com/songquanpeng/one-api/relay/adaptor/openai"
billingratio "github.com/songquanpeng/one-api/relay/billing/ratio" billingratio "github.com/songquanpeng/one-api/relay/billing/ratio"
"github.com/songquanpeng/one-api/relay/channeltype" "github.com/songquanpeng/one-api/relay/channeltype"
metalib "github.com/songquanpeng/one-api/relay/meta" relaymeta "github.com/songquanpeng/one-api/relay/meta"
relaymodel "github.com/songquanpeng/one-api/relay/model" relaymodel "github.com/songquanpeng/one-api/relay/model"
) )
@@ -65,7 +66,7 @@ func getImageSizeRatio(model string, size string) float64 {
return 1 return 1
} }
func validateImageRequest(imageRequest *relaymodel.ImageRequest, _ *metalib.Meta) *relaymodel.ErrorWithStatusCode { func validateImageRequest(imageRequest *relaymodel.ImageRequest, _ *relaymeta.Meta) *relaymodel.ErrorWithStatusCode {
// check prompt length // check prompt length
if imageRequest.Prompt == "" { if imageRequest.Prompt == "" {
return openai.ErrorWrapper(errors.New("prompt is required"), "prompt_missing", http.StatusBadRequest) return openai.ErrorWrapper(errors.New("prompt is required"), "prompt_missing", http.StatusBadRequest)
@@ -104,7 +105,7 @@ func getImageCostRatio(imageRequest *relaymodel.ImageRequest) (float64, error) {
func RelayImageHelper(c *gin.Context, relayMode int) *relaymodel.ErrorWithStatusCode { func RelayImageHelper(c *gin.Context, relayMode int) *relaymodel.ErrorWithStatusCode {
ctx := c.Request.Context() ctx := c.Request.Context()
meta := metalib.GetByContext(c) meta := relaymeta.GetByContext(c)
imageRequest, err := getImageRequest(c, meta.Mode) imageRequest, err := getImageRequest(c, meta.Mode)
if err != nil { if err != nil {
logger.Errorf(ctx, "getImageRequest failed: %s", err.Error()) logger.Errorf(ctx, "getImageRequest failed: %s", err.Error())
@@ -131,7 +132,7 @@ func RelayImageHelper(c *gin.Context, relayMode int) *relaymodel.ErrorWithStatus
imageModel := imageRequest.Model imageModel := imageRequest.Model
// Convert the original image model // Convert the original image model
imageRequest.Model = metalib.GetMappedModelName(imageRequest.Model, billingratio.ImageOriginModelName) imageRequest.Model = relaymeta.GetMappedModelName(imageRequest.Model, billingratio.ImageOriginModelName)
c.Set("response_format", imageRequest.ResponseFormat) c.Set("response_format", imageRequest.ResponseFormat)
var requestBody io.Reader var requestBody io.Reader

View File

@@ -8,6 +8,7 @@ import (
"net/http" "net/http"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/songquanpeng/one-api/common/config" "github.com/songquanpeng/one-api/common/config"
"github.com/songquanpeng/one-api/common/logger" "github.com/songquanpeng/one-api/common/logger"
"github.com/songquanpeng/one-api/relay" "github.com/songquanpeng/one-api/relay"
@@ -17,13 +18,13 @@ import (
"github.com/songquanpeng/one-api/relay/billing" "github.com/songquanpeng/one-api/relay/billing"
billingratio "github.com/songquanpeng/one-api/relay/billing/ratio" billingratio "github.com/songquanpeng/one-api/relay/billing/ratio"
"github.com/songquanpeng/one-api/relay/channeltype" "github.com/songquanpeng/one-api/relay/channeltype"
metalib "github.com/songquanpeng/one-api/relay/meta" relaymeta "github.com/songquanpeng/one-api/relay/meta"
relaymodel "github.com/songquanpeng/one-api/relay/model" relaymodel "github.com/songquanpeng/one-api/relay/model"
) )
func RelayTextHelper(c *gin.Context) *relaymodel.ErrorWithStatusCode { func RelayTextHelper(c *gin.Context) *relaymodel.ErrorWithStatusCode {
ctx := c.Request.Context() ctx := c.Request.Context()
meta := metalib.GetByContext(c) meta := relaymeta.GetByContext(c)
// get & validate textRequest // get & validate textRequest
textRequest, err := getAndValidateTextRequest(c, meta.Mode) textRequest, err := getAndValidateTextRequest(c, meta.Mode)
if err != nil { if err != nil {
@@ -86,7 +87,7 @@ func RelayTextHelper(c *gin.Context) *relaymodel.ErrorWithStatusCode {
return nil return nil
} }
func getRequestBody(c *gin.Context, meta *metalib.Meta, textRequest *relaymodel.GeneralOpenAIRequest, adaptor adaptor.Adaptor) (io.Reader, error) { func getRequestBody(c *gin.Context, meta *relaymeta.Meta, textRequest *relaymodel.GeneralOpenAIRequest, adaptor adaptor.Adaptor) (io.Reader, error) {
if !config.EnforceIncludeUsage && if !config.EnforceIncludeUsage &&
meta.APIType == apitype.OpenAI && meta.APIType == apitype.OpenAI &&
meta.OriginModelName == meta.ActualModelName && meta.OriginModelName == meta.ActualModelName &&