Estou usando o Discourse/CDCK hospedado para configurar meu site. Atualmente, estou trabalhando em pegar conversas de um export do Slack, fazer um pouco de pré-processamento no texto, gerar um título com um transformer do Hugging Face e, em seguida, adicioná-lo ao Discourse via API.
Vi em outro fórum (não consigo encontrar, desculpe) que usar a API para operações em massa não é uma boa prática. Também continuo atingindo limites de taxa e outros problemas para os quais tentei modificar as configurações, mas, em última análise, continuo atingindo limites de taxa em vão. Vocês têm alguma sugestão sobre como importar em massa qualquer tipo de arquivo que eu possa produzir com as mensagens do Slack?
As mensagens do Slack processadas (amigáveis ao Discourse) estão em um banco de dados e tenho um script que as extrai e as envia para a API do Discourse. Eu poderia facilmente mudar isso para criar um arquivo que o Discourse pudesse ingerir e gerar tópicos em massa.
Normalmente, você usará um script de importação em um servidor que você controla ou em uma instância de desenvolvimento. Você precisaria colocar seu site em modo somente leitura, baixar o backup da sua instância hospedada, fazer o trabalho, fazer um backup, carregá-lo em sua instância hospedada e solicitar que seu backup seja restaurado. Se o seu site estiver no ar e um dia de tempo somente leitura não for um problema, faça isso.
Se o tempo somente leitura for Realmente Ruim e você tiver apenas alguns milhares de postagens, escreva seu script para ter um atraso entre as chamadas e também tentar novamente quando for negado.
Se você tiver dezenas de milhares de postagens, precisará convencer a si mesmo e a qualquer outra pessoa de que um dia de tempo somente leitura não é Realmente Ruim.
Veja scripts/import_scripts no código-fonte para exemplos.
Estou puxando apenas algumas centenas de cada vez, então provavelmente adicionarei atrasos para não ter que iniciar a instância local. Estamos migrando lentamente as conversas mais longas com pessoas específicas para popular nosso site Discourse com um monte de conversas valiosas que não são mais pesquisáveis via Slack.
O CDCK algum dia suportará alguma forma de invocar esses scripts de importação em massa ou possivelmente expor uma capacidade de importação em massa via API?
Duvido, pois é uma solicitação bastante específica e potencialmente muito perigosa. Coincidentemente, estou prestes a começar a trabalhar em um plugin que aceitará um URL de uma planilha do Google Docs com planilhas para categorias, usuários, tópicos, posts e os importará, mas eu esperaria que estivesse disponível apenas para auto-hospedados e clientes corporativos.
Entendido, estou adicionando tratamento de exceção e pulando se o ID externo já existir. Este fluxo de trabalho funciona bem, pois estamos tentando importar apenas algumas centenas de cada vez e, em seguida, revisando manualmente e corrigindo-as. Eu só queria ter certeza de que não estava fazendo nada que pudesse me colocar em uma situação ruim.
Dito isso, esse plugin parece uma ótima alternativa! Espero que você ofereça uma taxa para habilitá-lo por um mês e, em seguida, voltar ao plano de equipe.
Se você estiver usando a API, terá uma série de proteções fornecidas pelo Rails para garantir que você não esteja fazendo nada que seja realmente ruim.
Acabei de fazer upload de 500. Demorou um pouco, mas tudo o que fiz foi encurtar os tempos de espera para 1s para posts e tópicos, e adicionei um sleep de um segundo após cada chamada de criação e isso resolveu. Levou cerca de 4 horas para fazer upload de ~500 mensagens.
Este é definitivamente o caminho. Isso nos dará bastante para analisar e moderar por um tempo.
Aliás, tudo isso está atualmente em um Discourse privado, então vamos deixá-lo bonito antes de abrir as portas.
Obrigado novamente por toda a sua ajuda! Ansioso por esse novo plugin!