Coder Social home page Coder Social logo

mindcraft's Introduction

Mindcraft 🧠⛏️

Crafting minds for Minecraft with Language Models and Mineflayer!

‼️Warning‼️

This project allows an AI model to write/execute code on your computer that may be insecure, dangerous, and vulnerable to injection attacks on public servers. Code writing is disabled by default, you can enable it by setting allow_insecure_coding to true in settings.js. Enable only on local or private servers, never on public servers. Ye be warned.

Requirements

Installation

Rename keys.example.json to keys.json and fill in your API keys, and you can set the desired model in andy.json or other profiles.

API Config Variable Example Model name Docs
OpenAI OPENAI_API_KEY gpt-3.5-turbo docs
Google GEMINI_API_KEY gemini-pro docs
Anthropic ANTHROPIC_API_KEY claude-3-haiku-20240307 docs
Replicate REPLICATE_API_KEY meta/meta-llama-3-70b-instruct docs
Ollama (local) n/a llama3 docs

If you use Ollama, to install the models used by default (generation and embedding), execute the following terminal command: ollama pull llama3 && ollama pull nomic-embed-text

Then, clone/download this repository

Run npm install from the installed directory

Install the minecraft version specified in settings.js, currently supports up to 1.20.4

Running Locally

Start a minecraft world and open it to LAN on localhost port 55916

Run node main.js

You can configure the agent's name, model, and prompts in their profile like andy.json.

You can configure project details in settings.js. See file for more details

Online Servers

To connect to online servers your bot will need an official Microsoft/Minecraft account. You can use your own personal one, but will need another account if you want to connect with it. Here are example settings for this:

"host": "111.222.333.444",
"port": 55920,
"auth": "microsoft",

// rest is same...

‼️Make sure your bot's name in the profile.json matches the account name! Otherwise the bot will spam talk to itself.

Bot Profiles

Bot profiles are json files (such as andy.json) that define:

  1. Bot backend LLMs to use for chat and embeddings.
  2. Prompts used to influence the bot's behavior.
  3. Examples help the bot perform tasks.

Model Specifications

LLM backends can be specified as simply as "model": "gpt-3.5-turbo". However, for both the chat model and the embedding model, the bot profile can specify the below attributes:

"model": {
  "api": "openai",
  "url": "https://api.openai.com/v1/",
  "model": "gpt-3.5-turbo"
},
"embedding": {
  "api": "openai",
  "url": "https://api.openai.com/v1/",
  "model": "text-embedding-ada-002"
}

The model parameter accepts either a string or object. If a string, it should specify the model to be used. The api and url will be assumed. If an object, the api field must be specified. Each api has a default model and url, so those fields are optional.

If the embedding field is not specified, then it will use the default embedding method for the chat model's api (Note that anthropic has no embedding model). The embedding parameter can also be a string or object. If a string, it should specify the embedding api and the default model and url will be used. If a valid embedding is not specified and cannot be assumed, then word overlap will be used to retrieve examples instead.

Thus, all the below specifications are equivalent to the above example:

"model": "gpt-3.5-turbo"
"model": {
  "api": "openai"
}
"model": "gpt-3.5-turbo",
"embedding": "openai"

Patches

Some of the node modules that we depend on have bugs in them. To add a patch, change your local node module file and run npx patch-package [package-name]

mindcraft's People

Contributors

maxrobinsonthegreat avatar kolbytn avatar radnos avatar samkemp avatar homberger avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.