ChatChess
v1.1.9
Um pacote simples de python para jogar xadrez com chatgpt
pip install chatchess
Importar o pacote:
from ChatChess import ChatChess Primeiro, um objeto Game precisa ser descalador da seguinte forma:
bot = ChatChess . Game ( "OPENAI_API_KEY" )self.model = "gpt-3.5-turbo" : Modelo ChatGPT a ser usado. 3.5-turbo recomendado, consulte Modelos e preços aqui: https://openai.com/pricingbot.maxTokens = 10 : defina max_tokens passou para conversar em cada movimentobot.maxFails = 5 : quantidade de vezes para tentar enviar o prompt para chatgpt quando o movimento inválido é retornadobot.maxTime = 5 : Quantidade máxima de segundos para aguardar a resposta do chatgpt antes de tempo para o tempobot.prompt = {"normal" : "", "failed" : "", "start" : ""}bot.board = chess.Board() : objeto de tabuleiro de xadrezbot.printDebug = False : imprimir informações de depuração - occaonaly útilmove = bot.move["ChatGPT"]["uci"] : retorna o último movimento do determinado jogador (chatgpt / input) no formato especificado (UCI / SAN)message = bot.message : retorna a mudança após cada movimento do GPTFunções principais
move = bot.play("e4") : reproduz a jogada do jogador, depois a resposta do chatgpt - retorna o movimento de Chatgptmove = getGPTMove() : joga o movimento de ChatGPT na posição atual - Retorna a jogada de ChatgptOutras funções
bot.pushPlayerMove("e4") : empurre um movimento sem chatgpt respondendoprompt = bot.createPrompt() : cria prompt para enviar para chatgpt com base na posição atual e falhas anteriores - retorna promptresponse = bot.askGPT(prompt) : Consultas Prompt de ChatGPT com base em parâmetros de set, tempos de saída após bot.maxTime segundosmove = bot.handleResponse(response, player) : as pesquisas de movimentação de xadrez na string - adicionam -a ao self.move como jogadorMoveLimitError : Mover Fail LimitBadInputMoveError : Move a entrada não pode ser tocada from ChatChess import ChatChess
bot = ChatChess . Game ( "OPENAI_API_KEY" ) # Set API key
while True :
print ( bot . board ) # Print the board
bot . play ( input ( "Make a move: " )) # Ask player to make a move, then ChatGPT responds
if bot . board . is_game_over (): # Break if game over
break from ChatChess import ChatChess
import chess . pgn
from datetime import date
bot = ChatChess . Game ( "OPENAI_API_KEY" ) # Set API key
while True :
bot . getGPTMove () # Ask ChatGPT to make a move
print ( bot . message ) # Print move and info
if bot . board . is_game_over (): # Break if game over
game = chess . pgn . Game . from_board ( bot . board ) # Create PGN from game
game . headers [ "Event" ] = "ChatChess test"
game . headers [ "Date" ] = date . today (). strftime ( "%d.%m.%Y" )
game . headers [ "White" ] = "ChatGPT"
game . headers [ "Black" ] = "ChatGPT"
print ( game )
break from ChatChess import ChatChess
import chess
bot = ChatChess . Game ( "OPENAI_API_KEY" ) # Set API key
def getGPTMove ():
bot . board = chess . Board () # Pass board to ChatChess
bot . getGPTMove () # Ask ChatGPT to make a move
return bot . move [ "ChatGPT" ][ "FEN" ]. fen () # Return FEN move Ao definir a placa para bot.board , verifique se a placa não é simplesmente de uma posição definida, mas possui os movimentos no formato PGN para aumentar a taxa de sucesso do ChatGPT Move Move