Skip to content

Ai Mode Beta

ArsNova edited this page Oct 19, 2025 · 7 revisions

🧠 Inteligência Artificial (IA)

O módulo de IA do Mwsm permite que o sistema interaja automaticamente com usuários, aprenda com perguntas anteriores e utilize modelos de linguagem (LLMs) via OpenRouter ou processamento local através de embeddings.


🚧 Ativação da IA

⚠️ Atenção:
Para utilizar o modo de IA (Beta Test), é obrigatório criar um token de acesso no OpenRouter.
Sem esse token, o sistema não conseguirá se comunicar com os modelos de IA hospedados na nuvem.


🔑 Como gerar o token

  1. Acesse 👉 https://openrouter.ai/
  2. Crie sua conta (Google, GitHub ou e-mail).
  3. Vá em Settings → API Keys.
  4. Clique em “+ Create Key”.
  5. Copie o token gerado (exemplo: sk-or-v1-12345abcd...).

💾 Inserindo o token

Grave o token diretamente via comando único:

sqlite3 /var/api/Mwsm/mwsm.db "UPDATE options SET keygen = 'SEU_TOKEN_AQUI' WHERE id = 1;" ".exit"

Dica: A IA Beta Test só funcionará se o token estiver ativo e válido.


⚙️ Configurações da IA


⚙️ aimode

Valor padrão: 2
Descrição: Define o modo de operação da IA:

  • 0 = apenas nuvem (OpenRouter)
  • 1 = apenas local (sem aprendizado)
  • 2 = híbrido (usa nuvem + aprendizado local)

Alterar via SQLite:

sqlite3 /var/api/Mwsm/mwsm.db "UPDATE options SET aimode = 2 WHERE id = 1;" ".exit"

🧠 engine

Valor padrão: "freerouter"
Descrição: Define qual modelo de IA será utilizado para processar respostas automáticas e interações com usuários.
Os modelos estão divididos entre gratuitos (Free) e premium (Pago).


⚙️ FreeRouter

O FreeRouter é o modo padrão e mais seguro do sistema.
Ele utiliza o mecanismo interno do Mwsm para rotear automaticamente entre modelos gratuitos (Free) que estejam ativos e respondendo.

  • O FreeRouter não utiliza modelos Premium (level = 1).
  • Quando uma IA gratuita falha, ele testa outras IAs free disponíveis até obter uma resposta funcional.
  • Se nenhuma IA gratuita responder, o sistema retorna um erro controlado:
    ⚠️ Erro: IA fora (todas as IAs gratuitas indisponíveis)
    
  • Ideal para modo Beta Test, ambientes sem crédito, ou quando se deseja garantir disponibilidade gratuita.

💡 Recomendado: Utilize "freerouter" sempre que quiser estabilidade sem depender de tokens premium.


🧩 Modo Variante

Quando o operador escolhe uma família específica, como "DeepSeek", o Mwsm testa todas as variações daquela família até encontrar uma funcional.

  • Se nenhuma versão responder, é retornado o erro:
    ⚠️ Erro: IA fora (todas as variantes indisponíveis)
    
  • Esse modo é útil para focar em um grupo de modelos específicos, mas pode reduzir a disponibilidade.

⚠️ Atenção: ao escolher uma família específica, o sistema não alterna entre famílias; o fallback ocorre apenas dentro do mesmo grupo.
O FreeRouter, por outro lado, alterna entre qualquer IA gratuita compatível, oferecendo maior confiabilidade.


🟢 Free (gratuitos)

  • DeepSeek — 4 variações

    • deepseek/deepseek-chat-v3.1:free
    • deepseek/deepseek-r1-0528:free
    • deepseek/deepseek-r1-distill-llama-70b:free
    • deepseek/deepseek-chat-v3-0324:free
  • Mistral — 2 variações

    • mistralai/mistral-small-3.2-24b:free
    • mistralai/mistral-nemo:free
  • Llama — 2 variações

    • meta-llama/llama-3.1-8b-instruct:free
    • meta-llama/llama-3.2-1b-instruct:free
  • Gemini — 2 variações

    • google/gemini-1.5-flash-8b:free
    • google/gemini-1.5-pro:free
  • Qwen — 2 variações

    • qwen/qwen2.5-7b-instruct:free
    • qwen/qwen2.5-coder-7b-instruct:free
  • MoonshotAI — 2 variações

    • moonshotai/moonlight-8b:free
    • moonshotai/moonlight-1.5:free
  • NVIDIA — 1 variação

    • nvidia/nemotron-4-340b-instruct:free
  • Meta — 1 variação

    • meta/meta-embeddings-text:free
  • Anthropic — 1 variação

    • anthropic/claude-3.5-haiku:free

🟣 Premium (pagos)

  • OpenAI — 4 variações

    • openai/gpt-4o:premium
    • openai/gpt-4o-mini:premium
    • openai/gpt-4-turbo:premium
    • openai/gpt-5:premium
  • Anthropic — 3 variações

    • anthropic/claude-3.5-sonnet:premium
    • anthropic/claude-3-opus:premium
    • anthropic/claude-3.7-sonnet:premium
  • xAI — 2 variações

    • xai/grok-3:premium
    • xai/grok-4:premium
  • Mistral — 2 variações

    • mistralai/mistral-large-2411:premium
    • mistralai/mixtral-8x22b:premium
  • DeepSeek — 2 variações

    • deepseek/deepseek-r1-distill-qwen-32b:premium
    • deepseek/deepseek-v3.2-exp:premium
  • Gemini — 4 variações

    • google/gemini-2.5-pro:premium
    • google/gemini-2.5-flash:premium
    • google/gemini-2.5-flash-lite:premium
    • google/gemini-2.5-flash-image:premium
  • Meta — 2 variações

    • meta-llama/llama-4-maverick:premium
    • meta-llama/llama-3.1-405b-instruct:premium
  • Qwen — 3 variações

    • qwen/qwen3-max:premium
    • qwen/qwen3-vl-23b:premium
    • qwen/qwen3.5-coder-32b:premium
  • Amazon — 1 variação

    • amazon/nova-pro-1.0:premium
  • Microsoft — 1 variação

    • microsoft/wizardlm-8x22b:premium
  • Perplexity — 2 variações

    • perplexity/sonar:premium
    • perplexity/sonar-pro:premium
  • Mistral (extra) — 1 variação

    • mistralai/codestral-phi-4:premium

