mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-17 00:40:14 +01:00
🛠️ feat: Azure OpenAI Assistants File Downloads (#3653)
This commit is contained in:
parent
741e3e8395
commit
bcde0beb47
2 changed files with 32 additions and 3 deletions
16
.vscode/launch.json
vendored
Normal file
16
.vscode/launch.json
vendored
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"type": "node",
|
||||||
|
"request": "launch",
|
||||||
|
"name": "Launch LibreChat (debug)",
|
||||||
|
"skipFiles": ["<node_internals>/**"],
|
||||||
|
"program": "${workspaceFolder}/api/server/index.js",
|
||||||
|
"env": {
|
||||||
|
"NODE_ENV": "production"
|
||||||
|
},
|
||||||
|
"console": "integratedTerminal"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -1,13 +1,18 @@
|
||||||
const fs = require('fs').promises;
|
const fs = require('fs').promises;
|
||||||
const express = require('express');
|
const express = require('express');
|
||||||
const { isUUID, checkOpenAIStorage } = require('librechat-data-provider');
|
const {
|
||||||
|
isUUID,
|
||||||
|
checkOpenAIStorage,
|
||||||
|
FileSources,
|
||||||
|
EModelEndpoint,
|
||||||
|
} = require('librechat-data-provider');
|
||||||
const {
|
const {
|
||||||
filterFile,
|
filterFile,
|
||||||
processFileUpload,
|
processFileUpload,
|
||||||
processDeleteRequest,
|
processDeleteRequest,
|
||||||
} = require('~/server/services/Files/process');
|
} = require('~/server/services/Files/process');
|
||||||
const { initializeClient } = require('~/server/services/Endpoints/assistants');
|
|
||||||
const { getStrategyFunctions } = require('~/server/services/Files/strategies');
|
const { getStrategyFunctions } = require('~/server/services/Files/strategies');
|
||||||
|
const { getOpenAIClient } = require('~/server/controllers/assistants/helpers');
|
||||||
const { getFiles } = require('~/models/File');
|
const { getFiles } = require('~/models/File');
|
||||||
const { logger } = require('~/config');
|
const { logger } = require('~/config');
|
||||||
|
|
||||||
|
|
@ -113,7 +118,15 @@ router.get('/download/:userId/:file_id', async (req, res) => {
|
||||||
|
|
||||||
if (checkOpenAIStorage(file.source)) {
|
if (checkOpenAIStorage(file.source)) {
|
||||||
req.body = { model: file.model };
|
req.body = { model: file.model };
|
||||||
const { openai } = await initializeClient({ req, res });
|
const endpointMap = {
|
||||||
|
[FileSources.openai]: EModelEndpoint.assistants,
|
||||||
|
[FileSources.azure]: EModelEndpoint.azureAssistants,
|
||||||
|
};
|
||||||
|
const { openai } = await getOpenAIClient({
|
||||||
|
req,
|
||||||
|
res,
|
||||||
|
overrideEndpoint: endpointMap[file.source],
|
||||||
|
});
|
||||||
logger.debug(`Downloading file ${file_id} from OpenAI`);
|
logger.debug(`Downloading file ${file_id} from OpenAI`);
|
||||||
passThrough = await getDownloadStream(file_id, openai);
|
passThrough = await getDownloadStream(file_id, openai);
|
||||||
setHeaders();
|
setHeaders();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue