ChatChess
v1.1.9
Paket Python sederhana untuk bermain catur dengan chatgpt
pip install chatchess
Impor paket:
from ChatChess import ChatChess Pertama objek Game harus decalerd sebagai berikut:
bot = ChatChess . Game ( "OPENAI_API_KEY" )self.model = "gpt-3.5-turbo" : Model chatgpt yang akan digunakan. 3.5-Turbo Direkomendasikan, lihat model dan harga di sini: https://openai.com/pricingbot.maxTokens = 10 : Setel max_tokens lulus ke chatgpt pada setiap gerakanbot.maxFails = 5 : Jumlah kali untuk mencoba lagi pengiriman prompt ke chatgpt saat perpindahan tidak valid dikembalikanbot.maxTime = 5 : Jumlah maksimum detik untuk menunggu jawaban chatgpt sebelum waktu keluarbot.prompt = {"normal" : "", "failed" : "", "start" : ""} : petunjuk untuk mengirim ke chatgpt di setiap keadaan gamebot.board = chess.Board() : Objek papan caturbot.printDebug = False : Cetak Info Debug - Occraisonaly Bergunamove = bot.move["ChatGPT"]["uci"] : Mengembalikan langkah terakhir pemain yang diberikan (chatgpt / input) dalam format yang diberikan (UCI / SAN)message = bot.message : Mengembalikan kepindahan ke setiap langkah GPTFungsi utama
move = bot.play("e4") : Memainkan langkah pemain, lalu tanggapan Chatgpt - mengembalikan langkah Chatgptmove = getGPTMove() : Memainkan langkah chatgpt di posisi saat ini - mengembalikan langkah chatgptFungsi lainnya
bot.pushPlayerMove("e4") : Dorong gerakan tanpa chatgpt meresponsprompt = bot.createPrompt() : Membuat prompt untuk mengirim ke chatgpt berdasarkan posisi saat ini dan kegagalan sebelumnya - pengembalian promptresponse = bot.askGPT(prompt) : permintaan chatgpt prompt berdasarkan parameter yang ditetapkan, kali setelah bot.maxTime detikmove = bot.handleResponse(response, player) : Mencari catur bergerak di string - menambahkannya ke self.move sebagai pemainMoveLimitError : Batas Pindah Gagal tercapaiBadInputMoveError : Pindahkan dimasukkan tidak dapat dimainkan 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 Saat mengatur papan untuk bot.board , pastikan bahwa papan tidak hanya dari posisi yang ditetapkan, tetapi memiliki gerakan dalam format PGN untuk meningkatkan tingkat keberhasilan gerakan chatgpt