TGViewer
annFlow annFlow @annsflow · 33 subscribers
Post #114 29
По какой логике бот отвечает людям

Бот отвечает не по принципу “увидел сообщение → сразу сгенерировал текст”.

Сначала он решает, нужно ли вообще отвечать. Потом собирает контекст, подтягивает профиль и только после этого строит ответ.

Один из ключевых узлов выглядит так:


ctx = ann_build_context_from_db(chat_id, limit=ANN_CONTEXT_MSG_LIMIT, max_chars=ANN_CONTEXT_MAX_CHARS)
profile_block = _build_profile_prompt_block(last_user_text, base_max_tokens, mention_max_tokens)

messages = [
{"role": "system", "content": system_prompt},
{"role": "system", "content": profile_block},
{"role": "user", "content": ctx},
]


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

• ann_build_context_from_db(...)
Функция собирает контекст из базы данных.
То есть бот берет не только последнее сообщение, а историю разговора перед ответом.

• chat_id
Контекст собирается для конкретного чата.
Это защита от смешивания разных диалогов.

• limit=ANN_CONTEXT_MSG_LIMIT
Ограничивает, сколько сообщений брать в контекст.
Иначе prompt раздуется и станет шумным.

• max_chars=ANN_CONTEXT_MAX_CHARS
Дополнительно ограничивает размер контекста в символах.
Это нужно, чтобы не перегружать модель.

• _build_profile_prompt_block(...)
Отдельно строит блок профиля пользователя.
То есть бот подмешивает не только историю чата, но и накопленные наблюдения о человеке.

• last_user_text
В профильный блок передаётся последнее сообщение пользователя.
Это помогает выбрать более релевантный тон и факт из профиля.

• messages = [...]
Это уже финальная сборка prompt-пакета перед генерацией.

• {"role": "system", "content": system_prompt}
Главный системный слой.
Здесь лежит общий характер бота, его рамка и поведение.

• {"role": "system", "content": profile_block}
Второй системный слой.
Здесь лежит персонализация: тон, факты, особенности конкретного человека.

• {"role": "user", "content": ctx}
А здесь лежит уже сам собранный контекст разговора.

То есть логика такая:
1. бот не отвечает “вслепую”
2. сначала собирает историю диалога
3. потом добавляет профиль человека
4. потом соединяет это с общей философией и системными правилами
5. и только после этого генерирует ответ

Именно поэтому его ответ держится не на одной последней реплике, а на нескольких слоях сразу:
контекст, профиль, память и системная логика. Бот отвечает не “на сообщение”, а на ситуацию разговора.

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

#annBot@annsFlow

💻 annFlow
Telegram Бессмысленность и скоротечность #shorts #chat @arsenynn
  • ❤ 1
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 →