mirror of
https://github.com/songquanpeng/one-api.git
synced 2025-11-06 08:43:42 +08:00
fix: integrate Gemini v2 modalities support and refactor response handling
This commit is contained in:
@@ -8,19 +8,18 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/songquanpeng/one-api/common/render"
|
"github.com/gin-gonic/gin"
|
||||||
|
|
||||||
"github.com/songquanpeng/one-api/common"
|
"github.com/songquanpeng/one-api/common"
|
||||||
"github.com/songquanpeng/one-api/common/config"
|
"github.com/songquanpeng/one-api/common/config"
|
||||||
"github.com/songquanpeng/one-api/common/helper"
|
"github.com/songquanpeng/one-api/common/helper"
|
||||||
"github.com/songquanpeng/one-api/common/image"
|
"github.com/songquanpeng/one-api/common/image"
|
||||||
"github.com/songquanpeng/one-api/common/logger"
|
"github.com/songquanpeng/one-api/common/logger"
|
||||||
"github.com/songquanpeng/one-api/common/random"
|
"github.com/songquanpeng/one-api/common/random"
|
||||||
|
"github.com/songquanpeng/one-api/common/render"
|
||||||
|
"github.com/songquanpeng/one-api/relay/adaptor/geminiv2"
|
||||||
"github.com/songquanpeng/one-api/relay/adaptor/openai"
|
"github.com/songquanpeng/one-api/relay/adaptor/openai"
|
||||||
"github.com/songquanpeng/one-api/relay/constant"
|
"github.com/songquanpeng/one-api/relay/constant"
|
||||||
"github.com/songquanpeng/one-api/relay/model"
|
"github.com/songquanpeng/one-api/relay/model"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// https://ai.google.dev/docs/gemini_api_overview?hl=zh-cn
|
// https://ai.google.dev/docs/gemini_api_overview?hl=zh-cn
|
||||||
@@ -61,12 +60,10 @@ func ConvertRequest(textRequest model.GeneralOpenAIRequest) *ChatRequest {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
GenerationConfig: ChatGenerationConfig{
|
GenerationConfig: ChatGenerationConfig{
|
||||||
Temperature: textRequest.Temperature,
|
Temperature: textRequest.Temperature,
|
||||||
TopP: textRequest.TopP,
|
TopP: textRequest.TopP,
|
||||||
MaxOutputTokens: textRequest.MaxTokens,
|
MaxOutputTokens: textRequest.MaxTokens,
|
||||||
ResponseModalities: []string{
|
ResponseModalities: geminiv2.GetModelModalities(textRequest.Model),
|
||||||
"TEXT", "IMAGE",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
if textRequest.ResponseFormat != nil {
|
if textRequest.ResponseFormat != nil {
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
package geminiv2
|
package geminiv2
|
||||||
|
|
||||||
|
import "strings"
|
||||||
|
|
||||||
// https://ai.google.dev/models/gemini
|
// https://ai.google.dev/models/gemini
|
||||||
|
|
||||||
var ModelList = []string{
|
var ModelList = []string{
|
||||||
@@ -14,3 +16,17 @@ var ModelList = []string{
|
|||||||
"gemini-2.0-pro-exp-02-05",
|
"gemini-2.0-pro-exp-02-05",
|
||||||
"gemini-2.0-flash-exp-image-generation",
|
"gemini-2.0-flash-exp-image-generation",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const (
|
||||||
|
ModalityText = "TEXT"
|
||||||
|
ModalityImage = "IMAGE"
|
||||||
|
)
|
||||||
|
|
||||||
|
// GetModelModalities returns the modalities of the model.
|
||||||
|
func GetModelModalities(model string) []string {
|
||||||
|
if strings.Contains(model, "-image-generation") {
|
||||||
|
return []string{ModalityText, ModalityImage}
|
||||||
|
}
|
||||||
|
|
||||||
|
return []string{ModalityText}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user