Перейти к основному содержимому
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 или блоки — и флаг блокировки. Когда лимит превышен, ключ автоматически блокируется, а причина записывается на нём, чтобы интерфейс мог сказать почему, вместо того чтобы показывать немое состояние. Есть и коррекция, которую мало кто делает: модели, которые «думают» перед тем, как ответить, у поставщика расходуют больше, чем видит портал, поэтому брутто-лимит, передаваемый ниже, делится на коэффициент рассуждения, вычисленный как медиана за последние тридцать дней пользователя, ограниченная между одним и двадцатью. Без этой коррекции лимит расходов был бы декоративным именно на дорогих моделях.

Локальная часть. Валютный курс читается из официального XML-файла Национального банка Молдовы за текущий день, с тайм-аутом пять секунд и резервным значением из конфигурации, когда источник не отвечает — шлюз не имеет права останавливаться из-за того, что сайт с курсами валют недоступен. Налоговая накладная строится как XML и хранится, с циклом состояний от черновика до принятой или отклонённой. Непосредственная отправка в государственную систему выполняется с сертификатом; пока сертификат не установлен, сервис остаётся в тестовом режиме: XML генерируется и сохраняется, но не отправляется. Это реальное состояние, и мы его пишем, потому что это разница между «у нас есть налоговая накладная» и «у нас есть всё необходимое, чтобы отправить её».

Что входит

Работа, по составляющим

Точка входа, совместимая с интерфейсом OpenAI

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

Отдельные ключи по проектам, с лимитом и периодом

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

Автоматическая блокировка при превышении, с причиной, записанной на ключе

Когда лимит превышен, ключ блокируется, и на нём остаются момент применения, начало периода и причина. Комментарий в коде объясняет, почему это было добавлено: чтобы интерфейс мог показать, почему ключ заблокирован, вместо немого состояния, которое никто не может объяснить.

Ограничение по 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.

Данные

К чему прикасаемся, где оно лежит и сколько остаётся

Вопросы, которые задаёт всякий, у кого есть ответственный за защиту данных, — заданы здесь раньше, чем их задаст он.

Что проходит через шлюз и что остаётся
Проходят запросы к моделям и их ответы. У нас остаются учёт потребления по ключу и по дню, события использования и журнал аудита. Содержимое разговоров сохраняется только там, где его сохраняет продукт, который их создаёт; сам шлюз — это точка прохода с учётом, а не архив разговоров.
Ключи и то, что никогда не экспортируется
Ключ хранится как отпечаток, а экспорт персональных данных включает метаданные ключей — alias, лимит, период, список моделей, состояние — и явно исключает материал токена. Ограничение записано как правило в коде, с комментарием, а не оставлено на усмотрение того, кто пишет следующий экспорт.
Поставщики на заднем плане являются субпроцессорами и декларируются
Шлюз не устраняет поставщиков, он скрывает их за одним адресом. Кто они, где обрабатывают и на каких условиях — на этот вопрос должен быть письменный ответ; существуют публичные страницы, посвящённые субпроцессорам, соглашению о обработке и защите данных, и все три доступны сегодня.
Журнал аудита
Только добавление, с 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 из них — код и файлы из наших репозиториев. Мы не публикуем их название и строку: вместе, на одной странице, они слишком точно описали бы, как устроены системы, которые принадлежат не только нам. Мы разбираем их вместе с тобой, в репозитории, по запросу — проверка остаётся возможной, просто она проходит в разговоре.

Что вы хотели бы наладить?

Расскажите о своём процессе. Вместе определим, что стоит построить, что можно подключить и как проверим результат.

Давайте обсудим