mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-16 08:20:14 +01:00
🧹 chore: Cleanup Logger and Utility Imports (#9935)
* 🧹 chore: Update logger imports to use @librechat/data-schemas across multiple files and remove unused sleep function from queue.js (#9930) * chore: Replace local isEnabled utility with @librechat/api import across multiple files, update test files * chore: Replace local logger import with @librechat/data-schemas logger in countTokens.js and fork.js * chore: Update logs volume path in docker-compose.yml to correct directory * chore: import order of isEnabled in static.js
This commit is contained in:
parent
b7d13cec6f
commit
dbe4dd96b4
68 changed files with 111 additions and 146 deletions
|
|
@ -1,4 +1,5 @@
|
||||||
const Anthropic = require('@anthropic-ai/sdk');
|
const Anthropic = require('@anthropic-ai/sdk');
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { HttpsProxyAgent } = require('https-proxy-agent');
|
const { HttpsProxyAgent } = require('https-proxy-agent');
|
||||||
const {
|
const {
|
||||||
Constants,
|
Constants,
|
||||||
|
|
@ -9,7 +10,7 @@ const {
|
||||||
getResponseSender,
|
getResponseSender,
|
||||||
validateVisionModel,
|
validateVisionModel,
|
||||||
} = require('librechat-data-provider');
|
} = require('librechat-data-provider');
|
||||||
const { SplitStreamHandler: _Handler } = require('@librechat/agents');
|
const { sleep, SplitStreamHandler: _Handler } = require('@librechat/agents');
|
||||||
const {
|
const {
|
||||||
Tokenizer,
|
Tokenizer,
|
||||||
createFetch,
|
createFetch,
|
||||||
|
|
@ -31,9 +32,7 @@ const {
|
||||||
} = require('./prompts');
|
} = require('./prompts');
|
||||||
const { spendTokens, spendStructuredTokens } = require('~/models/spendTokens');
|
const { spendTokens, spendStructuredTokens } = require('~/models/spendTokens');
|
||||||
const { encodeAndFormat } = require('~/server/services/Files/images/encode');
|
const { encodeAndFormat } = require('~/server/services/Files/images/encode');
|
||||||
const { sleep } = require('~/server/utils');
|
|
||||||
const BaseClient = require('./BaseClient');
|
const BaseClient = require('./BaseClient');
|
||||||
const { logger } = require('~/config');
|
|
||||||
|
|
||||||
const HUMAN_PROMPT = '\n\nHuman:';
|
const HUMAN_PROMPT = '\n\nHuman:';
|
||||||
const AI_PROMPT = '\n\nAssistant:';
|
const AI_PROMPT = '\n\nAssistant:';
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
const { google } = require('googleapis');
|
const { google } = require('googleapis');
|
||||||
|
const { sleep } = require('@librechat/agents');
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { getModelMaxTokens } = require('@librechat/api');
|
const { getModelMaxTokens } = require('@librechat/api');
|
||||||
const { concat } = require('@langchain/core/utils/stream');
|
const { concat } = require('@langchain/core/utils/stream');
|
||||||
const { ChatVertexAI } = require('@langchain/google-vertexai');
|
const { ChatVertexAI } = require('@langchain/google-vertexai');
|
||||||
|
|
@ -22,8 +24,6 @@ const {
|
||||||
} = require('librechat-data-provider');
|
} = require('librechat-data-provider');
|
||||||
const { encodeAndFormat } = require('~/server/services/Files/images');
|
const { encodeAndFormat } = require('~/server/services/Files/images');
|
||||||
const { spendTokens } = require('~/models/spendTokens');
|
const { spendTokens } = require('~/models/spendTokens');
|
||||||
const { sleep } = require('~/server/utils');
|
|
||||||
const { logger } = require('~/config');
|
|
||||||
const {
|
const {
|
||||||
formatMessage,
|
formatMessage,
|
||||||
createContextHandlers,
|
createContextHandlers,
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
const { OllamaClient } = require('./OllamaClient');
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { HttpsProxyAgent } = require('https-proxy-agent');
|
const { HttpsProxyAgent } = require('https-proxy-agent');
|
||||||
const { SplitStreamHandler, CustomOpenAIClient: OpenAI } = require('@librechat/agents');
|
const { sleep, SplitStreamHandler, CustomOpenAIClient: OpenAI } = require('@librechat/agents');
|
||||||
const {
|
const {
|
||||||
isEnabled,
|
isEnabled,
|
||||||
Tokenizer,
|
Tokenizer,
|
||||||
|
|
@ -34,16 +34,16 @@ const {
|
||||||
createContextHandlers,
|
createContextHandlers,
|
||||||
} = require('./prompts');
|
} = require('./prompts');
|
||||||
const { encodeAndFormat } = require('~/server/services/Files/images/encode');
|
const { encodeAndFormat } = require('~/server/services/Files/images/encode');
|
||||||
const { addSpaceIfNeeded, sleep } = require('~/server/utils');
|
|
||||||
const { spendTokens } = require('~/models/spendTokens');
|
const { spendTokens } = require('~/models/spendTokens');
|
||||||
|
const { addSpaceIfNeeded } = require('~/server/utils');
|
||||||
const { handleOpenAIErrors } = require('./tools/util');
|
const { handleOpenAIErrors } = require('./tools/util');
|
||||||
|
const { OllamaClient } = require('./OllamaClient');
|
||||||
const { summaryBuffer } = require('./memory');
|
const { summaryBuffer } = require('./memory');
|
||||||
const { runTitleChain } = require('./chains');
|
const { runTitleChain } = require('./chains');
|
||||||
const { extractBaseURL } = require('~/utils');
|
const { extractBaseURL } = require('~/utils');
|
||||||
const { tokenSplit } = require('./document');
|
const { tokenSplit } = require('./document');
|
||||||
const BaseClient = require('./BaseClient');
|
const BaseClient = require('./BaseClient');
|
||||||
const { createLLM } = require('./llm');
|
const { createLLM } = require('./llm');
|
||||||
const { logger } = require('~/config');
|
|
||||||
|
|
||||||
class OpenAIClient extends BaseClient {
|
class OpenAIClient extends BaseClient {
|
||||||
constructor(apiKey, options = {}) {
|
constructor(apiKey, options = {}) {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
const { Readable } = require('stream');
|
const { Readable } = require('stream');
|
||||||
const { logger } = require('~/config');
|
const { logger } = require('@librechat/data-schemas');
|
||||||
|
|
||||||
class TextStream extends Readable {
|
class TextStream extends Readable {
|
||||||
constructor(text, options = {}) {
|
constructor(text, options = {}) {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { ZeroShotAgentOutputParser } = require('langchain/agents');
|
const { ZeroShotAgentOutputParser } = require('langchain/agents');
|
||||||
const { logger } = require('~/config');
|
|
||||||
|
|
||||||
class CustomOutputParser extends ZeroShotAgentOutputParser {
|
class CustomOutputParser extends ZeroShotAgentOutputParser {
|
||||||
constructor(fields) {
|
constructor(fields) {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
const { z } = require('zod');
|
const { z } = require('zod');
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { langPrompt, createTitlePrompt, escapeBraces, getSnippet } = require('../prompts');
|
const { langPrompt, createTitlePrompt, escapeBraces, getSnippet } = require('../prompts');
|
||||||
const { createStructuredOutputChainFromZod } = require('langchain/chains/openai_functions');
|
const { createStructuredOutputChainFromZod } = require('langchain/chains/openai_functions');
|
||||||
const { logger } = require('~/config');
|
|
||||||
|
|
||||||
const langSchema = z.object({
|
const langSchema = z.object({
|
||||||
language: z.string().describe('The language of the input text (full noun, no abbreviations).'),
|
language: z.string().describe('The language of the input text (full noun, no abbreviations).'),
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { ConversationSummaryBufferMemory, ChatMessageHistory } = require('langchain/memory');
|
const { ConversationSummaryBufferMemory, ChatMessageHistory } = require('langchain/memory');
|
||||||
const { formatLangChainMessages, SUMMARY_PROMPT } = require('../prompts');
|
const { formatLangChainMessages, SUMMARY_PROMPT } = require('../prompts');
|
||||||
const { predictNewSummary } = require('../chains');
|
const { predictNewSummary } = require('../chains');
|
||||||
const { logger } = require('~/config');
|
|
||||||
|
|
||||||
const createSummaryBufferMemory = ({ llm, prompt, messages, ...rest }) => {
|
const createSummaryBufferMemory = ({ llm, prompt, messages, ...rest }) => {
|
||||||
const chatHistory = new ChatMessageHistory(messages);
|
const chatHistory = new ChatMessageHistory(messages);
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
const { logger } = require('~/config');
|
const { logger } = require('@librechat/data-schemas');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The `addImages` function corrects any erroneous image URLs in the `responseMessage.text`
|
* The `addImages` function corrects any erroneous image URLs in the `responseMessage.text`
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
const { z } = require('zod');
|
const { z } = require('zod');
|
||||||
const { Tool } = require('@langchain/core/tools');
|
const { Tool } = require('@langchain/core/tools');
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { SearchClient, AzureKeyCredential } = require('@azure/search-documents');
|
const { SearchClient, AzureKeyCredential } = require('@azure/search-documents');
|
||||||
const { logger } = require('~/config');
|
|
||||||
|
|
||||||
class AzureAISearch extends Tool {
|
class AzureAISearch extends Tool {
|
||||||
// Constants for default values
|
// Constants for default values
|
||||||
|
|
@ -18,7 +18,7 @@ class AzureAISearch extends Tool {
|
||||||
super();
|
super();
|
||||||
this.name = 'azure-ai-search';
|
this.name = 'azure-ai-search';
|
||||||
this.description =
|
this.description =
|
||||||
'Use the \'azure-ai-search\' tool to retrieve search results relevant to your input';
|
"Use the 'azure-ai-search' tool to retrieve search results relevant to your input";
|
||||||
/* Used to initialize the Tool without necessary variables. */
|
/* Used to initialize the Tool without necessary variables. */
|
||||||
this.override = fields.override ?? false;
|
this.override = fields.override ?? false;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,12 +3,12 @@ const axios = require('axios');
|
||||||
const fetch = require('node-fetch');
|
const fetch = require('node-fetch');
|
||||||
const { v4: uuidv4 } = require('uuid');
|
const { v4: uuidv4 } = require('uuid');
|
||||||
const { Tool } = require('@langchain/core/tools');
|
const { Tool } = require('@langchain/core/tools');
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { HttpsProxyAgent } = require('https-proxy-agent');
|
const { HttpsProxyAgent } = require('https-proxy-agent');
|
||||||
const { FileContext, ContentTypes } = require('librechat-data-provider');
|
const { FileContext, ContentTypes } = require('librechat-data-provider');
|
||||||
const { logger } = require('~/config');
|
|
||||||
|
|
||||||
const displayMessage =
|
const displayMessage =
|
||||||
'Flux displayed an image. All generated images are already plainly visible, so don\'t repeat the descriptions in detail. Do not list download links as they are available in the UI already. The user may download the images by clicking on them, but do not mention anything about downloading to the user.';
|
"Flux displayed an image. All generated images are already plainly visible, so don't repeat the descriptions in detail. Do not list download links as they are available in the UI already. The user may download the images by clicking on them, but do not mention anything about downloading to the user.";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FluxAPI - A tool for generating high-quality images from text prompts using the Flux API.
|
* FluxAPI - A tool for generating high-quality images from text prompts using the Flux API.
|
||||||
|
|
|
||||||
|
|
@ -6,9 +6,9 @@ const axios = require('axios');
|
||||||
const sharp = require('sharp');
|
const sharp = require('sharp');
|
||||||
const { v4: uuidv4 } = require('uuid');
|
const { v4: uuidv4 } = require('uuid');
|
||||||
const { Tool } = require('@langchain/core/tools');
|
const { Tool } = require('@langchain/core/tools');
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { FileContext, ContentTypes } = require('librechat-data-provider');
|
const { FileContext, ContentTypes } = require('librechat-data-provider');
|
||||||
const paths = require('~/config/paths');
|
const paths = require('~/config/paths');
|
||||||
const { logger } = require('~/config');
|
|
||||||
|
|
||||||
const displayMessage =
|
const displayMessage =
|
||||||
"Stable Diffusion displayed an image. All generated images are already plainly visible, so don't repeat the descriptions in detail. Do not list download links as they are available in the UI already. The user may download the images by clicking on them, but do not mention anything about downloading to the user.";
|
"Stable Diffusion displayed an image. All generated images are already plainly visible, so don't repeat the descriptions in detail. Do not list download links as they are available in the UI already. The user may download the images by clicking on them, but do not mention anything about downloading to the user.";
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
const { z } = require('zod');
|
const { z } = require('zod');
|
||||||
const { Tool } = require('@langchain/core/tools');
|
const { Tool } = require('@langchain/core/tools');
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { getEnvironmentVariable } = require('@langchain/core/utils/env');
|
const { getEnvironmentVariable } = require('@langchain/core/utils/env');
|
||||||
const { logger } = require('~/config');
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tool for the Traversaal AI search API, Ares.
|
* Tool for the Traversaal AI search API, Ares.
|
||||||
|
|
@ -21,7 +21,7 @@ class TraversaalSearch extends Tool {
|
||||||
query: z
|
query: z
|
||||||
.string()
|
.string()
|
||||||
.describe(
|
.describe(
|
||||||
'A properly written sentence to be interpreted by an AI to search the web according to the user\'s request.',
|
"A properly written sentence to be interpreted by an AI to search the web according to the user's request.",
|
||||||
),
|
),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -38,7 +38,6 @@ class TraversaalSearch extends Tool {
|
||||||
return apiKey;
|
return apiKey;
|
||||||
}
|
}
|
||||||
|
|
||||||
// eslint-disable-next-line no-unused-vars
|
|
||||||
async _call({ query }, _runManager) {
|
async _call({ query }, _runManager) {
|
||||||
const body = {
|
const body = {
|
||||||
query: [query],
|
query: [query],
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
/* eslint-disable no-useless-escape */
|
/* eslint-disable no-useless-escape */
|
||||||
const axios = require('axios');
|
|
||||||
const { z } = require('zod');
|
const { z } = require('zod');
|
||||||
|
const axios = require('axios');
|
||||||
const { Tool } = require('@langchain/core/tools');
|
const { Tool } = require('@langchain/core/tools');
|
||||||
const { logger } = require('~/config');
|
const { logger } = require('@librechat/data-schemas');
|
||||||
|
|
||||||
class WolframAlphaAPI extends Tool {
|
class WolframAlphaAPI extends Tool {
|
||||||
constructor(fields) {
|
constructor(fields) {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
const OpenAI = require('openai');
|
const OpenAI = require('openai');
|
||||||
const { logger } = require('~/config');
|
const { logger } = require('@librechat/data-schemas');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles errors that may occur when making requests to OpenAI's API.
|
* Handles errors that may occur when making requests to OpenAI's API.
|
||||||
|
|
|
||||||
2
api/cache/clearPendingReq.js
vendored
2
api/cache/clearPendingReq.js
vendored
|
|
@ -1,5 +1,5 @@
|
||||||
|
const { isEnabled } = require('@librechat/api');
|
||||||
const { Time, CacheKeys } = require('librechat-data-provider');
|
const { Time, CacheKeys } = require('librechat-data-provider');
|
||||||
const { isEnabled } = require('~/server/utils');
|
|
||||||
const getLogStores = require('./getLogStores');
|
const getLogStores = require('./getLogStores');
|
||||||
|
|
||||||
const { USE_REDIS, LIMIT_CONCURRENT_MESSAGES } = process.env ?? {};
|
const { USE_REDIS, LIMIT_CONCURRENT_MESSAGES } = process.env ?? {};
|
||||||
|
|
|
||||||
2
api/cache/keyvMongo.js
vendored
2
api/cache/keyvMongo.js
vendored
|
|
@ -2,7 +2,7 @@
|
||||||
const mongoose = require('mongoose');
|
const mongoose = require('mongoose');
|
||||||
const EventEmitter = require('events');
|
const EventEmitter = require('events');
|
||||||
const { GridFSBucket } = require('mongodb');
|
const { GridFSBucket } = require('mongodb');
|
||||||
const { logger } = require('~/config');
|
const { logger } = require('@librechat/data-schemas');
|
||||||
|
|
||||||
const storeMap = new Map();
|
const storeMap = new Map();
|
||||||
|
|
||||||
|
|
|
||||||
2
api/cache/logViolation.js
vendored
2
api/cache/logViolation.js
vendored
|
|
@ -1,4 +1,4 @@
|
||||||
const { isEnabled } = require('~/server/utils');
|
const { isEnabled } = require('@librechat/api');
|
||||||
const { ViolationTypes } = require('librechat-data-provider');
|
const { ViolationTypes } = require('librechat-data-provider');
|
||||||
const getLogStores = require('./getLogStores');
|
const getLogStores = require('./getLogStores');
|
||||||
const banViolation = require('./banViolation');
|
const banViolation = require('./banViolation');
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
const { logger } = require('~/config');
|
const { logger } = require('@librechat/data-schemas');
|
||||||
|
|
||||||
const options = [
|
const options = [
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
const { logger } = require('~/config');
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { createTransaction, createStructuredTransaction } = require('./Transaction');
|
const { createTransaction, createStructuredTransaction } = require('./Transaction');
|
||||||
/**
|
/**
|
||||||
* Creates up to two transactions to record the spending of tokens.
|
* Creates up to two transactions to record the spending of tokens.
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { CacheKeys } = require('librechat-data-provider');
|
const { CacheKeys } = require('librechat-data-provider');
|
||||||
const { loadDefaultModels, loadConfigModels } = require('~/server/services/Config');
|
const { loadDefaultModels, loadConfigModels } = require('~/server/services/Config');
|
||||||
const { getLogStores } = require('~/cache');
|
const { getLogStores } = require('~/cache');
|
||||||
const { logger } = require('~/config');
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {ServerRequest} req
|
* @param {ServerRequest} req
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { generate2FATempToken } = require('~/server/services/twoFactorService');
|
const { generate2FATempToken } = require('~/server/services/twoFactorService');
|
||||||
const { setAuthTokens } = require('~/server/services/AuthService');
|
const { setAuthTokens } = require('~/server/services/AuthService');
|
||||||
const { logger } = require('~/config');
|
|
||||||
|
|
||||||
const loginController = async (req, res) => {
|
const loginController = async (req, res) => {
|
||||||
try {
|
try {
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
const cookies = require('cookie');
|
const cookies = require('cookie');
|
||||||
const { getOpenIdConfig } = require('~/strategies');
|
const { isEnabled } = require('@librechat/api');
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { logoutUser } = require('~/server/services/AuthService');
|
const { logoutUser } = require('~/server/services/AuthService');
|
||||||
const { isEnabled } = require('~/server/utils');
|
const { getOpenIdConfig } = require('~/strategies');
|
||||||
const { logger } = require('~/config');
|
|
||||||
|
|
||||||
const logoutController = async (req, res) => {
|
const logoutController = async (req, res) => {
|
||||||
const refreshToken = req.headers.cookie ? cookies.parse(req.headers.cookie).refreshToken : null;
|
const refreshToken = req.headers.cookie ? cookies.parse(req.headers.cookie).refreshToken : null;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
|
const { isEnabled } = require('@librechat/api');
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { SystemRoles } = require('librechat-data-provider');
|
const { SystemRoles } = require('librechat-data-provider');
|
||||||
const { isEnabled } = require('~/server/utils');
|
|
||||||
const { logger } = require('~/config');
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if the user can delete their account
|
* Checks if the user can delete their account
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
const { Keyv } = require('keyv');
|
const { Keyv } = require('keyv');
|
||||||
const uap = require('ua-parser-js');
|
const uap = require('ua-parser-js');
|
||||||
|
const { isEnabled } = require('@librechat/api');
|
||||||
const { logger } = require('@librechat/data-schemas');
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { ViolationTypes } = require('librechat-data-provider');
|
const { ViolationTypes } = require('librechat-data-provider');
|
||||||
const { isEnabled, removePorts } = require('~/server/utils');
|
const { removePorts } = require('~/server/utils');
|
||||||
const keyvMongo = require('~/cache/keyvMongo');
|
const keyvMongo = require('~/cache/keyvMongo');
|
||||||
const denyRequest = require('./denyRequest');
|
const denyRequest = require('./denyRequest');
|
||||||
const { getLogStores } = require('~/cache');
|
const { getLogStores } = require('~/cache');
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { PrincipalType, PermissionTypes, Permissions } = require('librechat-data-provider');
|
const { PrincipalType, PermissionTypes, Permissions } = require('librechat-data-provider');
|
||||||
const { getRoleByName } = require('~/models/Role');
|
const { getRoleByName } = require('~/models/Role');
|
||||||
const { logger } = require('~/config');
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Middleware to check if user has permission to access people picker functionality
|
* Middleware to check if user has permission to access people picker functionality
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,11 @@
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { PrincipalType, PermissionTypes, Permissions } = require('librechat-data-provider');
|
const { PrincipalType, PermissionTypes, Permissions } = require('librechat-data-provider');
|
||||||
const { checkPeoplePickerAccess } = require('./checkPeoplePickerAccess');
|
const { checkPeoplePickerAccess } = require('./checkPeoplePickerAccess');
|
||||||
const { getRoleByName } = require('~/models/Role');
|
const { getRoleByName } = require('~/models/Role');
|
||||||
const { logger } = require('~/config');
|
|
||||||
|
|
||||||
jest.mock('~/models/Role');
|
jest.mock('~/models/Role');
|
||||||
jest.mock('~/config', () => ({
|
jest.mock('@librechat/data-schemas', () => ({
|
||||||
|
...jest.requireActual('@librechat/data-schemas'),
|
||||||
logger: {
|
logger: {
|
||||||
error: jest.fn(),
|
error: jest.fn(),
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
|
const { isEnabled } = require('@librechat/api');
|
||||||
const { Time, CacheKeys, ViolationTypes } = require('librechat-data-provider');
|
const { Time, CacheKeys, ViolationTypes } = require('librechat-data-provider');
|
||||||
const clearPendingReq = require('~/cache/clearPendingReq');
|
const clearPendingReq = require('~/cache/clearPendingReq');
|
||||||
const { logViolation, getLogStores } = require('~/cache');
|
const { logViolation, getLogStores } = require('~/cache');
|
||||||
const { isEnabled } = require('~/server/utils');
|
|
||||||
const denyRequest = require('./denyRequest');
|
const denyRequest = require('./denyRequest');
|
||||||
|
|
||||||
const {
|
const {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
const { logger } = require('~/config');
|
const { logger } = require('@librechat/data-schemas');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Middleware to log Forwarded Headers
|
* Middleware to log Forwarded Headers
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
const axios = require('axios');
|
const axios = require('axios');
|
||||||
|
const { isEnabled } = require('@librechat/api');
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { ErrorTypes } = require('librechat-data-provider');
|
const { ErrorTypes } = require('librechat-data-provider');
|
||||||
const { isEnabled } = require('~/server/utils');
|
|
||||||
const denyRequest = require('./denyRequest');
|
const denyRequest = require('./denyRequest');
|
||||||
const { logger } = require('~/config');
|
|
||||||
|
|
||||||
async function moderateText(req, res, next) {
|
async function moderateText(req, res, next) {
|
||||||
if (!isEnabled(process.env.OPENAI_MODERATION)) {
|
if (!isEnabled(process.env.OPENAI_MODERATION)) {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
const cookies = require('cookie');
|
const cookies = require('cookie');
|
||||||
const { isEnabled } = require('~/server/utils');
|
|
||||||
const passport = require('passport');
|
const passport = require('passport');
|
||||||
|
const { isEnabled } = require('@librechat/api');
|
||||||
|
|
||||||
// This middleware does not require authentication,
|
// This middleware does not require authentication,
|
||||||
// but if the user is authenticated, it will set the user object.
|
// but if the user is authenticated, it will set the user object.
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
const passport = require('passport');
|
|
||||||
const cookies = require('cookie');
|
const cookies = require('cookie');
|
||||||
const { isEnabled } = require('~/server/utils');
|
const passport = require('passport');
|
||||||
|
const { isEnabled } = require('@librechat/api');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Custom Middleware to handle JWT authentication, with support for OpenID token reuse
|
* Custom Middleware to handle JWT authentication, with support for OpenID token reuse
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
const passport = require('passport');
|
const passport = require('passport');
|
||||||
const { logger } = require('~/config');
|
const { logger } = require('@librechat/data-schemas');
|
||||||
|
|
||||||
const requireLocalAuth = (req, res, next) => {
|
const requireLocalAuth = (req, res, next) => {
|
||||||
passport.authenticate('local', (err, user, info) => {
|
passport.authenticate('local', (err, user, info) => {
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
const { isEnabled } = require('~/server/utils');
|
const { isEnabled } = require('@librechat/api');
|
||||||
const { logger } = require('~/config');
|
const { logger } = require('@librechat/data-schemas');
|
||||||
|
|
||||||
function validatePasswordReset(req, res, next) {
|
function validatePasswordReset(req, res, next) {
|
||||||
if (isEnabled(process.env.ALLOW_PASSWORD_RESET)) {
|
if (isEnabled(process.env.ALLOW_PASSWORD_RESET)) {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
const { isEnabled } = require('~/server/utils');
|
const { isEnabled } = require('@librechat/api');
|
||||||
|
|
||||||
function validateRegistration(req, res, next) {
|
function validateRegistration(req, res, next) {
|
||||||
if (req.invite) {
|
if (req.invite) {
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,13 @@
|
||||||
const request = require('supertest');
|
|
||||||
const express = require('express');
|
const express = require('express');
|
||||||
|
const request = require('supertest');
|
||||||
|
const { isEnabled } = require('@librechat/api');
|
||||||
const { getLdapConfig } = require('~/server/services/Config/ldap');
|
const { getLdapConfig } = require('~/server/services/Config/ldap');
|
||||||
const { isEnabled } = require('~/server/utils');
|
|
||||||
|
|
||||||
jest.mock('~/server/services/Config/ldap');
|
jest.mock('~/server/services/Config/ldap');
|
||||||
jest.mock('~/server/utils');
|
jest.mock('@librechat/api', () => ({
|
||||||
|
...jest.requireActual('@librechat/api'),
|
||||||
|
isEnabled: jest.fn(),
|
||||||
|
}));
|
||||||
|
|
||||||
const app = express();
|
const app = express();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
const express = require('express');
|
const express = require('express');
|
||||||
|
const { isEnabled } = require('@librechat/api');
|
||||||
const {
|
const {
|
||||||
uaParser,
|
uaParser,
|
||||||
checkBan,
|
checkBan,
|
||||||
|
|
@ -8,7 +9,6 @@ const {
|
||||||
concurrentLimiter,
|
concurrentLimiter,
|
||||||
messageUserLimiter,
|
messageUserLimiter,
|
||||||
} = require('~/server/middleware');
|
} = require('~/server/middleware');
|
||||||
const { isEnabled } = require('~/server/utils');
|
|
||||||
const { v1 } = require('./v1');
|
const { v1 } = require('./v1');
|
||||||
const chat = require('./chat');
|
const chat = require('./chat');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,19 +1,19 @@
|
||||||
|
const { isEnabled } = require('@librechat/api');
|
||||||
|
const { EModelEndpoint } = require('librechat-data-provider');
|
||||||
|
const {
|
||||||
|
validateConvoAccess,
|
||||||
|
messageUserLimiter,
|
||||||
|
concurrentLimiter,
|
||||||
|
messageIpLimiter,
|
||||||
|
requireJwtAuth,
|
||||||
|
checkBan,
|
||||||
|
uaParser,
|
||||||
|
} = require('~/server/middleware');
|
||||||
|
const anthropic = require('./anthropic');
|
||||||
const express = require('express');
|
const express = require('express');
|
||||||
const openAI = require('./openAI');
|
const openAI = require('./openAI');
|
||||||
const custom = require('./custom');
|
const custom = require('./custom');
|
||||||
const google = require('./google');
|
const google = require('./google');
|
||||||
const anthropic = require('./anthropic');
|
|
||||||
const { isEnabled } = require('~/server/utils');
|
|
||||||
const { EModelEndpoint } = require('librechat-data-provider');
|
|
||||||
const {
|
|
||||||
checkBan,
|
|
||||||
uaParser,
|
|
||||||
requireJwtAuth,
|
|
||||||
messageIpLimiter,
|
|
||||||
concurrentLimiter,
|
|
||||||
messageUserLimiter,
|
|
||||||
validateConvoAccess,
|
|
||||||
} = require('~/server/middleware');
|
|
||||||
|
|
||||||
const { LIMIT_CONCURRENT_MESSAGES, LIMIT_MESSAGE_IP, LIMIT_MESSAGE_USER } = process.env ?? {};
|
const { LIMIT_CONCURRENT_MESSAGES, LIMIT_MESSAGE_IP, LIMIT_MESSAGE_USER } = process.env ?? {};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
const fs = require('fs').promises;
|
const fs = require('fs').promises;
|
||||||
const express = require('express');
|
const express = require('express');
|
||||||
const { EnvVar } = require('@librechat/agents');
|
const { EnvVar } = require('@librechat/agents');
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const {
|
const {
|
||||||
Time,
|
Time,
|
||||||
isUUID,
|
isUUID,
|
||||||
|
|
@ -30,7 +31,6 @@ const { cleanFileName } = require('~/server/utils/files');
|
||||||
const { getAssistant } = require('~/models/Assistant');
|
const { getAssistant } = require('~/models/Assistant');
|
||||||
const { getAgent } = require('~/models/Agent');
|
const { getAgent } = require('~/models/Agent');
|
||||||
const { getLogStores } = require('~/cache');
|
const { getLogStores } = require('~/cache');
|
||||||
const { logger } = require('~/config');
|
|
||||||
const { Readable } = require('stream');
|
const { Readable } = require('stream');
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
const multer = require('multer');
|
const multer = require('multer');
|
||||||
const express = require('express');
|
const express = require('express');
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { CacheKeys } = require('librechat-data-provider');
|
const { CacheKeys } = require('librechat-data-provider');
|
||||||
const { getVoices, streamAudio, textToSpeech } = require('~/server/services/Files/Audio');
|
const { getVoices, streamAudio, textToSpeech } = require('~/server/services/Files/Audio');
|
||||||
const { getLogStores } = require('~/cache');
|
const { getLogStores } = require('~/cache');
|
||||||
const { logger } = require('~/config');
|
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
const upload = multer();
|
const upload = multer();
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
const express = require('express');
|
|
||||||
const crypto = require('crypto');
|
const crypto = require('crypto');
|
||||||
|
const express = require('express');
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { getPresets, savePreset, deletePresets } = require('~/models');
|
const { getPresets, savePreset, deletePresets } = require('~/models');
|
||||||
const requireJwtAuth = require('~/server/middleware/requireJwtAuth');
|
const requireJwtAuth = require('~/server/middleware/requireJwtAuth');
|
||||||
const { logger } = require('~/config');
|
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
router.use(requireJwtAuth);
|
router.use(requireJwtAuth);
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
const express = require('express');
|
const express = require('express');
|
||||||
const { MeiliSearch } = require('meilisearch');
|
const { MeiliSearch } = require('meilisearch');
|
||||||
|
const { isEnabled } = require('@librechat/api');
|
||||||
const requireJwtAuth = require('~/server/middleware/requireJwtAuth');
|
const requireJwtAuth = require('~/server/middleware/requireJwtAuth');
|
||||||
const { isEnabled } = require('~/server/utils');
|
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
const express = require('express');
|
const express = require('express');
|
||||||
|
const { isEnabled } = require('@librechat/api');
|
||||||
const staticCache = require('../utils/staticCache');
|
const staticCache = require('../utils/staticCache');
|
||||||
const paths = require('~/config/paths');
|
const paths = require('~/config/paths');
|
||||||
const { isEnabled } = require('~/server/utils');
|
|
||||||
|
|
||||||
const skipGzipScan = !isEnabled(process.env.ENABLE_IMAGE_OUTPUT_GZIP_SCAN);
|
const skipGzipScan = !isEnabled(process.env.ENABLE_IMAGE_OUTPUT_GZIP_SCAN);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
const express = require('express');
|
const express = require('express');
|
||||||
const router = express.Router();
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const requireJwtAuth = require('~/server/middleware/requireJwtAuth');
|
const requireJwtAuth = require('~/server/middleware/requireJwtAuth');
|
||||||
const { countTokens } = require('~/server/utils');
|
const { countTokens } = require('~/server/utils');
|
||||||
const { logger } = require('~/config');
|
|
||||||
|
const router = express.Router();
|
||||||
|
|
||||||
router.post('/', requireJwtAuth, async (req, res) => {
|
router.post('/', requireJwtAuth, async (req, res) => {
|
||||||
try {
|
try {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
const { isEnabled } = require('~/server/utils');
|
const { isEnabled } = require('@librechat/api');
|
||||||
|
|
||||||
/** @returns {TStartupConfig['ldap'] | undefined} */
|
/** @returns {TStartupConfig['ldap'] | undefined} */
|
||||||
const getLdapConfig = () => {
|
const getLdapConfig = () => {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
|
const { isEnabled } = require('@librechat/api');
|
||||||
const { CacheKeys } = require('librechat-data-provider');
|
const { CacheKeys } = require('librechat-data-provider');
|
||||||
const getLogStores = require('~/cache/getLogStores');
|
const getLogStores = require('~/cache/getLogStores');
|
||||||
const { isEnabled } = require('~/server/utils');
|
|
||||||
const { saveConvo } = require('~/models');
|
const { saveConvo } = require('~/models');
|
||||||
|
|
||||||
const addTitle = async (req, { text, response, client }) => {
|
const addTitle = async (req, { text, response, client }) => {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
|
const { isEnabled } = require('@librechat/api');
|
||||||
const { CacheKeys } = require('librechat-data-provider');
|
const { CacheKeys } = require('librechat-data-provider');
|
||||||
const { saveConvo } = require('~/models/Conversation');
|
const { saveConvo } = require('~/models/Conversation');
|
||||||
const getLogStores = require('~/cache/getLogStores');
|
const getLogStores = require('~/cache/getLogStores');
|
||||||
const { isEnabled } = require('~/server/utils');
|
|
||||||
|
|
||||||
const addTitle = async (req, { text, responseText, conversationId, client }) => {
|
const addTitle = async (req, { text, responseText, conversationId, client }) => {
|
||||||
const { TITLE_CONVO = 'true' } = process.env ?? {};
|
const { TITLE_CONVO = 'true' } = process.env ?? {};
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
|
const { isEnabled } = require('@librechat/api');
|
||||||
const { CacheKeys } = require('librechat-data-provider');
|
const { CacheKeys } = require('librechat-data-provider');
|
||||||
const getLogStores = require('~/cache/getLogStores');
|
const getLogStores = require('~/cache/getLogStores');
|
||||||
const { isEnabled } = require('~/server/utils');
|
|
||||||
const { saveConvo } = require('~/models');
|
const { saveConvo } = require('~/models');
|
||||||
|
|
||||||
const addTitle = async (req, { text, response, client }) => {
|
const addTitle = async (req, { text, response, client }) => {
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ const path = require('path');
|
||||||
const mime = require('mime');
|
const mime = require('mime');
|
||||||
const axios = require('axios');
|
const axios = require('axios');
|
||||||
const fetch = require('node-fetch');
|
const fetch = require('node-fetch');
|
||||||
const { logger } = require('~/config');
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { getAzureContainerClient } = require('./initialize');
|
const { getAzureContainerClient } = require('./initialize');
|
||||||
|
|
||||||
const defaultBasePath = 'images';
|
const defaultBasePath = 'images';
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { BlobServiceClient } = require('@azure/storage-blob');
|
const { BlobServiceClient } = require('@azure/storage-blob');
|
||||||
const { logger } = require('~/config');
|
|
||||||
|
|
||||||
let blobServiceClient = null;
|
let blobServiceClient = null;
|
||||||
let azureWarningLogged = false;
|
let azureWarningLogged = false;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
const firebase = require('firebase/app');
|
const firebase = require('firebase/app');
|
||||||
const { getStorage } = require('firebase/storage');
|
const { getStorage } = require('firebase/storage');
|
||||||
const { logger } = require('~/config');
|
const { logger } = require('@librechat/data-schemas');
|
||||||
|
|
||||||
let i = 0;
|
let i = 0;
|
||||||
let firebaseApp = null;
|
let firebaseApp = null;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
|
const { sleep } = require('@librechat/agents');
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { FilePurpose } = require('librechat-data-provider');
|
const { FilePurpose } = require('librechat-data-provider');
|
||||||
const { sleep } = require('~/server/utils');
|
|
||||||
const { logger } = require('~/config');
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Uploads a file that can be used across various OpenAI services.
|
* Uploads a file that can be used across various OpenAI services.
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const fetch = require('node-fetch');
|
const fetch = require('node-fetch');
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { FileSources } = require('librechat-data-provider');
|
const { FileSources } = require('librechat-data-provider');
|
||||||
const {
|
const {
|
||||||
PutObjectCommand,
|
PutObjectCommand,
|
||||||
|
|
@ -9,7 +10,6 @@ const {
|
||||||
} = require('@aws-sdk/client-s3');
|
} = require('@aws-sdk/client-s3');
|
||||||
const { getSignedUrl } = require('@aws-sdk/s3-request-presigner');
|
const { getSignedUrl } = require('@aws-sdk/s3-request-presigner');
|
||||||
const { initializeS3 } = require('./initialize');
|
const { initializeS3 } = require('./initialize');
|
||||||
const { logger } = require('~/config');
|
|
||||||
|
|
||||||
const bucketName = process.env.AWS_BUCKET_NAME;
|
const bucketName = process.env.AWS_BUCKET_NAME;
|
||||||
const defaultBasePath = 'images';
|
const defaultBasePath = 'images';
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
const { S3Client } = require('@aws-sdk/client-s3');
|
const { S3Client } = require('@aws-sdk/client-s3');
|
||||||
const { logger } = require('~/config');
|
const { logger } = require('@librechat/data-schemas');
|
||||||
|
|
||||||
let s3 = null;
|
let s3 = null;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
const sharp = require('sharp');
|
const sharp = require('sharp');
|
||||||
const fs = require('fs').promises;
|
const fs = require('fs').promises;
|
||||||
const fetch = require('node-fetch');
|
const fetch = require('node-fetch');
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { EImageOutputType } = require('librechat-data-provider');
|
const { EImageOutputType } = require('librechat-data-provider');
|
||||||
const { resizeAndConvert } = require('./resize');
|
const { resizeAndConvert } = require('./resize');
|
||||||
const { logger } = require('~/config');
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Uploads an avatar image for a user. This function can handle various types of input (URL, Buffer, or File object),
|
* Uploads an avatar image for a user. This function can handle various types of input (URL, Buffer, or File object),
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const sharp = require('sharp');
|
const sharp = require('sharp');
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { getStrategyFunctions } = require('../strategies');
|
const { getStrategyFunctions } = require('../strategies');
|
||||||
const { resizeImageBuffer } = require('./resize');
|
const { resizeImageBuffer } = require('./resize');
|
||||||
const { logger } = require('~/config');
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Converts an image file or buffer to target output type with specified resolution.
|
* Converts an image file or buffer to target output type with specified resolution.
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
const { getOpenIdConfig } = require('~/strategies/openidStrategy');
|
|
||||||
const { logger } = require('~/config');
|
|
||||||
const { CacheKeys } = require('librechat-data-provider');
|
|
||||||
const getLogStores = require('~/cache/getLogStores');
|
|
||||||
const client = require('openid-client');
|
const client = require('openid-client');
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
|
const { CacheKeys } = require('librechat-data-provider');
|
||||||
|
const { getOpenIdConfig } = require('~/strategies/openidStrategy');
|
||||||
|
const getLogStores = require('~/cache/getLogStores');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Microsoft Graph API token using existing token exchange mechanism
|
* Get Microsoft Graph API token using existing token exchange mechanism
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { ToolCallTypes } = require('librechat-data-provider');
|
const { ToolCallTypes } = require('librechat-data-provider');
|
||||||
const { logger } = require('~/config');
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {import('openai').OpenAI} OpenAI
|
* @typedef {import('openai').OpenAI} OpenAI
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
|
const { sleep } = require('@librechat/agents');
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { RunStatus, defaultOrderQuery, CacheKeys } = require('librechat-data-provider');
|
const { RunStatus, defaultOrderQuery, CacheKeys } = require('librechat-data-provider');
|
||||||
const getLogStores = require('~/cache/getLogStores');
|
const getLogStores = require('~/cache/getLogStores');
|
||||||
const { retrieveRun } = require('./methods');
|
const { retrieveRun } = require('./methods');
|
||||||
const { sleep } = require('~/server/utils');
|
|
||||||
const RunManager = require('./RunManager');
|
const RunManager = require('./RunManager');
|
||||||
const { logger } = require('~/config');
|
|
||||||
|
|
||||||
async function withTimeout(promise, timeoutMs, timeoutMessage) {
|
async function withTimeout(promise, timeoutMs, timeoutMessage) {
|
||||||
let timeoutHandle;
|
let timeoutHandle;
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
const { logger } = require('~/config');
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { deleteNullOrEmptyConversations } = require('~/models/Conversation');
|
const { deleteNullOrEmptyConversations } = require('~/models/Conversation');
|
||||||
|
|
||||||
const cleanup = async () => {
|
const cleanup = async () => {
|
||||||
try {
|
try {
|
||||||
await deleteNullOrEmptyConversations();
|
await deleteNullOrEmptyConversations();
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
const { Tiktoken } = require('tiktoken/lite');
|
const { Tiktoken } = require('tiktoken/lite');
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const p50k_base = require('tiktoken/encoders/p50k_base.json');
|
const p50k_base = require('tiktoken/encoders/p50k_base.json');
|
||||||
const cl100k_base = require('tiktoken/encoders/cl100k_base.json');
|
const cl100k_base = require('tiktoken/encoders/cl100k_base.json');
|
||||||
const logger = require('~/config/winston');
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Counts the number of tokens in a given text using a specified encoding model.
|
* Counts the number of tokens in a given text using a specified encoding model.
|
||||||
|
|
|
||||||
|
|
@ -125,34 +125,6 @@ function formatAction(action) {
|
||||||
return formattedAction;
|
return formattedAction;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Checks if the given value is truthy by being either the boolean `true` or a string
|
|
||||||
* that case-insensitively matches 'true'.
|
|
||||||
*
|
|
||||||
* @function
|
|
||||||
* @param {string|boolean|null|undefined} value - The value to check.
|
|
||||||
* @returns {boolean} Returns `true` if the value is the boolean `true` or a case-insensitive
|
|
||||||
* match for the string 'true', otherwise returns `false`.
|
|
||||||
* @example
|
|
||||||
*
|
|
||||||
* isEnabled("True"); // returns true
|
|
||||||
* isEnabled("TRUE"); // returns true
|
|
||||||
* isEnabled(true); // returns true
|
|
||||||
* isEnabled("false"); // returns false
|
|
||||||
* isEnabled(false); // returns false
|
|
||||||
* isEnabled(null); // returns false
|
|
||||||
* isEnabled(); // returns false
|
|
||||||
*/
|
|
||||||
function isEnabled(value) {
|
|
||||||
if (typeof value === 'boolean') {
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
if (typeof value === 'string') {
|
|
||||||
return value.toLowerCase().trim() === 'true';
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if the provided value is 'user_provided'.
|
* Checks if the provided value is 'user_provided'.
|
||||||
*
|
*
|
||||||
|
|
@ -207,7 +179,6 @@ function generateConfig(key, baseURL, endpoint) {
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
isEnabled,
|
|
||||||
handleText,
|
handleText,
|
||||||
formatSteps,
|
formatSteps,
|
||||||
escapeRegExp,
|
escapeRegExp,
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
const { v4: uuidv4 } = require('uuid');
|
const { v4: uuidv4 } = require('uuid');
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { EModelEndpoint, Constants, ForkOptions } = require('librechat-data-provider');
|
const { EModelEndpoint, Constants, ForkOptions } = require('librechat-data-provider');
|
||||||
const { createImportBatchBuilder } = require('./importBatchBuilder');
|
const { createImportBatchBuilder } = require('./importBatchBuilder');
|
||||||
const BaseClient = require('~/app/clients/BaseClient');
|
const BaseClient = require('~/app/clients/BaseClient');
|
||||||
const { getConvo } = require('~/models/Conversation');
|
const { getConvo } = require('~/models/Conversation');
|
||||||
const { getMessages } = require('~/models/Message');
|
const { getMessages } = require('~/models/Message');
|
||||||
const logger = require('~/config/winston');
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper function to clone messages with proper parent-child relationships and timestamps
|
* Helper function to clone messages with proper parent-child relationships and timestamps
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
const { v4: uuidv4 } = require('uuid');
|
const { v4: uuidv4 } = require('uuid');
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
const { EModelEndpoint, Constants, openAISettings } = require('librechat-data-provider');
|
const { EModelEndpoint, Constants, openAISettings } = require('librechat-data-provider');
|
||||||
const { bulkIncrementTagCounts } = require('~/models/ConversationTag');
|
const { bulkIncrementTagCounts } = require('~/models/ConversationTag');
|
||||||
const { bulkSaveConvos } = require('~/models/Conversation');
|
const { bulkSaveConvos } = require('~/models/Conversation');
|
||||||
const { bulkSaveMessages } = require('~/models/Message');
|
const { bulkSaveMessages } = require('~/models/Message');
|
||||||
const { logger } = require('~/config');
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Factory function for creating an instance of ImportBatchBuilder.
|
* Factory function for creating an instance of ImportBatchBuilder.
|
||||||
|
|
|
||||||
|
|
@ -53,17 +53,6 @@ function LB_QueueAsyncCall(asyncFunc, args, callback) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Delays the execution for a specified number of milliseconds.
|
|
||||||
*
|
|
||||||
* @param {number} ms - The number of milliseconds to delay.
|
|
||||||
* @return {Promise<void>} A promise that resolves after the specified delay.
|
|
||||||
*/
|
|
||||||
function sleep(ms) {
|
|
||||||
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
sleep,
|
|
||||||
LB_QueueAsyncCall,
|
LB_QueueAsyncCall,
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
const socialLogin = require('./socialLogin');
|
|
||||||
const { Strategy: AppleStrategy } = require('passport-apple');
|
|
||||||
const { logger } = require('~/config');
|
|
||||||
const jwt = require('jsonwebtoken');
|
const jwt = require('jsonwebtoken');
|
||||||
|
const { logger } = require('@librechat/data-schemas');
|
||||||
|
const { Strategy: AppleStrategy } = require('passport-apple');
|
||||||
|
const socialLogin = require('./socialLogin');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extract profile details from the decoded idToken
|
* Extract profile details from the decoded idToken
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
const { logger } = require('~/config');
|
const { logger } = require('@librechat/data-schemas');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extracts the base URL from the provided URL.
|
* Extracts the base URL from the provided URL.
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
const { logger } = require('~/config');
|
const { logger } = require('@librechat/data-schemas');
|
||||||
|
|
||||||
function findContent(obj) {
|
function findContent(obj) {
|
||||||
if (obj && typeof obj === 'object') {
|
if (obj && typeof obj === 'object') {
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@ services:
|
||||||
target: /app/.env
|
target: /app/.env
|
||||||
- ./images:/app/client/public/images
|
- ./images:/app/client/public/images
|
||||||
- ./uploads:/app/uploads
|
- ./uploads:/app/uploads
|
||||||
- ./logs:/app/api/logs
|
- ./logs:/app/logs
|
||||||
mongodb:
|
mongodb:
|
||||||
container_name: chat-mongodb
|
container_name: chat-mongodb
|
||||||
image: mongo
|
image: mongo
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue