A package to play chess with ChatGPT
Project description
ChatChess
A simple python package to play chess with ChatGPT
Installation
pip install chatchess
Usage
Import the package:
import ChatChess
First a Game
object needs to be decalerd as follows:
bot = ChatChess.Game("OPENAI_API_KEY")
Additional parameters:
bot.maxTokens = 10
: Set max_tokens passed to ChatGPT on each movebot.maxFails = 5
: Amount of times to retry sending prompt to ChatGPT when invalid move is returnedbot.prompt = {"normal" : "", "failed" : "", "start" : ""}
: The prompts to send to ChatGPt at each game statebot.board = chess.Board()
: Chess board objectbot.message = ""
: Set to move into after each GPT movebot.printDebug = False
: Print debug info - occaisonaly useful
Functions
Main functions
move = bot.play("e4")
: Plays the player's move, then ChatGPT's response - returns ChatGPT's movemove = getGPTMove()
: Plays ChatGPT's move in the current position - returns ChatGPT's move
Other functions
bot.pushPlayerMove("e4")
: Push a move without ChatGPT respondingprompt = bot.createPrompt()
: Creates prompt to send to ChatGPT based on current position and previous fails - returns promptresponse = bot.askGPT(prompt)
: Queries ChatGPT prompt based on set parametersmove = bot.handleResponse(response)
: Gets move from reponse - returns move
Examples
Simple player vs ChatGPT game
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
Simple ChatGPT vs ChatGPT game from a set position
import chess
import chess.fen
import ChatChess
bot = ChatChess.Game("OPENAI_API_KEY") # Set API key
bot.board = chess.Board("rnbq1bnr/ppppkppp/8/4p3/4P3/8/PPPPKPPP/RNBQ1BNR w - - 2 3") # Set position
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
print(str(chess.pgn.Game.from_board(bot.board)))
break
Info
Uses
- python-chess - https://github.com/niklasf/python-chess
- openai-python - https://github.com/openai/openai-python
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
File details
Details for the file chatchess-1.0.10-py3-none-any.whl
.
File metadata
- Download URL: chatchess-1.0.10-py3-none-any.whl
- Upload date:
- Size: 14.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87f1b88a13ff80103d26d16964fdc5c2b45cbc4205fc2400841cb315a5285e36 |
|
MD5 | 003bba6bab80e04087d87a89cf86de02 |
|
BLAKE2b-256 | f808b38f68b47c97c5c1c0f29b5f03babc9a7afb95efff432e65cff69eec631b |