termo_core 0.1.10 → 0.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai/rotas.d.ts +1 -1
- package/dist/ai/rotas.js +1 -1
- package/dist/ai/tipos.d.ts +7 -0
- package/package.json +1 -1
package/dist/ai/rotas.d.ts
CHANGED
|
@@ -243,7 +243,7 @@ export declare function chave_ia_buscar_catalogo(credencial_de_acesso: Credencia
|
|
|
243
243
|
/**
|
|
244
244
|
* Executa um pedido no gateway de IA
|
|
245
245
|
*
|
|
246
|
-
* Com token de usuário, exige a permissão `criar` da área `gateway`; com token de aplicativo (outro back-end, via `termo_core::CredencialDeAcesso::token_do_aplicativo()`), qualquer app válido do TermoAuth entra e a conversa nova grava o slug do app em `aplicativo`. Atende o pedido com as chaves de IA cadastradas, trocando de chave e de IA quando uma falha, até as regras da categoria (`/config_system_gateway`) mandarem parar. `categoria` é obrigatória. Nas categorias de entrada em texto, `texto` é obrigatório; nas de entrada em imagem, áudio ou vídeo, `arquivo` é obrigatório: `{ base64, tipo_mime }` (até 20 MB, aceita data URL) ou `{ url }` (baixada pelo TermoAI), e `texto` é a pergunta sobre o arquivo (sem ele vale uma pergunta padrão). `provedor` fixa uma IA que atenda a categoria (só ela, sem trocar de IA). `provedor_preferido` (um `provedor` de `GET /gateway/modelos`) tenta primeiro as chaves dessa IA e só troca para as outras, na ordem de sempre, quando ela falha ou não tem chave livre; sem ele, a escolha é a de sempre; com `provedor` junto, vale o `provedor`. `instrucao` é a instrução de sistema, `idioma` ajuda transcrição e fala, `voz` escolhe a voz da fala. `historico` (no máximo as 40 últimas mensagens com texto, `papel` `usuario` ou `assistente`) dá contexto; sem ele, com `conversa_id` (de uma conversa da mesma categoria), o contexto vem da própria conversa. A pergunta e a resposta são gravadas na conversa informada ou numa conversa nova de origem `api`, cujo id volta em `conversa_id`; os arquivos da pergunta e da resposta ficam no TermoBucket (privados, do app `termo-ai`). A resposta traz `texto` ou `arquivo` (base64 com o tipo), a IA, o modelo, o apelido da chave que atendeu, os tokens (quando a IA informa), as tentativas que falharam e a duração. Ferramentas (opcional, só em `texto_para_texto`): `ferramentas` lista até 128 funções (`nome` com até 64 letras, números, `_` ou `-`; `descricao`; `parametros` em JSON Schema) que a IA pode pedir para chamar; só entram as IAs que aceitam ferramentas (Gemini, Groq, Mistral, Cerebras, NVIDIA, Cohere, Z.ai e Ollama). Quando a IA quer uma ferramenta, a resposta traz `chamadas_de_ferramenta` (`id`, `nome`, `argumentos` em objeto e `assinatura`, que deve voltar igual) e, às vezes, `texto`. Quem chamou executa as ferramentas e pede de novo com o `historico` estendido: a mensagem `assistente` com as `chamadas_de_ferramenta` (e `texto`, vazio se não houver) e uma mensagem `ferramenta` por resultado, com `chamada_id` e o resultado em `texto`; quando o histórico termina num resultado, `texto` do pedido é opcional. Mensagens de ferramenta no histórico exigem `ferramentas` no pedido. A conversa gravada guarda as chamadas na mensagem do assistente, mas não os resultados.
|
|
246
|
+
* Com token de usuário, exige a permissão `criar` da área `gateway`; com token de aplicativo (outro back-end, via `termo_core::CredencialDeAcesso::token_do_aplicativo()`), qualquer app válido do TermoAuth entra e a conversa nova grava o slug do app em `aplicativo`. Atende o pedido com as chaves de IA cadastradas, trocando de chave e de IA quando uma falha, até as regras da categoria (`/config_system_gateway`) mandarem parar. `categoria` é obrigatória. Nas categorias de entrada em texto, `texto` é obrigatório; nas de entrada em imagem, áudio ou vídeo, `arquivo` é obrigatório: `{ base64, tipo_mime }` (até 20 MB, aceita data URL) ou `{ url }` (baixada pelo TermoAI), e `texto` é a pergunta sobre o arquivo (sem ele vale uma pergunta padrão). `provedor` fixa uma IA que atenda a categoria (só ela, sem trocar de IA). `provedor_preferido` (um `provedor` de `GET /gateway/modelos`) tenta primeiro as chaves dessa IA e só troca para as outras, na ordem de sempre, quando ela falha ou não tem chave livre; sem ele, a escolha é a de sempre; com `provedor` junto, vale o `provedor`. `instrucao` é a instrução de sistema, `idioma` ajuda transcrição e fala, `voz` escolhe a voz da fala. `historico` (no máximo as 40 últimas mensagens com texto, `papel` `usuario` ou `assistente`) dá contexto; sem ele, com `conversa_id` (de uma conversa da mesma categoria), o contexto vem da própria conversa. A pergunta e a resposta são gravadas na conversa informada ou numa conversa nova de origem `api`, cujo id volta em `conversa_id`; os arquivos da pergunta e da resposta ficam no TermoBucket (privados, do app `termo-ai`). A resposta traz `texto` ou `arquivo` (base64 com o tipo), a IA, o modelo, o apelido da chave que atendeu, os tokens (quando a IA informa), as tentativas que falharam e a duração. Ferramentas (opcional, só em `texto_para_texto`): `ferramentas` lista até 128 funções (`nome` com até 64 letras, números, `_` ou `-`; `descricao`; `parametros` em JSON Schema) que a IA pode pedir para chamar; só entram as IAs que aceitam ferramentas (Gemini, Groq, Mistral, Cerebras, NVIDIA, Cohere, Z.ai e Ollama). Quando a IA quer uma ferramenta, a resposta traz `chamadas_de_ferramenta` (`id`, `nome`, `argumentos` em objeto e `assinatura`, que deve voltar igual) e, às vezes, `texto`. Quem chamou executa as ferramentas e pede de novo com o `historico` estendido: a mensagem `assistente` com as `chamadas_de_ferramenta` (e `texto`, vazio se não houver) e uma mensagem `ferramenta` por resultado, com `chamada_id` e o resultado em `texto`; quando o histórico termina num resultado, `texto` do pedido é opcional. Mensagens de ferramenta no histórico exigem `ferramentas` no pedido. A conversa gravada guarda as chamadas na mensagem do assistente, mas não os resultados. `modelo` (até 200 caracteres, só junto de `provedor`) troca o modelo do catálogo por outro da mesma IA. Em `texto_para_imagem`, `referencias` (até 14 imagens no formato de `arquivo`, até 20 MB somadas) vão junto do texto, `proporcao` (`1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9` ou `21:9`) e `tamanho` (`1K`, `2K` ou `4K`) definem a imagem; em `texto_para_texto`, `esquema` (objeto JSON Schema, sem `ferramentas`) faz a resposta vir em `texto` como JSON nesse formato. Com qualquer um desses quatro, só entram as IAs que os entendem (hoje o Gemini), e a conversa gravada não guarda as referências. A resposta traz também `tokens_de_entrada` e `tokens_de_saida` separados, quando a IA informa.
|
|
247
247
|
*
|
|
248
248
|
* `POST /gateway`
|
|
249
249
|
*/
|
package/dist/ai/rotas.js
CHANGED
|
@@ -304,7 +304,7 @@ export function chave_ia_buscar_catalogo(credencial_de_acesso, opcoes_da_chamada
|
|
|
304
304
|
/**
|
|
305
305
|
* Executa um pedido no gateway de IA
|
|
306
306
|
*
|
|
307
|
-
* Com token de usuário, exige a permissão `criar` da área `gateway`; com token de aplicativo (outro back-end, via `termo_core::CredencialDeAcesso::token_do_aplicativo()`), qualquer app válido do TermoAuth entra e a conversa nova grava o slug do app em `aplicativo`. Atende o pedido com as chaves de IA cadastradas, trocando de chave e de IA quando uma falha, até as regras da categoria (`/config_system_gateway`) mandarem parar. `categoria` é obrigatória. Nas categorias de entrada em texto, `texto` é obrigatório; nas de entrada em imagem, áudio ou vídeo, `arquivo` é obrigatório: `{ base64, tipo_mime }` (até 20 MB, aceita data URL) ou `{ url }` (baixada pelo TermoAI), e `texto` é a pergunta sobre o arquivo (sem ele vale uma pergunta padrão). `provedor` fixa uma IA que atenda a categoria (só ela, sem trocar de IA). `provedor_preferido` (um `provedor` de `GET /gateway/modelos`) tenta primeiro as chaves dessa IA e só troca para as outras, na ordem de sempre, quando ela falha ou não tem chave livre; sem ele, a escolha é a de sempre; com `provedor` junto, vale o `provedor`. `instrucao` é a instrução de sistema, `idioma` ajuda transcrição e fala, `voz` escolhe a voz da fala. `historico` (no máximo as 40 últimas mensagens com texto, `papel` `usuario` ou `assistente`) dá contexto; sem ele, com `conversa_id` (de uma conversa da mesma categoria), o contexto vem da própria conversa. A pergunta e a resposta são gravadas na conversa informada ou numa conversa nova de origem `api`, cujo id volta em `conversa_id`; os arquivos da pergunta e da resposta ficam no TermoBucket (privados, do app `termo-ai`). A resposta traz `texto` ou `arquivo` (base64 com o tipo), a IA, o modelo, o apelido da chave que atendeu, os tokens (quando a IA informa), as tentativas que falharam e a duração. Ferramentas (opcional, só em `texto_para_texto`): `ferramentas` lista até 128 funções (`nome` com até 64 letras, números, `_` ou `-`; `descricao`; `parametros` em JSON Schema) que a IA pode pedir para chamar; só entram as IAs que aceitam ferramentas (Gemini, Groq, Mistral, Cerebras, NVIDIA, Cohere, Z.ai e Ollama). Quando a IA quer uma ferramenta, a resposta traz `chamadas_de_ferramenta` (`id`, `nome`, `argumentos` em objeto e `assinatura`, que deve voltar igual) e, às vezes, `texto`. Quem chamou executa as ferramentas e pede de novo com o `historico` estendido: a mensagem `assistente` com as `chamadas_de_ferramenta` (e `texto`, vazio se não houver) e uma mensagem `ferramenta` por resultado, com `chamada_id` e o resultado em `texto`; quando o histórico termina num resultado, `texto` do pedido é opcional. Mensagens de ferramenta no histórico exigem `ferramentas` no pedido. A conversa gravada guarda as chamadas na mensagem do assistente, mas não os resultados.
|
|
307
|
+
* Com token de usuário, exige a permissão `criar` da área `gateway`; com token de aplicativo (outro back-end, via `termo_core::CredencialDeAcesso::token_do_aplicativo()`), qualquer app válido do TermoAuth entra e a conversa nova grava o slug do app em `aplicativo`. Atende o pedido com as chaves de IA cadastradas, trocando de chave e de IA quando uma falha, até as regras da categoria (`/config_system_gateway`) mandarem parar. `categoria` é obrigatória. Nas categorias de entrada em texto, `texto` é obrigatório; nas de entrada em imagem, áudio ou vídeo, `arquivo` é obrigatório: `{ base64, tipo_mime }` (até 20 MB, aceita data URL) ou `{ url }` (baixada pelo TermoAI), e `texto` é a pergunta sobre o arquivo (sem ele vale uma pergunta padrão). `provedor` fixa uma IA que atenda a categoria (só ela, sem trocar de IA). `provedor_preferido` (um `provedor` de `GET /gateway/modelos`) tenta primeiro as chaves dessa IA e só troca para as outras, na ordem de sempre, quando ela falha ou não tem chave livre; sem ele, a escolha é a de sempre; com `provedor` junto, vale o `provedor`. `instrucao` é a instrução de sistema, `idioma` ajuda transcrição e fala, `voz` escolhe a voz da fala. `historico` (no máximo as 40 últimas mensagens com texto, `papel` `usuario` ou `assistente`) dá contexto; sem ele, com `conversa_id` (de uma conversa da mesma categoria), o contexto vem da própria conversa. A pergunta e a resposta são gravadas na conversa informada ou numa conversa nova de origem `api`, cujo id volta em `conversa_id`; os arquivos da pergunta e da resposta ficam no TermoBucket (privados, do app `termo-ai`). A resposta traz `texto` ou `arquivo` (base64 com o tipo), a IA, o modelo, o apelido da chave que atendeu, os tokens (quando a IA informa), as tentativas que falharam e a duração. Ferramentas (opcional, só em `texto_para_texto`): `ferramentas` lista até 128 funções (`nome` com até 64 letras, números, `_` ou `-`; `descricao`; `parametros` em JSON Schema) que a IA pode pedir para chamar; só entram as IAs que aceitam ferramentas (Gemini, Groq, Mistral, Cerebras, NVIDIA, Cohere, Z.ai e Ollama). Quando a IA quer uma ferramenta, a resposta traz `chamadas_de_ferramenta` (`id`, `nome`, `argumentos` em objeto e `assinatura`, que deve voltar igual) e, às vezes, `texto`. Quem chamou executa as ferramentas e pede de novo com o `historico` estendido: a mensagem `assistente` com as `chamadas_de_ferramenta` (e `texto`, vazio se não houver) e uma mensagem `ferramenta` por resultado, com `chamada_id` e o resultado em `texto`; quando o histórico termina num resultado, `texto` do pedido é opcional. Mensagens de ferramenta no histórico exigem `ferramentas` no pedido. A conversa gravada guarda as chamadas na mensagem do assistente, mas não os resultados. `modelo` (até 200 caracteres, só junto de `provedor`) troca o modelo do catálogo por outro da mesma IA. Em `texto_para_imagem`, `referencias` (até 14 imagens no formato de `arquivo`, até 20 MB somadas) vão junto do texto, `proporcao` (`1:1`, `2:3`, `3:2`, `3:4`, `4:3`, `4:5`, `5:4`, `9:16`, `16:9` ou `21:9`) e `tamanho` (`1K`, `2K` ou `4K`) definem a imagem; em `texto_para_texto`, `esquema` (objeto JSON Schema, sem `ferramentas`) faz a resposta vir em `texto` como JSON nesse formato. Com qualquer um desses quatro, só entram as IAs que os entendem (hoje o Gemini), e a conversa gravada não guarda as referências. A resposta traz também `tokens_de_entrada` e `tokens_de_saida` separados, quando a IA informa.
|
|
308
308
|
*
|
|
309
309
|
* `POST /gateway`
|
|
310
310
|
*/
|
package/dist/ai/tipos.d.ts
CHANGED
|
@@ -364,12 +364,17 @@ export interface PedidoGateway {
|
|
|
364
364
|
arquivo?: ArquivoDoPedido | null;
|
|
365
365
|
categoria: string;
|
|
366
366
|
conversa_id?: string | null;
|
|
367
|
+
esquema?: unknown;
|
|
367
368
|
ferramentas?: Array<Ferramenta> | null;
|
|
368
369
|
historico?: Array<MensagemDoHistorico> | null;
|
|
369
370
|
idioma?: string | null;
|
|
370
371
|
instrucao?: string | null;
|
|
372
|
+
modelo?: string | null;
|
|
373
|
+
proporcao?: string | null;
|
|
371
374
|
provedor?: string | null;
|
|
372
375
|
provedor_preferido?: string | null;
|
|
376
|
+
referencias?: Array<ArquivoDoPedido> | null;
|
|
377
|
+
tamanho?: string | null;
|
|
373
378
|
texto?: string | null;
|
|
374
379
|
voz?: string | null;
|
|
375
380
|
}
|
|
@@ -426,6 +431,8 @@ export interface RespostaDoGateway {
|
|
|
426
431
|
tentativas: Array<TentativaDaMensagem>;
|
|
427
432
|
texto?: string | null;
|
|
428
433
|
tokens?: number | null;
|
|
434
|
+
tokens_de_entrada?: number | null;
|
|
435
|
+
tokens_de_saida?: number | null;
|
|
429
436
|
}
|
|
430
437
|
export interface TentativaDaMensagem {
|
|
431
438
|
chave: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "termo_core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.11",
|
|
4
4
|
"description": "Todos os clientes da Termotubos num pacote só: um módulo por serviço e cada rota da API como uma função com fetch, com o endereço resolvido pelo ambiente atual.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "TI Termotubos <ti@termotubos.com.br>",
|