パート 1:最初の戦略呼び出し
制御されたトレーニングシナリオまたは完了したハンドから、GTOポーカートレーナーの中核を構築します。これはCounterplayを支えるものと同種の戦略レイヤーです。このパートでは、実際のプリフロップ戦略呼び出しを行い、検証可能なミックス頻度を読み取り、レビュー後に意思決定を評価します。
必要なもの
無料のAPIキー(こちらから取得)とcurlまたはPython 3。キーを環境変数として設定します:
export POKERAI_API_KEY="gto_your_key_here"
ステップ 1 · 最初の呼び出し
自分がMPでA♥K♥を持ち、UTGがレイズしている場合のGTO戦略を取得します:
curl https://pokerai.bet/v1/gto/preflop \
-H "authorization: Bearer $POKERAI_API_KEY" \
-H "content-type: application/json" \
-d '{
"hole_cards": "AhKh",
"positions": { "hero": "MP" },
"preflop_actions": [
{ "position": "SB", "action": "small blind", "amount": 0.5 },
{ "position": "BB", "action": "big blind", "amount": 1 },
{ "position": "UTG", "action": "raise", "amount": 3 }
]
}'
応答:
{
"hole_cards": "AhKh",
"situation": "Raise",
"strategy": [
{ "action": "raise", "frequency": 1, "amount_bb": 9, "sizing_pot": 0.8 }
]
}
UTG のオープンに対する AKs は純粋な 3 ベットです:9bb に、100% の頻度でレイズします。situationは送信したアクションから導出されます(ここでは、1 回のレイズに直面 = "Raise")。
ステップ 2 · 頻度を読む
重要な点:APIは、各アクションのGTO frequencyであるミックス戦略を返します。単一の「推奨」アクションではありません。ほとんどのハンドは純粋(1つのアクションが100%)ですが、多くはミックスです。例として、UTGがA2sでオープンする場合:
{ "action": "raise", "frequency": 0.296 } # raise 29.6% of the time
{ "action": "fold", "frequency": 0.704 } # fold 70.4% of the time
ステップ3 · コード内
小さな型付きクライアント — Counterplay が使用しているものと同じ構成です(app/gto/client.py):
import os, httpx
class Pokerai:
def __init__(self):
self.h = {"Authorization": f"Bearer {os.environ['POKERAI_API_KEY']}"}
self.c = httpx.Client(base_url="https://pokerai.bet", timeout=15)
def preflop(self, hole_cards, hero, actions):
r = self.c.post("/v1/gto/preflop", headers=self.h, json={
"hole_cards": hole_cards,
"positions": {"hero": hero},
"preflop_actions": actions,
})
r.raise_for_status()
return {s["action"]: s["frequency"] for s in r.json()["strategy"]}
gto = Pokerai()
strat = gto.preflop("AhKh", "MP", [{"position":"UTG","action":"raise","amount":3}])
print(strat) # {'raise': 1.0}
ステップ4 · 意思決定を採点する
ここがトレーナーの核心です。ヒーローのアクションを、選択したアクションのGTO頻度で評価します。最頻アクションとの差ではありません。頻度14%のレイズは妥当なミックスプレイであり、ミスではありません:
def grade(chosen_action, strategy):
freq = strategy.get(chosen_action, 0.0)
if freq >= 0.10: return "ok" # a real part of the GTO mix
if freq >= 0.005: return "minor" # rare, but not a blunder
return "major" # ~never played → a real leak
grade("raise", {"raise": 0.296, "fold": 0.704}) # "ok" (A2s raise)
grade("raise", {"fold": 1.0}) # "major" (raising 32o UTG)
作成したもの
機能する戦略レイヤー:文書化されたトレーニングスポットについてGTO頻度を取得し、プレイヤーの完了済みの意思決定を均衡戦略と照らして評価します。Pokerai API は決定論的な戦略に関する事実を提供します。コーチやLLMは返された頻度を説明できますが、ソルバーの代わりにはなりません。このループ、すなわちスポット → 戦略 → 評価が、ストリートごとに進めるトレーナーのすべてです。
許容される利用
制御されたトレーニングシナリオまたはすでに終了したハンドからの入力のみを受け付けます。影響の大きい採点、コーチング、またはプロダクト出力は、人間がレビューできる状態に保ちます。Pokerai API は、トレーニング、コーチング、ハンドレビュー、学習、研究のためのものです。リアルマネーテーブルでのリアルタイム支援は禁止されています。
1 回の呼び出しでレンジ全体を取得して、レンジページのように表示します。近日公開。
関連リソース
- 開発者ドキュメント — 認証、クォータ、エラー、エンドポイントの挙動
- インタラクティブな API リファレンス — すべてのエンドポイントのライブリファレンス
- OpenAPI 仕様 — 機械可読な英語版 API 契約
- GTOポーカーソルバーAPIガイド — 戦略 API の選択と呼び出しに関する主要な解説ページ
- セッション後のハンドレビューガイド — トレーナーへの入力が管理されたシナリオではなく実際のプレイに由来する場合に、完了したハンドをレビューする
- llms.txt — Pokerai API の簡潔な LLM エントリーポイント