Code and data for the paper Large Language Models as Planning Domain Generators accepted for publication at ICAPS 2024.
For automatic setup use the setup.sh
script. This will
init submodules, create a virtual environment, and install
all python dependencies and build other dependencies (VAL).
Alternatively you can use the manual setup instructions.
Manual Setup Instructions
Clone the repository with submodules
git clone --recurse-submodules <Link to this repo>
If you have already cloned without submodules, you can get the submodules with
git submodule update --init --recursive
We suggest creating a virtual python environment for the project. This will help ensure that the large list of pip dependencies required for this project do not conflict with alternate versions on your system.
Here is an example using python's built in venv
module, but you could
also use anaconda
or pipenv
.
# Create the virtual environment
python -m venv .venv
# Activate the virtual environment
source .venv/bin/activate
Once the virtual environment is activated you are free to install pip dependencies.
Note that all code in this repository has only been tested on Python 3.11.4
pip install -r requirements.txt
The VAL submodule must be built into /VAL/build/bin
. To build VAL we need
CMake and Make. You can run the following commands to build it.
cd VAL
mkdir build
cd build
cmake ..
make
We use IBM Generative AI Python SDK.
Create a .env
file in the top level repo with the following
credentials.
GENAI_KEY=<your GENAI key>
GENAI_API=<your API endpoint>
Note: Models supported by known ibm-genai endpoints change frequently, you may need to change models evaluated against or host a custom endpoint.
Use driver.py
to run the experiments on the raw LLM outputs
located in data/outputs
. It will generate a .json
file with new output
at each stage of the pipeline, and end by generating the figures and tables
used by the paper in figures_and_tables
.
Make sure to activate your virtual environment first if necessary!
source .venv/bin/activate
python driver.py