Further loglevel updates 1. Fix missed endpoints 2. Exclude console.log from loglevel
| @@ -179,7 +179,7 @@ async function sendClaudeRequest(request, response) { | |||
| 179 | additionalHeaders['anthropic-beta'] = 'prompt-caching-2024-07-31'; | 179 | additionalHeaders['anthropic-beta'] = 'prompt-caching-2024-07-31'; |
| 180 | } | 180 | } |
| 181 | 181 | ||
| 182 | console.log('Claude request:', requestBody); | 182 | console.debug('Claude request:', requestBody); |
| 183 | 183 | ||
| 184 | const generateResponse = await fetch(apiUrl + '/messages', { | 184 | const generateResponse = await fetch(apiUrl + '/messages', { |
| 185 | method: 'POST', | 185 | method: 'POST', |
| @@ -199,21 +199,21 @@ async function sendClaudeRequest(request, response) { | |||
| 199 | } else { | 199 | } else { |
| 200 | if (!generateResponse.ok) { | 200 | if (!generateResponse.ok) { |
| 201 | const generateResponseText = await generateResponse.text(); | 201 | const generateResponseText = await generateResponse.text(); |
| 202 | console.log(color.red(`Claude API returned error: ${generateResponse.status} ${generateResponse.statusText}\n${generateResponseText}\n${divider}`)); | 202 | console.warn(color.red(`Claude API returned error: ${generateResponse.status} ${generateResponse.statusText}\n${generateResponseText}\n${divider}`)); |
| 203 | return response.status(generateResponse.status).send({ error: true }); | 203 | return response.status(generateResponse.status).send({ error: true }); |
| 204 | } | 204 | } |
| 205 | 205 | ||
| 206 | /** @type {any} */ | 206 | /** @type {any} */ |
| 207 | const generateResponseJson = await generateResponse.json(); | 207 | const generateResponseJson = await generateResponse.json(); |
| 208 | const responseText = generateResponseJson?.content?.[0]?.text || ''; | 208 | const responseText = generateResponseJson?.content?.[0]?.text || ''; |
| 209 | console.log('Claude response:', generateResponseJson); | 209 | console.debug('Claude response:', generateResponseJson); |
| 210 | 210 | ||
| 211 | // Wrap it back to OAI format + save the original content | 211 | // Wrap it back to OAI format + save the original content |
| 212 | const reply = { choices: [{ 'message': { 'content': responseText } }], content: generateResponseJson.content }; | 212 | const reply = { choices: [{ 'message': { 'content': responseText } }], content: generateResponseJson.content }; |
| 213 | return response.send(reply); | 213 | return response.send(reply); |
| 214 | } | 214 | } |
| 215 | } catch (error) { | 215 | } catch (error) { |
| 216 | console.log(color.red(`Error communicating with Claude: ${error}\n${divider}`)); | 216 | console.error(color.red(`Error communicating with Claude: ${error}\n${divider}`)); |
| 217 | if (!response.headersSent) { | 217 | if (!response.headersSent) { |
| 218 | return response.status(500).send({ error: true }); | 218 | return response.status(500).send({ error: true }); |
| 219 | } | 219 | } |
| @@ -383,7 +383,7 @@ async function sendMakerSuiteRequest(request, response) { | |||
| 383 | const candidates = generateResponseJson?.candidates; | 383 | const candidates = generateResponseJson?.candidates; |
| 384 | if (!candidates || candidates.length === 0) { | 384 | if (!candidates || candidates.length === 0) { |
| 385 | let message = 'Google AI Studio API returned no candidate'; | 385 | let message = 'Google AI Studio API returned no candidate'; |
| 386 | console.log(message, generateResponseJson); | 386 | console.warn(message, generateResponseJson); |
| 387 | if (generateResponseJson?.promptFeedback?.blockReason) { | 387 | if (generateResponseJson?.promptFeedback?.blockReason) { |
| 388 | message += `\nPrompt was blocked due to : ${generateResponseJson.promptFeedback.blockReason}`; | 388 | message += `\nPrompt was blocked due to : ${generateResponseJson.promptFeedback.blockReason}`; |
| 389 | } | 389 | } |
| @@ -699,7 +699,7 @@ async function sendDeepSeekRequest(request, response) { | |||
| 699 | signal: controller.signal, | 699 | signal: controller.signal, |
| 700 | }; | 700 | }; |
| 701 | 701 | ||
| 702 | console.log('DeepSeek request:', requestBody); | 702 | console.debug('DeepSeek request:', requestBody); |
| 703 | 703 | ||
| 704 | const generateResponse = await fetch(apiUrl + '/chat/completions', config); | 704 | const generateResponse = await fetch(apiUrl + '/chat/completions', config); |
| 705 | 705 | ||
| @@ -708,16 +708,16 @@ async function sendDeepSeekRequest(request, response) { | |||
| 708 | } else { | 708 | } else { |
| 709 | if (!generateResponse.ok) { | 709 | if (!generateResponse.ok) { |
| 710 | const errorText = await generateResponse.text(); | 710 | const errorText = await generateResponse.text(); |
| 711 | console.log(`DeepSeek API returned error: ${generateResponse.status} ${generateResponse.statusText} ${errorText}`); | 711 | console.warn(`DeepSeek API returned error: ${generateResponse.status} ${generateResponse.statusText} ${errorText}`); |
| 712 | const errorJson = tryParse(errorText) ?? { error: true }; | 712 | const errorJson = tryParse(errorText) ?? { error: true }; |
| 713 | return response.status(500).send(errorJson); | 713 | return response.status(500).send(errorJson); |
| 714 | } | 714 | } |
| 715 | const generateResponseJson = await generateResponse.json(); | 715 | const generateResponseJson = await generateResponse.json(); |
| 716 | console.log('DeepSeek response:', generateResponseJson); | 716 | console.debug('DeepSeek response:', generateResponseJson); |
| 717 | return response.send(generateResponseJson); | 717 | return response.send(generateResponseJson); |
| 718 | } | 718 | } |
| 719 | } catch (error) { | 719 | } catch (error) { |
| 720 | console.log('Error communicating with DeepSeek API: ', error); | 720 | console.error('Error communicating with DeepSeek API: ', error); |
| 721 | if (!response.headersSent) { | 721 | if (!response.headersSent) { |
| 722 | response.send({ error: true }); | 722 | response.send({ error: true }); |
| 723 | } else { | 723 | } else { |
| @@ -301,12 +301,12 @@ router.post('/onering', jsonParser, async (request, response) => { | |||
| 301 | const url = secretUrl || ONERING_URL_DEFAULT; | 301 | const url = secretUrl || ONERING_URL_DEFAULT; |
| 302 | 302 | ||
| 303 | if (!url) { | 303 | if (!url) { |
| 304 | console.log('OneRing URL is not configured.'); | 304 | console.warn('OneRing URL is not configured.'); |
| 305 | return response.sendStatus(400); | 305 | return response.sendStatus(400); |
| 306 | } | 306 | } |
| 307 | 307 | ||
| 308 | if (!secretUrl && url === ONERING_URL_DEFAULT) { | 308 | if (!secretUrl && url === ONERING_URL_DEFAULT) { |
| 309 | console.log('OneRing URL is using default value.', ONERING_URL_DEFAULT); | 309 | console.info('OneRing URL is using default value.', ONERING_URL_DEFAULT); |
| 310 | } | 310 | } |
| 311 | 311 | ||
| 312 | if (request.body.lang === 'pt-BR' || request.body.lang === 'pt-PT') { | 312 | if (request.body.lang === 'pt-BR' || request.body.lang === 'pt-PT') { |
| @@ -326,7 +326,7 @@ router.post('/onering', jsonParser, async (request, response) => { | |||
| 326 | params.append('from_lang', from_lang); | 326 | params.append('from_lang', from_lang); |
| 327 | params.append('to_lang', to_lang); | 327 | params.append('to_lang', to_lang); |
| 328 | 328 | ||
| 329 | console.log('Input text: ' + text); | 329 | console.debug('Input text: ' + text); |
| 330 | 330 | ||
| 331 | const fetchUrl = new URL(url); | 331 | const fetchUrl = new URL(url); |
| 332 | fetchUrl.search = params.toString(); | 332 | fetchUrl.search = params.toString(); |
| @@ -337,17 +337,17 @@ router.post('/onering', jsonParser, async (request, response) => { | |||
| 337 | 337 | ||
| 338 | if (!result.ok) { | 338 | if (!result.ok) { |
| 339 | const error = await result.text(); | 339 | const error = await result.text(); |
| 340 | console.log('OneRing error: ', result.statusText, error); | 340 | console.warn('OneRing error: ', result.statusText, error); |
| 341 | return response.sendStatus(500); | 341 | return response.sendStatus(500); |
| 342 | } | 342 | } |
| 343 | 343 | ||
| 344 | /** @type {any} */ | 344 | /** @type {any} */ |
| 345 | const data = await result.json(); | 345 | const data = await result.json(); |
| 346 | console.log('Translated text: ' + data.result); | 346 | console.debug('Translated text: ' + data.result); |
| 347 | 347 | ||
| 348 | return response.send(data.result); | 348 | return response.send(data.result); |
| 349 | } catch (error) { | 349 | } catch (error) { |
| 350 | console.log('Translation error: ' + error.message); | 350 | console.error('Translation error: ' + error.message); |
| 351 | return response.sendStatus(500); | 351 | return response.sendStatus(500); |
| 352 | } | 352 | } |
| 353 | }); | 353 | }); |
| @@ -358,12 +358,12 @@ router.post('/deeplx', jsonParser, async (request, response) => { | |||
| 358 | const url = secretUrl || DEEPLX_URL_DEFAULT; | 358 | const url = secretUrl || DEEPLX_URL_DEFAULT; |
| 359 | 359 | ||
| 360 | if (!url) { | 360 | if (!url) { |
| 361 | console.log('DeepLX URL is not configured.'); | 361 | console.warn('DeepLX URL is not configured.'); |
| 362 | return response.sendStatus(400); | 362 | return response.sendStatus(400); |
| 363 | } | 363 | } |
| 364 | 364 | ||
| 365 | if (!secretUrl && url === DEEPLX_URL_DEFAULT) { | 365 | if (!secretUrl && url === DEEPLX_URL_DEFAULT) { |
| 366 | console.log('DeepLX URL is using default value.', DEEPLX_URL_DEFAULT); | 366 | console.info('DeepLX URL is using default value.', DEEPLX_URL_DEFAULT); |
| 367 | } | 367 | } |
| 368 | 368 | ||
| 369 | const text = request.body.text; | 369 | const text = request.body.text; |
| @@ -211,9 +211,9 @@ router.post('/change-name', jsonParser, async (request, response) => { | |||
| 211 | router.post('/reset-step1', jsonParser, async (request, response) => { | 211 | router.post('/reset-step1', jsonParser, async (request, response) => { |
| 212 | try { | 212 | try { |
| 213 | const resetCode = String(crypto.randomInt(1000, 9999)); | 213 | const resetCode = String(crypto.randomInt(1000, 9999)); |
| 214 | console.info(); | 214 | console.log(); |
| 215 | console.info(color.magenta(`${request.user.profile.name}, your account reset code is: `) + color.red(resetCode)); | 215 | console.log(color.magenta(`${request.user.profile.name}, your account reset code is: `) + color.red(resetCode)); |
| 216 | console.info(); | 216 | console.log(); |
| 217 | RESET_CACHE.set(request.user.profile.handle, resetCode); | 217 | RESET_CACHE.set(request.user.profile.handle, resetCode); |
| 218 | return response.sendStatus(204); | 218 | return response.sendStatus(204); |
| 219 | } catch (error) { | 219 | } catch (error) { |
| @@ -125,9 +125,9 @@ router.post('/recover-step1', jsonParser, async (request, response) => { | |||
| 125 | } | 125 | } |
| 126 | 126 | ||
| 127 | const mfaCode = String(crypto.randomInt(1000, 9999)); | 127 | const mfaCode = String(crypto.randomInt(1000, 9999)); |
| 128 | console.info(); | 128 | console.log(); |
| 129 | console.info(color.blue(`${user.name}, your password recovery code is: `) + color.magenta(mfaCode)); | 129 | console.log(color.blue(`${user.name}, your password recovery code is: `) + color.magenta(mfaCode)); |
| 130 | console.info(); | 130 | console.log(); |
| 131 | MFA_CACHE.set(user.handle, mfaCode); | 131 | MFA_CACHE.set(user.handle, mfaCode); |
| 132 | return response.sendStatus(204); | 132 | return response.sendStatus(204); |
| 133 | } catch (error) { | 133 | } catch (error) { |
| @@ -63,7 +63,7 @@ export default function whitelistMiddleware(whitelistMode, listen) { | |||
| 63 | const userAgent = req.headers['user-agent']; | 63 | const userAgent = req.headers['user-agent']; |
| 64 | 64 | ||
| 65 | if (listen && !knownIPs.has(clientIp)) { | 65 | if (listen && !knownIPs.has(clientIp)) { |
| 66 | console.log(color.yellow(`New connection from ${clientIp}; User Agent: ${userAgent}\n`)); | 66 | console.info(color.yellow(`New connection from ${clientIp}; User Agent: ${userAgent}\n`)); |
| 67 | knownIPs.add(clientIp); | 67 | knownIPs.add(clientIp); |
| 68 | 68 | ||
| 69 | // Write access log | 69 | // Write access log |
| @@ -84,7 +84,7 @@ export default function whitelistMiddleware(whitelistMode, listen) { | |||
| 84 | const ipDetails = forwardedIp | 84 | const ipDetails = forwardedIp |
| 85 | ? `${clientIp} (forwarded from ${forwardedIp})` | 85 | ? `${clientIp} (forwarded from ${forwardedIp})` |
| 86 | : clientIp; | 86 | : clientIp; |
| 87 | console.log( | 87 | console.warn( |
| 88 | color.red( | 88 | color.red( |
| 89 | `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`, | 89 | `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`, |
| 90 | ), | 90 | ), |
| @@ -840,7 +840,7 @@ export function requireAdminMiddleware(request, response, next) { | |||
| 840 | export async function createBackupArchive(handle, response) { | 840 | export async function createBackupArchive(handle, response) { |
| 841 | const directories = getUserDirectories(handle); | 841 | const directories = getUserDirectories(handle); |
| 842 | 842 | ||
| 843 | console.log('Backup requested for', handle); | 843 | console.info('Backup requested for', handle); |
| 844 | const archive = archiver('zip'); | 844 | const archive = archiver('zip'); |
| 845 | 845 | ||
| 846 | archive.on('error', function (err) { | 846 | archive.on('error', function (err) { |
| @@ -849,7 +849,7 @@ export async function createBackupArchive(handle, response) { | |||
| 849 | 849 | ||
| 850 | // On stream closed we can end the request | 850 | // On stream closed we can end the request |
| 851 | archive.on('end', function () { | 851 | archive.on('end', function () { |
| 852 | console.log('Archive wrote %d bytes', archive.pointer()); | 852 | console.info('Archive wrote %d bytes', archive.pointer()); |
| 853 | response.end(); // End the Express response | 853 | response.end(); // End the Express response |
| 854 | }); | 854 | }); |
| 855 | 855 | ||
| @@ -170,7 +170,7 @@ export async function extractFileFromZipBuffer(archiveBuffer, fileExtension) { | |||
| 170 | zipfile.readEntry(); | 170 | zipfile.readEntry(); |
| 171 | zipfile.on('entry', (entry) => { | 171 | zipfile.on('entry', (entry) => { |
| 172 | if (entry.fileName.endsWith(fileExtension) && !entry.fileName.startsWith('__MACOSX')) { | 172 | if (entry.fileName.endsWith(fileExtension) && !entry.fileName.startsWith('__MACOSX')) { |
| 173 | console.log(`Extracting ${entry.fileName}`); | 173 | console.info(`Extracting ${entry.fileName}`); |
| 174 | zipfile.openReadStream(entry, (err, readStream) => { | 174 | zipfile.openReadStream(entry, (err, readStream) => { |
| 175 | if (err) { | 175 | if (err) { |
| 176 | reject(err); | 176 | reject(err); |
| @@ -218,7 +218,7 @@ export async function getImageBuffers(zipFilePath) { | |||
| 218 | zipfile.on('entry', (entry) => { | 218 | zipfile.on('entry', (entry) => { |
| 219 | const mimeType = mime.lookup(entry.fileName); | 219 | const mimeType = mime.lookup(entry.fileName); |
| 220 | if (mimeType && mimeType.startsWith('image/') && !entry.fileName.startsWith('__MACOSX')) { | 220 | if (mimeType && mimeType.startsWith('image/') && !entry.fileName.startsWith('__MACOSX')) { |
| 221 | console.log(`Extracting ${entry.fileName}`); | 221 | console.info(`Extracting ${entry.fileName}`); |
| 222 | zipfile.openReadStream(entry, (err, readStream) => { | 222 | zipfile.openReadStream(entry, (err, readStream) => { |
| 223 | if (err) { | 223 | if (err) { |
| 224 | reject(err); | 224 | reject(err); |
| @@ -448,7 +448,7 @@ export function forwardFetchResponse(from, to) { | |||
| 448 | let statusText = from.statusText; | 448 | let statusText = from.statusText; |
| 449 | 449 | ||
| 450 | if (!from.ok) { | 450 | if (!from.ok) { |
| 451 | console.log(`Streaming request failed with status ${statusCode} ${statusText}`); | 451 | console.warn(`Streaming request failed with status ${statusCode} ${statusText}`); |
| 452 | } | 452 | } |
| 453 | 453 | ||
| 454 | // Avoid sending 401 responses as they reset the client Basic auth. | 454 | // Avoid sending 401 responses as they reset the client Basic auth. |
| @@ -473,7 +473,7 @@ export function forwardFetchResponse(from, to) { | |||
| 473 | }); | 473 | }); |
| 474 | 474 | ||
| 475 | from.body.on('end', function () { | 475 | from.body.on('end', function () { |
| 476 | console.log('Streaming request finished'); | 476 | console.info('Streaming request finished'); |
| 477 | to.end(); | 477 | to.end(); |
| 478 | }); | 478 | }); |
| 479 | } else { | 479 | } else { |
| @@ -518,7 +518,7 @@ export function makeHttp2Request(endpoint, method, body, headers) { | |||
| 518 | }); | 518 | }); |
| 519 | 519 | ||
| 520 | req.on('end', () => { | 520 | req.on('end', () => { |
| 521 | console.log(data); | 521 | console.debug(data); |
| 522 | resolve(data); | 522 | resolve(data); |
| 523 | }); | 523 | }); |
| 524 | }); | 524 | }); |
| @@ -701,7 +701,6 @@ export function setupLogLevel() { | |||
| 701 | const logLevel = getConfigValue('minLogLevel', LOG_LEVELS.DEBUG); | 701 | const logLevel = getConfigValue('minLogLevel', LOG_LEVELS.DEBUG); |
| 702 | 702 | ||
| 703 | globalThis.console.debug = logLevel <= LOG_LEVELS.DEBUG ? console.debug : () => {}; | 703 | globalThis.console.debug = logLevel <= LOG_LEVELS.DEBUG ? console.debug : () => {}; |
| 704 | globalThis.console.log = logLevel <= LOG_LEVELS.INFO ? console.log : () => {}; | ||
| 705 | globalThis.console.info = logLevel <= LOG_LEVELS.INFO ? console.info : () => {}; | 704 | globalThis.console.info = logLevel <= LOG_LEVELS.INFO ? console.info : () => {}; |
| 706 | globalThis.console.warn = logLevel <= LOG_LEVELS.WARN ? console.warn : () => {}; | 705 | globalThis.console.warn = logLevel <= LOG_LEVELS.WARN ? console.warn : () => {}; |
| 707 | globalThis.console.error = logLevel <= LOG_LEVELS.ERROR ? console.error : () => {}; | 706 | globalThis.console.error = logLevel <= LOG_LEVELS.ERROR ? console.error : () => {}; |
| @@ -13,7 +13,7 @@ export async function getCohereBatchVector(texts, isQuery, directories, model) { | |||
| 13 | const key = readSecret(directories, SECRET_KEYS.COHERE); | 13 | const key = readSecret(directories, SECRET_KEYS.COHERE); |
| 14 | 14 | ||
| 15 | if (!key) { | 15 | if (!key) { |
| 16 | console.log('No API key found'); | 16 | console.warn('No API key found'); |
| 17 | throw new Error('No API key found'); | 17 | throw new Error('No API key found'); |
| 18 | } | 18 | } |
| 19 | 19 | ||
| @@ -34,14 +34,14 @@ export async function getCohereBatchVector(texts, isQuery, directories, model) { | |||
| 34 | 34 | ||
| 35 | if (!response.ok) { | 35 | if (!response.ok) { |
| 36 | const text = await response.text(); | 36 | const text = await response.text(); |
| 37 | console.log('API request failed', response.statusText, text); | 37 | console.warn('API request failed', response.statusText, text); |
| 38 | throw new Error('API request failed'); | 38 | throw new Error('API request failed'); |
| 39 | } | 39 | } |
| 40 | 40 | ||
| 41 | /** @type {any} */ | 41 | /** @type {any} */ |
| 42 | const data = await response.json(); | 42 | const data = await response.json(); |
| 43 | if (!Array.isArray(data?.embeddings?.float)) { | 43 | if (!Array.isArray(data?.embeddings?.float)) { |
| 44 | console.log('API response was not an array'); | 44 | console.warn('API response was not an array'); |
| 45 | throw new Error('API response was not an array'); | 45 | throw new Error('API response was not an array'); |
| 46 | } | 46 | } |
| 47 | 47 | ||
| @@ -36,8 +36,8 @@ async function getExtrasVectorImpl(text, apiUrl, apiKey) { | |||
| 36 | url.pathname = '/api/embeddings/compute'; | 36 | url.pathname = '/api/embeddings/compute'; |
| 37 | } | 37 | } |
| 38 | catch (error) { | 38 | catch (error) { |
| 39 | console.log('Failed to set up Extras API call:', error); | 39 | console.error('Failed to set up Extras API call:', error); |
| 40 | console.log('Extras API URL given was:', apiUrl); | 40 | console.debug('Extras API URL given was:', apiUrl); |
| 41 | throw error; | 41 | throw error; |
| 42 | } | 42 | } |
| 43 | 43 | ||
| @@ -62,7 +62,7 @@ async function getExtrasVectorImpl(text, apiUrl, apiKey) { | |||
| 62 | 62 | ||
| 63 | if (!response.ok) { | 63 | if (!response.ok) { |
| 64 | const text = await response.text(); | 64 | const text = await response.text(); |
| 65 | console.log('Extras request failed', response.statusText, text); | 65 | console.warn('Extras request failed', response.statusText, text); |
| 66 | throw new Error('Extras request failed'); | 66 | throw new Error('Extras request failed'); |
| 67 | } | 67 | } |
| 68 | 68 | ||
| @@ -23,7 +23,7 @@ export async function getMakerSuiteVector(text, directories) { | |||
| 23 | const key = readSecret(directories, SECRET_KEYS.MAKERSUITE); | 23 | const key = readSecret(directories, SECRET_KEYS.MAKERSUITE); |
| 24 | 24 | ||
| 25 | if (!key) { | 25 | if (!key) { |
| 26 | console.log('No Google AI Studio key found'); | 26 | console.warn('No Google AI Studio key found'); |
| 27 | throw new Error('No Google AI Studio key found'); | 27 | throw new Error('No Google AI Studio key found'); |
| 28 | } | 28 | } |
| 29 | 29 | ||
| @@ -48,7 +48,7 @@ export async function getMakerSuiteVector(text, directories) { | |||
| 48 | 48 | ||
| 49 | if (!response.ok) { | 49 | if (!response.ok) { |
| 50 | const text = await response.text(); | 50 | const text = await response.text(); |
| 51 | console.log('Google AI Studio request failed', response.statusText, text); | 51 | console.warn('Google AI Studio request failed', response.statusText, text); |
| 52 | throw new Error('Google AI Studio request failed'); | 52 | throw new Error('Google AI Studio request failed'); |
| 53 | } | 53 | } |
| 54 | 54 | ||
| @@ -20,14 +20,14 @@ export async function getNomicAIBatchVector(texts, source, directories) { | |||
| 20 | const config = SOURCES[source]; | 20 | const config = SOURCES[source]; |
| 21 | 21 | ||
| 22 | if (!config) { | 22 | if (!config) { |
| 23 | console.log('Unknown source', source); | 23 | console.error('Unknown source', source); |
| 24 | throw new Error('Unknown source'); | 24 | throw new Error('Unknown source'); |
| 25 | } | 25 | } |
| 26 | 26 | ||
| 27 | const key = readSecret(directories, config.secretKey); | 27 | const key = readSecret(directories, config.secretKey); |
| 28 | 28 | ||
| 29 | if (!key) { | 29 | if (!key) { |
| 30 | console.log('No API key found'); | 30 | console.warn('No API key found'); |
| 31 | throw new Error('No API key found'); | 31 | throw new Error('No API key found'); |
| 32 | } | 32 | } |
| 33 | 33 | ||
| @@ -47,14 +47,14 @@ export async function getNomicAIBatchVector(texts, source, directories) { | |||
| 47 | 47 | ||
| 48 | if (!response.ok) { | 48 | if (!response.ok) { |
| 49 | const text = await response.text(); | 49 | const text = await response.text(); |
| 50 | console.log('API request failed', response.statusText, text); | 50 | console.warn('API request failed', response.statusText, text); |
| 51 | throw new Error('API request failed'); | 51 | throw new Error('API request failed'); |
| 52 | } | 52 | } |
| 53 | 53 | ||
| 54 | /** @type {any} */ | 54 | /** @type {any} */ |
| 55 | const data = await response.json(); | 55 | const data = await response.json(); |
| 56 | if (!Array.isArray(data?.embeddings)) { | 56 | if (!Array.isArray(data?.embeddings)) { |
| 57 | console.log('API response was not an array'); | 57 | console.warn('API response was not an array'); |
| 58 | throw new Error('API response was not an array'); | 58 | throw new Error('API response was not an array'); |
| 59 | } | 59 | } |
| 60 | 60 | ||
| @@ -31,14 +31,14 @@ export async function getOpenAIBatchVector(texts, source, directories, model = ' | |||
| 31 | const config = SOURCES[source]; | 31 | const config = SOURCES[source]; |
| 32 | 32 | ||
| 33 | if (!config) { | 33 | if (!config) { |
| 34 | console.log('Unknown source', source); | 34 | console.error('Unknown source', source); |
| 35 | throw new Error('Unknown source'); | 35 | throw new Error('Unknown source'); |
| 36 | } | 36 | } |
| 37 | 37 | ||
| 38 | const key = readSecret(directories, config.secretKey); | 38 | const key = readSecret(directories, config.secretKey); |
| 39 | 39 | ||
| 40 | if (!key) { | 40 | if (!key) { |
| 41 | console.log('No API key found'); | 41 | console.warn('No API key found'); |
| 42 | throw new Error('No API key found'); | 42 | throw new Error('No API key found'); |
| 43 | } | 43 | } |
| 44 | 44 | ||
| @@ -57,7 +57,7 @@ export async function getOpenAIBatchVector(texts, source, directories, model = ' | |||
| 57 | 57 | ||
| 58 | if (!response.ok) { | 58 | if (!response.ok) { |
| 59 | const text = await response.text(); | 59 | const text = await response.text(); |
| 60 | console.log('API request failed', response.statusText, text); | 60 | console.warn('API request failed', response.statusText, text); |
| 61 | throw new Error('API request failed'); | 61 | throw new Error('API request failed'); |
| 62 | } | 62 | } |
| 63 | 63 | ||
| @@ -65,7 +65,7 @@ export async function getOpenAIBatchVector(texts, source, directories, model = ' | |||
| 65 | const data = await response.json(); | 65 | const data = await response.json(); |
| 66 | 66 | ||
| 67 | if (!Array.isArray(data?.data)) { | 67 | if (!Array.isArray(data?.data)) { |
| 68 | console.log('API response was not an array'); | 68 | console.warn('API response was not an array'); |
| 69 | throw new Error('API response was not an array'); | 69 | throw new Error('API response was not an array'); |
| 70 | } | 70 | } |
| 71 | 71 | ||