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" : รุ่น ChatGPT ที่จะใช้ แนะนำ 3.5-turbo ดูรุ่นและราคาที่นี่: https://openai.com/pricingbot.maxTokens = 10 : set max_tokens ส่งผ่านไปยัง chatgpt ในแต่ละการเคลื่อนไหวbot.maxFails = 5 : จำนวนครั้งที่จะลองส่งพรอมส่งไปยัง chatgpt เมื่อส่งคืนไม่ถูกต้องbot.maxTime = 5 : จำนวนวินาทีสูงสุดเพื่อรอคำตอบ chatgpt ก่อนกำหนดเวลาออกbot.prompt = {"normal" : "", "failed" : "", "start" : ""} : พรอมต์ที่จะส่งไปยัง chatgpt ในแต่ละสถานะเกมbot.board = chess.Board() : วัตถุบอร์ดหมากรุกbot.printDebug = False : พิมพ์ข้อมูลการดีบัก - Occaisonaly มีประโยชน์move = 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 ตามตำแหน่งปัจจุบันและความล้มเหลวก่อนหน้า - ส่งคืนพรอมต์response = bot.askGPT(prompt) : ข้อความสอบถาม chatgpt ตามพารามิเตอร์ที่ตั้งค่าเวลาออกหลังจาก bot.maxTime วินาทีmove = bot.handleResponse(response, player) : ค้นหาหมากรุกย้ายในสตริง - เพิ่มลงในตัวเองย้ายเป็นผู้เล่นMoveLimitError : ถึงขีด จำกัด ล้มเหลวBadInputMoveError : ย้ายเข้าไม่สามารถเล่นได้ 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