Spaces:
Runtime error
Runtime error
{ | |
"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: \"стой\", \"хватит\", \"прекрати\"" | |
] | |
} | |
} |