Skip to content

Commit

Permalink
🐛 fix: Prevent Empty File Uploads & Assistants Fixes (#2611)
Browse files Browse the repository at this point in the history
* chore: update default models for openai/assistants

* fix: allows assistants models fetching

* change default models order, ensure assistant_id is defined if intended

* fix: prevent empty files from being uploaded
  • Loading branch information
danny-avila committed Aug 5, 2024
1 parent 4b030d6 commit 2bb5afd
Show file tree
Hide file tree
Showing 6 changed files with 24 additions and 7 deletions.
4 changes: 4 additions & 0 deletions api/server/services/Files/process.js
Original file line number Diff line number Diff line change
Expand Up @@ -514,6 +514,10 @@ function filterFile({ req, file, image }) {
throw new Error('No file_id provided');
}

if (file.size === 0) {
throw new Error('Empty file uploaded');
}

/* parse to validate api call, throws error on fail */
isUUID.parse(file_id);

Expand Down
10 changes: 5 additions & 5 deletions api/server/services/ModelService.js
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ const fetchModels = async ({
* @param {object} opts - The options for fetching the models.
* @param {string} opts.user - The user ID to send to the API.
* @param {boolean} [opts.azure=false] - Whether to fetch models from Azure.
* @param {boolean} [opts.assistants=false] - Whether to fetch models from Azure.
* @param {boolean} [opts.plugins=false] - Whether to fetch models from the plugins.
* @param {string[]} [_models=[]] - The models to use as a fallback.
*/
Expand All @@ -150,7 +151,10 @@ const fetchOpenAIModels = async (opts, _models = []) => {
const openaiBaseURL = 'https://api.openai.com/v1';
let baseURL = openaiBaseURL;
let reverseProxyUrl = process.env.OPENAI_REVERSE_PROXY;
if (opts.azure) {

if (opts.assistants && process.env.ASSISTANTS_BASE_URL) {
reverseProxyUrl = process.env.ASSISTANTS_BASE_URL;
} else if (opts.azure) {
return models;
// const azure = getAzureCredentials();
// baseURL = (genAzureChatCompletion(azure))
Expand Down Expand Up @@ -245,10 +249,6 @@ const getOpenAIModels = async (opts) => {
return models;
}

if (opts.assistants) {
return models;
}

return await fetchOpenAIModels(opts, models);
};

Expand Down
4 changes: 4 additions & 0 deletions client/src/hooks/Files/useFileHandling.ts
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,10 @@ const useFileHandling = (params?: UseFileHandling) => {
const validateFiles = (fileList: File[]) => {
const existingFiles = Array.from(files.values());
const incomingTotalSize = fileList.reduce((total, file) => total + file.size, 0);
if (incomingTotalSize === 0) {
setError('Empty files are not allowed.');
return false;
}
const currentTotalSize = existingFiles.reduce((total, file) => total + file.size, 0);

if (fileList.length + files.size > fileLimit) {
Expand Down
5 changes: 5 additions & 0 deletions client/src/utils/buildDefaultConvo.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,11 @@ const buildDefaultConvo = ({
endpoint,
};

// Ensures assistant_id is always defined
if (endpoint === EModelEndpoint.assistants && !defaultConvo.assistant_id && convo.assistant_id) {
defaultConvo.assistant_id = convo.assistant_id;
}

defaultConvo.tools = lastConversationSetup?.tools ?? lastSelectedTools ?? defaultConvo.tools;
defaultConvo.jailbreak = jailbreak ?? defaultConvo.jailbreak;
defaultConvo.toneStyle = toneStyle ?? defaultConvo.toneStyle;
Expand Down
2 changes: 1 addition & 1 deletion packages/data-provider/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "librechat-data-provider",
"version": "0.5.9",
"version": "0.6.0",
"description": "data services for librechat apps",
"main": "dist/index.js",
"module": "dist/index.es.js",
Expand Down
6 changes: 5 additions & 1 deletion packages/data-provider/src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -345,14 +345,16 @@ export const alternateName = {

export const defaultModels = {
[EModelEndpoint.assistants]: [
'gpt-3.5-turbo',
'gpt-3.5-turbo-0125',
'gpt-4-turbo',
'gpt-4-turbo-2024-04-09',
'gpt-4-0125-preview',
'gpt-4-turbo-preview',
'gpt-4-1106-preview',
'gpt-3.5-turbo-1106',
'gpt-3.5-turbo-16k-0613',
'gpt-3.5-turbo-16k',
'gpt-3.5-turbo',
'gpt-4',
'gpt-4-0314',
'gpt-4-32k-0314',
Expand Down Expand Up @@ -387,6 +389,8 @@ export const defaultModels = {
],
[EModelEndpoint.openAI]: [
'gpt-3.5-turbo-0125',
'gpt-4-turbo',
'gpt-4-turbo-2024-04-09',
'gpt-3.5-turbo-16k-0613',
'gpt-3.5-turbo-16k',
'gpt-4-turbo-preview',
Expand Down

0 comments on commit 2bb5afd

Please sign in to comment.