diff --git a/app/utils.ts b/app/utils.ts index 962e68a10..180155799 100644 --- a/app/utils.ts +++ b/app/utils.ts @@ -254,11 +254,16 @@ export function getMessageImages(message: RequestMessage): string[] { } export function isVisionModel(model: string) { - const clientConfig = getClientConfig(); - const envVisionModels = clientConfig?.visionModels - ?.split(",") - .map((m) => m.trim()); - if (envVisionModels?.includes(model)) { + const clientVisionModels = getClientConfig()?.visionModels || ""; + const envVisionModels = process.env.VISION_MODELS || ""; + const allVisionModels = `${clientVisionModels},${envVisionModels}`; + + const visionModelsList = allVisionModels + .split(",") + .filter(Boolean) + .map((m: string) => m.trim()); + + if (visionModelsList.includes(model)) { return true; } return ( diff --git a/test/vision-model-checker.test.ts b/test/vision-model-checker.test.ts index 734e992d8..7fb7f54c5 100644 --- a/test/vision-model-checker.test.ts +++ b/test/vision-model-checker.test.ts @@ -49,10 +49,11 @@ describe("isVisionModel", () => { }); test("should identify models from VISION_MODELS env var", () => { - process.env.VISION_MODELS = "custom-vision-model,another-vision-model"; + process.env.VISION_MODELS = "custom-vision-model,another-vision-model,OpenGVLab/InternVL2-26B"; expect(isVisionModel("custom-vision-model")).toBe(true); expect(isVisionModel("another-vision-model")).toBe(true); + expect(isVisionModel("OpenGVLab/InternVL2-26B")).toBe(true); expect(isVisionModel("unrelated-model")).toBe(false); });