mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-18 17:30:16 +01:00
* chore: use node-fetch for OpenAIClient fetch key for non-crashing usage of AbortController in Bun runtime * chore: variable order * fix(useSSE): prevent finalHandler call in abortConversation to update messages/conversation after user navigated away * chore: params order * refactor: organize intermediate message logic and ensure correct variables are passed * fix: Add stt and tts routes before upload limiters, prevent bans * fix(abortRun): temp fix to delete unfinished messages to avoid message thread parent relationship issues * refactor: Update AnthropicClient to use node-fetch for fetch key and add proxy support * fix(gptPlugins): ensure parentMessageId/messageId relationship is maintained * feat(BaseClient): custom fetch function to analyze/edit payloads just before sending (also prevents abortController crash on Bun runtime) * feat: `directEndpoint` and `titleMessageRole` custom endpoint options * chore: Bump version to 0.6.6 in data-provider package.json
36 lines
1.1 KiB
JavaScript
36 lines
1.1 KiB
JavaScript
const express = require('express');
|
|
const { uaParser, checkBan, requireJwtAuth, createFileLimiters } = require('~/server/middleware');
|
|
const { createMulterInstance } = require('./multer');
|
|
|
|
const files = require('./files');
|
|
const images = require('./images');
|
|
const avatar = require('./avatar');
|
|
const stt = require('./stt');
|
|
const tts = require('./tts');
|
|
|
|
const initialize = async () => {
|
|
const router = express.Router();
|
|
router.use(requireJwtAuth);
|
|
router.use(checkBan);
|
|
router.use(uaParser);
|
|
|
|
/* Important: stt/tts routes must be added before the upload limiters */
|
|
router.use('/stt', stt);
|
|
router.use('/tts', tts);
|
|
|
|
const upload = await createMulterInstance();
|
|
const { fileUploadIpLimiter, fileUploadUserLimiter } = createFileLimiters();
|
|
router.post('*', fileUploadIpLimiter, fileUploadUserLimiter);
|
|
router.post('/', upload.single('file'));
|
|
router.post('/images', upload.single('file'));
|
|
|
|
router.use('/stt', stt);
|
|
router.use('/tts', tts);
|
|
|
|
router.use('/', files);
|
|
router.use('/images', images);
|
|
router.use('/images/avatar', avatar);
|
|
return router;
|
|
};
|
|
|
|
module.exports = { initialize };
|