ChatChess
v1.1.9
Un simple package python pour jouer aux échecs avec le chatppt
pip install chatchess
Importer le package:
from ChatChess import ChatChess Tout d'abord, un objet Game doit être décalerte comme suit:
bot = ChatChess . Game ( "OPENAI_API_KEY" )self.model = "gpt-3.5-turbo" : modèle de chatppt à utiliser. 3.5-turbo recommandé, voir les modèles et les prix ici: https://openai.com/pricingbot.maxTokens = 10 : Set max_tokens est passé à Chatgpt sur chaque mouvementbot.maxFails = 5 : montant pour réessayer l'invite d'envoi à chatppt lorsque le déménagement non valide est retournébot.maxTime = 5 : Montant maximum de secondes pour attendre la réponse de chatppt avant de synchroniserbot.prompt = {"normal" : "", "failed" : "", "start" : ""} : les invites à envoyer à Chatgpt à chaque état de jeubot.board = chess.Board() : objet de carte d'échecsbot.printDebug = False : imprimer les informations de débogage - occaisonaly utilemove = bot.move["ChatGPT"]["uci"] : renvoie le dernier mouvement du lecteur donné (chatppt / entrée) dans le format donné (UCI / SAN)message = bot.message : renvoie le passage après chaque mouvement GPTFonctions principales
move = bot.play("e4") : joue le mouvement du joueur, puis la réponse de Chatgpt - renvoie le mouvement de Chatgptmove = getGPTMove() : joue le mouvement de Chatgpt dans la position actuelle - renvoie le mouvement de ChatgptAutres fonctions
bot.pushPlayerMove("e4") : poussez un déménagement sans répondre à la réponseprompt = bot.createPrompt() : crée une invite à envoyer à ChatGpt en fonction de la position actuelle et des échecs précédents - Renvoie l'inviteresponse = bot.askGPT(prompt) : interroge l'invite Chatgpt basée sur les paramètres de définition, temps après bot.maxTime secondesmove = bot.handleResponse(response, player) : recherche d'échecs Move in String - l'ajoute à self.move en tant que joueurMoveLimitError : Déplacer la limite de panne atteintBadInputMoveError : le mouvement entré ne peut pas être joué 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 Lorsque vous définissez la carte pour bot.board , assurez-vous que la carte n'est pas simplement à partir d'une position définie, mais a les mouvements au format PGN pour augmenter le taux de réussite du mouvement de chatte