ChatChess
v1.1.9
Простой пакет Python для игры в шахматы с CHATGPT
pip install chatchess
Импортировать пакет:
from ChatChess import ChatChess Во -первых, Game объект должен быть нанесен Decalerd следующим образом:
bot = ChatChess . Game ( "OPENAI_API_KEY" )self.model = "gpt-3.5-turbo" : модель CATGPT будет использоваться. 3,5-Turbo Рекомендуется, см. Модели и цены здесь: https://openai.com/pricingbot.maxTokens = 10 : установить max_tokens передвигается в Chatgpt на каждом ходеbot.maxFails = 5 : количество раз, чтобы повторно повторно отправить приглашение в CHATGPT при возвращении неверного ходаbot.maxTime = 5 : максимальное количество секунд, чтобы ждать ответа Chatgpt, прежде чемbot.prompt = {"normal" : "", "failed" : "", "start" : ""} :bot.board = chess.Board() : объект шахматной платыbot.printDebug = False : print print debugmove = bot.move["ChatGPT"]["uci"] : возвращает последний ход данного игрока (CHATGPT / Input) в данном формате (UCI / SAN)message = bot.message : возвращает перемещение после каждого хода GPTОсновные функции
move = bot.play("e4") : воспроизводит ход игрока, а затем ответ ChatGPT - возвращает ход ChatGPTmove = getGPTMove() : воспроизводит движение ChatGPT в текущей позиции - возвращает ход ChatGPTДругие функции
bot.pushPlayerMove("e4") : нажмите на ход без ответа Chatgptprompt = bot.createPrompt() : создает призыв отправить в CHATGPT на основе текущей позиции и предыдущих сбоев - returns reportresponse = bot.askGPT(prompt) : запросы приглашения CHATGPT на основе параметров SET, Time Out после bot.maxTime Secondsmove = bot.handleResponse(response, player) : поиск по шахматному движению в строке - добавляет его к самостоятельному.MoveLimitError : перемещение лимита сбоя достигнутоBadInputMoveError : Move Intopted не может быть сыгран 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 При настройке платы для bot.board убедитесь, что плата не просто из установленной позиции, но имеет ходы в формате PGN, чтобы увеличить успех хода CHATGPT