Scripts de regex

Um script de regex é uma regra de localizar e substituir que reescreve o texto do chat automaticamente. Use um para limpar uma resposta da IA, reformular a sua própria mensagem ou mudar o texto que o modelo recebe. Você não precisa saber programar para usar um.

Regex é a abreviação de "regular expression" (expressão regular), um padrão de busca que encontra o texto que corresponde a uma regra. Você define o padrão uma vez, e ele roda em toda mensagem que corresponder.

Exemplo: alguns modelos colocam as ações entre asteriscos.

*She smiles* Hello there.

Copie este padrão exatamente: \([^]+)\*. Use $1 como substituição, e os asteriscos somem, mas o texto de dentro fica:

She smiles Hello there.

$1 significa "o texto capturado pelo primeiro par de parênteses". Outros usos comuns são excluir observações fora do personagem entre parênteses, censurar uma palavra e corrigir as manias de formatação de um personagem.

Criar um script de regex

Os seus scripts globais ficam no painel Presets, na seção Regexes. Abra-o com o botão Presets na barra superior.

Como criar um script de regex

  1. Abra Presets e encontre Regexes.
  2. Clique em Create regex (criar regex). O editor completo se abre.
  3. Digite um nome no topo. Um script novo se chama "New Regex Script".
  4. Em Find Pattern (Regex) (padrão de busca), digite \([^]+)\* (veja Campos do editor).
  5. Em Replace With (substituir por), digite $1.
  6. Em Apply To (aplicar a), deixe AI Output selecionado. O modo de aplicação padrão, Only Display, é a escolha segura (veja Escolher onde um script roda).
  7. Cole She smiles Hello there. em Live Test (teste ao vivo). Result: deve mostrar She smiles Hello there.
  8. Clique em Save (salvar). Um aviso verde Saved aparece por um instante.
  9. Confira em um chat: quando uma resposta da IA tiver texto entre asteriscos, os asteriscos não aparecem mais.

Se não funcionou: um erro em vermelho abaixo de Find Pattern (Regex) bloqueia o salvamento. O padrão é inválido ou inseguro; veja Segurança e desempenho.

Gerenciar os seus scripts

Cada linha da lista Regexes mostra o nome do script, uma etiqueta AI ou User, o padrão no formato /pattern/flags, um botão liga/desliga (com efeito imediato), Edit regex (editar regex, lápis) e Delete regex (excluir regex, lixeira). Sem scripts, a lista mostra "No regexes yet". Arraste uma linha pela alça para mudar a ordem de execução.

O cabeçalho da seção tem três botões de ícone: Create regex, Import regexes from JSON (importar regexes de JSON) e Export regexes to JSON (exportar regexes para JSON), que salva todos os seus scripts globais em um único arquivo. Os scripts ligados a um único personagem ficam separados; veja Limitar um script a um personagem.

Campos do editor

Find Pattern (Regex)

O padrão de busca. Escreva só o padrão, sem barra no começo nem no fim. O texto provisório do campo traz um exemplo: \([^]+)\*.

Replace With

O texto que substitui cada correspondência. Deixe vazio para excluir a correspondência. Reaproveite o texto capturado com $1, $2 e assim por diante. Estas mudanças de caixa funcionam antes de uma captura:

EscrevaResultado
\u$1Deixa a primeira letra da captura em maiúscula
\U$1\EDeixa a captura inteira em maiúsculas
\l$1Deixa a primeira letra da captura em minúscula
\L$1\EDeixa a captura inteira em minúsculas

Texto com barra invertida literal, como um caminho do Windows do tipo C:\Users, fica como foi escrito.

Regex Flags

Botões liga/desliga que mudam a forma como o padrão encontra o texto. Um script novo começa com g e i ativados.

SinalizadorSignificado
gGlobal: substitui todas as correspondências, não só a primeira
iCase-insensitive: não diferencia maiúsculas de minúsculas
mMultiline: ^ e $ valem nas quebras de linha
sdotAll: . também corresponde aos caracteres de quebra de linha
u, y, dUnicode, sticky e match indices, para casos especiais

Trim Strings

Uma lista opcional de textos simples removidos depois que a substituição roda. Clique em Add trim string (adicionar texto a remover) para incluir uma linha e no botão X para tirar uma. Use para um trecho fixo de texto que é mais fácil de digitar do que de encontrar com um padrão.

Live Test

