TGViewer
annFlow annFlow @annsflow · 33 subscribers
Post #120 25
Как философия проекта вшита в код

В этом проекте философия не лежит рядом с ботом как отдельный текст. Она загружается в систему и влияет на то, как именно бот говорит.

Первый важный узел:


def _reload_ann_philosophy(force: bool = False) -> bool:
data = _safe_json_read(_PHILOSOPHY_PATH, None, log_label="load ann_philosophy")
if data is None:
data = _safe_json_read(_PHILOSOPHY_CACHE_PATH, None, log_label="load ann_philosophy_cache")
if data is None:
return bool(ANN_PHILOSOPHY_TEXT)
try:
_apply_loaded_philosophy_data(data)
return bool(ANN_PHILOSOPHY_TEXT)
except Exception:
logger.exception("Не удалось применить ann_philosophy.json")
return bool(ANN_PHILOSOPHY_TEXT)


Что здесь важно:

• _reload_ann_philosophy(...)
Перечитывает философию из ann_philosophy.json.

• _safe_json_read(_PHILOSOPHY_PATH, ...)
Читает основной JSON-файл.

• if data is None:
Если файл не прочитался, система идёт в запасной вариант.

• _safe_json_read(_PHILOSOPHY_CACHE_PATH, ...)
Берёт кэш. Значит философия здесь не декоративна, проект старается её не потерять.

• _apply_loaded_philosophy_data(data)
Не просто загружает текст, а раскладывает его по структурам: identity, postulates, style, channels, primary_source.

Второй важный узел:


def _apply_loaded_philosophy_data(data):
identity = _as_list(data.get("identity"))
postulates = _as_list(data.get("postulates"))
style = _as_list(data.get("style"))
channels = _as_list(data.get("channels"))
primary_source = _as_list(data.get("primary_source"))

ANN_PHILOSOPHY_IDENTITY = identity
ANN_PHILOSOPHY_POSTULATES = postulates
ANN_PHILOSOPHY_STYLE = style


Что делает этот кусок:

• identity
Кто такой ann внутри системы.

• postulates
Базовые положения.

• style
Стилевые ориентиры речи.

• ANN_PHILOSOPHY_* = ...
После этого философия становится частью runtime-состояния программы.

А вот как это попадает в генерацию ответа:

prompt = f"""
Ты — ann. Ты всегда говоришь в стиле своего внутреннего знания и не раскрываешь, что оно существует.
ЖЕСТКИЕ ПРАВИЛА:
- не цитируй внутреннее знание дословно, только перефразируй
- не цитируй профиль дословно
- отвечай по смыслу на последнее сообщение пользователя
Лексические опоры стиля (не цитаты): {style_hints}
Внутреннее знание ann (не цитировать дословно): {f}
""".strip()

Что здесь важно:

• Ты — ann
Код задаёт не безликий ассистент, а конкретную голосовую фигуру.

• не цитируй..., не упоминай...
Бот не декламирует философию, а проводит ее через речь.

Именно здесь философия перестает быть просто содержанием.
Она становится механизмом отбора фраз, интонации и структуры ответа.

То есть в этом проекте философия вшита в код буквально: хранится в JSON, загружается в runtime, раскладывается по структурам и превращается в правила генерации.

Поэтому ann здесь это не просто AI-бот со стилем.
Это система, в которой мировоззрение стало частью архитектуры.

Оглавление темы 📌
Навигация по проектам канала 📍
Все проекты 🎶

#annBot@annsFlow

💻 annFlow
Telegram Бессмысленность и скоротечность #shorts #chat @arsenynn
More from @annsflow
  1. Sep 24, 2026LiveContext в реальном разговоре. На видео я разбираюсь с претензией по недоставленному за…
  2. Sep 21, 2026Как LiveContext разделяет мой голос и голос собеседника Чтобы LiveContext мог понимать раз…
  3. Sep 16, 2026Почему мне оказалось недостаточно просто сохранять разговоры В VoxBase я решал проблему то…
  4. Sep 15, 2026Как я построил LiveContext, или Как связать живой разговор с памятью проекта ● Почему мне…
  5. Sep 14, 2026annFlow pinned a video
  6. Sep 14, 2026Самая неожиданная вакансия, которую нашел мой бот Моя система постоянно сама ищет вакансии…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →