Especialização · Acesso a modelos AI
Um único ponto de entrada para os modelos de IA, com chaves por equipa, limites e fatura local.
Colocamos entre as aplicações da empresa e os fornecedores de modelos um único ponto de entrada, compatível com a interface OpenAI. A partir daí são emitidas chaves separadas por projeto, com limite de despesa, lista de modelos permitidos e lista de endereços IP, e o consumo é visível por chave.
Já construídoO gate está em funcionamento e pode ser verificado de fora hoje, sem terem de acreditar na nossa palavra: o catálogo público de modelos responde 200 e lista 106 modelos marcados como ativos, e a consulta de modelos sem chave devolve 401. Por baixo dele existem duas implementações próprias: o serviço de faturação e administração (98 ficheiros TypeScript) que emite as chaves, sincroniza os limites com o gate e mantém os registos, e a nossa plataforma de assistentes, que põe em produção o reconhecimento de voz e a síntese pela mesma gate, não diretamente ao fornecedor. As reservas, ditas aqui e não no rodapé: o catálogo muda de uma hora para a outra, por isso qualquer número é escrito com a data ao lado; não existe qualquer modelo Anthropic no gate hoje, embora o nosso próprio README prometa outra coisa; e o envio automático da fatura para o sistema do Estado continua em regime de teste até à instalação do certificado.
O problema aparece pela segunda vez, não pela primeira. A primeira integração com um fornecedor de modelos é simples: uma chave, uma biblioteca, pronto. A quinta aplicação, a terceira equipa e a segunda fatura em moeda estrangeira são o momento em que ninguém já consegue responder a três perguntas banais — quem consome, quanto, e o que acontece se um script sair do controlo numa noite de sábado. A gate resolve exatamente isso: as aplicações já não falam com os fornecedores, falam com um único ponto de entrada que tem a mesma interface que a API da OpenAI, portanto, na maioria das bibliotecas, você muda o endereço base e a chave, não o código.
O que você pode verificar sozinho, neste momento, sem conta: o catálogo público de modelos da gate responde e diz o que está lá dentro. Na verificação de hoje havia 106 modelos, todos marcados como ativos — 77 modelos de texto, dos quais 48 declaram capacidades de raciocínio, 10 de áudio, 7 de imagem, 7 em tempo real, 3 de vetorização e 2 de vídeo. A mesma verificação feita por um colega uma hora e meia antes devolvia 107. Por isso o número é sempre escrito com a hora ao lado, e no site deve ser lido do endpoint, não digitado manualmente.
O controlo de custo não é um painel, é um travão. Uma chave tem teto de gasto, período de teto à escolha entre quatro, lista de modelos permitidos, lista de endereços IP aceites — até vinte, IPv4, IPv6 ou blocos — e uma bandeira de bloqueio. Quando um teto é ultrapassado, a chave é bloqueada automaticamente e o motivo é escrito nela, para que a interface possa dizer porquê, em vez de mostrar um estado silencioso. Existe também uma correção que poucos fazem: os modelos que “pensam” antes de responder consomem no fornecedor mais do que a gate vê, por isso o teto bruto enviado mais abaixo é dividido por um fator de raciocínio calculado como mediana dos últimos trinta dias do utilizador, limitado entre um e vinte. Sem esta correção, um teto de gasto seria decorativo exatamente nos modelos caros.
A parte local. O câmbio é lido do ficheiro XML oficial do Banco Nacional da Moldávia para o dia corrente, com timeout de cinco segundos e um valor de reserva da configuração quando a fonte não responde — uma gate não tem o direito de parar porque um site de câmbio esteja indisponível. A fatura fiscal é construída como XML e armazenada, com um ciclo de estados de rascunho para aceite ou rejeitada. O envio propriamente dito para o sistema do Estado é feito com certificado; enquanto o certificado não estiver instalado, o serviço fica em modo de teste: o XML é gerado e guardado, mas não é enviado. Esse é o estado real e nós o escrevemos, porque é a diferença entre “temos fatura fiscal” e “temos tudo o que é necessário para a enviar”.