Глосарій Stack AI
Цей глосарій є базовим словником для документації stack-ai. Далі в документах терміни RU, TU, Family, Lady Legend, Stack Lady, operatorFamilyId, client_id, woman_id та інші використовуються саме в цих значеннях.
Доменні
| Термін | Значення |
|---|---|
| RU | Чоловік - клієнт сайту |
| TU | Анкета, жінка, леді - профіль від імені якого працює оператор |
| LT | Lifetime - кількість днів відколи RU зробив першу витрату по TU |
| LT day: N | Поточне значення lifetime для пари RU←>TU |
| Chat / Mail / Email | Три режими переписки з RU: на сайті - Chat і Mail; Email - особиста gmail-скринька TU |
| Invite | Шаблон повідомлення який Sender використовує для авторозсилки |
| Task | Завдання оператора зробити дію, зазвичай написати, яке створюється за різних умов |
| Sender | Система автоматичної розсилки інвайтів |
| Workspace | Робоча вкладка оператора у electron-клієнті: листування, фаворити, таски |
| Whitelist | Список RU яким можна слати інвайт; антипод blacklist |
| Family | Один із 4-х партнерських проєктів: golden, prime, udate, chathouse. Базова одиниця сегментації даних і ролей |
| Stack Lady | Картка клієнтки на рівні stack (mongo stack_ladies); одна Stack Lady може мати кілька Family-профілів |
| Lady Legend | Структурована легенда TU: lifestyle, character, family, hobby, plans. Це фон, який оператор підтримує у переписці |
| Note | Замітка оператора по парі TU←>RU |
| AI Note | Замітка згенерована AI; модерується супервайзером |
| Ticket | Сутність-задача всередині системи з призначенням, статусами, дедлайном; не те саме, що операторський Task |
| Card | Картка кандидата в воронці рекрутингу |
| Trainee / Mentor / Course | Сутності внутрішньої академії |
Сегменти і жаргон
| Термін | Значення |
|---|---|
| Profit | Сума витрат RU на TU ($) - основний бізнес-показник пари |
| Gifts | Кількість віртуальних подарунків від RU до TU |
| Active Favorite | RU що нещодавно платив за спецправилом; важливіша підкатегорія Favorites |
| Freeloader | Жаргон для RU що не платить |
Ідентифікатори
Декілька різних ID можуть описувати один і той же суб’єкт у різних системах. Їх постійно плутають, тому в документації треба явно писати який саме ID мається на увазі.
| Термін | Значення |
|---|---|
| stackLadyId | Mongo-ID запису в stack_ladies |
| id_api / ladyId_api / manId_api | ID профілю в API партнерського сайту; це не Mongo-ID |
| adminId_api | id_api адміна на партнерському сайті, якому належить TU |
| operatorFamilyId | Mongo-ID запису Family оператора; один на пару Family x User. Ключ маршрутизації подій |
| stackOperatorId | ID юзера |
| client_id | Legacy DB/API поле в stack-ai для RU/client/man id |
| woman_id | Legacy DB/API поле в stack-ai для TU/lady/profile id. Це не окрема доменна сутність “woman”, а технічна назва поля |
| ruId | Новіший tips-flow alias для RU |
| tuId | Новіший tips-flow alias для TU |
| dialog_key | sha256 ключ пари RU←>TU у vector memory |
Партнерські сайти
| Термін | Значення |
|---|---|
| Golden / Goldenbride | Партнер N1, бек у stack-golden |
| Prime | Партнер з VIP-механікою, newsfeed, icebreakers; бек у stack-prime |
| Udate | Партнер з окремим бекендом: GraphQL, ULID-и; stack-udate |
| Chathouse | Партнер з auth_codes-сесіями і icebreakers; stack-chathouse |
| Talkytimes | Зустрічається у коді (talkytimes/, TALKYTIMES_*) як назва для Prime. TODO: визначити фінальну назву (prime чи talkytimes) і уніфікувати у коді й документації |
Зовнішні системи / API
| Термін | Значення |
|---|---|
| Official API | Зовнішнє HTTP-API партнерського сайту: списки, фінанси, чат-історія |
| DeepL | Зовнішній сервіс перекладу: UK/RU/EN |
| Gmail (sync) | Інтеграція особистих email-скриньок TU через Gmail API |
| Gemini | LLM-провайдер для AI Legend |
| ClickHouse | Аналітичне сховище для метрик |
| Telegram bots | @BeSocialHR_bot для HR-кандидатів та інші |
Ролі
Повний опис - auth. Тут лише швидкий покажчик.
| Роль | Призначення |
|---|---|
| director | Найвищий рівень доступу, керівництво |
| topManager | Топ-менеджер агенції |
| supervisor | Менеджер операторів. У розмові - тімлід; як StackRole - лише supervisor, team_lead як ідентифікатор не вживається |
| client_manager | Менеджер клієнток (CM) |
| operator | Оператор |
| hr | HR-департамент |
| recruiter | Рекрутер |
| technical_department | Технічний департамент |
Сервіси
Повна мапа - в Canvas та документах розділу index.
| Сервіс | Призначення |
|---|---|
| stack | Точка входу, оркестратор, основний веб-сервер |
| stack-client | Веб-фронт |
| stack-electron | Electron-програма оператора |
| stack-golden | Бек по проєкту goldenbride |
| stack-prime | Бек по проєкту prime |
| stack-udate | Бек по проєкту udate |
| stack-chathouse | Бек по проєкту chathouse |
| stack-academy | Внутрішня школа |
| stack-ai | AI-сервіс: легенди, переклади, tips/memory |
| stack-commons | Спільні утиліти, middleware, types |
Runtime / процеси
| Термін | Значення |
|---|---|
| OperatorRunner | Кореневий runtime в Electron per авторизований оператор |
| LadyRunner | Per-TU runtime: підтримує сесію в сайт, чергу чату, sender’и, таски |
| Chat Sender / Mail Sender | Авто-сервіси що дрейнять інвайти і відправляють по site API |
| Workspace streaming | Live-спостереження тімліда за поточним екраном оператора через socket-проксі |
Технічне
| Термін | Значення |
|---|---|
| Swagger UI v2 | Auto-generated Swagger з routing-controllers, доступний на /<service>/api-docs/v2 |
| Legacy controller | Контролер на BaseController + bindRoutes; поза auto-Swagger, поступово мігруємо на routing-controllers |
| Routing-controllers | Декораторний підхід: @JsonController, @Get, @UseBefore; джерело Swagger v2 |
| Family-prefixed модель | Конвенція mongo-моделей: golden_lady, prime_lady, chathouse_tasks, golden_send_mail_history тощо |
| assignments | Прив’язка одного користувача до однієї або кількох ролей у різних Families (IUserRoleAssignment) |
| RMQ | RabbitMQ - асинхронна шина між сервісами |
| Vault | Папка яка відкривається в Obsidian як єдина база |
| Quartz | Статичний сайт-генератор яким рендеримо vault на сайт |
Stack AI / Supabase
Ці терміни специфічні для поточного stack-ai репозиторію і мають читатися разом із доменним глосарієм вище.
| Термін | Значення |
|---|---|
| Supabase | Зовнішній Supabase-проєкт, який використовується як Postgres, pgvector storage і audit/usage база |
| client_memory_chunks | Основна таблиця довгої пам’яті діалогу. Зберігає chunks з embedding для пари RU←>TU |
| Memory chunk | Атомарний шматок інформації для retrieval: profile, photo, note, conversation, summary |
| tips_daily_entity_snapshots | Daily cache/audit таблиця для профілів RU/TU, фото, нотаток, raw dialog snapshots і маркера daily_sync |
| token_usage_log | Таблиця обліку LLM usage по request/provider/model/phase/tokens |
| match_client_memory_chunks | SQL RPC у Supabase для pgvector cosine search по client_memory_chunks |
| Embedding | 768-мірний вектор Gemini gemini-embedding-001, записаний у pgvector як vector(768) |
| RETRIEVAL_DOCUMENT | Gemini embedding task type для chunks при ingest |
| RETRIEVAL_QUERY | Gemini embedding task type для search query |
| Compose mode | Режим застосування chunk: reply, both |
| Source weights | Boosts у RPC для бізнесово важливіших джерел: note=0.18, profile=0.08, photo=0.05. conversation є baseline без додаткового boost |
| memoryContext.selectedChunks | Chunks, які після retrieval потрапляють у prompt генерації |
| Raw snapshot | Запис у tips_daily_entity_snapshots, який зберігає payload/hash для daily sync, але не є vector memory chunk |
Зв’язки
RU/TU→dialog_key→client_memory_chunks.woman_idуclient_memory_chunksозначає TU id.client_idуclient_memory_chunksозначає RU id.Daily syncпишеtips_daily_entity_snapshotsі може оновлюватиprofile,photo,notechunks.Memory ingestпише embeddings у Supabase.Memory searchчитає Supabase черезmatch_client_memory_chunks.Assistant workflowвикористовуєmemoryContext.selectedChunks.Lady Legendзараз не пишеться в Supabase: результати Legend живуть уLegendJobStoreprocess memory і повертаються через/stack-ai/legend/status.