const express = require('express'); const router = express.Router(); const openAI = require('./openAI'); const gptPlugins = require('./gptPlugins'); const anthropic = require('./anthropic'); const { checkBan, uaParser, requireJwtAuth, concurrentLimiter, messageIpLimiter, messageUserLimiter, } = require('../../middleware'); const { isEnabled } = require('../../utils'); const { LIMIT_CONCURRENT_MESSAGES, LIMIT_MESSAGE_IP, LIMIT_MESSAGE_USER } = process.env ?? {}; router.use(requireJwtAuth); router.use(checkBan); router.use(uaParser); if (isEnabled(LIMIT_CONCURRENT_MESSAGES)) { router.use(concurrentLimiter); } if (isEnabled(LIMIT_MESSAGE_IP)) { router.use(messageIpLimiter); } if (isEnabled(LIMIT_MESSAGE_USER)) { router.use(messageUserLimiter); } router.use(['/azureOpenAI', '/openAI'], openAI); router.use('/gptPlugins', gptPlugins); router.use('/anthropic', anthropic); module.exports = router;