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

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

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

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

Вже збудованоPoarta rulează și se poate verifica din afară azi, fără să ne credeți pe cuvânt: catalogul public de modele răspunde 200 și listează 106 modele marcate active, iar interogarea de modele fără cheie întoarce 401. Sub ea sunt două implementări proprii: serviciul de facturare și administrare (98 de fișiere TypeScript) care emite cheile, sincronizează plafoanele cu poarta și ține registrele, și platforma noastră de asistenți, care își trece în producție recunoașterea vocii și sinteza prin aceeași poartă, nu direct la furnizor. Rezervele, spuse aici și nu la subsol: catalogul se schimbă de la o oră la alta, deci orice cifră se scrie cu data lângă ea; nu există niciun model Anthropic în poartă azi, deși propriul nostru README promite altceva; iar trimiterea automată a facturii în sistemul de stat rămâne în regim de probă până la instalarea certificatului.

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

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

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

DocumenteConversațiiSurseSintezăAcțiuneEchipăContexteazăSurse autorizate. Acțiuni revizuite.
În mijloc, un singur nod: poarta. În stânga, aplicațiile companiei, fiecare cu propria cheie — plafon, perioadă, modele permise, adrese acceptate. În dreapta, furnizorii de modele, care rămân vizibili și numiți, pentru că devin subprocesatori. Sub nodul central, cele două registre care nu se amestecă: consumul pe cheie și jurnalul de audit.

Дані

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

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

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

Випадок

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

Ситуація

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

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

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

Що вийшло

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

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

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

Питання

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

На чому ґрунтуються твердження вище (14 джерел)
  1. Catalogul public al porții: 106 modele, toate active, la 2026-09-06T13:31:49Zhttps://longday.io/api/public/models · 2026-09-06
  2. Zero modele Anthropic în poartă, contrar propriului READMEhttps://longday.io/api/public/models · 2026-09-06
  3. Poarta cere cheie; verificarea de viață răspunde public, cu antete de securitatehttps://api.megapromoting.com/health/liveliness (200) și /v1/models fără antet (401) · 2026-09-06
  4. NU SE PUBLICĂ nicio cifră de disponibilitate; sursa citată de propriile materiale nu răspundehttps://status.longday.io/ · 2026-09-06
  5. Paginile publice de conformitate răspundhttps://longday.io/ro/legal/sub-processors, /ro/dpa, /ro/gdpr, /ro/cum-gestionezi-cheile · 2026-09-06

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

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

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

Поговорімо