Alterar via SQLite:

sqlite3 /var/api/Mwsm/mwsm.db "UPDATE options SET engine = 'freerouter' WHERE id = 1;" ".exit"

🎯 threshold

Valor padrão: 0.75
Descrição: Define o grau mínimo de similaridade entre perguntas para considerar uma resposta local. (Recomendado entre 0.5 e 0.9.)

Alterar via SQLite:

sqlite3 /var/api/Mwsm/mwsm.db "UPDATE options SET threshold = 0.8 WHERE id = 1;" ".exit"

💬 prompt

Valor padrão: "Você é um assistente do provedor..."
Descrição: Mensagem inicial enviada à IA em todas as requisições.

Alterar via SQLite:

sqlite3 /var/api/Mwsm/mwsm.db "UPDATE options SET prompt = 'Você é o assistente virtual do provedor.' WHERE id = 1;" ".exit"

⏱️ aitimeout

Valor padrão: 15000 (ms)
Descrição: Tempo máximo de espera pela resposta do OpenRouter.

Alterar via SQLite:

sqlite3 /var/api/Mwsm/mwsm.db "UPDATE options SET aitimeout = 30000 WHERE id = 1;" ".exit"

🔁 aimaxattempts

Valor padrão: 3
Descrição: Número máximo de tentativas com modelos diferentes em caso de falha.

Alterar via SQLite:

sqlite3 /var/api/Mwsm/mwsm.db "UPDATE options SET aimaxattempts = 5 WHERE id = 1;" ".exit"

📚 maxknowledge

Valor padrão: 1000
Descrição: Limite máximo de registros de aprendizado armazenados localmente.

Alterar via SQLite:

sqlite3 /var/api/Mwsm/mwsm.db "UPDATE options SET maxknowledge = 2000 WHERE id = 1;" ".exit"

🌐 mwsmhost

Valor padrão: 127.0.0.1
Descrição: Host do servidor de embeddings (Python).

Alterar via SQLite:

sqlite3 /var/api/Mwsm/mwsm.db "UPDATE options SET mwsmhost = '127.0.0.1' WHERE id = 1;" ".exit"

🔌 mwsmport

Valor padrão: 5005
Descrição: Porta usada pelo servidor Python de embeddings.

Alterar via SQLite:

sqlite3 /var/api/Mwsm/mwsm.db "UPDATE options SET mwsmport = 5005 WHERE id = 1;" ".exit"

🕒 timezone

Valor padrão: "SP"
Descrição: UF usada para ajustar saudações dinâmicas (bom dia/tarde/noite).

Alterar via SQLite:

sqlite3 /var/api/Mwsm/mwsm.db "UPDATE options SET timezone = 'PR' WHERE id = 1;" ".exit"

🧩 Aprendizado Local

Armazena o aprendizado local (somente ativo com aimode = 2).

Campos principais:

  • question → pergunta feita pelo usuário
  • answer → resposta gerada
  • embedding → vetor de embedding (256 posições)
  • usage_count → número de reutilizações
  • source"local" ou "cloud"

Excluir aprendizado específico:

sqlite3 /var/api/Mwsm/mwsm.db "DELETE FROM inteligence WHERE question LIKE '%senha%';" ".exit"

💬 Palavras-chave

Define as palavras que identificam temas relevantes para resposta da IA.

Valores padrão:

internet
conexão
wifi
velocidade
suporte

⚠️ Somente leitura: O sistema apenas lê (SELECT) — não grava nem altera automaticamente.

Adicionar palavra-chave manualmente:

sqlite3 /var/api/Mwsm/mwsm.db "INSERT INTO keywords (filter) VALUES ('roteador');" ".exit"

👋 Cumprimentos

Contém as palavras reconhecidas como cumprimentos automáticos.

Valores padrão:

oi
olá
bom dia
boa tarde
boa noite

⚠️ Somente leitura: O código apenas lê via SELECT, sem executar INSERT, UPDATE ou DELETE.

Adicionar novo cumprimento manualmente:

sqlite3 /var/api/Mwsm/mwsm.db "INSERT INTO greetings (word) VALUES ('boa madrugada');" ".exit"

⚙️ Servidor de Embeddings

O componente Python roda localmente e responde em:

http://127.0.0.1:5005/embed

Ele usa o modelo all-MiniLM-L6-v2 da Sentence Transformers, responsável por converter texto em vetores numéricos usados pela IA local.


🚀 Dicas Rápidas

  1. Verificar se o servidor de embeddings está ativo:

    curl http://127.0.0.1:5005/
  2. Gerar embedding manualmente:

    curl -X POST -H "Content-Type: application/json" -d '{"text":"teste"}' http://127.0.0.1:5005/embed
  3. Ativar aprendizado local (modo híbrido):

    sqlite3 /var/api/Mwsm/mwsm.db "UPDATE options SET aimode = 2 WHERE id = 1;" ".exit"
  4. Limpar todo o aprendizado armazenado:

    sqlite3 /var/api/Mwsm/mwsm.db "DELETE FROM inteligence;" ".exit"