Versão 2.5.1#

30.09.26

Foi lançado um novo release do Sherpa AI Server: Versão 2.5.1.

1. Etapas de processamento na tela de Chat#

Na tela de Chat, as chamadas de ferramentas, seus resultados e mensagens intermediárias do Assistente agora estão agrupadas em um bloco expansível "Etapas do processamento". Ao lado, permanece a resposta final, e durante a execução, o título do bloco mostra o passo atual.

Isso ajuda a acompanhar a execução da solicitação e ler a resposta pronta sem uma longa cadeia de mensagens de serviço.

2. Filtros na tela de Auditoria#

Na tela de Auditoria, foram adicionados filtros de servidor por usuários, tempo, tipo de evento, mensagem e agente. Eles estão no menu padrão das colunas correspondentes. Os valores selecionados são salvos, e a exportação utiliza a mesma área de dados que a tabela.

O filtro de tempo considera o fuso horário da conta e não desloca o período salvo ao mudar o navegador para o horário de verão. Vários usuários e outras condições agora podem ser aplicados simultaneamente.

Isso ajuda a verificar eventos pelo período necessário e exportar exatamente os registros encontrados.

3. Mudança de modelo e dimensionalidade do índice de documentos#

Na tela Documentos, na aba "Indexação", foi corrigido o salvamento e leitura dos campos "Modelo de indexação" e "Dimensionalidade de embedding". Agora é suportada a transição entre modelos com dimensionalidade de vetor 384 e 1024 em ambas as direções. Ao salvar a mudança de modelo ou dimensionalidade, os vetores antigos são limpos, e os arquivos que têm indexação automática são colocados na fila para reprocessamento. Amostras para busca também são reindexadas. O modo de indexação manual permanece manual, e o modo sem indexação não inicia a indexação.

A busca considera a dimensionalidade real do vetor e não mistura os resultados do modelo antigo e novo. Se um arquivo tem fragmentos adicionados apenas através da API, o sistema rejeita a mudança de modelo e a limpeza separada dos vetores: antes da repetição, tais fragmentos precisam ser salvos fora do sistema e excluídos ou o próprio arquivo deve ser excluído. Isso protege dados que não podem ser recuperados do documento original.

Isso ajuda a mudar o modelo de indexação de forma segura sem misturar resultados de busca incompatíveis.

4. Busca em grandes bases de documentos#

Para busca em áreas acima de 40 mil vetores, foi adicionado o uso de índices HNSW preparados com um conjunto limitado de candidatos. Se o número de fragmentos ativos encontrados for menor que o número solicitado, a busca realiza uma seleção exata na conta, arquivos e dimensionalidade escolhidos. Para áreas menores, é utilizada a busca exata. O administrador pode configurar o tamanho do conjunto inicial de candidatos e escolher explicitamente o modo exato através de EMBED_SEARCH_STRATEGY=scoped_exact.

Isso reduz o trabalho de busca em grandes índices e busca o número solicitado de fragmentos, se eles estiverem na área escolhida. A velocidade e a qualidade da busca dependem dos dados da instalação; antes de escolher os parâmetros, eles devem ser testados em suas solicitações.

5. Configuração do menu lateral#

No arquivo de configuração da aparência do cliente branding.json, agora é possível ocultar o interruptor "Geral" / "Pessoal" na barra lateral da tela de Chat. A seleção automática de chats disponíveis é mantida.

Isso ajuda a configurar a navegação para instalações onde o usuário não precisa de um interruptor manual de áreas de chat.

6. Limpeza do histórico de chats com registro em auditoria#

Na seção "Registro de auditoria de chats", a ação "Limpar histórico" agora avisa explicitamente sobre a exclusão irreversível de mensagens de toda a conta mais antigas que a data selecionada e avaliações relacionadas. A exclusão e o registro do evento de auditoria são realizados como uma única operação. No evento, são salvos o iniciador, o endereço IP, a data de corte e o número de mensagens excluídas; para a solicitação com token, são registrados seu identificador e nome.

Isso ajuda o administrador a controlar a limpeza irreversível e analisar seus resultados pelo registro.

7. Conexão segura com modelo externo#

Para vLLM remoto, foi adicionado um exemplo de configuração de proxy reverso com HTTPS. A verificação do certificado TLS do servidor do modelo de linguagem agora pode ser ativada nas configurações. A documentação sobre criptografia de mídias e backups foi complementada com a ordem de ações e restrições de aplicação do AES-256 na instalação piloto.

Isso ajuda o administrador a planejar uma conexão segura e armazenamento de dados considerando as capacidades de sua infraestrutura.

8. Preparação para atualizar uma base de dados com conteúdo#

Para uma base existente, antes de iniciar as migrações, é necessário criar previamente os índices de vetores e o índice de verificação de fragmentos duplicados. Os scripts backend/migrations/prepare_dimension_hnsw.sql e backend/migrations/prepare_documents_dedup_index.sql são executados separadamente através de psql -X -v ON_ERROR_STOP=1 -f, fora da transação de migrações. Eles preparam os índices para dimensionalidades 384 e 1024 sem bloquear a gravação por longos períodos. Para outra dimensionalidade, primeiro é necessário backend/migrations/prepare_additional_dimension_hnsw.sql. A ordem e os parâmetros estão descritos na documentação de busca.

