Перейти до основного вмісту
megapromotingПоговорімо

Експертиза · Доступ до моделей AI

Єдина точка входу до моделей AI, з ключами на команду, лімітами та локальним рахунком.

Ми ставимо між застосунками компанії та постачальниками моделей одну точку входу, сумісну з інтерфейсом OpenAI. Звідти видаються окремі ключі на проєкт, із лімітом витрат, списком дозволених моделей і списком IP-адрес, а споживання видно по ключу.

Вже збудованоГейт працює, і це можна перевірити ззовні вже сьогодні, без того щоб ви вірили нам на слово: публічний каталог моделей відповідає 200 і перелічує 106 моделей, позначених як активні, а запит до моделей без ключа повертає 401. Під ним є дві власні реалізації: сервіс білінгу та адміністрування (98 файлів TypeScript), який видає ключі, синхронізує ліміти з гейтом і веде реєстри, та наша платформа асистентів, яка виводить у продакшн розпізнавання голосу і синтез через той самий гейт, а не напряму до постачальника. Застереження, сказані тут і не виносені в підвал: каталог змінюється з години на годину, тож будь-яка цифра пишеться разом із датою; сьогодні в гейті немає жодної моделі Anthropic, хоча наш власний README обіцяє інше; а автоматична передача рахунку в державну систему залишається в режимі проби до встановлення сертифіката.

Проблема виникає вдруге, не вперше. Перша інтеграція з постачальником моделей проста: ключ, бібліотека, готово. П’ятий застосунок, третя команда і другий рахунок у валюті — це момент, коли ніхто вже не може відповісти на три банальні запитання: хто споживає, скільки, і що станеться, якщо скрипт вийде з-під контролю в ніч на суботу. Портал вирішує саме це: застосунки більше не говорять із постачальниками, вони говорять з єдиною точкою входу, яка має той самий інтерфейс, що й API OpenAI, тож у більшості бібліотек ви змінюєте базову адресу і ключ, а не код.

Що ви можете перевірити самі, просто зараз, без акаунта: публічний каталог моделей порталу відповідає і показує, що є всередині. На перевірці сьогодні було 106 моделей, усі позначені як активні — 77 текстових моделей, з яких 48 заявляють можливості міркування, 10 аудіо, 7 зображень, 7 у реальному часі, 3 векторизації та 2 відео. Така сама перевірка, зроблена колегою на годину й півтори раніше, повертала 107. Тому цифру завжди пишуть разом із часом, а на сайті її слід читати з endpoint, а не набирати вручну.

Контроль витрат — це не панель, а обмежувач. Ключ має ліміт витрат, період ліміту на вибір із чотирьох, список дозволених моделей, список дозволених IP-адрес — до двадцяти, IPv4, IPv6 або блоки — і прапорець блокування. Коли ліміт перевищено, ключ автоматично блокується, а причина записується на ньому, щоб інтерфейс міг сказати чому, а не показувати німий стан. Є і корекція, яку роблять небагато хто: моделі, що «думають» перед тим, як відповісти, споживають у постачальника більше, ніж бачить портал, тож нижче переданий bruto-ліміт ділиться на фактор міркування, обчислений як медіана за останні тридцять днів користувача, обмежена між одним і двадцятьма. Без цієї корекції ліміт витрат був би декоративним саме на дорогих моделях.

Місцева частина. Валютний курс зчитується з офіційного XML-файлу Національного банку Молдови на поточний день, із тайм-аутом у п’ять секунд і резервним значенням з конфігурації, коли джерело не відповідає — шлюз не має права зупинятися через те, що сайт валютного курсу недоступний. Фіскальна фактура будується як XML і зберігається, з циклом станів від чернетки до прийнятої або відхиленої. Безпосередня відправка до державної системи виконується з сертифікатом; доки сертифікат не встановлено, сервіс залишається в режимі проби: XML генерується і зберігається, але не надсилається. Це реальний стан, і ми його пишемо, бо це різниця між «ми маємо фіскальну фактуру» та «ми маємо все необхідне, щоб її надіслати».

Що входить

Робота, за складовими

Точка входу, сумісна з інтерфейсом OpenAI

Додатки зберігають бібліотеки, на яких написані, і змінюють базову адресу та ключ. Шлюз вимагає ключ: запит списку моделей без заголовка авторизації повертає 401, перевірено сьогодні ззовні. Перевірка доступності сервісу відповідає публічно, із заголовками безпеки, що встановлені (`X-Frame-Options: DENY`, політика вмісту, яка забороняє вбудовування).

Окремі ключі на проєкт, з лімітом і періодом

Кожен ключ має alias, похідний від користувача та заданого імені, ліміт витрат, період ліміту, обраний з одного дня, семи, тридцяти або дев’яноста, список дозволених моделей і поточні витрати. Ключ створюється через адміністративний інтерфейс шлюзу і зберігається локально, щоб ці двоє не розійшлися.

