mirror of
https://github.com/SillyTavern/SillyTavern.git
synced 2025-02-18 21:20:39 +01:00
Further loglevel updates
1. Fix missed endpoints 2. Exclude console.log from loglevel
This commit is contained in:
parent
76d1661768
commit
0c8a11e28b
@ -179,7 +179,7 @@ async function sendClaudeRequest(request, response) {
|
||||
additionalHeaders['anthropic-beta'] = 'prompt-caching-2024-07-31';
|
||||
}
|
||||
|
||||
console.log('Claude request:', requestBody);
|
||||
console.debug('Claude request:', requestBody);
|
||||
|
||||
const generateResponse = await fetch(apiUrl + '/messages', {
|
||||
method: 'POST',
|
||||
@ -199,21 +199,21 @@ async function sendClaudeRequest(request, response) {
|
||||
} else {
|
||||
if (!generateResponse.ok) {
|
||||
const generateResponseText = await generateResponse.text();
|
||||
console.log(color.red(`Claude API returned error: ${generateResponse.status} ${generateResponse.statusText}\n${generateResponseText}\n${divider}`));
|
||||
console.warn(color.red(`Claude API returned error: ${generateResponse.status} ${generateResponse.statusText}\n${generateResponseText}\n${divider}`));
|
||||
return response.status(generateResponse.status).send({ error: true });
|
||||
}
|
||||
|
||||
/** @type {any} */
|
||||
const generateResponseJson = await generateResponse.json();
|
||||
const responseText = generateResponseJson?.content?.[0]?.text || '';
|
||||
console.log('Claude response:', generateResponseJson);
|
||||
console.debug('Claude response:', generateResponseJson);
|
||||
|
||||
// Wrap it back to OAI format + save the original content
|
||||
const reply = { choices: [{ 'message': { 'content': responseText } }], content: generateResponseJson.content };
|
||||
return response.send(reply);
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(color.red(`Error communicating with Claude: ${error}\n${divider}`));
|
||||
console.error(color.red(`Error communicating with Claude: ${error}\n${divider}`));
|
||||
if (!response.headersSent) {
|
||||
return response.status(500).send({ error: true });
|
||||
}
|
||||
@ -383,7 +383,7 @@ async function sendMakerSuiteRequest(request, response) {
|
||||
const candidates = generateResponseJson?.candidates;
|
||||
if (!candidates || candidates.length === 0) {
|
||||
let message = 'Google AI Studio API returned no candidate';
|
||||
console.log(message, generateResponseJson);
|
||||
console.warn(message, generateResponseJson);
|
||||
if (generateResponseJson?.promptFeedback?.blockReason) {
|
||||
message += `\nPrompt was blocked due to : ${generateResponseJson.promptFeedback.blockReason}`;
|
||||
}
|
||||
@ -699,7 +699,7 @@ async function sendDeepSeekRequest(request, response) {
|
||||
signal: controller.signal,
|
||||
};
|
||||
|
||||
console.log('DeepSeek request:', requestBody);
|
||||
console.debug('DeepSeek request:', requestBody);
|
||||
|
||||
const generateResponse = await fetch(apiUrl + '/chat/completions', config);
|
||||
|
||||
@ -708,16 +708,16 @@ async function sendDeepSeekRequest(request, response) {
|
||||
} else {
|
||||
if (!generateResponse.ok) {
|
||||
const errorText = await generateResponse.text();
|
||||
console.log(`DeepSeek API returned error: ${generateResponse.status} ${generateResponse.statusText} ${errorText}`);
|
||||
console.warn(`DeepSeek API returned error: ${generateResponse.status} ${generateResponse.statusText} ${errorText}`);
|
||||
const errorJson = tryParse(errorText) ?? { error: true };
|
||||
return response.status(500).send(errorJson);
|
||||
}
|
||||
const generateResponseJson = await generateResponse.json();
|
||||
console.log('DeepSeek response:', generateResponseJson);
|
||||
console.debug('DeepSeek response:', generateResponseJson);
|
||||
return response.send(generateResponseJson);
|
||||
}
|
||||
} catch (error) {
|
||||
console.log('Error communicating with DeepSeek API: ', error);
|
||||
console.error('Error communicating with DeepSeek API: ', error);
|
||||
if (!response.headersSent) {
|
||||
response.send({ error: true });
|
||||
} else {
|
||||
|
@ -301,12 +301,12 @@ router.post('/onering', jsonParser, async (request, response) => {
|
||||
const url = secretUrl || ONERING_URL_DEFAULT;
|
||||
|
||||
if (!url) {
|
||||
console.log('OneRing URL is not configured.');
|
||||
console.warn('OneRing URL is not configured.');
|
||||
return response.sendStatus(400);
|
||||
}
|
||||
|
||||
if (!secretUrl && url === ONERING_URL_DEFAULT) {
|
||||
console.log('OneRing URL is using default value.', ONERING_URL_DEFAULT);
|
||||
console.info('OneRing URL is using default value.', ONERING_URL_DEFAULT);
|
||||
}
|
||||
|
||||
if (request.body.lang === 'pt-BR' || request.body.lang === 'pt-PT') {
|
||||
@ -326,7 +326,7 @@ router.post('/onering', jsonParser, async (request, response) => {
|
||||
params.append('from_lang', from_lang);
|
||||
params.append('to_lang', to_lang);
|
||||
|
||||
console.log('Input text: ' + text);
|
||||
console.debug('Input text: ' + text);
|
||||
|
||||
const fetchUrl = new URL(url);
|
||||
fetchUrl.search = params.toString();
|
||||
@ -337,17 +337,17 @@ router.post('/onering', jsonParser, async (request, response) => {
|
||||
|
||||
if (!result.ok) {
|
||||
const error = await result.text();
|
||||
console.log('OneRing error: ', result.statusText, error);
|
||||
console.warn('OneRing error: ', result.statusText, error);
|
||||
return response.sendStatus(500);
|
||||
}
|
||||
|
||||
/** @type {any} */
|
||||
const data = await result.json();
|
||||
console.log('Translated text: ' + data.result);
|
||||
console.debug('Translated text: ' + data.result);
|
||||
|
||||
return response.send(data.result);
|
||||
} catch (error) {
|
||||
console.log('Translation error: ' + error.message);
|
||||
console.error('Translation error: ' + error.message);
|
||||
return response.sendStatus(500);
|
||||
}
|
||||
});
|
||||
@ -358,12 +358,12 @@ router.post('/deeplx', jsonParser, async (request, response) => {
|
||||
const url = secretUrl || DEEPLX_URL_DEFAULT;
|
||||
|
||||
if (!url) {
|
||||
console.log('DeepLX URL is not configured.');
|
||||
console.warn('DeepLX URL is not configured.');
|
||||
return response.sendStatus(400);
|
||||
}
|
||||
|
||||
if (!secretUrl && url === DEEPLX_URL_DEFAULT) {
|
||||
console.log('DeepLX URL is using default value.', DEEPLX_URL_DEFAULT);
|
||||
console.info('DeepLX URL is using default value.', DEEPLX_URL_DEFAULT);
|
||||
}
|
||||
|
||||
const text = request.body.text;
|
||||
|
@ -211,9 +211,9 @@ router.post('/change-name', jsonParser, async (request, response) => {
|
||||
router.post('/reset-step1', jsonParser, async (request, response) => {
|
||||
try {
|
||||
const resetCode = String(crypto.randomInt(1000, 9999));
|
||||
console.info();
|
||||
console.info(color.magenta(`${request.user.profile.name}, your account reset code is: `) + color.red(resetCode));
|
||||
console.info();
|
||||
console.log();
|
||||
console.log(color.magenta(`${request.user.profile.name}, your account reset code is: `) + color.red(resetCode));
|
||||
console.log();
|
||||
RESET_CACHE.set(request.user.profile.handle, resetCode);
|
||||
return response.sendStatus(204);
|
||||
} catch (error) {
|
||||
|
@ -125,9 +125,9 @@ router.post('/recover-step1', jsonParser, async (request, response) => {
|
||||
}
|
||||
|
||||
const mfaCode = String(crypto.randomInt(1000, 9999));
|
||||
console.info();
|
||||
console.info(color.blue(`${user.name}, your password recovery code is: `) + color.magenta(mfaCode));
|
||||
console.info();
|
||||
console.log();
|
||||
console.log(color.blue(`${user.name}, your password recovery code is: `) + color.magenta(mfaCode));
|
||||
console.log();
|
||||
MFA_CACHE.set(user.handle, mfaCode);
|
||||
return response.sendStatus(204);
|
||||
} catch (error) {
|
||||
|
@ -63,7 +63,7 @@ export default function whitelistMiddleware(whitelistMode, listen) {
|
||||
const userAgent = req.headers['user-agent'];
|
||||
|
||||
if (listen && !knownIPs.has(clientIp)) {
|
||||
console.log(color.yellow(`New connection from ${clientIp}; User Agent: ${userAgent}\n`));
|
||||
console.info(color.yellow(`New connection from ${clientIp}; User Agent: ${userAgent}\n`));
|
||||
knownIPs.add(clientIp);
|
||||
|
||||
// Write access log
|
||||
@ -84,7 +84,7 @@ export default function whitelistMiddleware(whitelistMode, listen) {
|
||||
const ipDetails = forwardedIp
|
||||
? `${clientIp} (forwarded from ${forwardedIp})`
|
||||
: clientIp;
|
||||
console.log(
|
||||
console.warn(
|
||||
color.red(
|
||||
`Blocked connection from ${clientIp}; User Agent: ${userAgent}\n\tTo allow this connection, add its IP address to the whitelist or disable whitelist mode by editing config.yaml in the root directory of your SillyTavern installation.\n`,
|
||||
),
|
||||
|
@ -840,7 +840,7 @@ export function requireAdminMiddleware(request, response, next) {
|
||||
export async function createBackupArchive(handle, response) {
|
||||
const directories = getUserDirectories(handle);
|
||||
|
||||
console.log('Backup requested for', handle);
|
||||
console.info('Backup requested for', handle);
|
||||
const archive = archiver('zip');
|
||||
|
||||
archive.on('error', function (err) {
|
||||
@ -849,7 +849,7 @@ export async function createBackupArchive(handle, response) {
|
||||
|
||||
// On stream closed we can end the request
|
||||
archive.on('end', function () {
|
||||
console.log('Archive wrote %d bytes', archive.pointer());
|
||||
console.info('Archive wrote %d bytes', archive.pointer());
|
||||
response.end(); // End the Express response
|
||||
});
|
||||
|
||||
|
11
src/util.js
11
src/util.js
@ -170,7 +170,7 @@ export async function extractFileFromZipBuffer(archiveBuffer, fileExtension) {
|
||||
zipfile.readEntry();
|
||||
zipfile.on('entry', (entry) => {
|
||||
if (entry.fileName.endsWith(fileExtension) && !entry.fileName.startsWith('__MACOSX')) {
|
||||
console.log(`Extracting ${entry.fileName}`);
|
||||
console.info(`Extracting ${entry.fileName}`);
|
||||
zipfile.openReadStream(entry, (err, readStream) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
@ -218,7 +218,7 @@ export async function getImageBuffers(zipFilePath) {
|
||||
zipfile.on('entry', (entry) => {
|
||||
const mimeType = mime.lookup(entry.fileName);
|
||||
if (mimeType && mimeType.startsWith('image/') && !entry.fileName.startsWith('__MACOSX')) {
|
||||
console.log(`Extracting ${entry.fileName}`);
|
||||
console.info(`Extracting ${entry.fileName}`);
|
||||
zipfile.openReadStream(entry, (err, readStream) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
@ -448,7 +448,7 @@ export function forwardFetchResponse(from, to) {
|
||||
let statusText = from.statusText;
|
||||
|
||||
if (!from.ok) {
|
||||
console.log(`Streaming request failed with status ${statusCode} ${statusText}`);
|
||||
console.warn(`Streaming request failed with status ${statusCode} ${statusText}`);
|
||||
}
|
||||
|
||||
// Avoid sending 401 responses as they reset the client Basic auth.
|
||||
@ -473,7 +473,7 @@ export function forwardFetchResponse(from, to) {
|
||||
});
|
||||
|
||||
from.body.on('end', function () {
|
||||
console.log('Streaming request finished');
|
||||
console.info('Streaming request finished');
|
||||
to.end();
|
||||
});
|
||||
} else {
|
||||
@ -518,7 +518,7 @@ export function makeHttp2Request(endpoint, method, body, headers) {
|
||||
});
|
||||
|
||||
req.on('end', () => {
|
||||
console.log(data);
|
||||
console.debug(data);
|
||||
resolve(data);
|
||||
});
|
||||
});
|
||||
@ -701,7 +701,6 @@ export function setupLogLevel() {
|
||||
const logLevel = getConfigValue('minLogLevel', LOG_LEVELS.DEBUG);
|
||||
|
||||
globalThis.console.debug = logLevel <= LOG_LEVELS.DEBUG ? console.debug : () => {};
|
||||
globalThis.console.log = logLevel <= LOG_LEVELS.INFO ? console.log : () => {};
|
||||
globalThis.console.info = logLevel <= LOG_LEVELS.INFO ? console.info : () => {};
|
||||
globalThis.console.warn = logLevel <= LOG_LEVELS.WARN ? console.warn : () => {};
|
||||
globalThis.console.error = logLevel <= LOG_LEVELS.ERROR ? console.error : () => {};
|
||||
|
@ -13,7 +13,7 @@ export async function getCohereBatchVector(texts, isQuery, directories, model) {
|
||||
const key = readSecret(directories, SECRET_KEYS.COHERE);
|
||||
|
||||
if (!key) {
|
||||
console.log('No API key found');
|
||||
console.warn('No API key found');
|
||||
throw new Error('No API key found');
|
||||
}
|
||||
|
||||
@ -34,14 +34,14 @@ export async function getCohereBatchVector(texts, isQuery, directories, model) {
|
||||
|
||||
if (!response.ok) {
|
||||
const text = await response.text();
|
||||
console.log('API request failed', response.statusText, text);
|
||||
console.warn('API request failed', response.statusText, text);
|
||||
throw new Error('API request failed');
|
||||
}
|
||||
|
||||
/** @type {any} */
|
||||
const data = await response.json();
|
||||
if (!Array.isArray(data?.embeddings?.float)) {
|
||||
console.log('API response was not an array');
|
||||
console.warn('API response was not an array');
|
||||
throw new Error('API response was not an array');
|
||||
}
|
||||
|
||||
|
@ -36,8 +36,8 @@ async function getExtrasVectorImpl(text, apiUrl, apiKey) {
|
||||
url.pathname = '/api/embeddings/compute';
|
||||
}
|
||||
catch (error) {
|
||||
console.log('Failed to set up Extras API call:', error);
|
||||
console.log('Extras API URL given was:', apiUrl);
|
||||
console.error('Failed to set up Extras API call:', error);
|
||||
console.debug('Extras API URL given was:', apiUrl);
|
||||
throw error;
|
||||
}
|
||||
|
||||
@ -62,7 +62,7 @@ async function getExtrasVectorImpl(text, apiUrl, apiKey) {
|
||||
|
||||
if (!response.ok) {
|
||||
const text = await response.text();
|
||||
console.log('Extras request failed', response.statusText, text);
|
||||
console.warn('Extras request failed', response.statusText, text);
|
||||
throw new Error('Extras request failed');
|
||||
}
|
||||
|
||||
|
@ -23,7 +23,7 @@ export async function getMakerSuiteVector(text, directories) {
|
||||
const key = readSecret(directories, SECRET_KEYS.MAKERSUITE);
|
||||
|
||||
if (!key) {
|
||||
console.log('No Google AI Studio key found');
|
||||
console.warn('No Google AI Studio key found');
|
||||
throw new Error('No Google AI Studio key found');
|
||||
}
|
||||
|
||||
@ -48,7 +48,7 @@ export async function getMakerSuiteVector(text, directories) {
|
||||
|
||||
if (!response.ok) {
|
||||
const text = await response.text();
|
||||
console.log('Google AI Studio request failed', response.statusText, text);
|
||||
console.warn('Google AI Studio request failed', response.statusText, text);
|
||||
throw new Error('Google AI Studio request failed');
|
||||
}
|
||||
|
||||
|
@ -20,14 +20,14 @@ export async function getNomicAIBatchVector(texts, source, directories) {
|
||||
const config = SOURCES[source];
|
||||
|
||||
if (!config) {
|
||||
console.log('Unknown source', source);
|
||||
console.error('Unknown source', source);
|
||||
throw new Error('Unknown source');
|
||||
}
|
||||
|
||||
const key = readSecret(directories, config.secretKey);
|
||||
|
||||
if (!key) {
|
||||
console.log('No API key found');
|
||||
console.warn('No API key found');
|
||||
throw new Error('No API key found');
|
||||
}
|
||||
|
||||
@ -47,14 +47,14 @@ export async function getNomicAIBatchVector(texts, source, directories) {
|
||||
|
||||
if (!response.ok) {
|
||||
const text = await response.text();
|
||||
console.log('API request failed', response.statusText, text);
|
||||
console.warn('API request failed', response.statusText, text);
|
||||
throw new Error('API request failed');
|
||||
}
|
||||
|
||||
/** @type {any} */
|
||||
const data = await response.json();
|
||||
if (!Array.isArray(data?.embeddings)) {
|
||||
console.log('API response was not an array');
|
||||
console.warn('API response was not an array');
|
||||
throw new Error('API response was not an array');
|
||||
}
|
||||
|
||||
|
@ -31,14 +31,14 @@ export async function getOpenAIBatchVector(texts, source, directories, model = '
|
||||
const config = SOURCES[source];
|
||||
|
||||
if (!config) {
|
||||
console.log('Unknown source', source);
|
||||
console.error('Unknown source', source);
|
||||
throw new Error('Unknown source');
|
||||
}
|
||||
|
||||
const key = readSecret(directories, config.secretKey);
|
||||
|
||||
if (!key) {
|
||||
console.log('No API key found');
|
||||
console.warn('No API key found');
|
||||
throw new Error('No API key found');
|
||||
}
|
||||
|
||||
@ -57,7 +57,7 @@ export async function getOpenAIBatchVector(texts, source, directories, model = '
|
||||
|
||||
if (!response.ok) {
|
||||
const text = await response.text();
|
||||
console.log('API request failed', response.statusText, text);
|
||||
console.warn('API request failed', response.statusText, text);
|
||||
throw new Error('API request failed');
|
||||
}
|
||||
|
||||
@ -65,7 +65,7 @@ export async function getOpenAIBatchVector(texts, source, directories, model = '
|
||||
const data = await response.json();
|
||||
|
||||
if (!Array.isArray(data?.data)) {
|
||||
console.log('API response was not an array');
|
||||
console.warn('API response was not an array');
|
||||
throw new Error('API response was not an array');
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user