setup models

This commit is contained in:
Marcos Lohmann
2026-10-07 13:43:09 -03:00
parent aeee6c7de1
commit 84ea9a5307
75 changed files with 5093 additions and 58 deletions

40
datagen/taxonomy.py Normal file
View File

@@ -0,0 +1,40 @@
"""Leitura da taxonomia e do guia de anotação."""
from __future__ import annotations
from functools import lru_cache
from pathlib import Path
import yaml
ROOT = Path(__file__).resolve().parents[1]
TAXONOMY = ROOT / "data" / "taxonomy" / "intents-v1.yaml"
GUIDE = ROOT / "docs" / "06-guia-de-anotacao.md"
@lru_cache(maxsize=None)
def load() -> dict:
raw = yaml.safe_load(TAXONOMY.read_text())
intents = {}
for domain, items in raw["domains"].items():
for it in items:
intents[it["id"]] = {"domain": domain, "description": it["description"],
"confusable_with": it.get("confusable_with", [])}
return {"version": raw["version"], "fallback": raw["fallback"], "intents": intents,
"out_of_scope": {o["id"]: o["description"] for o in raw["out_of_scope"]}}
def guide() -> str:
text = GUIDE.read_text()
return text.split("<!-- GUIA:INICIO -->")[1].split("<!-- GUIA:FIM -->")[0].strip()
def taxonomy_block() -> str:
t = load()
lines = [f"- `{k}` ({v['domain']}): {v['description']}" for k, v in t["intents"].items()]
lines.append(f"- `{t['fallback']['id']}`: {t['fallback']['description']}")
return "\n".join(lines)
def labels() -> set[str]:
t = load()
return set(t["intents"]) | {t["fallback"]["id"]}