ChatChess
v1.1.9
Ein einfaches Python -Paket, um Schach mit Chatgpt zu spielen
pip install chatchess
Das Paket importieren:
from ChatChess import ChatChess Zuerst muss ein Game wie folgt Dealerd sein:
bot = ChatChess . Game ( "OPENAI_API_KEY" )self.model = "gpt-3.5-turbo" : Chatgpt-Modell zu verwendet. 3.5-turbo empfohlen, siehe Modelle und Preisgestaltung hier: https://openai.com/pricingbot.maxTokens = 10 : MAX_TOKENS SETENbot.maxFails = 5 : Betrag der Zeit, um die Sendungsaufforderung an ChatGPT erneut zu versenden, wenn eine ungültige Bewegung zurückgegeben wirdbot.maxTime = 5 : Höchst viele Sekunden, um auf die Antwort der Chatgpt zu wartenbot.prompt = {"normal" : "", "failed" : "", "start" : ""} : Die Eingabeaufforderungen, in jedem Spielstatus an Chatgpt zu sendenbot.board = chess.Board() : Schachbrettobjektbot.printDebug = False : debug -debug info - occaisonaly nützlichmove = bot.move["ChatGPT"]["uci"] : Gibt den letzten Schritt des bestimmten Spielers (CHATGPT / Eingabe) im angegebenen Format (UCI / SAN) zurückmessage = bot.message : Gibt den Umzug nach jedem GPT -Umzug zurückHauptfunktionen
move = bot.play("e4") : spielt den Move des Players, dann die Antwort von Chatgpt - gibt Chatgpts Umzug zurückmove = getGPTMove() : spielt Chatgpts Bewegung in der aktuellen Position - Gibt Chatgpts Umzug zurückAndere Funktionen
bot.pushPlayerMove("e4") : Drücken Sie einen Zug ohne Chatgpt -Antwortprompt = bot.createPrompt() : Erstellt die Aufforderung zum Senden an ChatGPT basierend auf der aktuellen Position und vorherigen Fehlern - Rückgabeaufforderung zurückresponse = bot.askGPT(prompt) : Abfragen der Chatgpt -Eingabeaufforderung basierend auf festgelegten Parametern, Zeiten nach bot.maxTime Sekundenmove = bot.handleResponse(response, player) : Suchanfragen nach Schach Move in String - fügt es zu self.move als Spieler hinzuMoveLimitError : MOVE FAIL -Grenze erreichtBadInputMoveError : Move Inputed kann nicht gespielt werden 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 Stellen Sie beim Einstellen der Platine für bot.board sicher, dass sich das Board nicht nur aus einer festgelegten Position befindet, sondern über die Bewegungen im PGN -Format verfügt