AQIT 0.1.0
Loading...
Searching...
No Matches
patch.py
Go to the documentation of this file.
1# Copyright (c) 2025-present Aquin Labs Private Limited. All Rights Reserved.
2# This file is part of the Aquin Engine. Unauthorized copying, modification,
3# distribution, or use of this file, via any medium, is strictly prohibited.
4# Proprietary and confidential. See LICENSE for terms.
5
6"""Patch — steer / sweep / multi-steer / vector save."""
7
8from __future__ import annotations
9
10from typing import Any
11
12from aquin.sdk._runtime import invoke
13
14
15def steer(**kwargs: Any) -> dict[str, Any]:
16 if kwargs.get("save") or kwargs.get("save_path"):
17 return invoke("extract_steer_vector", kwargs, command="steer --save")
18 return invoke("run_steer_and_show", kwargs, command="steer")
20
21def multi_steer(**kwargs: Any) -> dict[str, Any]:
22 return invoke("run_multi_steer", kwargs, command="multi-steer")
23
24
25def save_vector(**kwargs: Any) -> dict[str, Any]:
26 return invoke("extract_steer_vector", kwargs, command="steer --save")
27
28
29def sweep(**kwargs: Any) -> dict[str, Any]:
30 """Strength grid over a steer intervention (uses CLI sweep engine)."""
31 from aquin.sweep_cli import cmd_sweep
32
33 # Prefer structured kwargs → temporary argv for existing sweep implementation
34 argv: list[str] = []
35 mapping = {
36 "feature_idx": "--feature_idx",
37 "feature": "--feature_idx",
38 "strengths": "--strengths",
39 "prompt": "--prompt",
40 "eval": "--eval",
41 "layer": "--layer",
42 }
43 for key, flag in mapping.items():
44 if key in kwargs and kwargs[key] is not None:
45 val = kwargs[key]
46 if key == "eval" and val is True:
47 argv.append(flag)
48 else:
49 argv.extend([flag, str(val)])
50 cmd_sweep(argv)
51 return {"ok": True, "argv": argv}
dict[str, Any] save_vector(**Any kwargs)
Definition patch.py:29
dict[str, Any] sweep(**Any kwargs)
Definition patch.py:33
dict[str, Any] multi_steer(**Any kwargs)
Definition patch.py:25
dict[str, Any] steer(**Any kwargs)
Definition patch.py:19