Objetivo deste post

Publicamos o código-fonte usado na IA de Othello. O código só é carregado quando você abre um arquivo.

Modelos usados

  • Gemma 4 E4B (mlx-community/gemma-4-e4b-it-4bit): o modelo padrão do servidor de VLM. Hoje ele falha ao carregar e não é usado.
  • mlx-vlm: roda o modelo no Apple Silicon.
  • IA local: não é um modelo treinado. O código-fonte tem busca alfa-beta; a web implantada tem a IA de pesos de uma jogada.
  • Ainda não há nenhum modelo treinado.

Estrutura de pastas

  • src: app em Qt6 C++. Motor de regras (othello_board), IA de busca (aiplayer), cliente de VLM (tcpvlmclient)
  • vlm_server: servidor TCP OT88, regras, download do Gemma 4
  • othello-web: partidas na web em Next.js. Motor de regras (board.ts), IA de busca (ai.ts), armazenamento de partidas (db.ts), retransmissão para o VLM (api/vlm/move, ot88Client.ts)

As configurações de implantação do servidor, os scripts de monitoramento e automação e os dados e logs de partidas ficaram de fora da publicação. O código de operação da web, como anúncios e a lista de outros jogos, e os arquivos de configuração também foram retirados, por isso alguns imports apontam para arquivos não publicados.

Código-fonte completo

37 arquivos · 5.381 linhas — abra uma pasta e clique em um arquivo para carregar o código.

Raiz do projeto1 arquivo
CMakeLists.txttext · 30 linhas · 677B

Carregando o código…

othello-web/19 arquivos
othello-web/app/api/game/[code]/route.tstypescript · 56 linhas · 2KB

Carregando o código…

othello-web/app/api/game/route.tstypescript · 23 linhas · 801B

Carregando o código…

othello-web/app/api/vlm/move/route.tstypescript · 55 linhas · 1KB

Carregando o código…

othello-web/app/globals.csscss · 48 linhas · 864B

Carregando o código…

othello-web/app/layout.tsxtsx · 33 linhas · 954B

Carregando o código…

othello-web/app/page.tsxtsx · 71 linhas · 2KB

Carregando o código…

othello-web/app/play/page.tsxtsx · 689 linhas · 20KB

Carregando o código…

othello-web/app/play/play.module.csscss · 209 linhas · 3KB

Carregando o código…

othello-web/components/OthelloBoard.module.csscss · 111 linhas · 2KB

Carregando o código…

othello-web/components/OthelloBoard.tsxtsx · 85 linhas · 3KB

Carregando o código…

othello-web/lib/ai.tstypescript · 145 linhas · 4KB

Carregando o código…

othello-web/lib/board.tstypescript · 209 linhas · 5KB

Carregando o código…

othello-web/lib/db.tstypescript · 190 linhas · 6KB

Carregando o código…

othello-web/lib/gameTypes.tstypescript · 42 linhas · 798B

Carregando o código…

othello-web/lib/guest.tstypescript · 43 linhas · 1KB

Carregando o código…

othello-web/lib/ot88Client.tstypescript · 181 linhas · 5KB

Carregando o código…

othello-web/lib/renderBoardPng.tstypescript · 106 linhas · 3KB

Carregando o código…

othello-web/lib/vlmClient.tstypescript · 103 linhas · 3KB

Carregando o código…

othello-web/package.jsonjson · 22 linhas · 489B

Carregando o código…

src/11 arquivos
src/aiplayer.cppc++ · 167 linhas · 5KB

Carregando o código…

src/aiplayer.hc++ · 17 linhas · 334B

Carregando o código…

src/boardwidget.cppc++ · 205 linhas · 7KB

Carregando o código…

src/boardwidget.hc++ · 48 linhas · 1KB

Carregando o código…

src/main.cppc++ · 26 linhas · 784B

Carregando o código…

src/mainwindow.cppc++ · 785 linhas · 27KB

Carregando o código…

src/mainwindow.hc++ · 110 linhas · 3KB

Carregando o código…

src/othello_board.cppc++ · 211 linhas · 5KB

Carregando o código…

src/othello_board.hc++ · 99 linhas · 3KB

Carregando o código…

src/tcpvlmclient.cppc++ · 469 linhas · 15KB

Carregando o código…

src/tcpvlmclient.hc++ · 73 linhas · 2KB

Carregando o código…

vlm_server/6 arquivos
vlm_server/__init__.pypython · 3 linhas · 69B

Carregando o código…

vlm_server/__main__.pypython · 92 linhas · 3KB

Carregando o código…

vlm_server/download_gemma4.pypython · 68 linhas · 2KB

Carregando o código…

vlm_server/othello_rules.pypython · 92 linhas · 3KB

Carregando o código…

vlm_server/requirements.txttext · 7 linhas · 195B

Carregando o código…

vlm_server/server.pypython · 458 linhas · 15KB

Carregando o código…