Автоматичне блокування при перевищенні, з причиною, записаною на ключі

Коли ліміт перевищено, ключ блокується, і на ньому залишаються момент застосування, початок періоду та причина. Коментар у коді пояснює, чому це було додано: щоб інтерфейс міг показувати, чому ключ заблоковано, замість німого стану, який ніхто не може пояснити.

Обмеження за IP-адресою, встановлене шлюзом

До двадцяти записів на ключ, кожен IPv4, IPv6 або CIDR-блок, перевірені під час введення. Список не залишається лише в нашій базі: він передається далі до шлюзу, який застосовує його фактично до кожного запиту.

Корекція для моделей, що міркують

Моделі, які перед відповіддю генерують кроки міркування, виставляються постачальником за ці кроки, але шлюз їх не бачить. Брутто-ліміт, надісланий шлюзу, обчислюється діленням ліміту клієнта на застосовану маржу та на коефіцієнт міркування — медіану, спостережену за останні тридцять днів для цього користувача, з мінімальним порогом один і обмеженням до двадцяти. Без нього ліміт був би дотриманий на дешевих моделях і перевищений саме на дорогих.

Валютний курс з офіційного джерела, з резервом

Курс зчитується з офіційного XML Національного банку Молдови для поточної дати, із перериванням через п’ять секунд. Якщо джерело не відповідає, використовується резервне значення з конфігурації. Конверсія — не офісна приблизність; це зчитування з публічного документа, з визначеною поведінкою при збоях.

Фіскальна фактура, побудована в системі, з циклом станів

Документ генерується як XML з оплаченої транзакції, зберігається і проходить через стани: чернетка, в очікуванні відправки, надіслана, прийнята або відхилена. Є ручний запуск і щоденний запланований для користувачів, які заповнили податковий код.

Журнал аудиту та експорт персональних даних

Журнал є лише додатковим і охоплює 64 названі типи подій — успішні та невдалі входи, двоетапну перевірку, ротації пароля, створення, блокування, видалення ключів, зміну ліміту. Експорт, запитаний Загальним регламентом із захисту даних, створює архів із таблицями, пов’язаними з користувачем, JSON для вкладених даних і CSV для об’ємних, з винятком, записаним у коді: з ключів експортуються метадані, ніколи не матеріал токена.

Шлюз використовується нашими власними продуктами, а не лише надається

Наша платформа асистентів переводить розпізнавання голосу та синтез у виробництво через ті самі ворота, а не напряму до постачальника, із суфіксом версії, нав’язаним у коді. Коли ворота падають, падаємо і ми — це єдине налаштування, за якого варто рекомендувати її комусь іншому.

Як це виглядає

Шлях, крок за кроком.

01

Ми інвентаризуємо, хто викликає моделі сьогодні і з якими ключами

Зазвичай виявляються особисті ключі в конфігураційних файлах, два облікові записи постачальника в одній команді та щонайменше один сервіс, про який ніхто не пам’ятає, що він досі працює. Результат — список із застосунком, ключем, моделлю, орієнтовним обсягом — точка, від якої можна говорити про ліміти.

02

Ми ставимо ворота перед одним застосунком, а не перед усіма

Змінюються базова адреса і ключ в одному місці, порівнюються відповіді з попередніми та перевіряється потік помилок: неіснуюча модель, заблокований ключ, перевищений ліміт, недоступний постачальник. Лише після того, як перший застосунок поводиться ідентично, переходять до решти.

03

Ми видаємо ключі на проєкт і прив’язуємо їх до реальних лімітів

Один ключ на застосунок і на середовище, з лімітом, періодом, списком дозволених моделей і, де сервери мають фіксовані адреси, списком IP-адрес. Ліміт обчислюється з поправкою на моделі, які міркують, інакше це цифра, що заспокоює, не зупиняючи нічого.

04

Ми прив’язуємо локальне білінгування і перевіряємо, від чого залежить сертифікат

Курс із офіційного джерела, рахунок, згенерований із оплаченої транзакції, цикл станів. Окремо перевіряється, чи встановлено сертифікат для надсилання: без нього документи формуються і залишаються в очікуванні. Це різниця, яку бухгалтерія все одно виявить, краще вже в перший тиждень.

05

Ми передаємо з журналом, експортом і процедурою ротації ключів

Хто може створювати ключі, хто може підняти ліміт, що журналюється, як запитується експорт даних користувача і що робити в день, коли ключ опинився не там, де треба.

