From 3df4fac118179929968e6c7684f94e9699b8f55b Mon Sep 17 00:00:00 2001 From: Danny Avila Date: Tue, 23 Apr 2024 08:57:20 -0400 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20v0.7.1=20(#2502)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: make openai package definition explicit * ✨ v0.7.1 * chore: gpt-4-vision correct context length * add `llava` to vision models list --- Dockerfile | 2 +- Dockerfile.multi | 3 +-- api/models/tx.js | 2 ++ api/models/tx.spec.js | 7 +++++++ api/package.json | 4 ++-- api/utils/tokens.js | 1 + api/utils/tokens.spec.js | 6 ++++++ client/package.json | 2 +- e2e/jestSetup.js | 2 +- index.html | 2 +- package-lock.json | 8 ++++---- package.json | 2 +- packages/data-provider/src/config.ts | 3 ++- prettier.config.js | 2 +- 14 files changed, 31 insertions(+), 15 deletions(-) diff --git a/Dockerfile b/Dockerfile index fd087eae3..016143903 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -# v0.7.0 +# v0.7.1 # Base node image FROM node:18-alpine3.18 AS node diff --git a/Dockerfile.multi b/Dockerfile.multi index d7fedce5b..04827b440 100644 --- a/Dockerfile.multi +++ b/Dockerfile.multi @@ -1,4 +1,4 @@ -# v0.7.0 +# v0.7.1 # Build API, Client and Data Provider FROM node:20-alpine AS base @@ -33,7 +33,6 @@ COPY config/ ./ RUN mkdir -p /app/api/node_modules/librechat-data-provider/ RUN cp -R /app/packages/data-provider/* /app/api/node_modules/librechat-data-provider/ RUN npm install -RUN npm install openai@4.36.0 COPY --from=client-build /app/client/dist /app/client/dist EXPOSE 3080 ENV HOST=0.0.0.0 diff --git a/api/models/tx.js b/api/models/tx.js index eed6234c4..01ad99533 100644 --- a/api/models/tx.js +++ b/api/models/tx.js @@ -52,6 +52,8 @@ const getValueKey = (model, endpoint) => { return 'gpt-3.5-turbo-1106'; } else if (modelName.includes('gpt-3.5')) { return '4k'; + } else if (modelName.includes('gpt-4-vision')) { + return 'gpt-4-1106'; } else if (modelName.includes('gpt-4-1106')) { return 'gpt-4-1106'; } else if (modelName.includes('gpt-4-0125')) { diff --git a/api/models/tx.spec.js b/api/models/tx.spec.js index 36533a11d..bf99a1d45 100644 --- a/api/models/tx.spec.js +++ b/api/models/tx.spec.js @@ -34,6 +34,13 @@ describe('getValueKey', () => { expect(getValueKey('openai/gpt-4-1106')).toBe('gpt-4-1106'); expect(getValueKey('gpt-4-1106/openai/')).toBe('gpt-4-1106'); }); + + it('should return "gpt-4-1106" for model type of "gpt-4-1106"', () => { + expect(getValueKey('gpt-4-vision-preview')).toBe('gpt-4-1106'); + expect(getValueKey('openai/gpt-4-1106')).toBe('gpt-4-1106'); + expect(getValueKey('gpt-4-turbo')).toBe('gpt-4-1106'); + expect(getValueKey('gpt-4-0125')).toBe('gpt-4-1106'); + }); }); describe('getMultiplier', () => { diff --git a/api/package.json b/api/package.json index 906f2b2bb..c5c288b3f 100644 --- a/api/package.json +++ b/api/package.json @@ -1,6 +1,6 @@ { "name": "@librechat/backend", - "version": "0.7.0", + "version": "0.7.1", "description": "", "scripts": { "start": "echo 'please run this from the root directory'", @@ -74,7 +74,7 @@ "multer": "^1.4.5-lts.1", "nodejs-gpt": "^1.37.4", "nodemailer": "^6.9.4", - "openai": "^4.36.0", + "openai": "4.36.0", "openai-chat-tokens": "^0.2.8", "openid-client": "^5.4.2", "passport": "^0.6.0", diff --git a/api/utils/tokens.js b/api/utils/tokens.js index e59d10530..f049fe08c 100644 --- a/api/utils/tokens.js +++ b/api/utils/tokens.js @@ -49,6 +49,7 @@ const openAIModels = { 'gpt-4-1106': 127990, // -10 from max 'gpt-4-0125': 127990, // -10 from max 'gpt-4-turbo': 127990, // -10 from max + 'gpt-4-vision': 127990, // -10 from max 'gpt-3.5-turbo': 16375, // -10 from max 'gpt-3.5-turbo-0613': 4092, // -5 from max 'gpt-3.5-turbo-0301': 4092, // -5 from max diff --git a/api/utils/tokens.spec.js b/api/utils/tokens.spec.js index d55cea352..c51610c91 100644 --- a/api/utils/tokens.spec.js +++ b/api/utils/tokens.spec.js @@ -59,6 +59,12 @@ describe('getModelMaxTokens', () => { expect(getModelMaxTokens('gpt-4-1106')).toBe(maxTokensMap[EModelEndpoint.openAI]['gpt-4-1106']); }); + test('should return correct tokens for gpt-4-vision exact match', () => { + expect(getModelMaxTokens('gpt-4-vision')).toBe( + maxTokensMap[EModelEndpoint.openAI]['gpt-4-vision'], + ); + }); + test('should return correct tokens for gpt-3.5-turbo-1106 partial match', () => { expect(getModelMaxTokens('something-/gpt-3.5-turbo-1106')).toBe( maxTokensMap[EModelEndpoint.openAI]['gpt-3.5-turbo-1106'], diff --git a/client/package.json b/client/package.json index 8f507f904..c795ef9d4 100644 --- a/client/package.json +++ b/client/package.json @@ -1,6 +1,6 @@ { "name": "@librechat/frontend", - "version": "0.7.0", + "version": "0.7.1", "description": "", "type": "module", "overrides": { diff --git a/e2e/jestSetup.js b/e2e/jestSetup.js index aadb509ef..f97e49226 100644 --- a/e2e/jestSetup.js +++ b/e2e/jestSetup.js @@ -1,3 +1,3 @@ -// v0.7.0 +// v0.7.1 // See .env.test.example for an example of the '.env.test' file. require('dotenv').config({ path: './e2e/.env.test' }); diff --git a/index.html b/index.html index 3d6733bee..dacdb00c9 100644 --- a/index.html +++ b/index.html @@ -1,4 +1,4 @@ - + diff --git a/package-lock.json b/package-lock.json index 569f27c6c..d9a1823b3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "LibreChat", - "version": "0.7.0", + "version": "0.7.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "LibreChat", - "version": "0.7.0", + "version": "0.7.1", "license": "ISC", "workspaces": [ "api", @@ -38,7 +38,7 @@ }, "api": { "name": "@librechat/backend", - "version": "0.7.0", + "version": "0.7.1", "license": "ISC", "dependencies": { "@anthropic-ai/sdk": "^0.16.1", @@ -136,7 +136,7 @@ }, "client": { "name": "@librechat/frontend", - "version": "0.7.0", + "version": "0.7.1", "license": "ISC", "dependencies": { "@ariakit/react": "^0.4.5", diff --git a/package.json b/package.json index a8d5c67b2..5eeead93f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "LibreChat", - "version": "0.7.0", + "version": "0.7.1", "description": "", "workspaces": [ "api", diff --git a/packages/data-provider/src/config.ts b/packages/data-provider/src/config.ts index 2d98f11e5..333e7a81b 100644 --- a/packages/data-provider/src/config.ts +++ b/packages/data-provider/src/config.ts @@ -397,6 +397,7 @@ export const supportsBalanceCheck = { export const visionModels = [ 'gpt-4-vision', + 'llava', 'llava-13b', 'gemini-pro-vision', 'claude-3', @@ -610,7 +611,7 @@ export enum Constants { /** * Key for the app's version. */ - VERSION = 'v0.7.0', + VERSION = 'v0.7.1', /** * Key for the Custom Config's version (librechat.yaml). */ diff --git a/prettier.config.js b/prettier.config.js index b5f346f46..806a06d0e 100644 --- a/prettier.config.js +++ b/prettier.config.js @@ -1,4 +1,4 @@ -// v0.7.0 +// v0.7.1 module.exports = { tailwindConfig: './client/tailwind.config.cjs', printWidth: 100,