mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-17 17:00:15 +01:00
🤖 feat: Gemini 1.5 Support (+Vertex AI) (#2383)
* WIP: gemini-1.5 support * feat: extended vertex ai support * fix: handle possibly undefined modelName * fix: gpt-4-turbo-preview invalid vision model * feat: specify `fileConfig.imageOutputType` and make PNG default image conversion type * feat: better truncation for errors including base64 strings * fix: gemini inlineData formatting * feat: RAG augmented prompt for gemini-1.5 * feat: gemini-1.5 rates and token window * chore: adjust tokens, update docs, update vision Models * chore: add back `ChatGoogleVertexAI` for chat models via vertex ai * refactor: ask/edit controllers to not use `unfinished` field for google endpoint * chore: remove comment * chore(ci): fix AppService test * chore: remove comment * refactor(GoogleSearch): use `GOOGLE_SEARCH_API_KEY` instead, issue warning for old variable * chore: bump data-provider to 0.5.4 * chore: update docs * fix: condition for gemini-1.5 using generative ai lib * chore: update docs * ci: add additional AppService test for `imageOutputType` * refactor: optimize new config value `imageOutputType` * chore: bump CONFIG_VERSION * fix(assistants): avatar upload
This commit is contained in:
parent
fce7246ac1
commit
9d854dac07
37 changed files with 1030 additions and 258 deletions
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "librechat-data-provider",
|
||||
"version": "0.5.3",
|
||||
"version": "0.5.4",
|
||||
"description": "data services for librechat apps",
|
||||
"main": "dist/index.js",
|
||||
"module": "dist/index.es.js",
|
||||
|
|
|
|||
|
|
@ -186,10 +186,17 @@ export const rateLimitSchema = z.object({
|
|||
.optional(),
|
||||
});
|
||||
|
||||
export enum EImageOutputType {
|
||||
PNG = 'png',
|
||||
WEBP = 'webp',
|
||||
JPEG = 'jpeg',
|
||||
}
|
||||
|
||||
export const configSchema = z.object({
|
||||
version: z.string(),
|
||||
cache: z.boolean().optional().default(true),
|
||||
secureImageLinks: z.boolean().optional(),
|
||||
imageOutputType: z.nativeEnum(EImageOutputType).optional().default(EImageOutputType.PNG),
|
||||
interface: z
|
||||
.object({
|
||||
privacyPolicy: z
|
||||
|
|
@ -382,7 +389,17 @@ export const supportsBalanceCheck = {
|
|||
[EModelEndpoint.azureOpenAI]: true,
|
||||
};
|
||||
|
||||
export const visionModels = ['gpt-4-vision', 'llava-13b', 'gemini-pro-vision', 'claude-3'];
|
||||
export const visionModels = [
|
||||
'gpt-4-vision',
|
||||
'llava-13b',
|
||||
'gemini-pro-vision',
|
||||
'claude-3',
|
||||
'gemini-1.5',
|
||||
'gpt-4-turbo',
|
||||
];
|
||||
export enum VisionModes {
|
||||
generative = 'generative',
|
||||
}
|
||||
|
||||
export function validateVisionModel({
|
||||
model,
|
||||
|
|
@ -397,6 +414,10 @@ export function validateVisionModel({
|
|||
return false;
|
||||
}
|
||||
|
||||
if (model === 'gpt-4-turbo-preview') {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (availableModels && !availableModels.includes(model)) {
|
||||
return false;
|
||||
}
|
||||
|
|
@ -485,6 +506,8 @@ export enum AuthKeys {
|
|||
GOOGLE_SERVICE_KEY = 'GOOGLE_SERVICE_KEY',
|
||||
/**
|
||||
* API key to use Google Generative AI.
|
||||
*
|
||||
* Note: this is not for Environment Variables, but to access encrypted object values.
|
||||
*/
|
||||
GOOGLE_API_KEY = 'GOOGLE_API_KEY',
|
||||
}
|
||||
|
|
@ -546,7 +569,7 @@ export enum Constants {
|
|||
/**
|
||||
* Key for the Custom Config's version (librechat.yaml).
|
||||
*/
|
||||
CONFIG_VERSION = '1.0.5',
|
||||
CONFIG_VERSION = '1.0.6',
|
||||
/**
|
||||
* Standard value for the first message's `parentMessageId` value, to indicate no parent exists.
|
||||
*/
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue