diff --git a/modules/serviceCenter/services/serviceAgent/mainServiceAgent.py b/modules/serviceCenter/services/serviceAgent/mainServiceAgent.py index 97d9e0d0..905621b9 100644 --- a/modules/serviceCenter/services/serviceAgent/mainServiceAgent.py +++ b/modules/serviceCenter/services/serviceAgent/mainServiceAgent.py @@ -2528,6 +2528,8 @@ def _registerCoreTools(registry: ToolRegistry, services): try: import matplotlib matplotlib.use("Agg") + import logging as _mpllog + _mpllog.getLogger("matplotlib").setLevel(_mpllog.WARNING) import matplotlib.pyplot as plt import io @@ -2607,11 +2609,19 @@ def _registerCoreTools(registry: ToolRegistry, services): chatService = services.chat sanitizedTitle = _re.sub(r'[^\w._-]', '_', title, flags=_re.UNICODE).strip('_') or "chart" fileName = f"{sanitizedTitle}.png" - fid = chatService.saveFile( - fileName=fileName, - fileData=pngData, - mimeType="image/png", - ) + + if hasattr(chatService.interfaceDbComponent, "saveGeneratedFile"): + fileItem = chatService.interfaceDbComponent.saveGeneratedFile(pngData, fileName, "image/png") + else: + fileItem, _ = chatService.interfaceDbComponent.saveUploadedFile(pngData, fileName) + + fid = fileItem.id if hasattr(fileItem, "id") else fileItem.get("id", "?") if isinstance(fileItem, dict) else "?" + fiId = context.get("featureInstanceId") or (services.featureInstanceId if services else "") + if fiId and fid != "?": + chatService.interfaceDbComponent.updateFile(fid, {"featureInstanceId": fiId}) + tempFolderId = _getOrCreateTempFolder(chatService) + if tempFolderId and fid != "?": + chatService.interfaceDbComponent.updateFile(fid, {"folderId": tempFolderId}) sideEvents = [{"type": "fileCreated", "data": { "fileId": fid, "fileName": fileName,