Chave IA

8 funções do TermoAI para chave ia.

// npm install termo_core --save-exact
import * as ai from "termo_core/ai";
// ou: import { ai } from "termo_core";
FunçãoRotaO que faz
buscar_paginador_chave_iaGET /chave_iaLista as chaves de IA paginadas
criar_chave_iaPOST /chave_iaCadastra uma chave de API de uma IA
buscar_auto_complete_chave_iaGET /chave_ia/autocompleteLista básica de chaves de IA para seleção
buscar_pelo_filtro_chave_iaGET /chave_ia/filtroBusca chaves de IA por filtro
buscar_pelo_id_chave_iaGET /chave_ia/{id}Busca uma chave de IA pelo id
atualizar_pelo_id_chave_iaPATCH /chave_ia/{id}Atualiza uma chave de IA pelo id
deletar_pelo_id_chave_iaDELETE /chave_ia/{id}Exclui uma chave de IA pelo id
buscar_creditos_chave_iaGET /chave_ia/{id}/creditosConsulta o saldo da chave na própria IA

buscar_paginador_chave_ia

GET/chave_ia Exige credencial

Lista as chaves de IA paginadas

Exige qualquer permissão da área gateway (qualquer ação liberada na área já libera a leitura). Lista as chaves não excluídas por prioridade e depois pela ordem de cadastro. pagina começa em 1 (padrão 1) e tamanho tem padrão 10, sem máximo; valores menores que 1 viram 1. total é a quantidade de chaves não excluídas.

function buscar_paginador_chave_ia(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarPaginadorChaveIa = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaChaveIa>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_paginador_chave_ia } from "termo_core/ai";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_paginador_chave_ia(credencial_de_acesso, { pagina: 1 });

Argumentos

Nome

Tipo

Retorno: Promise<tipos.PaginaChaveIa> · Rust: Result<tipos::PaginaChaveIa, ErroAoChamarServico> · veja PaginaChaveIa.

criar_chave_ia

POST/chave_ia Exige credencial

Cadastra uma chave de API de uma IA

Exige a permissão criar da área gateway. Cadastra a chave de uma IA do catálogo, que o gateway passa a usar. provedor é obrigatório (gemini, groq, openrouter, mistral, cerebras, cloudflare, huggingface, nvidia, cohere, zai, ollama, deepseek ou openai); apelido é obrigatório (até 80 caracteres); chave é obrigatória (até 500 caracteres, sem espaços) e única. conta_id vai até 64 caracteres e é obrigatório para cloudflare. limites (opcional, cada um de 1 a 100.000.000 requisições ou de 1 a 1.000.000.000.000 tokens por minuto, hora, dia e mês) faz o gateway pular a chave quando estoura. fuso_da_cota (UTC, America/Los_Angeles ou America/Sao_Paulo) define quando o dia e o mês viram; o padrão é o da IA. prioridade vai de 1 a 999 (padrão 100): o gateway tenta primeiro a menor. gratuita (padrão false) marca a chave como free: o custo de cada uso (tokens de entrada e de saída × preço do modelo em preco_modelo) conta como gasto numa chave paga e como economia numa gratuita. deepseek e openai só têm chave paga: gratuita = true nelas responde 400. A resposta nunca traz a chave, só chave_mascarada.

