Care-Circle-Voice-Journal / scripts /verify_lora_adapter.py
Abhishek
Initialize project files and updated hackathon tags
1d6859e
Raw
History Blame Contribute Delete
2.3 kB
from __future__ import annotations
import argparse
import json
from pathlib import Path
import sys
REPO_ROOT = Path(__file__).resolve().parents[1]
if str(REPO_ROOT) not in sys.path:
sys.path.insert(0, str(REPO_ROOT))
from app_kit.lora_adapter import load_voice_journal_adapter
DEFAULT_TRANSCRIPT = (
'Caregiver says the patient took medication after a short walk, is resting comfortably, '
'and has less shortness of breath than yesterday.'
)
DEFAULT_TAGS = [
'meds:medication',
'activity:walking',
'symptoms:shortness_of_breath',
'care:family',
'mood:calm',
]
def _resolve(repo_root: Path, value: str) -> Path:
path = Path(value).expanduser()
if not path.is_absolute():
path = (repo_root / path).resolve()
return path
def main(argv: list[str] | None = None) -> int:
parser = argparse.ArgumentParser(description='Verify that the bundled P2 adapter loads and ranks tags.')
parser.add_argument(
'--adapter',
default='models/lora/p2_voice_journal_adapter.json',
help='Path to the adapter JSON (relative to repo root by default).',
)
parser.add_argument(
'--transcript',
default=DEFAULT_TRANSCRIPT,
help='Transcript to score with the adapter.',
)
parser.add_argument(
'--tags',
nargs='*',
default=DEFAULT_TAGS,
help='Candidate tags to rank. Defaults to a small P2 care-circle set.',
)
args = parser.parse_args(argv)
adapter_path = _resolve(REPO_ROOT, args.adapter)
adapter = load_voice_journal_adapter(adapter_path)
if adapter is None:
raise SystemExit(f'Adapter not found at {adapter_path}')
prioritized = adapter.prioritize_tags(args.tags, transcript=args.transcript)
scores = adapter.score_tags(args.transcript, prioritized)
payload = {
'adapter_name': adapter.adapter_name,
'adapter_type': adapter.adapter_type,
'loaded_from': str(adapter.loaded_from),
'has_scoring_state': bool(adapter.scoring_state),
'candidate_tags': args.tags,
'prioritized_tags': prioritized,
'scores': scores,
}
print(json.dumps(payload, indent=2, ensure_ascii=False, sort_keys=True))
return 0
if __name__ == '__main__':
raise SystemExit(main())