Architect layer

Telegram bot

The architect's own tool, built to make their work faster — and a live demonstration of how this project remembers.

Settings

The token, the connection and everything the bot needs in order to answer.

What this gives you. A door into your project from a messenger instead of a browser. A person writes to your bot and gets an answer built from your own knowledge base — no separate app, no login screen.

Telegram

linked to @roma_armstrong

Current bot: @TestFracteraBot

Channel active
Bot token from @BotFather

Once linked, the bot answers from the knowledge base of this project. It never invents an answer: with the base empty or the service off, it says so.

OpenAI key

An OpenAI key is setj8sA

The bot needs it more often than not: without this key a voice note is not transcribed and an answer is not composed. It is set here so that both settings live on one screen.

Key from platform.openai.com

The project restarts to pick up the new key; the channel service reads it straight away.

Schedule

How often the product is asked whether a reminder has come due. Reminders have to fire while nobody is looking at the site, so something has to knock — this is it. Off means the project has no reminders and pays for none.

Fact registry

25 facts

What this project knows how to pull out of a message: the date of the event, money, a place, a link to what was said before. Each of them is a declared ability — not a label.

How it arrived

  • Печатный текстmaterial.text

    built-in

    Человек написал сообщение буквами.

    Канал отдаёт сообщение без вложения звука.

    tgdesk_messages.raw_kind

  • Голосовое сообщениеmaterial.voice

    built-in

    Человек надиктовал. Служба расшифровывает запись, и дальше по потоку она неотличима от печатного текста — отличие видно только здесь.

    Канал отдаёт вложение звука; служба возвращает расшифровку.

    tgdesk_messages.raw_kind

Why it arrived

  • captureintent.capture

    built-in

    Человек рассказывает о случившемся — это сохраняется.

    Маршрутизатор намерений спрашивает модель одним коротким вопросом и получает имя ветви.

    ветвь обработки; в базе не хранится

  • questionintent.question

    built-in

    Спрашивает о собственной жизни: что покупал, обещал, тратил.

    Маршрутизатор намерений спрашивает модель одним коротким вопросом и получает имя ветви.

    ветвь обработки; в базе не хранится

  • scheduleintent.schedule

    built-in

    Просит напомнить или поставить событие в календарь.

    Маршрутизатор намерений спрашивает модель одним коротким вопросом и получает имя ветви.

    ветвь обработки; в базе не хранится

  • confirmintent.confirm

    built-in

    Соглашается или отказывается — и больше ничего.

    Маршрутизатор намерений спрашивает модель одним коротким вопросом и получает имя ветви.

    ветвь обработки; в базе не хранится

  • correctintent.correct

    built-in

    Поправляет то, что система предложила: другую дату, другую сумму.

    Маршрутизатор намерений спрашивает модель одним коротким вопросом и получает имя ветви.

    ветвь обработки; в базе не хранится

  • whereintent.where

    built-in

    Отвечает на вопрос, где он живёт, — для часового пояса.

    Маршрутизатор намерений спрашивает модель одним коротким вопросом и получает имя ветви.

    ветвь обработки; в базе не хранится

  • metaintent.meta

    built-in

    Спрашивает о самой системе: кто ты, что умеешь.

    Маршрутизатор намерений спрашивает модель одним коротким вопросом и получает имя ветви.

    ветвь обработки; в базе не хранится

  • commandintent.command

    built-in

    Команда, начинается с косой черты.

    Маршрутизатор намерений спрашивает модель одним коротким вопросом и получает имя ветви.

    ветвь обработки; в базе не хранится

What it turned out to be

  • memoentity.memo

    built-in

    Просьба запомнить нечто как есть.

    Разбор рассказа возвращает род сущности и её поля.

    tgdesk_entries.kind

  • noteentity.note

    built-in

    Заметка: факт, который стоит сохранить.

    Разбор рассказа возвращает род сущности и её поля.

    tgdesk_entries.kind

  • taskentity.task

    built-in

    Задача — то, что человек собирается сделать.

    Разбор рассказа возвращает род сущности и её поля.

    tgdesk_entries.kind

  • receiptentity.receipt

    built-in

    Чек или покупка: сумма, продавец, предмет.

    Разбор рассказа возвращает род сущности и её поля.

    tgdesk_entries.kind

  • placeentity.place

    built-in

    Место — адрес, заведение, точка на карте.

    Разбор рассказа возвращает род сущности и её поля.

    tgdesk_entries.kind

  • ideaentity.idea

    built-in

    Идея, замысел, мысль на будущее.

    Разбор рассказа возвращает род сущности и её поля.

    tgdesk_entries.kind

Where it went

  • Медиатекаdestination.media

    built-in

    Присланный файл сохранён и доступен по имени.

    Отметка ставится обработкой, когда отправка прошла; отказ пишется в заметки сообщения.

    tgdesk_artifacts.kind

  • Векторный складdestination.vector

    built-in

    Смысл сообщения записан для поиска по смыслу, а не по словам.

    Отметка ставится обработкой, когда отправка прошла; отказ пишется в заметки сообщения.

    tgdesk_artifacts.kind

  • Граф знанийdestination.rag

    built-in

    Конверт сообщения ушёл в граф: источник, автор, время, признаки, суть.

    Отметка ставится обработкой, когда отправка прошла; отказ пишется в заметки сообщения.

    tgdesk_artifacts.kind

What was extracted

  • Связь с другим сообщениемfield.link

    built-in

    cannot be turned off

    Сообщения одного разговора, идущие подряд. Человек говорит «эту фотографию», «то место» — и без связи вторая фраза теряет предмет первой.

    Сегодня — по времени: соседнее сообщение того же чата в пределах 180 секунд. По смыслу пока не ищется.

    no table of its own: a link is a relation, not a value

  • Когда это случилосьfield.happened

    built-in

    Дата события отдельно от даты рассказа. «Вчера купил» кладётся под вчерашнее число, а не под минуту разговора.

    Разбор возвращает дату события, если она названа словами: вчера, в понедельник, третьего числа.

    tgdesk_messages.happened_unix

  • Тут про деньгиfield.money

    built-in

    Отметка, что в сообщении речь о цене, оплате или заработке. По ней «покажи траты» отвечается условием, а не перечитыванием года переписки.

    Разбор ставит отметку, когда упомянута цена, платёж или зарплата.

    tgdesk_messages.has_financial

  • Координатыfield.geo

    built-in

    Точка на карте, присланная Telegram. Слово «здесь» координатами не становится — сегодня их даёт только настоящая геометка.

    Канал присылает широту и долготу вложением.

    tgdesk_messages.lat, tgdesk_messages.lon

  • Переслано отfield.forwarded

    built-in

    Кто автор пересланного сообщения. Важно, когда человек передаёт чужие слова.

    Канал сообщает имя исходного отправителя.

    tgdesk_messages.forwarded_from

  • О чём этоfield.facets

    built-in

    Два-шесть коротких тегов, называющих предмет сообщения словами человека. Сегодня они уезжают только в конверт графа и никуда больше — это готовый поток кандидатов в реестр.

    Разбор возвращает теги вместе со сводкой.

    нигде: печатается в конверт графа

Your own instruction for the bot

Being built

A text you write yourself and the bot follows in addition to its own rules — your limits, your tone, your subject. It is added to the instruction the bot already has, not instead of it.

Powered by Fractera