DocumenteРозмовиДжерелаСинтезДіяКомандаКонтекстуалізуєАвторизовані джерела. Перевірені дії.
Посередині — один вузол: gate. Ліворуч — застосунки компанії, кожен із власним ключем: ліміт, період, дозволені моделі, прийняті адреси. Праворуч — постачальники моделей, які залишаються видимими й названими, бо стають субпроцесорами. Під центральним вузлом — два реєстри, що не змішуються: споживання за ключем і журнал аудиту.

Дані

Чого торкаємося, де воно лежить і скільки лишається

Запитання, які ставить кожен, у кого є відповідальний за захист даних, — поставлені тут раніше, ніж їх поставить він.

Що проходить через ворота і що залишається
Проходять запити до моделей і їхні відповіді. Залишається в нас облік споживання по ключу і по дню, події використання та журнал аудиту. Вміст розмов зберігається лише там, де його зберігає продукт, який їх генерує; самі ворота — це точка проходу з обліком, а не архів розмов.
Ключі та те, що ніколи не експортується
Ключ зберігається як відбиток, а експорт персональних даних включає метадані ключів — псевдонім, ліміт, період, список моделей, стан — і явно виключає матеріал токена. Обмеження записане як правило в коді, з коментарем, а не залишене на розсуд того, хто пише наступний експорт.
Постачальники ззаду є субпроцесорами і декларуються
Ворота не усувають постачальників, а ховають їх за однією адресою. Хто вони, де обробляють і за яких умов — це питання, на яке треба відповідати письмово; є публічні сторінки, присвячені субпроцесорам, угоді про обробку та захисту даних, і всі три доступні сьогодні.
Журнал аудиту
Лише додавання, з 64 типами названих подій, пов’язаних з ідентичністю, ключами та лімітами. Це єдине джерело, яке може ретроспективно відповісти на «хто змінив ліміт цього ключа і коли».
Що ми не можемо показати
Ми не публікуємо жодної цифри доступності. Джерело, яке власні документи цитують як метод розрахунку, не відповідає на сьогоднішню перевірку, а в коді немає збирача доступності. Поки немає вимірювання, будь-який відсоток був би обіцянкою, а не спостереженням — і ми розрізняємо ці два речі.

Випадок

Один ключ на проєкт, ліміт, який справді зупиняє

Ситуація

Звична ситуація в компанії, що пройшла першу інтеграцію: кілька застосунків викликають моделі позиченими ключами, споживання з’являється в одному рахунку у валюті, і ніхто не може сказати, який застосунок спричинив пік минулого тижня.

Що ми збудували

Ми поставили шлюз перед застосунками, з інтерфейсом, сумісним із бібліотекою, яку вони вже використовували, і видали окремі ключі на проєкт. Кожен ключ отримав ліміт, період ліміту, список дозволених моделей і, де сервери мали фіксовані адреси, список IP-адрес, примусово застосований шлюзом. Нижче надісланий брутто-ліміт розраховується з поправкою для моделей, що міркують: він ділиться на застосовану маржу та на медіанний фактор користувача за останні тридцять днів, обмежений між одиницею і двадцятьма.

Що вийшло

Споживання читається по ключу, тобто по застосунку. У разі перевищення ключ блокується сам і причина залишається записаною на ньому, тож на питання «чому більше не працює» є відповідь без того, щоб хтось відкривав журнали. Виставлення рахунку в леях робиться за офіційним курсом, прочитаним з XML дня. Ззовні можна будь-коли перевірити, що шлюз вимагає ключ: список моделей без авторизації повертає 401.

Чого цей випадок не каже

Єдина точка входу — це також єдина точка падіння — з самого початку проєктують, що роблять застосунки, коли шлюз не відповідає. Каталог моделей змінюється з години на годину, тож будь-який надрукований список старіє; у день перевірки не було жодної моделі Anthropic, хоча наша старіша документація ще це обіцяла. А автоматична відправка рахунку до державної системи залежить від сертифіката, встановленого на сервер: без нього документи будуються і чекають.

Питання

Про що нас питають, перш ніж зателефонувати

Які моделі доступні через шлюз просто зараз?

На сьогоднішній перевірці — 106, усі позначені як активні: 77 текстових (48 із них декларують міркування), 10 аудіо, 7 зображень, 7 у реальному часі, 3 векторизації і 2 відео. Каталог публічний і його можна читати без облікового запису. Ми кажемо «на сьогоднішній перевірці», бо колега виміряв 107 за півтори години до цього, того самого дня. Число без часу поруч нічого не означає.

Чи є через шлюз моделі Anthropic Claude?

Ні, жодної. Ми відфільтрували живий каталог за всіма назвами з тієї родини: нуль результатів. Ми кажемо це, хоча наш власний README обіцяє інше — документ старий, шлюз є правдою. Моделі Gemini, натомість, присутні, так само як і синтез голосу спеціалізованого постачальника та відеомоделі.

