Skip to content

Конфигурация

NOUZ ищет config.yaml в таком порядке: путь из NOUZ_CONFIG, текущая рабочая директория, затем директория установленного сервера. Для режима LUCA файл необязателен — сервер стартует с базовыми настройками.

Без config.yaml сервер работает в режиме LUCA (чистый граф).

Минимальный конфиг

Из исходников:

bash
cp config.template.yaml config.yaml

В Windows PowerShell:

powershell
Copy-Item config.template.yaml config.yaml
yaml
mode: prizma  # luca | prizma | sloi

Положите файл в рабочую директорию проекта или передайте абсолютный путь через NOUZ_CONFIG. Этого достаточно для запуска с семантической классификацией.

Полный конфиг

yaml
# Режим работы: luca | prizma | sloi
mode: prizma

# Meta-root: якорная заметка уровня 0.
# Полезна для больших баз; для старта можно оставить пустой.
# Исключается из всех семантических операций.
meta_root: ""

# Семантические эталоны — описания доменов для классификации.
# Каждый эталон: 2-3 предложения предметным языком домена.
# Избегайте общих слов, которые встречаются в нескольких доменах.
etalons:
  - sign: S
    name: Systems Analysis
    text: >
      Methodology for analysing complex objects: feedback loops,
      emergent properties, self-regulation, bifurcation points.
      Cybernetics, synergetics, dissipative structures, catastrophe
      theory, autopoiesis — tools for understanding how the whole
      exceeds the sum of its parts. Not data and not code — a way
      of thinking about how parts form a whole and why systems
      behave non-linearly.
  - sign: D
    name: Data & Science
    text: >
      Physics and cosmology: from subatomic particles to the large-scale
      structure of the Universe. Lagrangians, curvature tensors, scattering
      cross-sections, quarks, bosons, fermions, plasma, vacuum fluctuations,
      cosmic microwave background, cosmological constant, decoherence.
      Pure science about the nature of matter, energy and spacetime.
  - sign: E
    name: Engineering
    text: >
      Software engineering, machine learning and infrastructure: writing
      and debugging code, deployment, containerisation, neural networks,
      inference, tokenisation, data serialisation, microservices, CI/CD,
      automated testing, refactoring, Git, Docker, Kubernetes, APIs.
      The practical discipline of building computational systems from
      architecture to production.

# Уровни иерархии.
# Значения технически настраиваются, но стандарт L1-L5 лучше оставлять как есть:
# документация, примеры и режим SLOI рассчитаны именно на эту шкалу.
levels:
  core: 1
  pattern: 2
  module: 3
  quant: 4
  artifact: 5

# Пороги классификации и связей
thresholds:
  # Минимальная разница между max и min cosine для присвоения знака.
  # Если spread < sign_spread → различие между доменами слишком слабое.
  sign_spread: 0.05

  # Минимальный абсолютный cosine до ближайшего ядра.
  # Если max_cosine >= confident_cosine → sign_source = "auto" (надёжный).
  # Если max_cosine < confident_cosine → sign_source = "weak_auto" (лучшая догадка,
  #   мосты в тот же домен НЕ блокируются).
  confident_cosine: 0.6

  # Минимальный нормализованный % для включения ядра в составной знак.
  # После spread-нормализации: если adjusted_score / total * 100 >= threshold,
  # ядро включается. Позволяет составные знаки вроде "SE" при двух ядрах ≥ 30%.
  pattern_second_sign_threshold: 30.0

  # Минимальный cosine similarity для предложения семантического моста.
  # Предлагается только между заметками с разными ядрами (cross-domain).
  semantic_bridge_threshold: 0.55

  # Минимальное структурное сходство для аналогического моста.
  # Аналогические мосты соединяют заметки из разных ядер с похожими
  # позициями в графе (core_mix, level, degree, tags).
  structural_bridge_threshold: 0.55

  # Минимальный cosine similarity для авто-привязки к родителю.
  # Используется в process_orphans и add_entity при auto_parents=true.
  # Сырой cosine (без бонуса за то же ядро) — гарантирует осмысленную близость.
  parent_link_threshold: 0.55

  # Порог надёжности после spread-нормализации.
  # Если доминантное ядро >= confident_spread% → sign_source = "auto".
  # Ниже → sign_source = "weak_auto" (мосты не блокируются).
  confident_spread: 60.0

# Типы артефактов. Это справочник знаков, а не embedding-эталоны.
# L5 получает artifact_sign по эвристике содержимого.
# L4 может включать artifact_sign как часть составного знака.
artifact_signs:
  - sign: β
    name: Note
    text: "Краткая заметка, наблюдение, мысль на полях."
  - sign: δ
    name: Concept
    text: "Определение, понятие, описание сущности."
  - sign: ζ
    name: Reference
    text: "Внешний источник, документация, ссылка, цитата."
  - sign: σ
    name: Log
    text: "Хроника событий, запись сессии, лог диалога."
  - sign: μ
    name: News
    text: "Новость, обновление, заметка о релизе."
  - sign: λ
    name: Hypothesis
    text: "Гипотеза, допущение, исследовательская версия."
  - sign: 🝕
    name: Specification
    text: "Техническая спецификация, инструкция, требования."

# Дополнительные символы для парсинга имён файлов (опционально).
# Только для извлечения знаков из имён, НЕ для классификации.
sign_chars: ""

Профили (опционально)

Для переключения между наборами эталонов через PROFILE:

yaml
mode: prizma
profiles:
  default:
    mode: prizma
    etalons: []
  research:
    mode: sloi
    etalons:
      - sign: T
        name: Theory
        text: >
          Scientific theories, hypotheses, formal models...
bash
export PROFILE=research

Параметры

mode

ЗначениеОписание
lucaЧистый граф. Только YAML-блоки и связи. Эмбеддинги не нужны. Режим по умолчанию.
prizmaСемантика + граф. Эмбеддинги классифицируют заметки по доменам. Гибкая иерархия.
sloiСтрогая 5-уровневая иерархия с валидацией. Требует эмбеддинги. Пропуск уровня = ошибка.

etalons

Список доменов. Каждый эталон содержит:

  • sign — короткий символ домена. В примере используются S, D, E, но можно выбрать другие буквы или знаки, если они последовательно указаны в конфиге и не конфликтуют с artifact_signs.
  • name — название
  • text — описательный текст 2–3 предложения. Основа классификации. Пишите предметным языком вашего домена, используйте доменный жаргон. Избегайте слов, которые встречаются в нескольких доменах одновременно.
Качество эталонов

Запустите calibrate_cores и проверьте pairwise cosine между эталонами. Сырой cosine у трансформерных моделей обычно высокий (0.6-0.75) из-за анизотропии. Смотрите на mean-centered: он должен быть заметно ниже сырого и различаться между парами. Если пары выглядят почти одинаково, усилите специфику доменов и уберите общие слова.

artifact_signs

Справочник типов материала для L5-артефактов. Это не эталоны для embeddings: сервер выбирает artifact_sign эвристически по структуре и словам в тексте. Например, лог получает σ, спецификация — 🝕, гипотеза — λ.

thresholds

ПараметрПо умолчаниюОписание
sign_spread0.05Минимальная разница max/min cosine для классификации
confident_cosine0.6Абсолютный порог cosine к ближайшему ядру
pattern_second_sign_threshold30.0Минимальный % для составного знака
semantic_bridge_threshold0.55Порог семантических мостов
structural_bridge_threshold0.55Порог аналогических мостов
parent_link_threshold0.55Порог авто-привязки к родителю
confident_spread60.0Порог надёжности классификации (%)

Переменные окружения

ПеременнаяОбязательнаОписание
OBSIDIAN_ROOTДаАбсолютный путь к папке с заметками
NOUZ_CONFIGНетАбсолютный путь к config.yaml; если не задан, сервер ищет файл в текущей директории
PROFILEНетИмя профиля из config.yaml (по умолчанию: default)
EMBED_PROVIDERНетopenai-compatible или ollama (по умолчанию: openai)
EMBED_ENABLEDНетtrue или false (по умолчанию: true)
EMBED_API_URLДля prizma/sloiURL OpenAI-совместимого API эмбеддингов
EMBED_MODELНетИмя модели эмбеддингов
EMBED_API_KEYНетAPI-ключ для облачных провайдеров
LLM_API_URLНетURL для LLM (извлечение тегов)
LLM_MODELНетИмя LLM-модели
bash
export OBSIDIAN_ROOT=/path/to/vault
export EMBED_API_URL=http://127.0.0.1:1234/v1
export EMBED_MODEL=nomic-embed-text

Совместимые провайдеры эмбеддингов

ПровайдерURLПримечание
LM Studiohttp://127.0.0.1:1234/v1Рекомендуется для локального запуска
Ollamahttp://127.0.0.1:11434Использует endpoint /api/embeddings
OpenAIhttps://api.openai.com/v1Добавьте EMBED_API_KEY
Любой OpenAI-compatibleСтандартный endpoint /v1/embeddings

Как писать свои эталоны

S/D/E выше — стартовый пример трёх хорошо различимых доменов: системный анализ, научные данные и инженерная практика. Его можно взять как шаблон качества текста, но сами ядра лучше выбирать под вашу базу. Обычно хватает 2–4 доменов с плотным предметным языком и ясными границами между соседними областями. После изменения эталонов запустите calibrate_cores и проверьте страницу Качество эталонов.