feat: complete pre-ai local completion v3

This commit is contained in:
OpenCode
2026-09-21 16:30:27 -03:00
parent 6731eeca08
commit 84b08c2150
41 changed files with 4141 additions and 9 deletions
+31
View File
@@ -0,0 +1,31 @@
"""Prepare versioned candidate evidence from already computed deterministic candidates."""
import argparse
import json
from pathlib import Path
from central.app.ai.retrieval_v3 import prepare_candidate_set
def main(input_path, output_path):
source = json.loads(Path(input_path).read_text(encoding="utf-8"))
prepared = []
for item in source.get("items", []):
prepared.append(prepare_candidate_set(
type("WorkItem", (), {"task_type": item.get("task_type", "INVALID_NCM"), "dedup_key": item["dedup_key"], "payload": item.get("payload", {})})(),
[tuple(row) for row in item.get("candidates", [])],
dataset_versions=source.get("dataset_versions"),
gtin_evidence=item.get("gtin_evidence"),
kb_neighbors=item.get("kb_neighbors"),
hierarchical_context=item.get("hierarchical_context"),
))
report = {"artifact": "AI_CANDIDATE_PREPARATION_V3", "items": prepared, "semantic_decisions": 0}
Path(output_path).write_text(json.dumps(report, indent=2, ensure_ascii=False) + "\n", encoding="utf-8")
return report
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("input_path")
parser.add_argument("output_path")
args = parser.parse_args()
print(json.dumps(main(args.input_path, args.output_path), indent=2, ensure_ascii=False))