65 lines
2.4 KiB
Python
65 lines
2.4 KiB
Python
from __future__ import annotations
|
|
|
|
import json
|
|
from pathlib import Path
|
|
|
|
import yaml
|
|
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
|
|
|
|
def read_yaml(path: Path) -> dict:
|
|
with path.open("r", encoding="utf-8") as handle:
|
|
data = yaml.safe_load(handle)
|
|
return data if isinstance(data, dict) else {}
|
|
|
|
|
|
def count_jsonl(path: Path) -> int:
|
|
if not path.exists():
|
|
return 0
|
|
return sum(1 for line in path.read_text(encoding="utf-8").splitlines() if line.strip())
|
|
|
|
|
|
def file_size(path: Path) -> int:
|
|
return path.stat().st_size if path.exists() else 0
|
|
|
|
|
|
def main() -> int:
|
|
manifest = read_yaml(ROOT / "plugins" / "1c" / "plugin.yaml")
|
|
adapter = read_yaml(ROOT / "plugins" / "1c" / "adapters" / "qwen3-coder-30b-a3b-1c-lora-v1.yaml")
|
|
registry = json.loads((ROOT / "registry" / "index.json").read_text(encoding="utf-8"))
|
|
|
|
training_examples = ROOT / "plugins" / "1c" / "training" / "examples" / "instruction.examples.jsonl"
|
|
generated_training = ROOT / "plugins" / "1c" / "training" / "raw" / "generated.instruction.jsonl"
|
|
prepared_training = ROOT / "plugins" / "1c" / "training" / "prepared" / "train.chat.jsonl"
|
|
metadata_example = ROOT / "plugins" / "1c" / "metadata" / "examples" / "metadata.example.json"
|
|
|
|
print(f"1C plugin: {manifest.get('status')} v{manifest.get('version')}")
|
|
print(f"Tasks: {', '.join(manifest.get('tasks') or [])}")
|
|
print("")
|
|
print("Models:")
|
|
for model in registry.get("models") or []:
|
|
tasks = model.get("task") or []
|
|
if "1c" in tasks or any(str(task).startswith("1c") for task in tasks):
|
|
print(f"- {model['id']} [{model['status']}] runtime={model.get('runtime')}")
|
|
print("")
|
|
print("Data:")
|
|
print(f"- training examples: {count_jsonl(training_examples)}")
|
|
print(f"- generated training examples: {count_jsonl(generated_training)}")
|
|
print(f"- prepared training records: {count_jsonl(prepared_training)}")
|
|
print(f"- prepared train JSONL: {file_size(prepared_training)} bytes")
|
|
print(f"- metadata example: {file_size(metadata_example)} bytes")
|
|
print("")
|
|
training = adapter.get("training") or {}
|
|
print("Training:")
|
|
print(f"- adapter: {adapter.get('id')}")
|
|
print(f"- status: {training.get('status')}")
|
|
for blocker in training.get("blockers") or []:
|
|
print(f" - {blocker}")
|
|
return 0
|
|
|
|
|
|
if __name__ == "__main__":
|
|
raise SystemExit(main())
|