mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-17 17:00:15 +01:00
🤖 chore: Improve Assistants Run Logging (#1801)
This commit is contained in:
parent
9d3215dcaa
commit
60b1d1332c
3 changed files with 19 additions and 14 deletions
|
|
@ -470,13 +470,14 @@ async function processMessages(openai, messages = []) {
|
|||
}
|
||||
|
||||
text += (content.text?.value ?? '') + ' ';
|
||||
logger.debug('[processMessages] Processing message:', { value: text });
|
||||
|
||||
// Process annotations if they exist
|
||||
if (!content.text?.annotations) {
|
||||
if (!content.text?.annotations?.length) {
|
||||
continue;
|
||||
}
|
||||
|
||||
logger.debug('Processing annotations:', content.text.annotations);
|
||||
logger.debug('[processMessages] Processing annotations:', content.text.annotations);
|
||||
for (const annotation of content.text.annotations) {
|
||||
logger.debug('Current annotation:', annotation);
|
||||
let file;
|
||||
|
|
|
|||
|
|
@ -88,35 +88,38 @@ async function waitForRun({
|
|||
const runInfo = `user: ${openai.req.user.id} | thread_id: ${thread_id} | ${runIdLog}`;
|
||||
const raceTimeoutMs = 3000;
|
||||
let maxRetries = 5;
|
||||
let attempt = 0;
|
||||
while (timeElapsed < timeout) {
|
||||
i++;
|
||||
logger.debug(`[heartbeat ${i}] ${runIdLog} | Retrieving run status...`);
|
||||
let updatedRun;
|
||||
|
||||
const startTime = Date.now();
|
||||
let attempt = 0;
|
||||
let startTime = Date.now();
|
||||
while (!updatedRun && attempt < maxRetries) {
|
||||
try {
|
||||
updatedRun = await withTimeout(
|
||||
retrieveRun({ thread_id, run_id, timeout: raceTimeoutMs, openai }),
|
||||
raceTimeoutMs,
|
||||
`[heartbeat ${i}] ${runIdLog} | Run retrieval timed out at ${timeElapsed} ms. Trying again (attempt ${
|
||||
`[heartbeat ${i}] ${runIdLog} | Run retrieval timed out after ${raceTimeoutMs} ms. Trying again (attempt ${
|
||||
attempt + 1
|
||||
} of ${maxRetries})...`,
|
||||
);
|
||||
attempt++;
|
||||
} catch (error) {
|
||||
logger.warn(`${runIdLog} | Error retrieving run status: ${error}`);
|
||||
}
|
||||
}
|
||||
const endTime = Date.now();
|
||||
logger.debug(
|
||||
`[heartbeat ${i}] ${runIdLog} | Elapsed run retrieval time: ${endTime - startTime}`,
|
||||
);
|
||||
} catch (error) {
|
||||
attempt++;
|
||||
startTime = Date.now();
|
||||
logger.warn(`${runIdLog} | Error retrieving run status`, error);
|
||||
}
|
||||
}
|
||||
|
||||
if (!updatedRun) {
|
||||
const errorMessage = `[waitForRun] ${runIdLog} | Run retrieval failed after ${maxRetries} attempts`;
|
||||
throw new Error(errorMessage);
|
||||
}
|
||||
|
||||
run = updatedRun;
|
||||
attempt = 0;
|
||||
const runStatus = `${runInfo} | status: ${run.status}`;
|
||||
|
|
|
|||
|
|
@ -44,7 +44,8 @@ async function retrieveRun({ thread_id, run_id, timeout, openai }) {
|
|||
return response.data;
|
||||
} catch (error) {
|
||||
const logMessage = '[retrieveRun] Failed to retrieve run data:';
|
||||
if (error.response) {
|
||||
const timedOutMessage = 'Cannot read properties of undefined (reading \'status\')';
|
||||
if (error?.response && error?.response?.status) {
|
||||
logger.error(
|
||||
`${logMessage} The request was made and the server responded with a status code that falls out of the range of 2xx: ${
|
||||
error.message ? error.message : ''
|
||||
|
|
@ -64,9 +65,9 @@ async function retrieveRun({ thread_id, run_id, timeout, openai }) {
|
|||
request: error.request,
|
||||
},
|
||||
);
|
||||
} else {
|
||||
} else if (error?.message && !error?.message?.includes(timedOutMessage)) {
|
||||
logger.error(`${logMessage} Something happened in setting up the request`, {
|
||||
message: error.message ? error.message : '',
|
||||
message: error.message,
|
||||
});
|
||||
}
|
||||
throw error;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue