Executando verificação de segurança...
8

E se a gente colocasse o ChatGPT para jogar poker?

Há um tempo atrás eu vi um estudante sendo expulso de Columbia por usar cheats em entrevistas, ele criou o https://cluely.com/, depois eu notei uma proposta parecida na https://www.perssua.com/p, e se a IA pode ver o que você vê então ela pode ter ajudar com seus cash games de $2 cents.

Para fazer isso eu construí uma aplicação que une visão computacional, inteligência artificial e teorias de jogos para criar um assistente em tempo real. O sistema analisa a mesa e dá recomendações ótimas baseadas em múltiplas abordagens de IA.

A aplicação utiliza uma arquitetura baseada no Model Context Protocol (MCP), que permite comunicação estruturada entre diferentes componentes de IA:

  • Vision AI Module: Processa imagens da mesa de poker
  • LLM Integration: Análise contextual com GPT-4 e Gemini
  • GTO Engine: Cálculos de estratégia com Game Theory Optimal

Como funciona o fluxo de dados?

O interessante de entender aqui é que cada step do pipeline tem sua própria responsabilidade e eles se comunicam através do protocolo MCP. Deixe me quebrar isso melhor:

Screenshot → Vision AI → Data Extraction → Parallel Analysis (GTO + LLM) → Final Decision → Database → Visualization

1. Screenshot Capture: O usuário tira um screenshot da mesa (controle 100% manual - nada automático aqui). A imagem é redimensionada inteligentemente para 384-768px para otimizar velocidade vs qualidade.

2. Vision AI Processing: Em vez de usar OCR tradicional que quebra com qualquer mudança de interface, o GPT-4o olha para a imagem como um humano olharia. Ele extrai:

  • Posição do jogador na mesa
  • Cartas hole (As, Kh, etc)
  • Community cards se houver
  • Pot size atual
  • Stack sizes
  • Betting round (preflop, flop, turn, river)
  • Ações dos oponentes

3. Data Extraction: Os dados são estruturados em JSON e validados. Se algo estiver inconsistente, o sistema aplica defaults sensatos (ex: se não conseguir determinar posição, assume BTN).

4. Parallel Analysis: Aqui roda duas engines simultaneamente:

  • GTO Engine: Calcula a estratégia matematicamente ótima baseada na situação
  • LLM Analysis: Considera fatores exploitativos, reads de oponentes, histórico da sessão

5. Final Decision: Um algoritmo combina as duas recomendações. Por padrão, 60% peso para GTO e 40% para LLM, mas isso pode ser ajustado.

6. Database Storage: Tudo é persistido no SQLite - a mão, as análises, métricas de performance, etc.

7. Visualization: Interface Streamlit atualiza em tempo real com gráficos de P&L, distribuição de ações, latência, etc.

Ferramentas MCP Disponíveis para a IA

O protocolo MCP é o que permite ao LLM enxergar e manipular diferentes partes do sistema - ela não apenas analisa, ela pode acessar dados históricos, calcular estratégias, e até simular cenários.

Analysis Tools

  • analyze_poker_table: Processa imagens com Vision AI
  • calculate_gto_strategy: Computa estratégias matematicamente ótimas
  • evaluate_hand_strength: Avalia força relativa das cartas
  • assess_position_advantage: Analisa benefícios posicionais

Database Tools

  • save_hand_data: Persiste informações das mãos
  • retrieve_player_stats: Busca histórico de performance
  • export_session_data: Gera relatórios de sessão
  • cleanup_old_data: Mantém banco otimizado

Mas no final das contas como a IA interage?

A interação é muito mais sofisticada do que parece. O LLM não é apenas uma calculadora - ele é um jogador virtual no melhor dos casos que considera contexto, história, e psicologia.

1. Captura de Contexto

  • O LLM recebe dados estruturados da mesa de poker
  • Informações incluem: posição, cartas, pot size, stack sizes, ações dos oponentes
  • Mas também: Histórico da sessão, tendências dos oponentes, meta-game

2. Análise Contextual

  • Utiliza ferramentas MCP para acessar dados históricos: "Esse oponente já foldou para 3-bet 8 das últimas 10 vezes"
  • Considera reads dos oponentes e tendências de jogo: "Villain está jogando mais tight depois de perder big pot"
  • Aplica conhecimento de poker adaptado ao contexto específico: "Em posição tardia com stack profundo, posso ser mais agressivo"

3. Tomada de Decisão Híbrida

  • Camada GTO: Base matemática sólida - "Com AKs em posição CO, frequência de 3-bet é 65%"
  • Camada Exploitative: Adaptações baseadas em reads - "Mas esse oponente é passivo, posso diminuir para 40%"
  • Camada Psicológica: Considera table image e meta-game - "Estou visto como tight, posso bluffar mais"

4. Feedback Loop Inteligente

  • Resultados das decisões são salvos no banco de dados
  • LLM aprende com outcomes para melhorar recomendações futuras: "3-bet funcionou 85% das vezes contra esse tipo de oponente"
  • Sistema evolui continuamente através do uso
Input: Mesa com AA em posição BTN, pot de €12, villain fez raise
↓
MCP Tools: analyze_poker_table() + calculate_gto_strategy() + retrieve_player_stats()
↓
GTO Analysis: "3-bet 85% das vezes com AA, sizing 3.5x"
LLM Analysis: "GTO sugere 3-bet, mas histórico mostra villain fold 90% para 3-bet + ele está em tilt"
↓
Final Decision: 3-bet de €35 com 94% confidence + "exploiting villain's tight image"

O que torna isso interessante: O LLM pode usar as ferramentas MCP para "investigar" situações. Por exemplo, se vê um 4-bet, pode chamar retrieve_player_stats() para ver quantas vezes esse oponente 4-betta, qual o sizing padrão, etc. É como ter um HUD infinitamente flexível.


Por que Vision AI em vez de OCR?

Eu até testei um OCR tradicional como o easyOCR mas a visão computacional consegue entender o contexto complexo com muita facilidade e é mais adaptável a várias interfaces.

O GPT-4o literalmente "vê" a mesa como um humano veria e extrai informações semanticamente. É como ter um humano olhando para a tela e te falando o que está acontecendo.

Eaí, funciona?

Bem, eu não cheguei a testar em mesas de cash games reais contra outros jogadores, por todas as questões que você pode imaginar. Até por isso vale a pena compartilhar essa ideia! Então eu desenvolvi um sistema de dados mockados que simula 100 mãos realistas de poker para validar todas as funcionalidades:

Geração de Dados Realistas

  • Distribuição por Posições: BTN (20%), CO (18%), BB/SB (15% cada)
  • Ranges de Cartas: Posições tardias com ranges mais amplos (BTN pode jogar 65% das mãos vs UTG com 15%)
  • Pot Sizes: Variação realista baseada na street (preflop → river com multiplicadores 1x → 6x)
  • Stack Sizes: 30bb a 250bb simulando diferentes cenários (short-stack vs deep-stack dynamics)

Simulação de Análises

  • GTO Strategy: Baseada na força da mão e posição usando ranges simplificados mas realistas
  • LLM Decisions: 70% concordância com GTO (spots óbvios), 30% adaptações exploitativas (spots marginais)
  • Resultados: Simulados baseados na confidence da decisão (higher confidence = higher win rate)

Resultados dos Testes

Performance Metrics:

  • Latência: 50-500ms por análise (lembre-se que estávamos testando local)
  • 🎯 Acurácia: 92% de confidence média nas recomendações
  • 💰 ROI: €988.47 profit total em 100 mãos simuladas
  • 📊 Consistência: Padrões coerentes entre diferentes posições

Validação Estratégica:

  • Posições Tardias: Maior aggressividade e win rate (BTN 67% win rate vs UTG 45%)
  • Blinds: Estratégias mais defensivas (BB com call frequency 23% vs BTN bet frequency 34%)
  • GTO vs Exploitative: Balanço efetivo entre teoria e adaptação

Dados Interessantes dos Mocks:

  • Mãos que seguiram 100% GTO: 62% win rate
  • Mãos com adaptação LLM: 58% win rate (mas maior variance)
  • Profit médio por posição: BTN (+€15.2), CO (+€12.1), BB (-€2.3), SB (-€4.8)

Otimizações e Lições Aprendidas

Performance Evolution:

  • Versão 1: ~33s por análise (inviável para jogo ao vivo)
  • Versão 2: ~10s com prompt otimizado
  • Versão 3: ~4s com modos de velocidade (8x improvement!)

Prompt Engineering foi crucial:

  • Inicial: 2000 tokens, instruções verbosas
  • Final: 200 tokens, instruções ultra-concisas
  • Key insight: "JSON only" + exemplos específicos > explicações longas

Alguns adendos

em média gastamos 900 tokens por imagem analisada, com uma média de 10000ms para analisar imagens inicialmente. E sem dúvidas não chegamos ao estado da arte, porque não integramos nosso MCP com uma aplicação GTO robusta como GTO+, por exemplo.

Mas, o sistema demonstra que é possível criar assistentes de IA úteis, mantendo controle total do usuário sobre quando e como as análises são realizadas.

Eu não acho uma boa ideia compartilhar o repo, para evitar dor de cabeça, mas se você quiser muito, deixa seu comentário ai!

minhas referencias para construir esse app
https://openai.github.io/openai-agents-python/mcp/
https://modelcontextprotocol.io/quickstart/server

Carregando publicação patrocinada...
3

Idéia bacana d+. Vou levantar alguns pontos como jogador ativo de poker. Os sites onlines ( PokerStars, ggpoker e etc) são muito rígidos com softwares rodando em segundo plano que tragam vantagem para os jogadores, nas diretrizes dos sites explicam isso. Porem existe um mercado muito lucrativo que gira muito dinheiro estudo/criação das melhores estratégias no poker. Existem varias modalidades e cada uma tem suas particularidades e seu sistema de estudo/treinamento. Hoje usam muito gto como a base desses softwares, add IA nesse segmento pode ser bem interessante.

2

exatamente, eu até pretendia testar ao vivo no poker da bet365, aonde eu brinquei por algum tempo, mas quando eu fui ver foi encerrado aqui no Brasil. Portanto, usar esse modelo numa conta recem criada (em caso de bons resultados) logo resultaria no meu banimento nessas plataformas. Ainda existe um grande caminho a partir daqui, eu acho que integrar com ferramentas de GTO seria um passo interessante

3
2

Meus 2 cents,

Se voce puder compartilhar o repo seria interessante - em particular fiquei impressionado com o "prompt enginnering", com a queda de 2000 para 200 token e o tempo de reposta - este tipo de detalhe eh especialmente interessante para entender o funcionamento e otimizacao de IA para aplicacoes do dia-a-dia.

Caso nao queira compartilhar em publico, se puder enviar ao meu email fico agradecido: [email protected]