Jump to content

Wikifunções:Atualizações de status/2024-09-13

From Wikifunctions
This page is a translated version of the page Wikifunctions:Status updates/2024-09-13 and the translation is 100% complete.
Wikifunctions Status updates Translate

Abstract Wikipedia via mailing list Volunteer Response Team Abstract Wikipedia on IRC Wikifunctions on Telegram Wikifunctions on Mastodon Wikifunctions on Twitter Wikifunctions on Facebook Wikifunctions on YouTube Wikifunctions website Translate

A Wikipédia dagani será nossa primeira wiki para integração com a Wikifunções

Ao encerrarmos o trabalho deste trimestre e começarmos a planejar o próximo, quero discutir o progresso da nossa maior iniciativa neste ano fiscal: integrar a Wikifunções com artigos da Wikipédia. Nossos idiomas de foco para o projeto são bengali, ibo, hauçá, dagani e malaiala. Escolhemos dagani como a primeira Wikipédia para esta integração.

Neste trimestre, focamos em construir um protótipo de design, consultando equipes internas para tomar decisões importantes e extraindo insights valiosos da experiência inicial de integração do Wikidata. Agora, estamos prontos para aplicar esses aprendizados à Wikipédia dagani, criando um design que não apenas se encaixa perfeitamente com esta wiki, mas também será dimensionado efetivamente para wikis maiores no futuro.

Envolver grupos de usuários na formação de um novo empreendimento/recurso é essencial para obter insights sobre as necessidades e os pontos problemáticos dos usuários. Seu feedback garante que o produto atenda às expectativas reais, aprimorando a usabilidade e a relevância. A contribuição antecipada ajuda a identificar problemas antes do lançamento, reduzindo redesigns dispendiosos. Por fim, envolver os usuários promove a propriedade, impulsionando a adoção e o sucesso do produto.

Queremos adotar essa filosofia de produto em nosso trabalho de integração. Entraremos em contato com nossa comunidade da Wikipédia dagani nas próximas semanas para formar um grupo de trabalho que pode nos ajudar a entregar esse projeto à Wikipédia dagani de uma forma significativa. Queremos formar uma equipe diversificada de novos editores, editores experientes e leitores apaixonados. Estamos buscando um pequeno grupo de 3 a 5 pessoas. Nossa ideia é nos reunir com esse grupo regularmente, envolvendo-os em revisões de protótipos de design, revisões de demonstrações locais, trocando ideias e visões de produtos e, por sua vez, construindo nossa confiança na utilidade e prontidão de nossas soluções.

Problemas de confiabilidade do site

Como muitos de vocês sabem, temos tido alguns desafios de estabilidade com o site nos últimos dias, em parte causados ​​por um aumento no tráfego do rastreador da Web sobrecarregando os servidores reservados para executar a Wikifunções. Isso assumiu a forma de vários problemas, incluindo o site inteiro aparecendo fora do ar (T374318) ou quebrando intermitentemente em páginas que funcionam às vezes (T374305 e T374241). Implementamos algumas mitigações para tentar reduzir a carga gasta em usuários não humanos. Isso incluiu banir temporariamente o ClaudeBot da Anthropic via robots.txt, e substituir o conjunto padrão de monitoramento de confiabilidade do site da Wikimedia por um personalizado, mais relevante, mais simples e com menos carga (T374442). No entanto, isso teve efeito limitado até agora, e continuamos a revisar e tentar melhorar a situação. Nossas desculpas pelas interrupções.

Também estamos notando ao mesmo tempo um novo problema com a validação e estamos simplificando os fluxos de trabalho de validação. Isso pode levar a problemas, pois os objetos podem ser invalidados. Por favor, nos avise se você vir novos erros estranhos, particularmente mensagens de erro ausentes onde deveriam estar.

Mudanças recentes no software

Desconectados dos problemas do site acima, fomos alertados sobre um bug no código na semana passada que significava que você não conseguia selecionar instâncias de Tipos no seletor; fizemos uma correção rápida para isso, com um teste para evitar regressões futuras, e o portamos de volta para a produção na segunda-feira (T374199). Somos gratos ao GrounderUK e outros membros da comunidade que notaram isso, e pedimos desculpas pela interrupção.

Como uma quebra adicional, todos os nossos testes de API de ponta a ponta que usam o Beta Cluster infelizmente quebraram na semana passada, então desabilitamos temporariamente esses testes e agora estamos contando apenas com testes manuais (T374242).

Uma das grandes partes do nosso trabalho trimestral é a preparação para a "integração com a Wikipédia", na qual você poderá incorporar resultados de chamadas da Wikifunções no wikitexto (T261472). Fizemos algumas melhorias lá, em particular mudanças para separar as preocupações entre o código 'cliente', rodando em Wikipédias, e o código 'repo', rodando em Wikifunctions.org. Mais desse trabalho deve chegar em breve, inclusive com uma demonstração.

