From 4ae07468f37db34e92df20a6aaae255ffdec7950 Mon Sep 17 00:00:00 2001 From: Robin Wang <6220861+MottoX@users.noreply.github.com> Date: Thu, 31 Oct 2024 04:45:19 +0800 Subject: [PATCH] Enhance log storage to support more data types (#1530) --- src/crewai/memory/storage/kickoff_task_outputs_storage.py | 2 +- src/crewai/utilities/crew_json_encoder.py | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/crewai/memory/storage/kickoff_task_outputs_storage.py b/src/crewai/memory/storage/kickoff_task_outputs_storage.py index 57623eef8..dbb5f124b 100644 --- a/src/crewai/memory/storage/kickoff_task_outputs_storage.py +++ b/src/crewai/memory/storage/kickoff_task_outputs_storage.py @@ -70,7 +70,7 @@ class KickoffTaskOutputsSQLiteStorage: task.expected_output, json.dumps(output, cls=CrewJSONEncoder), task_index, - json.dumps(inputs), + json.dumps(inputs, cls=CrewJSONEncoder), was_replayed, ), ) diff --git a/src/crewai/utilities/crew_json_encoder.py b/src/crewai/utilities/crew_json_encoder.py index 3cab07ffc..c3f95fcf6 100644 --- a/src/crewai/utilities/crew_json_encoder.py +++ b/src/crewai/utilities/crew_json_encoder.py @@ -2,13 +2,14 @@ from datetime import datetime, date import json from uuid import UUID from pydantic import BaseModel +from decimal import Decimal class CrewJSONEncoder(json.JSONEncoder): def default(self, obj): if isinstance(obj, BaseModel): return self._handle_pydantic_model(obj) - elif isinstance(obj, UUID): + elif isinstance(obj, UUID) or isinstance(obj, Decimal): return str(obj) elif isinstance(obj, datetime) or isinstance(obj, date):