CABT Boundary Modules¶
対象: pca.cabt, pca.cli_config, pca.data
Purpose¶
CABT 公式 API と src/pca/ 内部表現の境界を吸収する層。公式 cg.api の dataclass / enum / function に直接依存する箇所を閉じ込め、探索・学習・評価側は安定した Python API だけを見る。
Modules¶
| Module | Role | Implementation Details |
|---|---|---|
pca.cabt.card_db |
static card / attack metadata | EN_Card_Data.csv を CardDatabase に読み込む。CardStaticFeatures と AttackStaticFeatures は unified model の static embedding と self-play JSONL metadata に使う。 |
pca.cabt.schema |
CABT enum boundary | AreaType, OptionType, SelectContext などを軽量 enum として参照する。公式 API の数値に依存する判定を散らさないための module。 |
pca.cabt.search_api |
search API adapter | 公式 search_begin, search_step, search_release, search_end を SearchApi protocol に合わせる。呼び出し回数や時間は SearchApiStats に蓄積する。 |
pca.cli_config |
YAML + argparse | --config で flat YAML を読み、argparse default に反映する。self-play / train / evaluation で共通利用する。 |
pca.data.deck_pool |
deck pool | deck CSV と重みを読み、self-play/evaluation の deck sampling に使う。 |
Public API¶
| API | Usage |
|---|---|
load_card_database(path) |
card CSV から static feature DB を作る。 |
CABTSearchApi.from_import() |
runtime で公式 cg.api を import して adapter を構築する。 |
CABTSearchApi.search_begin(obs, hidden) |
ISMCTS simulation の hidden state を CABT に渡す。 |
has_search_input(obs) |
observation が search API の hidden input を持つか確認する。 |
parse_args_with_config(parser, section=...) |
YAML config と CLI override を合成する。 |
Usage¶
from pca.cabt.card_db import load_card_database
from pca.cabt.search_api import CABTSearchApi
card_db = load_card_database("pokemon-tcg-ai-battle/EN_Card_Data.csv")
search_api = CABTSearchApi.from_import()
Notes¶
- CABT observation は dict と dataclass の両方が来るため、下流では
features.encoder.get_value()を使う。 search_release()は例外を握りつぶしてでも cleanup する方針。長時間 self-play で search state が残るリスクを避ける。- CABT 公式 API の詳細は https://matsuoinstitute.github.io/cabt/api.html を正とする。