|
|
@@ -259,8 +259,8 @@ class OpenaiService implements IOpenaiService {
|
|
|
})
|
|
|
.catch((err) => {
|
|
|
logger.error(
|
|
|
- `Failed to generate thread title for threadId ${thread.id}:`,
|
|
|
- err,
|
|
|
+ { err },
|
|
|
+ `Failed to generate thread title for threadId ${thread.id}`,
|
|
|
);
|
|
|
});
|
|
|
}
|
|
|
@@ -282,9 +282,9 @@ class OpenaiService implements IOpenaiService {
|
|
|
threadRelation.threadId,
|
|
|
vectorStoreId,
|
|
|
);
|
|
|
- logger.debug('Update thread', updatedThreadResponse);
|
|
|
+ logger.debug({ data: updatedThreadResponse }, 'Update thread');
|
|
|
} catch (err) {
|
|
|
- logger.error(err);
|
|
|
+ logger.error({ err }, 'Failed to update thread');
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -321,7 +321,7 @@ class OpenaiService implements IOpenaiService {
|
|
|
const deletedThreadResponse = await this.client.deleteThread(
|
|
|
threadRelation.threadId,
|
|
|
);
|
|
|
- logger.debug('Delete thread', deletedThreadResponse);
|
|
|
+ logger.debug({ data: deletedThreadResponse }, 'Delete thread');
|
|
|
await threadRelation.remove();
|
|
|
} catch (err) {
|
|
|
await openaiApiErrorHandler(err, {
|
|
|
@@ -351,13 +351,13 @@ class OpenaiService implements IOpenaiService {
|
|
|
const deleteThreadResponse = await this.client.deleteThread(
|
|
|
expiredThreadRelation.threadId,
|
|
|
);
|
|
|
- logger.debug('Delete thread', deleteThreadResponse);
|
|
|
+ logger.debug({ data: deleteThreadResponse }, 'Delete thread');
|
|
|
deletedThreadIds.push(expiredThreadRelation.threadId);
|
|
|
|
|
|
// sleep
|
|
|
await new Promise((resolve) => setTimeout(resolve, apiCallInterval));
|
|
|
} catch (err) {
|
|
|
- logger.error(err);
|
|
|
+ logger.error({ err }, 'Failed to delete expired thread');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -509,7 +509,7 @@ class OpenaiService implements IOpenaiService {
|
|
|
const deleteVectorStoreResponse = await this.client.deleteVectorStore(
|
|
|
vectorStoreDocument.vectorStoreId,
|
|
|
);
|
|
|
- logger.debug('Delete vector store', deleteVectorStoreResponse);
|
|
|
+ logger.debug({ data: deleteVectorStoreResponse }, 'Delete vector store');
|
|
|
await vectorStoreDocument.markAsDeleted();
|
|
|
} catch (err) {
|
|
|
await openaiApiErrorHandler(err, {
|
|
|
@@ -563,7 +563,7 @@ class OpenaiService implements IOpenaiService {
|
|
|
attachment._id,
|
|
|
);
|
|
|
} catch (err) {
|
|
|
- logger.error(err);
|
|
|
+ logger.error({ err }, 'Failed to upload attachment file');
|
|
|
}
|
|
|
}
|
|
|
callback();
|
|
|
@@ -647,7 +647,7 @@ class OpenaiService implements IOpenaiService {
|
|
|
const fileUploadResult = await Promise.allSettled(workers);
|
|
|
fileUploadResult.forEach((result) => {
|
|
|
if (result.status === 'rejected') {
|
|
|
- logger.error(result.reason);
|
|
|
+ logger.error({ err: result.reason }, 'File upload failed');
|
|
|
}
|
|
|
});
|
|
|
|
|
|
@@ -677,14 +677,14 @@ class OpenaiService implements IOpenaiService {
|
|
|
uploadedFileIds,
|
|
|
);
|
|
|
logger.debug(
|
|
|
+ { data: createVectorStoreFileBatchResponse },
|
|
|
'Create vector store file',
|
|
|
- createVectorStoreFileBatchResponse,
|
|
|
);
|
|
|
|
|
|
// Set isAttachedToVectorStore: true when the uploaded file is attached to VectorStore
|
|
|
await VectorStoreFileRelationModel.markAsAttachedToVectorStore(pageIds);
|
|
|
} catch (err) {
|
|
|
- logger.error(err);
|
|
|
+ logger.error({ err }, 'Failed to create vector store file batch');
|
|
|
|
|
|
// Delete all uploaded files if createVectorStoreFileBatch fails
|
|
|
for await (const pageId of pageIds) {
|
|
|
@@ -742,8 +742,8 @@ class OpenaiService implements IOpenaiService {
|
|
|
const fileId = vectorStoreFileRelation.fileIds[0];
|
|
|
const deleteFileResponse = await this.client.deleteFile(fileId);
|
|
|
logger.debug(
|
|
|
- 'Delete vector store file (attachment) ',
|
|
|
- deleteFileResponse,
|
|
|
+ { data: deleteFileResponse },
|
|
|
+ 'Delete vector store file (attachment)',
|
|
|
);
|
|
|
|
|
|
// Delete related VectorStoreFileRelation document
|
|
|
@@ -752,7 +752,10 @@ class OpenaiService implements IOpenaiService {
|
|
|
await deleteAllAttachmentVectorStoreFileRelations();
|
|
|
}
|
|
|
} catch (err) {
|
|
|
- logger.error(err);
|
|
|
+ logger.error(
|
|
|
+ { err },
|
|
|
+ 'Failed to delete vector store file for attachment',
|
|
|
+ );
|
|
|
await openaiApiErrorHandler(err, {
|
|
|
notFoundError: () => deleteAllAttachmentVectorStoreFileRelations(),
|
|
|
});
|
|
|
@@ -781,7 +784,10 @@ class OpenaiService implements IOpenaiService {
|
|
|
vectorStoreFileRelation,
|
|
|
);
|
|
|
} catch (err) {
|
|
|
- logger.error(err);
|
|
|
+ logger.error(
|
|
|
+ { err },
|
|
|
+ 'Failed to delete vector store file for attachment',
|
|
|
+ );
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -800,7 +806,7 @@ class OpenaiService implements IOpenaiService {
|
|
|
for await (const fileId of vectorStoreFileRelation.fileIds) {
|
|
|
try {
|
|
|
const deleteFileResponse = await this.client.deleteFile(fileId);
|
|
|
- logger.debug('Delete vector store file', deleteFileResponse);
|
|
|
+ logger.debug({ data: deleteFileResponse }, 'Delete vector store file');
|
|
|
deletedFileIds.push(fileId);
|
|
|
if (apiCallInterval != null) {
|
|
|
// sleep
|
|
|
@@ -812,7 +818,7 @@ class OpenaiService implements IOpenaiService {
|
|
|
deletedFileIds.push(fileId);
|
|
|
},
|
|
|
});
|
|
|
- logger.error(err);
|
|
|
+ logger.error({ err }, 'Failed to delete file');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -880,7 +886,7 @@ class OpenaiService implements IOpenaiService {
|
|
|
apiCallInterval,
|
|
|
);
|
|
|
} catch (err) {
|
|
|
- logger.error(err);
|
|
|
+ logger.error({ err }, 'Failed to delete vector store file');
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -896,7 +902,10 @@ class OpenaiService implements IOpenaiService {
|
|
|
try {
|
|
|
await this.deleteVectorStoreFileForAttachment(vectorStoreFileRelation);
|
|
|
} catch (err) {
|
|
|
- logger.error(err);
|
|
|
+ logger.error(
|
|
|
+ { err },
|
|
|
+ 'Failed to delete vector store file on attachment delete',
|
|
|
+ );
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1002,10 +1011,13 @@ class OpenaiService implements IOpenaiService {
|
|
|
}
|
|
|
|
|
|
logger.debug('--------- createVectorStoreFileOnPageCreate ---------');
|
|
|
- logger.debug('AccessScopeType of aiAssistant: ', aiAssistant.accessScope);
|
|
|
logger.debug(
|
|
|
- 'VectorStoreFile pagePath to be created: ',
|
|
|
- pagesToVectorize.map((page) => page.path),
|
|
|
+ { accessScope: aiAssistant.accessScope },
|
|
|
+ 'AccessScopeType of aiAssistant',
|
|
|
+ );
|
|
|
+ logger.debug(
|
|
|
+ { pagePaths: pagesToVectorize.map((page) => page.path) },
|
|
|
+ 'VectorStoreFile pagePath to be created',
|
|
|
);
|
|
|
logger.debug('-----------------------------------------------------');
|
|
|
|
|
|
@@ -1038,11 +1050,17 @@ class OpenaiService implements IOpenaiService {
|
|
|
}
|
|
|
|
|
|
logger.debug('---------- updateVectorStoreOnPageUpdate ------------');
|
|
|
- logger.debug('AccessScopeType of aiAssistant: ', aiAssistant.accessScope);
|
|
|
- logger.debug('PagePath of VectorStoreFile to be deleted: ', page.path);
|
|
|
logger.debug(
|
|
|
- 'pagePath of VectorStoreFile to be created: ',
|
|
|
- pagesToVectorize.map((page) => page.path),
|
|
|
+ { accessScope: aiAssistant.accessScope },
|
|
|
+ 'AccessScopeType of aiAssistant',
|
|
|
+ );
|
|
|
+ logger.debug(
|
|
|
+ { pagePath: page.path },
|
|
|
+ 'PagePath of VectorStoreFile to be deleted',
|
|
|
+ );
|
|
|
+ logger.debug(
|
|
|
+ { pagePaths: pagesToVectorize.map((page) => page.path) },
|
|
|
+ 'pagePath of VectorStoreFile to be created',
|
|
|
);
|
|
|
logger.debug('-----------------------------------------------------');
|
|
|
|
|
|
@@ -1089,7 +1107,7 @@ class OpenaiService implements IOpenaiService {
|
|
|
undefined,
|
|
|
file.path,
|
|
|
);
|
|
|
- logger.debug('Uploaded file', uploadedFile);
|
|
|
+ logger.debug({ data: uploadedFile }, 'Uploaded file');
|
|
|
|
|
|
for await (const aiAssistant of aiAssistants) {
|
|
|
const pagesToVectorize = await this.filterPagesByAccessScope(
|
|
|
@@ -1152,8 +1170,8 @@ class OpenaiService implements IOpenaiService {
|
|
|
) {
|
|
|
try {
|
|
|
logger.debug(
|
|
|
- 'Target page path for VectorStoreFile generation: ',
|
|
|
- chunk.map((page) => page.path),
|
|
|
+ { pagePaths: chunk.map((page) => page.path) },
|
|
|
+ 'Target page path for VectorStoreFile generation',
|
|
|
);
|
|
|
await createVectorStoreFile(vectorStoreRelation, chunk);
|
|
|
this.push(chunk);
|
|
|
@@ -1585,7 +1603,7 @@ class OpenaiService implements IOpenaiService {
|
|
|
0,
|
|
|
);
|
|
|
|
|
|
- logger.debug('TotalPageCount: ', totalPageCount);
|
|
|
+ logger.debug({ totalPageCount }, 'TotalPageCount');
|
|
|
|
|
|
const limitLearnablePageCountPerAssistant = configManager.getConfig(
|
|
|
'openai:limitLearnablePageCountPerAssistant',
|