ChatChess
v1.1.9
حزمة بيثون بسيطة للعب الشطرنج مع chatgpt
pip install chatchess
استيراد الحزمة:
from ChatChess import ChatChess يجب أن يكون كائن Game الأول هو الشفرات على النحو التالي:
bot = ChatChess . Game ( "OPENAI_API_KEY" )self.model = "gpt-3.5-turbo" : نموذج ChatGpt لاستخدامه. 3.5 توربو موصى به ، راجع النماذج والتسعير هنا: https://openai.com/pringbot.maxTokens = 10 : تم تمرير 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) : موجه str sthawpt استنادا إلى المعلمات المحددة ، والأوقات خارج بعد bot.maxTime Secondsmove = bot.handleResponse(response, player) : يبحث عن تحرك الشطرنج في السلسلة - يضيفه إلى Self.move كمشغلMoveLimitError : تم الوصول إلى حد FAIL MoveBadInputMoveError : لا يمكن لعب إدخال الإدخال 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 لزيادة معدل نجاح Move ChatGPT