O serviço de busca vetorial agora requer um token de acesso configurado, quando EMBED_AUTH_REQUIRED=true está ativado: antes de iniciar, um EMBED_AUTH_TOKEN não vazio deve ser definido. Na entrega, também são definidos limites para o tamanho do documento e o número de seus fragmentos.

Isso ajuda a realizar a atualização em uma base de trabalho sem uma criação inesperadamente longa de índices durante a migração ou a primeira busca.

9. Correções na tela de Chat#

A rolagem automática não interrompe mais a leitura de uma resposta longa após a rolagem manual para cima. Para retornar a novas mensagens, há um botão de rolagem suave para baixo.

Foi corrigido o processamento da moderação de entrada: a resposta fixa é salva no histórico como resposta do Assistente, e a solicitação bloqueada não inicia a geração. Foi corrigida uma mensagem falsa sobre a superação do contexto do script do agente: antes de encurtar a solicitação, o sistema verifica seu tamanho considerando as ferramentas e o modelo. Conjuntos de regras de moderação salvos são carregados novamente sem erro.

Isso ajuda a ler respostas em seu próprio ritmo e obter um comportamento previsível do Assistente sob restrições e moderação.

10. Correções na tela de Documentos#

A lista de documentos agora é carregada corretamente após a atualização da página, mudança de visualização e busca. O indicador permanece até a conclusão da solicitação, o recarregamento após erro funciona, e a resposta obsoleta não substitui o novo filtro de pastas. Após a exclusão de uma pasta, o filtro é atualizado.

A busca em várias pastas e a busca de texto completo BM25 não perdem mais correspondências existentes devido à limitação prematura da lista de resultados. A busca de arquivos sem uma área explicitamente especificada é limitada às pastas da conta; pastas de chats são excluídas, a menos que o administrador tenha ativado FILE_SEARCH_INCLUDE_CHAT_FOLDERS=1.

Isso ajuda a obter uma lista atualizada de arquivos e resultados de busca esperados.

11. Correções na indexação de documentos#

A indexação através de um modelo externo agora relata um erro se a resposta do serviço estiver incompleta, se houver menos vetores do que o esperado ou se parte dos fragmentos únicos não for gravada. Em caso de erro parcial de limpeza, os arquivos já processados permanecem na fila de reindexação. O texto correspondente de arquivos diferentes ou com origens diferentes é salvo separadamente.

Um campo status vazio ao carregar um arquivo através da API agora é equivalente a um campo ausente: o arquivo recebe o status padrão de espera. Na indexação manual, a API aceita um corpo vazio {} e determina a conta a partir da autorização.

Isso ajuda a não considerar a indexação incompleta como bem-sucedida e a manter a conexão dos resultados de busca com a fonte correta.

12. Biblioteca de prompts e sessão do usuário#

Na biblioteca de prompts, a abertura de pastas e a troca de abas "Pessoais" / "Gerais" foram aceleradas: a lista é carregada página por página sem uma solicitação separada para cada pasta. Solicitações longas da API não mantêm mais a sessão do usuário e não interferem em outras solicitações. O tempo de vida da sessão agora corresponde a SESSION_LIFETIME_MINUTES, portanto, o coletor de lixo PHP não a encerra prematuramente após 24 minutos de inatividade.

Isso torna o trabalho com a biblioteca e ações paralelas na interface mais responsivo.

13. Correções na API e nos serviços de servidor#

Valores escalares incorretos dos filtros object_folder_guids e field_names agora passam pela verificação de dados normal em vez de gerar um erro PHP. Um erro no nome do campo file_guids em vez de files_guids na consulta de pesquisa retorna o código 422. A verificação OpenAPI reutiliza o esquema carregado dentro da solicitação.

O tempo limite de espera do Whisper agora é definido através de WHISPER_UPSTREAM_TIMEOUT_SECONDS; por padrão, é de 310 segundos. No nginx do cliente, o tempo limite para solicitações longas foi aumentado para 600 segundos. A senha do PostgreSQL foi excluída dos logs do serviço de indexação.

Isso simplifica o diagnóstico de erros de integrações e reduz a probabilidade de interrupções em processos longos.

14. Confiabilidade da atualização e operação dos Assistentes#

As migrações que podiam parar devido a um número de versão repetido, uma extensão longa de um arquivo antigo ou uma conexão com o PostgreSQL através de um socket local foram corrigidas. Após a remoção do campo do modelo, o cache de metadados é limpo antes da criação do proxy do Doctrine. A versão atualizada do pg_textsearch elimina a falha de indexação após um erro de índice BM25.

Na tela dos Assistentes, a edição, fixação e exclusão são novamente determinadas pelos direitos de ação dos assistentes: não há mais uma configuração separada para proibir a edição. A duplicação de sinais nos diálogos de confirmação também foi corrigida.

Isso reduz o risco de falhas durante a atualização e devolve o controle dos assistentes aos direitos designados da função.