Outra parte do nosso trabalho trimestral é preparar para poder referenciar itens do Wikidata em chamadas de Função (T282926). Fizemos algumas mudanças no nosso modelo conceitual de referências, que esperamos ser uma solução temporária para os próximos meses, para que as referências do Wikidata possam ser usadas antes de quaisquer reformas mais amplas de cálculo de Tipo, o que significa que nosso código para verificar se algo é uma referência irá, pelo menos por enquanto, parar de reconhecer as formas "Q1234" ou "L1234", e somente "Z1234" ou "Z1234K1" (T373859). O código de back-end para acessá-los e formalizá-los em Tipos (T370072) continua, e esperamos demonstrá-lo em breve.

Fizemos algumas melhorias de UX que serão lançadas esta semana. Ao fazer alterações por meio do controle Sobre (em vez do fluxo de edição de página inteira), corrigimos o botão "Cancelar" na caixa de diálogo de publicação para retornar ao editor, em vez de descartar todas as suas alterações – desculpe por isso (T360062). Quando um valor Z6/Cadeia é muito longo, agora pedimos ao seu navegador para quebrar o texto em vez de fazê-lo transbordar (T373987). Corrigimos a largura do editor de funções em telas estreitas (abaixo de 500px), como celulares (T366675). Atualizamos o seletor de objetos para ser mais inteligente sobre as restrições sobre quais funções pesquisar em contextos específicos onde sabemos o 'formato' esperado (T372995).

Também fizemos algumas melhorias técnicas gerais. Substituímos nosso antigo componente Tooltip temporário pelo componente adequado do Codex, agora que ele existe (T298040). Isso quase conclui nossa substituição com componentes upstream. Temos apenas a Tabela usada nas páginas de Função para listar Implementações e Casos de Teste para ir (T373197). Somos imensamente gratos à equipe do Design System por seu trabalho desenvolvendo a biblioteca do Codex até o ponto em que nossas versões ad hoc não são mais necessárias. Como parte da nossa longa migração de cadeias para referências para Z61/Objetos de linguagem de programação (T287153), concluímos a eliminação do suporte para elas na camada UX. Todo o conteúdo existente no Wikifunctions.org foi migrado de volta em maio/junho, então isso não deve ter nenhum efeito disruptivo.

Nós, junto com todo o código implantado pela Wikimedia, estamos usando a versão mais recente da biblioteca Codex UX, v1.12.0, a partir desta semana. Encontramos uma mudança que quebrou a forma como estávamos usando o componente "lookup", que contornamos (T374248) antes de uma correção upstream (T374246); acreditamos que não deve haver mais mudanças visíveis ao usuário na Wikifunções, então, por favor, comente no chat do Projeto ou registre uma tarefa do Phabricator se você detectar um problema.

Função da semana: contar subcadeias

Recentemente, LLMs fizeram um pequeno ciclo de notícias porque falharam na pergunta “com que frequência a letra ‘r’ aparece em ‘strawberry’?” (Você pode facilmente encontrar cobertura sobre isso em vários fóruns e sites de notícias.)

A Wikifunções não tem esse problema: com a função Z14450 podemos facilmente perguntar com que frequência a subcadeia ‘r’ aparece na cadeia ‘strawberry’ e, sem surpresa, ela retorna 3.

A função tem duas implementações, uma em JavaScript e outra em Python:

  • a implementação Python simplesmente depende do método .count embutido do objeto String do Python
  • a implementação JavaScript está usando a função match, que pega uma expressão regular baseada na cadeia a ser pesquisada e que retorna todas as correspondências da segunda cadeia na primeira. Essa então é contada usando o atributo length. Há um caso especial em caso de não haver correspondências, em que 0 é retornado.

A implementação do JavaScript é um bom exemplo de uma funcionalidade aparentemente simples com uma implementação surpreendentemente complexa. E ainda assim, a implementação sugerida é suscetível a erros. Como o segundo argumento é transformado em uma expressão regular, alguns símbolos bagunçam a busca. Adicionei um teste para esse caso, o penúltimo na lista abaixo. Felizmente, apenas a implementação do Python está conectada, portanto, o erro na implementação do JavaScript não é realmente usado -- o sistema de aprovação funcionou como pretendido.

A função oferece seis testes:

Como adicionei os dois últimos testes enquanto escrevia esta entrada, eles ainda não estão conectados.

O terceiro teste aqui é particularmente interessante, mostrando como uma função aparentemente tão simples pode ter interpretações muito diferentes: alguém poderia argumentar que “aaaaa” tem a cadeia “aa” quatro vezes, nas posições 1, 2, 3 e 4, mas a função conta de uma maneira dita gananciosa: “aa” só cabe duas vezes em “aaaaa”. É por isso que os testes são tão importantes, para mostrar e concordar com o significado exato da função.

Seria ótimo ver mais testes com outros scripts, como por exemplo árabe ou chinês. É legal ver o cirílico representado em um dos testes.

Não é de se surpreender que os LLMs atuais tenham dificuldades com essa questão, devido à maneira como funcionam. Acreditamos firmemente que uma boa arquitetura futura para uma máquina de resposta a perguntas não usa apenas o modelo em si, mas também um grande armazenamento de documentos, como a Web, uma base de conhecimento, como o Wikidata, e um repositório de funções, como a Wikifunções. Qualquer um deles expande drasticamente que tipo de perguntas o sistema será capaz de responder com alta precisão e confiança.