diff --git a/Dockerfile b/Dockerfile index e69de29..421dd8c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -0,0 +1,38 @@ +# Specify a base image +# FROM ubuntu:22.04 +FROM node:18 + +#Install some dependencies + +RUN apt-get -y update +RUN apt-get -y install git +RUN apt-get -y install unzip +RUN apt-get -y install python3 +RUN apt-get -y install python3-pip +RUN apt-get -y install python3-boto3 +RUN apt-get -y install python3-tqdm +RUN apt-get -y install tmux + +RUN git clone https://github.com/icwhite/mindcraft.git /mindcraft +WORKDIR /mindcraft +COPY ./server_data.zip /mindcraft +RUN unzip server_data.zip + +RUN npm install + + +# Copy the rest of the application code to the working directory +RUN apt update +RUN apt install bash ca-certificates wget git -y # install first to avoid openjdk install bug +RUN apt install openjdk-17-jre-headless -y + +# Install unzip + + +RUN curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" +RUN unzip awscliv2.zip +RUN ./aws/install + +VOLUME /data + +EXPOSE 8000 \ No newline at end of file diff --git a/README.md b/README.md index 8c4a4e8..66bf937 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Crafting minds for Minecraft with LLMs and [Mineflayer!](https://prismarinejs.github.io/mineflayer/#/) -[FAQ](https://github.com/kolbytn/mindcraft/blob/main/FAQ.md) | [Discord Support](https://discord.gg/mp73p35dzC) | [Video Tutorial](https://www.youtube.com/watch?v=gRotoL8P8D8) | [Blog Post](https://kolbynottingham.com/mindcraft/) | [Contributor TODO](https://github.com/users/kolbytn/projects/1) +[FAQ](https://github.com/kolbytn/mindcraft/blob/main/FAQ.md) | [Discord Support](https://discord.gg/mp73p35dzC) | [Video Tutorial](https://www.youtube.com/watch?v=gRotoL8P8D8) | [Blog Post](https://kolbynottingham.com/mindcraft/) | [Contributor TODO](https://github.com/users/kolbytn/projects/1) | [Paper Website] (https://mindcraft-minecollab.github.io/index.html) | [Paper] (https://mindcraft-minecollab.github.io/index.html) | [MineCollab] > [!Caution] diff --git a/evaluation_script.py b/evaluation_script.py index c461a12..185d5ff 100644 --- a/evaluation_script.py +++ b/evaluation_script.py @@ -721,7 +721,6 @@ def main(): parser.add_argument('--max_messages', default=15, type=int, help='Maximum number of messages before summarizing') parser.add_argument('--num_examples', default=2, type=int, help='Maximum number of turns before summarizing') parser.add_argument('--no-pruning', action='store_true', help='Disable pruning of the actions') - parser.add_argument('--block_conversation', action='store_true', help='Block conversation actions') args = parser.parse_args() print(args) @@ -752,7 +751,6 @@ def main(): max_messages=args.max_messages, num_examples=args.num_examples, no_pruning=args.no_pruning, - block_conversation=args.block_conversation, run_in_tmux=not args.no_launch_world) if __name__ == "__main__": diff --git a/minecollab.md b/minecollab.md new file mode 100644 index 0000000..5d65e39 --- /dev/null +++ b/minecollab.md @@ -0,0 +1,23 @@ +# MineCollab + +## Tasks + +### Cooking + +### Crafting + +### Construction + +## Installation + +Please follow the installation docs in the README to install mindcraft. You can create a docker image using the Dockerfile. + +First, download the relevant task files and server data files. The tasks files are for specifying the tasks to run and the server data is for allowing the models to launch the task in the correct world automatically. Unzip the server_data.zip in the base mindcraft/ folder. + +Then, set up your conda environment: `conda create --name mindcraft --file requirements.txt` + +Then, you can run the evaluation_script using `python evaluation_script.py --task_path {your-task-path} --model {model you want to use}`. + +If you want to run with vllm be sure to run with `--api vllm --url {your_url_for_vllm}`, by default vllm will use http://127.0.0.1:8000/v1 as the url for quering the model! + +When running with construction tasks, make sure to set the flag `--insecure_coding` so that the agents can be allowed to write freeform javascript code to complete the tasks. However, when using insecure coding it is highly recommended to use \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index e63ed5e..9c3cae3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,5 @@ boto3==1.37.11 botocore==1.37.11 -javascript==1!1.2.2 -numpy==1.22.2 -opencv_python==4.10.0.84 -tqdm==4.62.3 -prettytable==2.2.0 \ No newline at end of file +pandas==2.2.3 +prettytable==3.16.0 +tqdm==4.62.3 \ No newline at end of file diff --git a/analyse_results.py b/scripts/analyse_results.py similarity index 100% rename from analyse_results.py rename to scripts/analyse_results.py diff --git a/analyze_construction_tasks.py b/scripts/analyze_construction_tasks.py similarity index 100% rename from analyze_construction_tasks.py rename to scripts/analyze_construction_tasks.py diff --git a/analyze_cooking_tasks.py b/scripts/analyze_cooking_tasks.py similarity index 100% rename from analyze_cooking_tasks.py rename to scripts/analyze_cooking_tasks.py diff --git a/analyze_crafting_tasks.py b/scripts/analyze_crafting_tasks.py similarity index 100% rename from analyze_crafting_tasks.py rename to scripts/analyze_crafting_tasks.py