Что делает этот мод?
Установил кучу модов, но не знаешь, как их правильно упорядочить?
Этот мод может подключаться к Большим Языковым Моделям (LLM) и позволить ИИ предложить более разумный порядок загрузки на основе твоего списка модов и реальных отчётов об ошибках.
Чтобы ИИ знал, какие моды могут конфликтовать, этот мод будет автоматически перехватывать ошибки выполнения в фоне, анализировать, какой мод их вызвал, и записывать эту информацию как справочные данные для сортировки ИИ.
Таким образом, типичный workflow выглядит так:
Сначала поиграй в игру как обычно (или хотя бы загрузи её один раз), чтобы мод собрал достаточно информации об ошибках, а затем используй сортировку с помощью ИИ. Это даст лучшие результаты.
Конечно, функция анализа ошибок сама по себе тоже полезна. Даже если ты не используешь сортировку с ИИ, она поможет точно определить, чья вина в красных сообщениях об ошибках.
Функции
AI-ассистированная сортировка (Экспериментальная)Это основная функция мода. Она отключена по умолчанию и требует включения в настройках мода, а также настройки LLM API Key.
После включения кнопка "Авто-сортировка" в списке модов запустит процесс ИИ:
1. Чтобы сэкономить Tokens, движок не будет отправлять подробные описания всех твоих модов. Он собирает только базовую информацию (Имя и требования к загрузке из оригинальной игры, такие как `loadBefore` / `loadAfter`).
2. Только для "подозрительных модов", которые ранее были зафиксированы в ошибках, ИИ извлечёт их полные описания и сожмёт в короткие сводки (эти данные кэшируются локально).
3. Отправить эту оптимизированную информацию вместе с записями об ошибках в LLM.
4. LLM возвращает рекомендации по сортировке, которые затем внедряются в движок топологической сортировки оригинальной игры для выполнения сортировки.
Таким образом, для точной сортировки ИИ лучше всего сначала запустить игру с текущим списком модов, чтобы система анализа ошибок накопила какие-то данные.
Он может сортировать и при первом использовании, когда данных об ошибках нет вообще, но у ИИ будет меньше информации для ссылки.
! Важно: AI-сортировка потребляет API Tokens. Для списка из 300 модов, Input будет потреблять примерно 10,000 Tokens !Анализ источника ошибкиЭта функция вступает в силу автоматически после установки, не требует дополнительных действий. Она предоставляет данные для AI-сортировки и также может использоваться независимо как инструмент для поиска и устранения неисправностей.
Когда в игре появляются красные ошибки, мод глубоко анализирует их со следующих сторон:
-
Сопоставление трассировки стека DLL — Извлекает сборку, соответствующую каждому кадру, из стека вызова исключения, чтобы определить, DLL какого мода это.
-
Локализация исключений при парсинге XML — Перехватывает базовые рутины обработки XML, напрямую сопоставляя точные XML-узлы, вызвавшие исключение, с их исходными файлами, модами и конкретными XML NodePaths.
-
Анализ ошибок конфигурации Def — Перехватывает ошибки конфигурации Def, отслеживает их фактические исходные файлы, извлекает всю цепочку наследования `ParentName` и определяет все операции Patch, применённые к этому Def и его родительским узлам.
-
Поиск по перекрёстным ссылкам — Глубоко анализирует ошибки вроде `Could not resolve cross-reference`, чтобы отследить точный Def, файл и конкретный XML-узел, который использовал отсутствующую ссылку, и перечислить все задействованные Patches.
-
Атрибуция совместимости с CE — Разрешает ошибки `no support for Combat Extended` путём глубокого анализа параметров кадров стека, чтобы точно определить Def предметов или рас, не имеющих совместимости с CE.
-
Извлечение путей к файлам и ID Workshop — Извлекает строки локальных путей из ошибок вроде `Cannot load texture` или отсутствующих файлов, сопоставляя их с корневыми каталогами активных модов или декодируя Steam Workshop IDs, чтобы найти мод.
Результаты анализа будут сохранены в файл `BetterModSort.Error.txt` в твоей директории сохранений, а предыдущие результаты будут сохранены как резервная копия `BetterModSort.Error.prev.txt`.
! Важно: Если тебе нужно сообщить об ошибках другим авторам модов, пожалуйста, убедись, что ты предоставляешь полный файл
Player.log или копируешь исходные детали красной ошибки из окна логов. Файл
BetterModSort.Error.txt, создаваемый этим модом, содержит только сводку анализа для AI-сортировки и быстрого справочника и может не содержать критических технических деталей, необходимых авторам для исправления ошибок.
(связанные с XML)
```
Could not resolve cross-reference to Verse.WorkTypeDef named DoctorRescue (wanter=workTypes)
-> [Cross-ref used in: DoctorRescue]
- [Mod: Project RimFactory - Drones (spdskatr.projectrimfactory.drones)] Defs/ThingDef[defName=WarDroneStation]/modExtensions/li/workTypes
File: D:\SteamLibrary\steamapps\workshop\content\294100\2037491557\Defs\ThingDefs_Buildings\Buildings_DroneStation.xml
-> [Patch might be involved: WarDroneStation]
- [Mod: Project RimFactory - Drones (spdskatr.projectrimfactory.drones)] PatchOperationAdd (FindMod: Achtung!)
```
(связанные с DLL)
```
[BetterModSort] ========== Error Analysis ==========
Time: 10:10:20
Error: Trying to get stat MeleeDamageAverage from TM_GloryMaul which has no support for Combat Extended.
Related MODs (3):
- [ceteam.combatextended] Combat Extended
DLL: CombatExtended
Location: CombatExtended.StatWorker_MeleeDamageAverage.GetValueUnfinalized
- [andromeda.nicebilltab] Nice Bill Tab
DLL: NiceBillTab
Location: NiceBillTab.StatRequestWorker.GetDPS
- [ilyvion.loadingprogress] Loading Progress
DLL: ilyvion.LoadingProgress
Location: ilyvion.LoadingProgress.StaticConstructorOnStartupUtilityReplacement+d__2.MoveNext
=====================================
```
Совместимость и внешние инструменты- Полная совместимость с
Mod Manager и
Prestarter. Как только ты включишь AI-сортировку в настройках этого мода, нажатие их родной кнопки "Авто-сортировка" будет бесшовно запускать процесс AI-сортировки этого мода!
-
Экспорт в RimSort: Поддерживает автоматическое сохранение текущего активного списка модов в XML-файл, совместимый с RimSort, после завершения AI-сортировки (можно включить в экспериментальных настройках).
Поддержка языковПоддерживает английский, упрощённый китайский и русский.
Благодарим
Dmitry6 за русский перевод!
Всегда приветствуются вклады в перевод на другие языки.
Github Repo:
github.com/Yan-Zero/BetterModSort