diff --git a/frigate/util/config.py b/frigate/util/config.py index 7843c1d17..c3d796397 100644 --- a/frigate/util/config.py +++ b/frigate/util/config.py @@ -380,26 +380,17 @@ def migrate_017_0(config: dict[str, dict[str, Any]]) -> dict[str, dict[str, Any] if global_genai: new_genai_config = {} - new_object_config = new_config.get("objects", {}).copy() - new_object_genai_config = new_object_config.get("genai", {}).copy() + new_object_config = new_config.get("objects", {}) + new_object_config["genai"] = {} - for key, value in global_genai.items(): + for key in global_genai.keys(): if key in ["model", "provider", "base_url", "api_key"]: - new_genai_config[key] = value + new_genai_config[key] = global_genai[key] else: - new_object_genai_config[key] = value + new_object_config["genai"][key] = global_genai[key] - # Only set genai if there are provider/connection keys to keep - if new_genai_config: - new_config["genai"] = new_genai_config - elif "genai" in new_config: - # Remove genai block if all keys moved to objects - del new_config["genai"] - - # Set objects.genai if there are feature/config keys - if new_object_genai_config: - new_object_config["genai"] = new_object_genai_config - new_config["objects"] = new_object_config + new_config["genai"] = new_genai_config + new_config["objects"] = new_object_config for name, camera in config.get("cameras", {}).items(): camera_config: dict[str, dict[str, Any]] = camera.copy() @@ -425,12 +416,9 @@ def migrate_017_0(config: dict[str, dict[str, Any]]) -> dict[str, dict[str, Any] camera_genai = camera_config.get("genai", {}) if camera_genai: - # Move camera-level genai to camera's objects.genai - camera_objects_config = camera_config.get("objects", {}) - camera_object_genai_config = camera_objects_config.get("genai", {}) - camera_object_genai_config.update(camera_genai) - camera_objects_config["genai"] = camera_object_genai_config - camera_config["objects"] = camera_objects_config + camera_object_config = camera_config.get("objects", {}) + camera_object_config["genai"] = camera_genai + camera_config["objects"] = camera_object_config del camera_config["genai"] new_config["cameras"][name] = camera_config