@mindhousebr/siaf
v1.0.2
Published
SIAF Evolution CLI - Gerenciamento de agentes IA e RAG
Readme
SIAF Evolution CLI
Interface de linha de comando para o SIAF Evolution AI Core — agentes de IA especializados em tributos e notas fiscais brasileiras, com base de conhecimento RAG.
A CLI conecta-se à API do SIAF para invocar agentes fiscais (classificação NCM, cálculo de tributos, validação de NF-e, consultoria legal) e gerenciar coleções de documentos RAG (ingestão, busca semântica e perguntas com IA).
Instalação
npm install -g @mindhousebr/siafRequer Node.js >= 20.
Após a instalação, o comando disponível no terminal é siaf:
siaf --version
siaf helpInício rápido
# 1. Autenticar (informe a URL da API e sua API Key)
siaf login
# 2. Listar agentes disponíveis
siaf agents
# 3. Invocar um agente
siaf invoke ncm-classifier "parafuso de aço inox M8"
# 4. Fazer uma pergunta usando a base de conhecimento
siaf ask col-ncm "qual o ncm de prego"Autenticação
A autenticação é feita por API Key. As credenciais ficam salvas em ~/.siafrc.
| Comando | Descrição |
|---------|-----------|
| siaf login | Autentica com a API. Pergunta a URL da API (padrão http://localhost:3000) e a API Key. |
| siaf logout | Remove as credenciais salvas. |
| siaf whoami | Mostra a sessão atual (URL e tenant autenticado). |
siaf login
# URL da API: http://localhost:3000
# API Key: ********************Agentes de IA
| Comando | Descrição |
|---------|-----------|
| siaf agents | Lista os agentes ativos. |
| siaf invoke <slug> "<input>" | Invoca um agente com um texto de entrada. |
Opções de invoke:
| Opção | Descrição |
|-------|-----------|
| --model <model> | Modelo LLM a usar (sobrescreve o padrão do agente). |
| --temperature <temp> | Temperatura 0-1 (sobrescreve o padrão do agente). |
siaf invoke ncm-classifier "parafuso de aço inox M8"
siaf invoke tax-calculator "venda interestadual SP→RJ, NCM 7318.15.00" --temperature 0RAG — Base de Conhecimento
Gerenciamento de coleções, documentos e busca semântica.
| Comando | Descrição |
|---------|-----------|
| siaf collections | Lista as coleções RAG. |
| siaf ingest <coleção> <arquivo> | Ingere um documento em uma coleção. |
| siaf search <coleção> "<query>" | Busca semântica (similaridade vetorial). |
| siaf ask <coleção> "<query>" | Pergunta com IA: busca RAG + resposta do LLM. |
| siaf chunk <id> | Mostra o conteúdo de um chunk pelo ID. |
| siaf docs <coleção> | Lista os documentos de uma coleção. |
| siaf docs:clear <coleção> | Remove todos os documentos de uma coleção. |
| siaf docs:delete <id> | Remove um documento específico. |
Opções de ingest:
| Opção | Descrição |
|-------|-----------|
| -t, --title <title> | Título do documento. |
| -s, --source <source> | Fonte/origem do documento. |
Opções de search e ask:
| Opção | Padrão | Descrição |
|-------|--------|-----------|
| -k, --topK <number> | 5 | Número máximo de resultados / chunks de contexto. |
| -m, --minScore <number> | 0.3 | Score mínimo de similaridade. |
siaf ingest col-ncm ./tabela-ncm.txt --title "Tabela NCM 2025"
siaf search col-ncm "alíquota icms são paulo" -k 10
siaf ask col-ncm "qual o ncm de prego" --minScore 0.5
siaf docs col-ncm
siaf chunk ckxyz123Sistema
| Comando | Descrição |
|---------|-----------|
| siaf status | Verifica o status/saúde da API. |
| siaf --version | Mostra a versão da CLI. |
| siaf help | Mostra a ajuda completa. |
Arquivo de configuração
As credenciais são armazenadas em ~/.siafrc (JSON):
{
"apiUrl": "http://localhost:3000",
"apiKey": "sk-...",
"tenant": "Autenticado"
}Use siaf logout para removê-lo.
Variáveis de ambiente
A CLI aceita variáveis de ambiente para ajustar os timeouts de rede — úteis ao ingerir arquivos grandes, cujo processamento de embeddings no servidor pode demorar vários minutos.
| Variável | Padrão | Descrição |
|----------|--------|-----------|
| SIAF_UPLOAD_TIMEOUT_MS | 600000 (10 min) | Timeout do upload em siaf ingest. |
| SIAF_REQUEST_TIMEOUT_MS | 120000 (2 min) | Timeout das demais requisições (GET/POST/DELETE). |
# Aumentar o timeout do ingest para 20 minutos
SIAF_UPLOAD_TIMEOUT_MS=1200000 siaf ingest col-ncm ./arquivo-gigante.jsonNo Windows PowerShell:
$env:SIAF_UPLOAD_TIMEOUT_MS = "1200000"; siaf ingest col-ncm .\arquivo-gigante.jsonLicença
UNLICENSED — uso interno Mindhouse / SIAF Evolution.
