コンテンツにスキップ

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.csvCardDatabase に読み込む。CardStaticFeaturesAttackStaticFeatures は 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_endSearchApi 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 を正とする。