Чи треба мені переписувати свої застосунки?

У звичайному випадку — ні: шлюз експонує сумісний з OpenAI інтерфейс, тож змінюються базова адреса і ключ. Випадки, що потребують уваги, — це ті, де використовуються особливості конкретного постачальника — ми вже мали один, де специфічна бібліотека Azure будувала адреси, яких шлюз не розумів, і це вирішилося переходом на стандартний клієнт. Тому перший застосунок мігрує сам, а не всі одразу.

Як мені зупинити рахунок, що вийшов з-під контролю?

З лімітом на ключ і періодом ліміту, плюс автоматичним блокуванням у разі перевищення, з причиною, записаною на ключі. Крім того, ліміт враховує, що моделі, які міркують, коштують у постачальника більше, ніж бачить шлюз: брутто-ліміт ділиться на фактор, розрахований як медіана за останні тридцять днів користувача. Без цієї поправки ліміти працюють на дешевих моделях і дають збій на дорогих.

Яку гарантію доступності ви надаєте?

Жодної, висловленої в цифрах, і це свідома позиція. У нас немає збирача доступності в коді, а джерело, яке наші власні матеріали цитують як метод обчислення, сьогодні не відповідає на перевірку. Що можна показати зараз: перевірка живості сервісу відповідає публічно, а сторінка стану робить live-зондування, без історії. Відсоток ми могли б написати будь-коли; це було б договірне зобов’язання, замасковане під вимірювання.

Чи можу я виставляти рахунок за споживання в леях, з фіскальним рахунком?

Конвертація з валюти здійснюється за офіційним курсом Національного банку, зчитаним з XML дня, із перериванням через п’ять секунд і резервним значенням у разі недоступності. Рахунок будується як фіскальний документ і проходить через цикл станів. Автоматичне надсилання до державної системи потребує сертифіката: доки він не встановлений, документи генеруються і залишаються в очікуванні, не відправляючись. Ми разом перевіряємо, в якому режимі система перебуває в день, коли ми починаємо, бо це налаштування сервера, а не коду.

Що ви бачите з мого трафіку?

Метадані споживання: ключ, модель, обсяг, вартість, момент. Шлюз лічить, а не архівує розмови; те, що зберігається зі змісту, — це рішення застосунку, який його генерує, а якщо застосунок наш, це прописується в контракті. Експорт персональних даних людини створює архів із тим, що пов’язане з нею, а з ключів експортує метадані, ніколи не матеріал токена.

Хто є постачальниками ззаду?

Це декларується письмово, з назвами, бо вони стають субобробниками для даних, що проходять через них. Є публічні сторінки для субобробників, угода про обробку та захист даних, перевірені сьогодні. Шлюз, який приховує постачальників від оператора даних, не вирішує проблему відповідності, а переносить її глибше.

Що відбувається, якщо шлюз падає?

Падають застосунки, що від нього залежать, включно з нашими — наша платформа асистентів пропускає розпізнавання голосу та синтез через той самий шлюз. Немає сенсу стверджувати інше: це компроміс єдиної точки входу, оплачений натомість контролем, окремими ключами та єдиним рахунком. Для критичних застосунків від початку обговорюється, що буде за його відсутності — деградована відповідь, черга або чиста помилка — бо це поведінка, яку треба проєктувати, а не сподіватися на неї.

На чому ґрунтуються твердження вище (14 джерел)
  1. Публічний каталог gate: 106 моделей, усі активні, на 2026-09-06T13:31:49Zhttps://longday.io/api/public/models · 2026-09-06
  2. Нуль моделей Anthropic у gate, всупереч власному READMEhttps://longday.io/api/public/models · 2026-09-06
  3. Гейт вимагає ключ; перевірка життя відповідає публічно, із заголовками безпекиhttps://api.megapromoting.com/health/liveliness (200) і /v1/models без заголовка (401) · 2026-09-06
  4. НЕ ПУБЛІКУЄТЬСЯ жодна цифра доступності; джерело, на яке посилаються власні матеріали, не відповідаєhttps://status.longday.io/ · 2026-09-06
  5. Публічні сторінки відповідності відповідаютьhttps://longday.io/ro/legal/sub-processors, /ro/dpa, /ro/gdpr, /ro/cum-gestionezi-cheile · 2026-09-06

9 з них — це код і файли з наших репозиторіїв. Ми не публікуємо їхні назви чи номери рядків: разом, на одній сторінці, це надто точно описало б, як побудовані системи, які належать не лише нам. Ми проходимо їх разом із вами, у репозиторії, за запитом — перевірка залишається можливою, просто вона відбувається в розмові.

Що вам хотілося б налагодити?

Розкажіть про свій процес. Разом визначимо, що варто збудувати, що можна підключити і як перевіримо результат.

Поговорімо