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ção | Rota | O que faz |
|---|---|---|
buscar_paginador_chave_ia | GET /chave_ia | Lista as chaves de IA paginadas |
criar_chave_ia | POST /chave_ia | Cadastra uma chave de API de uma IA |
buscar_auto_complete_chave_ia | GET /chave_ia/autocomplete | Lista básica de chaves de IA para seleção |
buscar_pelo_filtro_chave_ia | GET /chave_ia/filtro | Busca chaves de IA por filtro |
buscar_pelo_id_chave_ia | GET /chave_ia/{id} | Busca uma chave de IA pelo id |
atualizar_pelo_id_chave_ia | PATCH /chave_ia/{id} | Atualiza uma chave de IA pelo id |
deletar_pelo_id_chave_ia | DELETE /chave_ia/{id} | Exclui uma chave de IA pelo id |
buscar_creditos_chave_ia | GET /chave_ia/{id}/creditos | Consulta 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>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>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>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>>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>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>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>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>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;
}