Experiencia · Acceso a modelos AI
Un único punto de entrada a los modelos AI, con claves por equipo, límites y facturación local.
Ponemos entre las aplicaciones de la empresa y los proveedores de modelos un único punto de entrada, compatible con la interfaz de OpenAI. Desde ahí se emiten claves separadas por proyecto, con tope de gasto, lista de modelos permitidos y lista de direcciones IP, y el consumo se ve por clave.
Ya construidoPoarta 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.
El problema aparece por segunda vez, no la primera. La primera integración con un proveedor de modelos es sencilla: una clave, una biblioteca, listo. La quinta aplicación, el tercer equipo y la segunda factura en moneda extranjera son el momento en que nadie ya puede responder a tres preguntas banales: quién consume, cuánto, y qué pasa si un script se descontrola en una noche de sábado. La puerta resuelve exactamente eso: las aplicaciones ya no hablan con los proveedores, hablan con un único punto de entrada que tiene la misma interfaz que la API de OpenAI, así que en la mayoría de las bibliotecas cambias la URL base y la clave, no el código.
Lo que puedes verificar tú mismo, ahora mismo, sin cuenta: el catálogo público de modelos de la puerta responde y dice qué tiene dentro. En la verificación de hoy había 106 modelos, todos marcados como activos — 77 modelos de texto, de los cuales 48 declaran capacidades de razonamiento, 10 de audio, 7 de imagen, 7 en tiempo real, 3 de vectorización y 2 de video. La misma verificación hecha por un colega una hora y media antes devolvía 107. Por eso la cifra se escribe siempre con la hora al lado, y en el sitio debería leerse desde el endpoint, no teclearse a mano.
El control del costo no es un panel, es un freno. Una clave tiene un tope de gasto, un período de tope a elegir entre cuatro, una lista de modelos permitidos, una lista de direcciones IP aceptadas — hasta veinte, IPv4, IPv6 o bloques — y un indicador de bloqueo. Cuando se supera un tope, la clave se bloquea automáticamente y el motivo se escribe en ella, para que la interfaz pueda decir por qué, en lugar de mostrar un estado mudo. También existe una corrección que pocos hacen: los modelos que “piensan” antes de responder le cuestan al proveedor más de lo que ve la puerta, así que el tope bruto enviado más abajo se divide por un factor de razonamiento calculado como mediana sobre los últimos treinta días del usuario, limitado entre uno y veinte. Sin esa corrección, un tope de gasto sería decorativo justamente en los modelos caros.
La parte local. El tipo de cambio se lee del archivo XML oficial del Banco Nacional de Moldavia para el día actual, con timeout de cinco segundos y un valor de reserva de la configuración cuando la fuente no responde — una puerta no tiene derecho a detenerse porque un sitio de tipo de cambio no esté disponible. La factura fiscal se construye como XML y se almacena, con un ciclo de estados de borrador a aceptada o rechazada. El envío propiamente dicho al sistema estatal se hace con certificado; mientras el certificado no esté instalado, el servicio permanece en modo de prueba: el XML se genera y se guarda, pero no se envía. Ese es el estado real y lo escribimos, porque es la diferencia entre «tenemos factura fiscal» y «tenemos todo lo necesario para enviarla».