diff --git a/semantic_router/layer.py b/semantic_router/layer.py index f34ec9d1f2be9abfd978f9b0e66a29b1ad124496..ec051633364696ebf3c0361bd229e4a445a1f392 100644 --- a/semantic_router/layer.py +++ b/semantic_router/layer.py @@ -488,7 +488,7 @@ class RouteLayer: remote_utterances=remote_utterances, ) # generate sync strategy - sync_strategy = diff.to_sync_strategy() + sync_strategy = diff.get_sync_strategy(sync_mode=sync_mode) # and execute self._execute_sync_strategy(sync_strategy) return diff.to_utterance_str() diff --git a/semantic_router/schema.py b/semantic_router/schema.py index ca5e55c4ea9ceb541ad9e93ce7a0939ce04c57a9..ef2b219062ee175869cb65796c2f957064e4becd 100644 --- a/semantic_router/schema.py +++ b/semantic_router/schema.py @@ -98,6 +98,8 @@ class Utterance(BaseModel): """ route, utterance = tuple_obj[0], tuple_obj[1] function_schemas = tuple_obj[2] if len(tuple_obj) > 2 else None + if isinstance(function_schemas, dict): + function_schemas = [function_schemas] metadata = tuple_obj[3] if len(tuple_obj) > 3 else {} return cls( route=route,