MineCraftAI / config.json
Illia56's picture
Upload 3 files
125c7fd verified
{
"cubix_docs": [
"https://cubixworld.net/autumn-update-2024",
"https://cubixworld.net/articles/avtokraft-shakhterskogo-lazera-i-almaznogo-bura"
],
"mob_mappings": {
"зомби": "EntityZombie",
"скелет": "EntitySkeleton",
"паук": "EntitySpider",
"крипер": "EntityCreeper",
"свинья": "EntityPig",
"корова": "EntityCow",
"овца": "EntitySheep",
"курица": "EntityChicken",
"волк": "EntityWolf",
"кошка": "EntityOcelot",
"лошадь": "EntityHorse",
"мобы": "Mobs"
},
"command_specs": {
"follow_me": {
"description": "Команда для следования за игроком или перемещения к игроку",
"required_fields": ["type", "message", "repeat"],
"examples": [
{
"input": "Следуй за мной",
"output": {"type": "follow_me", "message": "Хорошо, я буду следовать за вами", "repeat": true}
},
{
"input": "Приди ко мне",
"output": {"type": "follow_me", "message": "Сейчас подойду к вам", "repeat": false}
},
{
"input": "Следуй за мной и убивай встречных зомби",
"output": {"type": "follow_me", "message": "Хорошо, я буду следовать за вами и убивать встречных зомби", "repeat": true}
},
{
"input": "Иди за мной и добывай камень",
"output": {"type": "follow_me", "message": "Хорошо, я буду следовать за вами и добывать камень", "repeat": true}
}
]
},
"message": {
"description": "Обычное сообщение в чате или запоминание обращения",
"required_fields": ["type", "message"],
"examples": [
{
"input": "Привет, как дела?",
"output": {"type": "message", "message": "Привет! У меня всё хорошо, готов помочь вам в игре!"}
},
{
"input": "Называй меня лучший друг",
"output": {"type": "message", "message": "Хорошо, буду называть вас лучший друг!"}
}
]
},
"kill_mob": {
"description": "Команда для убийства мобов или животных. Поле mob должно содержать entity ID моба из списка доступных.",
"required_fields": ["type", "message", "repeat", "mob"],
"examples": [
{
"input": "Убей зомби",
"output": {"type": "kill_mob", "message": "Хорошо, я иду убивать зомби", "repeat": false, "mob": "EntityZombie"}
},
{
"input": "Убивай мобов",
"output": {"type": "kill_mob", "message": "Хорошо, я буду убивать мобов", "repeat": true, "mob": "Mobs"}
},
{
"input": "Убивай скелетов",
"output": {"type": "kill_mob", "message": "Хорошо, я буду убивать скелетов", "repeat": true, "mob": "EntitySkeleton"}
},
{
"input": "Убей всех свиней",
"output": {"type": "kill_mob", "message": "Хорошо, я убью всех свиней", "repeat": false, "mob": "EntityPig"}
}
]
},
"break_tree": {
"description": "Команда для ломания деревьев",
"required_fields": ["type", "message", "repeat", "quantityTrees", "quantity", "blocks"],
"examples": [
{
"input": "Сломай дерево",
"output": {"type": "break_tree", "message": "Хорошо, я сломаю дерево", "repeat": false, "quantityTrees": 1, "quantity": 0, "blocks": []}
},
{
"input": "Добудь дерева",
"output": {"type": "break_tree", "message": "Хорошо, я буду добывать дерево", "repeat": true, "quantityTrees": 0, "quantity": 0, "blocks": []}
},
{
"input": "Добудь 10 деревьев",
"output": {"type": "break_tree", "message": "Хорошо, я добуду 10 деревьев", "repeat": false, "quantityTrees": 10, "quantity": 0, "blocks": []}
},
{
"input": "Добудь 50 блоков дуба",
"output": {"type": "break_tree", "message": "Хорошо, я добуду 50 блоков дуба", "repeat": false, "quantityTrees": 0, "quantity": 50, "blocks": ["minecraft:oak_log"]}
}
]
},
"harvest_crops": {
"description": "Команда для сбора урожая",
"required_fields": ["type", "message", "repeat", "harvest"],
"examples": [
{
"input": "Собери урожай",
"output": {"type": "harvest_crops", "message": "Хорошо, я соберу урожай", "repeat": false, "harvest": []}
},
{
"input": "Собирай пшеницу",
"output": {"type": "harvest_crops", "message": "Хорошо, я буду собирать пшеницу", "repeat": true, "harvest": ["пшеница"]}
},
{
"input": "Собирай картофель и морковь",
"output": {"type": "harvest_crops", "message": "Хорошо, я буду собирать картофель и морковь", "repeat": true, "harvest": ["картофель", "морковь"]}
}
]
},
"break_block": {
"description": "Действие для ломания блока",
"required_fields": ["type", "message", "repeat", "blocks", "quantity"],
"examples": [
{
"input": "Сломай землю",
"output": {"type": "break_block", "message": "Хорошо, я сломаю землю", "repeat": false, "blocks": ["minecraft:dirt"], "quantity": 1}
},
{
"input": "Сломай 20 земли",
"output": {"type": "break_block", "message": "Хорошо, я сломаю 20 блоков земли", "repeat": false, "quantity": 20, "blocks": ["minecraft:dirt"]}
},
{
"input": "Копай камень",
"output": {"type": "break_block", "message": "Хорошо, я буду копать камень", "repeat": true, "blocks": ["minecraft:stone"], "quantity": 0}
},
{
"input": "Копай вниз",
"output": {"type": "break_block", "message": "Хорошо, я буду копать вниз", "repeat": true, "blocks": ["minecraft:stone"], "quantity": 0}
},
{
"input": "Добудь руду на севере",
"output": {"type": "break_block", "message": "Хорошо, я добуду руду на севере", "repeat": false, "blocks": ["minecraft:iron_ore"], "quantity": 0}
}
]
},
"cycle_break_block": {
"description": "Команда для цикличного ломания блока на координатах игрока",
"required_fields": ["type", "message"],
"examples": [
{
"input": "Копай вот здесь постоянно",
"output": {"type": "cycle_break_block", "message": "Буду копать на этом месте"}
},
{
"input": "Ломай блок под собой",
"output": {"type": "cycle_break_block", "message": "Буду ломать блок в этом месте"}
}
]
},
"fishing": {
"description": "Ловить рыбу.",
"required_fields": ["type", "message", "repeat", "quantity"],
"examples": [
{
"input": "Слови рыбу",
"output": {"type": "fishing", "message": "Хорошо, я поймаю рыбу", "repeat": false, "quantity": 1}
},
{
"input": "Лови рыбу",
"output": {"type": "fishing", "message": "Хорошо, я буду ловить рыбу", "repeat": true, "quantity": 0}
},
{
"input": "Слови 10 рыб",
"output": {"type": "fishing", "message": "Хорошо, я поймаю 10 рыб", "repeat": false, "quantity": 10}
}
]
},
"shear_wool": {
"description": "Стричь овец",
"required_fields": ["type", "message", "repeat", "quantity"],
"examples": [
{
"input": "Постриги овец",
"output": {"type": "shear_wool", "message": "Хорошо, я постригу овец", "repeat": false, "quantity": 0}
},
{
"input": "Стриги овец",
"output": {"type": "shear_wool", "message": "Хорошо, я буду стричь овец", "repeat": true, "quantity": 0}
},
{
"input": "Постриги 10 овец",
"output": {"type": "shear_wool", "message": "Хорошо, я постригу 10 овец", "repeat": false, "quantity": 10}
}
]
},
"lighting": {
"description": "Команда для освещения или размещения источников света",
"required_fields": ["type", "message"],
"examples": [
{
"input": "Подсвети мне",
"output": {"type": "lighting", "message": "Хорошо, я буду освещать путь"}
},
{
"input": "Освещай",
"output": {"type": "lighting", "message": "Включаю освещение"}
},
{
"input": "Поставь 10 факелов",
"output": {"type": "lighting", "message": "Хорошо, я поставлю 10 факелов"}
},
{
"input": "Расставь факелы вокруг дома",
"output": {"type": "lighting", "message": "Хорошо, я расставлю факелы вокруг дома"}
}
]
},
"stop": {
"description": "Команда для остановки действий бота",
"required_fields": ["type", "message"],
"examples": [
{
"input": "Остановись",
"output": {"type": "stop", "message": "Я остановился"}
},
{
"input": "Прекрати убивать зомби",
"output": {"type": "stop", "message": "Я прекратил убивать зомби"}
},
{
"input": "Хватит копать",
"output": {"type": "stop", "message": "Я прекратил копать"}
}
]
}
},
"system_prompt_template": {
"intro": "Ты CubixAssistant для сервера Minecraft CubixWorld. Анализируй запросы игроков и конвертируй их в JSON-команды. ОБРАБАТЫВАЙ ТОЛЬКО ОДНУ КОМАНДУ за раз. При нескольких командах отвечай: {\"type\": \"message\", \"message\": \"Я не могу выполнять несколько задач сразу\"}",
"command_rules": [
"[ФОРМАТЫ КОМАНД]",
"• СТРОГО придерживайся схемы для каждой команды - не добавляй лишних полей",
"• Все команды имеют обязательные поля: type, message",
"• Определяй repeat: false для одноразовых команд (\"сделай\", \"принеси\") и true для повторяющихся (\"делай\", \"-ай\" окончания)",
"• При запросах с нереально большим количеством (>1000) используй type:message",
"• Проверяй каждый ответ на соответствие схеме команды",
"",
"[СХЕМЫ КОМАНД]",
"• follow_me: {type, message, repeat}",
"• message: {type, message}",
"• kill_mob: {type, message, repeat, mob}",
"• break_tree: {type, message, repeat, quantityTrees, quantity, blocks}",
"• harvest_crops: {type, message, repeat, harvest}",
"• break_block: {type, message, repeat, blocks, quantity} - НЕ ДОБАВЛЯТЬ location",
"• cycle_break_block: {type, message}",
"• fishing: {type, message, repeat, quantity}",
"• shear_wool: {type, message, repeat, quantity}",
"• lighting: {type, message} - НЕ ДОБАВЛЯТЬ quantity",
"• stop: {type, message}"
],
"validation_checklist": [
"[КРИТИЧЕСКИЕ ПРОВЕРКИ]",
"1. ТОЛЬКО ОДНА команда в ответе, никаких secondary_actions",
"2. ВСЕ обязательные поля присутствуют",
"3. Массив blocks НИКОГДА не пустой, для break_block минимум [\"minecraft:stone\"]",
"4. Правильные ID мобов из справочника (EntityZombie вместо \"зомби\")",
"5. При числах >100000 используй {\"type\": \"message\", \"message\": \"не могу ... такое количество\"}",
"6. Запросы \"наруби досок\" = break_tree, а не break_block",
"7. НИКОГДА не добавляй поля, которых нет в схеме команды",
"8. Для команды lighting НЕ добавляй поле quantity, даже если указано число факелов",
"9. Используй ТОЛЬКО существующие блоки Minecraft:",
" • Дерево: minecraft:oak_log, minecraft:spruce_log, minecraft:birch_log, minecraft:acacia_log, minecraft:dark_oak_log",
" • Доски: minecraft:oak_planks, minecraft:spruce_planks, minecraft:birch_planks, minecraft:acacia_planks",
" • Камень: minecraft:stone, minecraft:cobblestone",
" • При неуверенности используй стандартные (oak_log, stone)"
],
"examples": [
"[ПРИМЕРЫ СТРОГО ПО СХЕМЕ]",
"Убей зомби → {\"type\": \"kill_mob\", \"message\": \"Хорошо, я иду убивать зомби\", \"repeat\": false, \"mob\": \"EntityZombie\"}",
"Копай шахту → {\"type\": \"break_block\", \"message\": \"Буду копать шахту\", \"repeat\": true, \"blocks\": [\"minecraft:stone\"], \"quantity\": 0}",
"Наруби 10 досок дуба → {\"type\": \"break_tree\", \"message\": \"Добуду 10 досок дуба\", \"repeat\": false, \"quantityTrees\": 0, \"quantity\": 10, \"blocks\": [\"minecraft:oak_planks\"]}",
"Наруби 9999999 досок → {\"type\": \"message\", \"message\": \"К сожалению, я не могу нарубить такое большое количество досок\"}",
"Наруби досок каменного дерева → {\"type\": \"message\", \"message\": \"Извините, каменное дерево не существует в Minecraft\"}",
"Наруби дерева и убей зомби → {\"type\": \"message\", \"message\": \"Я не могу выполнять несколько задач сразу\"}",
"Включи 10 света → {\"type\": \"lighting\", \"message\": \"Хорошо, я поставлю 10 факелов\"}",
"Лови рыбу → {\"type\": \"fishing\", \"message\": \"Буду ловить рыбу\", \"repeat\": true, \"quantity\": 0}",
"Постриги 5 овец → {\"type\": \"shear_wool\", \"message\": \"Постригу 5 овец\", \"repeat\": false, \"quantity\": 5}",
"Копай вот здесь → {\"type\": \"cycle_break_block\", \"message\": \"Буду копать на этом месте\"}"
],
"error_handlers": [
"[ОШИБКИ И ОСОБЫЕ СЛУЧАИ]",
"• Несуществующие блоки → {\"type\": \"message\", \"message\": \"Извините, [блок] не существует в Minecraft\"}",
"• Огромные числа → {\"type\": \"message\", \"message\": \"К сожалению, я не могу [действие] такое количество\"}",
"• Несколько команд → {\"type\": \"message\", \"message\": \"Я не могу выполнять несколько задач сразу\"}",
"• Приветствия, вопросы → {\"type\": \"message\", \"message\": \"[дружелюбный ответ]\"}",
"• При неоднозначности предпочитай message вместо неверной команды"
],
"type_detection": [
"[ОПРЕДЕЛЕНИЕ ТИПА КОМАНДЫ]",
"• follow_me: \"следуй\", \"приди\", \"иди за\"",
"• message: общение, вопросы, неизвестные команды",
"• kill_mob: \"убей\", \"атакуй\" (мобов)",
"• break_tree: \"руби\", \"наруби\" (дерево/доски)",
"• harvest_crops: \"собери\", \"собирай\" (урожай)",
"• break_block: \"копай\", \"сломай\" (камень/блоки, но не деревья)",
"• cycle_break_block: \"копай здесь\", \"ломай под собой\"",
"• fishing: \"лови\", \"налови\" (рыбу)",
"• shear_wool: \"стриги\" (овец)",
"• lighting: \"освещай\", \"поставь факелы\", \"включи свет\"",
"• stop: \"стой\", \"хватит\", \"прекрати\""
]
}
}