¿Cómo ejecuto de forma segura una resolución de la API del solver GTO?
Considera una resolución en tiempo real como un ciclo de vida breve: prográmala, consulta su árbol hasta que se pueda consultar y, después, lee solo los tokens que devuelva ese árbol.
POST /v1/gto/solver, conserve su identificador solve y consulte POST /v1/gto/solver/tree hasta que spot_status sea queryable. Pase el token de un nodo devuelto a POST /v1/gto/solver/node. Esta página abarca la programación, la consulta y la lectura, no la selección del solver ni el diseño de árboles de investigación.Datos rápidos
| Programación | POST /v1/gto/solver requiere board, oop_range, ip_range, pot, effective_stack y hero. |
|---|---|
| Señales asíncronas | El status de la programación puede ser computing, queryable o busy; el spot_status del árbol es la señal de disponibilidad para las lecturas. |
| Ámbito de lectura | Use el identificador solve únicamente con sus llamadas de árbol/liberación, y use un token devuelto por ese árbol solo como entrada node para /v1/gto/solver/node. |
| Cuota | solve_quota solo está presente cuando se activó una nueva resolución. Las operaciones de árbol, nodo y liberación opcional están documentadas como gratuitas. |
| Límite de resultados | Un nodo legible puede contener strategy, o actions y range_strategy; un estado no legible no es una estrategia. |
1. Programe y conserve el identificador
Usa una situación personalizada de flop, turn o river completa y autónoma. La longitud del board selecciona la calle. Guarda el identificador solve devuelto; es el identificador para las solicitudes posteriores de árbol y liberación.
curl -s https://pokerai.bet/v1/gto/solver \
+ -H "Authorization: Bearer $POKERAI_API_KEY" \
+ -H "Content-Type: application/json" \
+ -d '{"board":"2c2h2s","oop_range":"AA,KK","ip_range":"QQ,JJ","pot":6,"effective_stack":100,"hero":"OOP"}'
Una respuesta de programación puede ser computing o queryable. Si es busy, no hay ningún identificador solve disponible para consultar; trátelo como capacidad del solver, no como una resolución completada. El contrato público no promete un tiempo de espera ni un nivel de disponibilidad.
2. Consulta el árbol antes de leer la estrategia
Llame a POST /v1/gto/solver/tree con el identificador. Para una resolución de flop, turn_card es opcional; river_card también es opcional y se combina con turn_card cuando se necesita desambiguar. No invente ninguno de los dos campos para una resolución diferente.
curl -s https://pokerai.bet/v1/gto/solver/tree \
+ -H "Authorization: Bearer $POKERAI_API_KEY" \
+ -H "Content-Type: application/json" \
+ -d '{"solve":"<identificador de solve>"}'
Continúe solo cuando spot_status sea queryable. computing no es un resultado de estrategia. no_nodes es terminal para la ronda o runout consultado, así que deje de sondearlo. expired significa que el identificador ya no puede usarse y que el spot debe programarse de nuevo.
3. Lea un nodo usando su token de árbol
Un árbol consultable devuelve nodos con campos que incluyen node, is_hero, status y token. Pasa ese token como node; no sustituye la clave de API ni un identificador de resolución reutilizable. Mantén los datos de identificador y token fuera de los registros del cliente.
curl -s https://pokerai.bet/v1/gto/solver/node \
+ -H "Authorization: Bearer $POKERAI_API_KEY" \
+ -H "Content-Type: application/json" \
+ -d '{"node":"<token de este árbol de solve>"}'
Un nodo de héroe puede devolver strategy. Un nodo de villano, o una solicitud sin hole_cards, puede devolver actions y range_strategy. Si la respuesta del nodo informa node_status como computing, expired o error, no la presentes como estrategia; error puede incluir message.
4. Interprete solo un nodo legible
Un nodo de héroe legible puede contener strategy. Un nodo de villano, o una solicitud sin hole_cards, puede contener actions y range_strategy. Esos campos describen el nodo devuelto; no son una promesa sobre un árbol, spot o formato de juego diferente.
Si el árbol está computing, no_nodes o expired, detente o reprograma según lo documentado en lugar de presentar un resultado. Para saber si una API alojada o un solver de escritorio es la mejor herramienta de investigación, consulta la comparación transparente.
Úselo solo para entrenamiento y revisión
Usa este ciclo de vida para entrenamiento sin conexión, coaching, revisión de manos, estudio e investigación. Admite la gestión del estado de un solve enviado, no la entrega de decisiones en mesas en vivo ni una afirmación sobre la calidad de la estrategia, la latencia o el rendimiento.
La asistencia en tiempo real en mesas con dinero real está prohibida. Mantenga la programación del solver, los sondeos, la estrategia de nodos y los flujos de liberación fuera de la automatización de mesas en vivo y de los avisos de acciones durante la mano.
Mapa de endpoints del ciclo de vida
Estas tres operaciones son suficientes para el ciclo de vida descrito aquí; utiliza solo los campos documentados en el contrato actual de OpenAPI.
| Punto de conexión | Función en el ciclo de vida | Entrada o señal documentada |
|---|---|---|
POST /v1/gto/solver | Programar | Campos de situación obligatorios; guarde solve e inspeccione status y el solve_quota opcional. |
POST /v1/gto/solver/tree | Sondear | Envíe solve; espere a spot_status: queryable y seleccione un token devuelto. |
POST /v1/gto/solver/node | Leer | Envía el token del árbol correspondiente como node; hole_cards opcional limita una lectura de estrategia de héroe. |
Recursos relacionados
- Documentación para desarrolladores — autenticación, cuotas y flujo de trabajo del solver
- Referencia interactiva de la API — esquemas actuales de solicitud y respuesta
- Instantánea de OpenAPI — el contrato en inglés legible por máquinas
- Guía de la API del solucionador GTO — contexto del producto y mapa de la superficie de la API
- Guía de la API de revisión de manos de póker — incorporar el análisis del solver en un flujo de trabajo posterior a la sesión
- llms.txt — el punto de entrada conciso para LLM de Pokerai API