Cole um texto de exemplo, e o resultado aparece em Result:. O Live Test confere só a lógica de localizar, substituir e remover. O local de aplicação, o estado ligado ou desligado, o escopo de personagem e a profundidade são avaliados em um chat de verdade. Você pode usar macros como {{user}} e {{char}} no padrão, na substituição e nos textos a remover. No Live Test, elas usam valores de exemplo. Veja Macros.

Escolher onde um script roda

Apply To

Apply To define qual lado do chat um script observa. Mantenha pelo menos uma opção marcada. Você pode escolher as duas.

Apply Mode

Apply Mode (modo de aplicação) fica dentro de Advanced Options (opções avançadas). Ele define o que a reescrita muda. Um script novo começa em Only Display.

Nas suas próprias mensagens, um script de User Input em Only Display ou Both reescreve a mensagem pouco antes do envio. A mensagem salva e enviada muda, não só a aparência. Não existe um modo só de exibição para as mensagens que você envia.

Execution Order e Depth Range

As duas configurações ficam em Advanced Options.

Chats em grupo

Isto vale para Only Prompt e Both em um chat Roleplay com o modo de grupo Individual.

Limitar um script a um personagem

Um script pode pertencer a personagens específicos em vez de rodar em todo lugar. Há duas maneiras.

Abrir o editor completo a partir desse cartão faz você sair do Character Editor. Se o personagem tiver alterações não salvas, o aplicativo avisa antes.

A configuração Scoped Regex Scripts, por chat

Os scripts limitados a personagens não rodam sozinhos em todo chat. Uma configuração de cada chat os controla. Abra Chat Settings (configurações do chat). A seção Scoped Regex Scripts só aparece quando pelo menos um personagem daquele chat tem scripts limitados.

ModoO que acontece
Disabled (padrão)Os scripts limitados ficam desativados. Só os scripts globais rodam.
ExclusiveCada script limitado muda só as mensagens do próprio personagem.
ChatTodo script limitado muda todas as mensagens do chat.

A opção Use preset default (usar o padrão do preset) segue o Scoped regex default (padrão de regex com escopo) do preset de prompt. Escolher um modo substitui esse padrão neste chat. Para começar os novos chats com um modo, use uma destas formas:

Abaixo dos modos, o painel lista os scripts limitados de cada personagem, com um botão liga/desliga para cada um. Esse botão é do próprio script, então ele muda o script em todos os chats. O modo controla os scripts do lado da exibição. Os scripts de prompt sempre acompanham o personagem que está gerando a resposta.

Importar e substituir scripts

Importar do SillyTavern

Marinara lê os scripts de regex que vêm dentro de um card de personagem do SillyTavern. Ao importar um card, uma seção Imported regex scripts (scripts de regex importados) oferece duas opções:

Essa escolha aparece na janela de importação de um personagem e no fluxo em lote Import from SillyTavern Folder. Scripts com o padrão vazio, ou com um padrão que não passa na verificação de segurança, são ignorados. Para importar um arquivo JSON simples de scripts, use Import regexes from JSON em Regexes. Veja Importar do SillyTavern.

Substituir um pacote de regex

  1. Em Presets → Regexes, escolha Select regex scripts (selecionar scripts de regex).
  2. Marque as entradas do pacote antigo ou escolha Select all regex scripts (selecionar todos os scripts de regex).
  3. Use Export (exportar) ou Delete (excluir) na barra de ações. A exclusão pede uma única confirmação e não pode ser desfeita.
  4. Importe o pacote atualizado.

As exclusões que falharem continuam selecionadas para você tentar de novo. Os scripts não selecionados ficam onde estão. As atribuições a presets continuam disponíveis no editor de regex.

Segurança e desempenho

Todo padrão é verificado antes de poder ser salvo ou executado. Um padrão com chance de rodar devagar e travar o aplicativo é bloqueado com esta mensagem, e o salvamento fica impedido até você corrigi-lo:

Regex pattern is unsafe: avoid nested quantifiers, ambiguous quantified alternatives, and oversized patterns.

Se você vir essa mensagem, deixe o padrão mais curto e mais simples. Evite estes formatos:

Uma repetição simples como a+ ou (a+), ou um único curinga amplo, como um .* sozinho, não tem problema.

Mesmo um padrão seguro tem um tempo limite por substituição em uma mensagem longa. Se um script demorar demais em uma mensagem, o aplicativo pula esse script só naquela mensagem. O script continua ativado e tenta de novo na mensagem seguinte. Teste primeiro um padrão novo no Live Test, com um texto de exemplo curto.

Guias relacionados