Skip to content

GPT3 based conversations

Luke100000 edited this page Oct 17, 2024 · 25 revisions

Enable

Make sure to have 7.5.13+ installed!

One funny feature of MCA is the AI-based conversation. For privacy reasons, it is disabled by default. Enable it in the server config:

"enableVillagerChatAI": true,

Or via command in the command section.

Then, the AI waits until the player starts a conversation by saying the name of the villager out loud. E.g.

Hi Carl, how are you?

You do not need to care about lower/upper cases nor accents.

Once a conversation is started, you can talk without mentioning the name.

The AI is limited in terms of memory and environment. They know their personality, the players’ achievement and their approximate surroundings, but that's about it. Asking about how they like your house, for example, will result in fancy, but completely guessed responses. Same with memory, they only remember the last few a dozen sentences of your conversation.

To stop a conversation, leave.

Do not share sensitive information and keep in mind that everything you say may be used for evaluation or training.

Increase Conversation Limit

The AI is expensive and therefore rate limited. Your quota is reset once an hour and is enough for chitchatting or a dialogue once in a while. You can extend that limit:

  • Head over to https://www.patreon.com/conczin/membership and select the Fund the AI pledge.
    • Please allow up to 30 minutes for the transaction to confirm.
  • Then, in game, type /mca verify [email protected], using the same email as you use to log in to Patreon
  • Enjoy a much higher limit!
  • If something fails, feel free to ping me on Discord at conczin

Commands and Models

You can use the /mca chatAI default command to turn on the AI and toggle between models using /mca chatAI <model>. Models have different characteristics, intelligence and price.

  • default - An alias for the recommended model.
  • llama3.1-70b, llama3-70b - Most expensive one and quite good and fast.
  • llama3.1-8b, llama3-8b - Very cheap, a bit dumb.
  • mixtral-8x7b - English, French, Italian, German, Spanish. Likes to talk a lot. A bit cheaper than llama3 70b.
  • gemma2-9b - Apparently quite good for roleplaying.
  • horde - A random >7B model from the AI Horde. Crowdsourced!
  • gpt-4o-mini - the Currently best model from OpenAI, average price.
  • gpt-3.5-turbo - Older default from OpenAI, deprecated, will point to gpt-4o-mini soon.

Depending on usage, I may provide access to additional models.

Long-term memory

The default server comes with a experimental Long-term memory (7.5.19+), it is disabled by default. Turn it on in the config via villagerChatAIUseLongTermMemory, and optionally server-wide as well with villagerChatAIUseSharedLongTermMemory. A compressed version of your dialogues is stored on the server!

Custom endpoints

Advanced usage! You can also provide your own endpoint and, when required, access token. For example (quote the url!)

  • /mca chatAI gpt-3.5-turbo "https://api.openai.com/v1/chat/completions" "secret_key"
  • /mca chatAI mistral-small "https://api.mistral.ai/v1/chat/completions" "secret_key"

The token is sent to and stored on the server, do not execute that on untrusted servers!

You may want to provide an additional, custom system prompt in the config villagerChatAISystemPrompt.

If you want to implement your own session-based endpoint, ping me on Discord. MCA provides undocumented session data.

Tune the intelligence

In the config you will find a value villagerChatAIIntelligence, default 4. It controls the amount of information given to the AI, and thus the quality and price. If you do not care about that little bit of extra immersion you can decrease this value and talk longer before running into the cooldown.

  • 1: Villager knows its traits and biome
  • 2: Villager knows relations
  • 3: Villager has more relations
  • 4: Villager knows buildings
  • 5: Villager knows about your advancements

Inworld AI integration

  • At the moment of writing, self-serve is no more and you can not obtain a token anymore.

Requires MCA 7.5.15+ for 1.20.1+!

Inworld allows you to create characters and chat with them, and thanks to CSCMe there is a MCA Integration as well:

  • Head over to https://inworld.ai/ and make an account. The free plan is enough for casual usage. On the left, select "Integrations" and create a Runtime API key.
  • Copy the base64 encoded API key and paste it using quotes into the Minecarft command /mca inworldAI keys "..."
  • Create a character in Inworld.
  • Now, in Minecraft, type /mca inworldAI addCharacter "VillagerName" "workspaces/default-abc123/characters/character_name" to connect the villager with the given name with the character created in Inworld.
    • Notice the quotes here! Strings with special characters need quotes!

From now on, chat as you would do with the classic ChatAI. Villagers not connected with Inworld will continue to use the classic ChatAI, if enabled.

  • The Inworld scenes feature is not supported

Commands

In order for your character to react to commands like "Follow me", "Stay here", you need to set up goals for your character. You can simply copy the contents of the inworldCharacterGoals.yaml file. It will make your character work with every supported command.

Customizing Command Triggers

If you want to customize your goals and their triggers, here are some pointers:

  • The 'status-update' goal is for dynamic relationships. Do not change this if you want it to work. It tells the chatAI that you are its friend, enemy, lover, etc.
  • For triggers like "Follow me", make sure to include send_trigger: '[TRIGGER_NAME]' (example: send_trigger: 'wear-armor'). This is what actually informs your game that you asked the villager to wear its armor, etc.
  • Training phrases for these actions are in the "intents" section of inworldCharacterGoals.yaml. Change these as you wish

List of supported commands:

  • Follow player
  • Move freely
  • Stay here
  • Wear armor
  • Stop wearing armor
  • Go home (can fail if home is not found)