glossary

Глосарій Stack AI

Цей глосарій є базовим словником для документації stack-ai. Далі в документах терміни RU, TU, Family, Lady Legend, Stack Lady, operatorFamilyId, client_id, woman_id та інші використовуються саме в цих значеннях.

Доменні

ТермінЗначення
RUЧоловік - клієнт сайту
TUАнкета, жінка, леді - профіль від імені якого працює оператор
LTLifetime - кількість днів відколи 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 FavoriteRU що нещодавно платив за спецправилом; важливіша підкатегорія Favorites
FreeloaderЖаргон для RU що не платить

Ідентифікатори

Декілька різних ID можуть описувати один і той же суб’єкт у різних системах. Їх постійно плутають, тому в документації треба явно писати який саме ID мається на увазі.

ТермінЗначення
stackLadyIdMongo-ID запису в stack_ladies
id_api / ladyId_api / manId_apiID профілю в API партнерського сайту; це не Mongo-ID
adminId_apiid_api адміна на партнерському сайті, якому належить TU
operatorFamilyIdMongo-ID запису Family оператора; один на пару Family x User. Ключ маршрутизації подій
stackOperatorIdID юзера
client_idLegacy DB/API поле в stack-ai для RU/client/man id
woman_idLegacy DB/API поле в stack-ai для TU/lady/profile id. Це не окрема доменна сутність “woman”, а технічна назва поля
ruIdНовіший tips-flow alias для RU
tuIdНовіший tips-flow alias для TU
dialog_keysha256 ключ пари 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
GeminiLLM-провайдер для AI Legend
ClickHouseАналітичне сховище для метрик
Telegram bots@BeSocialHR_bot для HR-кандидатів та інші

Ролі

Повний опис - auth. Тут лише швидкий покажчик.

РольПризначення
directorНайвищий рівень доступу, керівництво
topManagerТоп-менеджер агенції
supervisorМенеджер операторів. У розмові - тімлід; як StackRole - лише supervisor, team_lead як ідентифікатор не вживається
client_managerМенеджер клієнток (CM)
operatorОператор
hrHR-департамент
recruiterРекрутер
technical_departmentТехнічний департамент

Сервіси

Повна мапа - в Canvas та документах розділу index.

СервісПризначення
stackТочка входу, оркестратор, основний веб-сервер
stack-clientВеб-фронт
stack-electronElectron-програма оператора
stack-goldenБек по проєкту goldenbride
stack-primeБек по проєкту prime
stack-udateБек по проєкту udate
stack-chathouseБек по проєкту chathouse
stack-academyВнутрішня школа
stack-aiAI-сервіс: легенди, переклади, tips/memory
stack-commonsСпільні утиліти, middleware, types

Runtime / процеси

ТермінЗначення
OperatorRunnerКореневий runtime в Electron per авторизований оператор
LadyRunnerPer-TU runtime: підтримує сесію в сайт, чергу чату, sender’и, таски
Chat Sender / Mail SenderАвто-сервіси що дрейнять інвайти і відправляють по site API
Workspace streamingLive-спостереження тімліда за поточним екраном оператора через socket-проксі

Технічне

ТермінЗначення
Swagger UI v2Auto-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)
RMQRabbitMQ - асинхронна шина між сервісами
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_snapshotsDaily cache/audit таблиця для профілів RU/TU, фото, нотаток, raw dialog snapshots і маркера daily_sync
token_usage_logТаблиця обліку LLM usage по request/provider/model/phase/tokens
match_client_memory_chunksSQL RPC у Supabase для pgvector cosine search по client_memory_chunks
Embedding768-мірний вектор Gemini gemini-embedding-001, записаний у pgvector як vector(768)
RETRIEVAL_DOCUMENTGemini embedding task type для chunks при ingest
RETRIEVAL_QUERYGemini embedding task type для search query
Compose modeРежим застосування chunk: reply, both
Source weightsBoosts у RPC для бізнесово важливіших джерел: note=0.18, profile=0.08, photo=0.05. conversation є baseline без додаткового boost
memoryContext.selectedChunksChunks, які після 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, note chunks.
  • Memory ingest пише embeddings у Supabase.
  • Memory search читає Supabase через match_client_memory_chunks.
  • Assistant workflow використовує memoryContext.selectedChunks.
  • Lady Legend зараз не пишеться в Supabase: результати Legend живуть у LegendJobStore process memory і повертаються через /stack-ai/legend/status.