function criar_chave_ia(
  credencial_de_acesso: CredencialDeAcesso,
  corpo_da_requisicao: tipos.ChaveIaCriar,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.ChaveIa>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { criar_chave_ia } from "termo_core/ai";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await criar_chave_ia(credencial_de_acesso, corpo_da_requisicao);

Argumentos

Nome

Tipo

Retorno: Promise<tipos.ChaveIa> · Rust: Result<tipos::ChaveIa, ErroAoChamarServico> · veja ChaveIa.

buscar_auto_complete_chave_ia

GET/chave_ia/autocomplete Exige credencial

Lista básica de chaves de IA para seleção

Exige qualquer permissão da área gateway (qualquer ação liberada na área já libera a leitura). Devolve só id, apelido e IA, em ordem alfabética do apelido, sem as excluídas. busca procura o trecho no apelido (sem diferenciar maiúsculas) ou no id da IA. pagina começa em 1 (padrão 1) e tamanho tem padrão 10.

function buscar_auto_complete_chave_ia(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarAutoCompleteChaveIa = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.PaginaChaveIaAutoComplete>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_auto_complete_chave_ia } from "termo_core/ai";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_auto_complete_chave_ia(credencial_de_acesso, { busca: "..." });

Argumentos

Nome

Tipo

Retorno: Promise<tipos.PaginaChaveIaAutoComplete> · Rust: Result<tipos::PaginaChaveIaAutoComplete, ErroAoChamarServico> · veja PaginaChaveIaAutoComplete.

buscar_pelo_filtro_chave_ia

GET/chave_ia/filtro Exige credencial

Busca chaves de IA por filtro

Exige qualquer permissão da área gateway (qualquer ação liberada na área já libera a leitura). Devolve todas as chaves não excluídas que casam com o filtro, sem paginação, por prioridade e depois pela ordem de cadastro. provedor precisa ser igual ao id da IA (por exemplo gemini); apelido procura o trecho no apelido, sem diferenciar maiúsculas; ativo filtra pela situação.

function buscar_pelo_filtro_chave_ia(
  credencial_de_acesso: CredencialDeAcesso,
  parametros: ParametrosDeBuscarPeloFiltroChaveIa = {},
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<Array<tipos.ChaveIa>>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_pelo_filtro_chave_ia } from "termo_core/ai";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_pelo_filtro_chave_ia(credencial_de_acesso, { provedor: "..." });

Argumentos

Nome

Tipo

Retorno: Promise<Array<tipos.ChaveIa>> · Rust: Result<Vec<tipos::ChaveIa>, ErroAoChamarServico>

buscar_pelo_id_chave_ia

GET/chave_ia/{id} Exige credencial

Busca uma chave de IA pelo id

Exige qualquer permissão da área gateway (qualquer ação liberada na área já libera a leitura). Devolve a chave com a chave de API mascarada (só os últimos caracteres), os limites, o consumo na janela atual de minuto, hora, dia e mês, libera_em (quando volta a ter cota, se algum limite estourou), os bloqueios ainda vigentes por categoria (pausas depois de falha, com a data em que acabam), o total de usos e o último erro. Chave excluída não é encontrada.

function buscar_pelo_id_chave_ia(
  credencial_de_acesso: CredencialDeAcesso,
  id: string,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.ChaveIa>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_pelo_id_chave_ia } from "termo_core/ai";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_pelo_id_chave_ia(credencial_de_acesso, id);

Argumentos

Nome

Tipo

Retorno: Promise<tipos.ChaveIa> · Rust: Result<tipos::ChaveIa, ErroAoChamarServico> · veja ChaveIa.

atualizar_pelo_id_chave_ia

PATCH/chave_ia/{id} Exige credencial

Atualiza uma chave de IA pelo id

Exige a permissão editar da área gateway. Atualização parcial: só os campos enviados mudam, nas mesmas regras do cadastro; a IA (provedor) não muda. chave vazia mantém a atual; uma chave nova limpa os bloqueios e o último erro. conta_id vazio apaga o valor. limites, quando enviado, troca os oito limites de uma vez (o que faltar fica sem limite). ativo: false tira a chave do gateway; reativar limpa os bloqueios. Trocar gratuita só vale para os usos seguintes: o histórico guarda o tipo e o custo da hora.

function atualizar_pelo_id_chave_ia(
  credencial_de_acesso: CredencialDeAcesso,
  id: string,
  corpo_da_requisicao: tipos.ChaveIaAtualizar,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.ChaveIa>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { atualizar_pelo_id_chave_ia } from "termo_core/ai";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await atualizar_pelo_id_chave_ia(credencial_de_acesso, id, corpo_da_requisicao);

Argumentos

Nome

Tipo

Retorno: Promise<tipos.ChaveIa> · Rust: Result<tipos::ChaveIa, ErroAoChamarServico> · veja ChaveIa.

deletar_pelo_id_chave_ia

DELETE/chave_ia/{id} Exige credencial

Exclui uma chave de IA pelo id

Exige a permissão deletar da área gateway. Exclusão lógica: a chave sai das leituras e o gateway deixa de usá-la. Excluir de novo responde 404.

function deletar_pelo_id_chave_ia(
  credencial_de_acesso: CredencialDeAcesso,
  id: string,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<void>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { deletar_pelo_id_chave_ia } from "termo_core/ai";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
await deletar_pelo_id_chave_ia(credencial_de_acesso, id);

Argumentos

Nome

Tipo

Retorno: Promise<void> · Rust: Result<(), ErroAoChamarServico> · sem corpo na resposta.

buscar_creditos_chave_ia

GET/chave_ia/{id}/creditos Exige credencial

Consulta o saldo da chave na própria IA

Exige qualquer permissão da área gateway (qualquer ação liberada na área já libera a leitura). Pergunta à IA dona da chave quanto ainda resta: restantes, limite (quando a IA informa) e unidade (dolares ou requisicoes_hoje). Responde null quando a IA não informa saldo. Em groq e cerebras a consulta gasta 1 requisição do modelo que o gateway usa.

function buscar_creditos_chave_ia(
  credencial_de_acesso: CredencialDeAcesso,
  id: string,
  opcoes_da_chamada?: OpcoesDaChamada,
): Promise<tipos.Creditos | null>
Exemplo
import { CredencialDeAcesso } from "termo_core";
import { buscar_creditos_chave_ia } from "termo_core/ai";

const credencial_de_acesso = CredencialDeAcesso.token_do_usuario_logado(token_do_usuario);
const resposta = await buscar_creditos_chave_ia(credencial_de_acesso, id);

Argumentos

Nome

Tipo

Retorno: Promise<tipos.Creditos | null> · Rust: Result<Option<tipos::Creditos>, ErroAoChamarServico> · veja Creditos.

Tipos

Tipos usados pelas funções desta página. O nome é o mesmo nos dois pacotes.

ChaveIa

import type { ChaveIa } from "termo_core/ai";

export interface ChaveIa {
  apelido: string;
  ativo: boolean;
  atualizado_em: string;
  bloqueios: Record<string, string>;
  chave_mascarada: string;
  consumo: Consumo;
  conta_id?: string | null;
  criado_em: string;
  fuso_da_cota: string;
  gratuita: boolean;
  id: string;
  libera_em?: string | null;
  limites: Limites;
  prioridade: number;
  provedor: string;
  ultimo_erro?: string | null;
  ultimo_erro_em?: string | null;
  ultimo_uso_em?: string | null;
  usos_total: number;
}

ChaveIaAtualizar

import type { ChaveIaAtualizar } from "termo_core/ai";

export interface ChaveIaAtualizar {
  apelido?: string | null;
  ativo?: boolean | null;
  chave?: string | null;
  conta_id?: string | null;
  fuso_da_cota?: string | null;
  gratuita?: boolean | null;
  limites?: Limites | null;
  prioridade?: number | null;
}

ChaveIaCriar

import type { ChaveIaCriar } from "termo_core/ai";

export interface ChaveIaCriar {
  apelido: string;
  chave: string;
  conta_id?: string | null;
  fuso_da_cota?: string | null;
  gratuita?: boolean;
  limites?: Limites;
  prioridade?: number | null;
  provedor: string;
}

Consumo

import type { Consumo } from "termo_core/ai";

export interface Consumo {
  requisicoes_dia: number;
  requisicoes_hora: number;
  requisicoes_mes: number;
  requisicoes_minuto: number;
  tokens_dia: number;
  tokens_hora: number;
  tokens_mes: number;
  tokens_minuto: number;
}

Creditos

import type { Creditos } from "termo_core/ai";

export interface Creditos {
  limite?: number | null;
  restantes: number;
  unidade: string;
}

Limites

import type { Limites } from "termo_core/ai";

export interface Limites {
  requisicoes_dia?: number | null;
  requisicoes_hora?: number | null;
  requisicoes_mes?: number | null;
  requisicoes_minuto?: number | null;
  tokens_dia?: number | null;
  tokens_hora?: number | null;
  tokens_mes?: number | null;
  tokens_minuto?: number | null;
}

PaginaChaveIa

import type { PaginaChaveIa } from "termo_core/ai";

export interface PaginaChaveIa {
  itens: Array<PaginaChaveIaItensItem>;
  pagina: number;
  tamanho: number;
  total: number;
}

PaginaChaveIaAutoComplete

import type { PaginaChaveIaAutoComplete } from "termo_core/ai";

export interface PaginaChaveIaAutoComplete {
  itens: Array<PaginaChaveIaAutoCompleteItensItem>;
  pagina: number;
  tamanho: number;
  total: number;
}

PaginaChaveIaAutoCompleteItensItem

import type { PaginaChaveIaAutoCompleteItensItem } from "termo_core/ai";

export interface PaginaChaveIaAutoCompleteItensItem {
  apelido: string;
  id: string;
  provedor: string;
}

PaginaChaveIaItensItem

import type { PaginaChaveIaItensItem } from "termo_core/ai";

export interface PaginaChaveIaItensItem {
  apelido: string;
  ativo: boolean;
  atualizado_em: string;
  bloqueios: Record<string, string>;
  chave_mascarada: string;
  consumo: Consumo;
  conta_id?: string | null;
  criado_em: string;
  fuso_da_cota: string;
  gratuita: boolean;
  id: string;
  libera_em?: string | null;
  limites: Limites;
  prioridade: number;
  provedor: string;
  ultimo_erro?: string | null;
  ultimo_erro_em?: string | null;
  ultimo_uso_em?: string | null;
  usos_total: number;
}

Nesta página