Експертиза · Доступ до моделей 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 генерується і зберігається, але не надсилається. Це реальний стан, і ми його пишемо, бо це різниця між «ми маємо фіскальну фактуру» та «ми маємо все необхідне, щоб її надіслати».