Fix genai migration

This commit is contained in:
Nicolas Mowen 2025-11-26 18:53:08 -07:00
parent 53865be36d
commit bce95783a3

View File

@ -380,26 +380,17 @@ def migrate_017_0(config: dict[str, dict[str, Any]]) -> dict[str, dict[str, Any]
if global_genai: if global_genai:
new_genai_config = {} new_genai_config = {}
new_object_config = new_config.get("objects", {}).copy() new_object_config = new_config.get("objects", {})
new_object_genai_config = new_object_config.get("genai", {}).copy() 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"]: if key in ["model", "provider", "base_url", "api_key"]:
new_genai_config[key] = value new_genai_config[key] = global_genai[key]
else: 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 new_config["genai"] = new_genai_config
if new_genai_config: new_config["objects"] = new_object_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
for name, camera in config.get("cameras", {}).items(): for name, camera in config.get("cameras", {}).items():
camera_config: dict[str, dict[str, Any]] = camera.copy() 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", {}) camera_genai = camera_config.get("genai", {})
if camera_genai: if camera_genai:
# Move camera-level genai to camera's objects.genai camera_object_config = camera_config.get("objects", {})
camera_objects_config = camera_config.get("objects", {}) camera_object_config["genai"] = camera_genai
camera_object_genai_config = camera_objects_config.get("genai", {}) camera_config["objects"] = camera_object_config
camera_object_genai_config.update(camera_genai)
camera_objects_config["genai"] = camera_object_genai_config
camera_config["objects"] = camera_objects_config
del camera_config["genai"] del camera_config["genai"]
new_config["cameras"][name] = camera_config new_config["cameras"][name] = camera_config