BGG - Which Game Today? is a board game recommendation assistant that helps you find the perfect game from your owned collection. It uses data from BoardGameGeek (BGG) and provides recommendations based on your preferences. The chatbot interacts with you to understand your requirements and suggests games that match your criteria.
Copy the file .env.example
to .env
and fill in the required environment variables. Then you can export the environment variables with the following command:
source .env
First you need an account on BoardGameGeek. Add your games to your collection and write your username in the environment variables to BGG_USERNAME
- Install Python (at least, version >= 3.11)
- Install all requirements from
Pipfile
viapipenv install
Run the script with the db
command to insert your BGG collection into the database.
./main.py db
After that you can run the script with the chat
command to let the AI recommend a game for you.
./main.py chat
With the chat option you can choose between using the local AI or the OpenAI API. If you want to use the OpenAI API you need to set the environment variable USE_OPENAI
to True
and set the OPENAI_API_KEY
.
-
With
-e
(or)--expansions
: Include expansions in the recommendations. (not recommended) -
With
-f
(or)--fast
: Skip the detailed chat summary and provide quick game recommendations f -
With
-v
(or)--verbose
: increase verbosity -
With
-r
(or)--refresh
: Refresh data of already known BGG pages
The following environment variables are required to run the script:
BGG_USERNAME
: Your BoardGameGeek username.USE_OPENAI
: Use OpenAI for chatbot responses (default: False).OPENAI_API_KEY
: Your OpenAI API key.SENTENCE_TRANFORMER_MODEL
: The model name for the sentence transformer (default: all-MiniLM-L6-v2).GPT_CHAT_MODEL
: the model to use for the OpemAPI AI chat (default: gpt-4o-mini).LOCAL_CHAT_MODEL
: the model to use for the localAI chat (default: meta-llama-3.1-8b-instruct).BGG_COLLECTION_TITLES
: Override default titles with your collection titles (default: True)
Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.
The GNU GENERAL PUBLIC LICENSE. Please have a look at the LICENSE for more details.
- BoardGameGeek for providing the game data.
- LocalAI for the language model.
- Qdrant for the vector search engine.