diff --git a/README.en.md b/README.en.md index f3e7bdaf..c45fff94 100644 --- a/README.en.md +++ b/README.en.md @@ -81,6 +81,7 @@ You can add custom models gpt-4-gizmo-* in channels. These are third-party model - `UPDATE_TASK`: Update async tasks (Midjourney, Suno), default `true` - `GEMINI_MODEL_MAP`: Specify Gemini model versions (v1/v1beta), format: "model:version", comma-separated - `COHERE_SAFETY_SETTING`: Cohere model [safety settings](https://docs.cohere.com/docs/safety-modes#overview), options: `NONE`, `CONTEXTUAL`, `STRICT`, default `NONE` +- `GEMINI_VISION_MAX_IMAGE_NUM`: Gemini model maximum image number, default `16`, set to `-1` to disable ## Deployment > [!TIP] diff --git a/README.md b/README.md index 88965f68..ddf3cd9e 100644 --- a/README.md +++ b/README.md @@ -87,6 +87,7 @@ - `UPDATE_TASK`:是否更新异步任务(Midjourney、Suno),默认为 `true`,关闭后将不会更新任务进度。 - `GEMINI_MODEL_MAP`:Gemini模型指定版本(v1/v1beta),使用“模型:版本”指定,","分隔,例如:-e GEMINI_MODEL_MAP="gemini-1.5-pro-latest:v1beta,gemini-1.5-pro-001:v1beta",为空则使用默认配置(v1beta) - `COHERE_SAFETY_SETTING`:Cohere模型[安全设置](https://docs.cohere.com/docs/safety-modes#overview),可选值为 `NONE`, `CONTEXTUAL`,`STRICT`,默认为 `NONE`。 +- `GEMINI_VISION_MAX_IMAGE_NUM`:Gemini模型最大图片数量,默认为 `16`,设置为 `-1` 则不限制。 ## 部署 > [!TIP] > 最新版Docker镜像:`calciumion/new-api:latest` diff --git a/constant/env.go b/constant/env.go index 1bd0699d..b9a6801d 100644 --- a/constant/env.go +++ b/constant/env.go @@ -23,6 +23,8 @@ var GeminiModelMap = map[string]string{ "gemini-1.0-pro": "v1", } +var GeminiVisionMaxImageNum = common.GetEnvOrDefault("GEMINI_VISION_MAX_IMAGE_NUM", 16) + func InitEnv() { modelVersionMapStr := strings.TrimSpace(os.Getenv("GEMINI_MODEL_MAP")) if modelVersionMapStr == "" { diff --git a/relay/channel/gemini/constant.go b/relay/channel/gemini/constant.go index aa89e03d..64289359 100644 --- a/relay/channel/gemini/constant.go +++ b/relay/channel/gemini/constant.go @@ -1,9 +1,5 @@ package gemini -const ( - GeminiVisionMaxImageNum = 16 -) - var ModelList = []string{ // stable version "gemini-1.5-pro", "gemini-1.5-flash", "gemini-1.5-flash-8b", diff --git a/relay/channel/gemini/relay-gemini.go b/relay/channel/gemini/relay-gemini.go index 7eea7653..18a54a83 100644 --- a/relay/channel/gemini/relay-gemini.go +++ b/relay/channel/gemini/relay-gemini.go @@ -108,9 +108,10 @@ func CovertGemini2OpenAI(textRequest dto.GeneralOpenAIRequest) *GeminiChatReques }) } else if part.Type == dto.ContentTypeImageURL { imageNum += 1 - //if imageNum > GeminiVisionMaxImageNum { - // continue - //} + + if constant.GeminiVisionMaxImageNum != -1 && imageNum > constant.GeminiVisionMaxImageNum { + continue + } // 判断是否是url if strings.HasPrefix(part.ImageUrl.(dto.MessageImageUrl).Url, "http") { // 是url,获取图片的类型和base64编码的数据