Slack에서 토픽과 게시물을 일괄 업로드하기

여러분께 인사드립니다.

저는 호스팅된 Discourse/CDCK를 사용하여 사이트를 설정하고 있습니다. 현재 Slack 내보내기에서 대화를 가져와 텍스트를 일부 전처리하고, Hugging Face 트랜스포머로 제목을 생성한 다음, API를 통해 Discourse에 추가하는 작업을 진행 중입니다.

https://tabular.discourse.group/t/why-wouldn-t-we-commit-a-snapshot-that-has-made-no-changes/42

다른 포럼(죄송하지만 다시 찾지 못하겠습니다)에서 API를 사용하여 대량 작업을 수행하는 것이 모범 사례가 아니라는 것을 확인했습니다. 또한 설정을 수정하려고 여러 번 시도했지만 결국 계속 속도 제한(rate limit) 및 기타 문제에 부딪히고 있습니다. Slack 메시지로 생성할 수 있는 파일 형식으로 대량 가져오기를 수행하는 방법에 대해 조언을 주실 수 있는 분이 계신가요?

처리된(Discourse에 적합한) Slack 메시지는 데이터베이스에 저장되어 있으며, 이 데이터를 가져와 Discourse API로 전송하는 스크립트가 있습니다. 이 부분을 쉽게 수정하여 Discourse가 가져와 대량으로 주제를 생성할 수 있는 파일을 만들 수 있습니다.

감사합니다.

보통 직접 관리하는 서버나 개발 인스턴스에서 가져오기(import) 스크립트를 사용합니다. 이를 위해서는 사이트를 읽기 전용 모드로 설정하고, 호스팅 인스턴스에서 백업을 다운로드한 뒤 작업을 수행하고, 다시 백업을 만들어 호스팅 인스턴스에 업로드한 후 해당 백업의 복원을 요청해야 합니다. 사이트가 라이브 상태이고 하루 정도의 읽기 전용 시간이 문제가 되지 않는다면 이 방법을 사용하세요.

읽기 전용 시간이 정말로 큰 문제가 되고 게시물이 몇 천 개 수준에 불과하다면, 호출 사이에 지연 시간을 두고 거부 시 재시도하도록 스크립트를 작성해야 합니다.

게시물이 수만 개에 달한다면, 하루 정도의 읽기 전용 시간이 정말로 큰 문제가 되지 않는다는 점을 스스로와 다른 이해관계자들에게 설득해야 합니다.

예제는 소스 코드의 scripts/import_scripts를 참고하세요.

한 번에 몇백 건 정도만 가져오기 때문에, 로컬 인스턴스를 띄울 필요가 없도록 지연 처리를 넣을 예정입니다. 특정 인물들이 포함된 더 긴 대화들을 점진적으로 이전하면서, Slack에서 더 이상 검색할 수 없는 가치 있는 대화들을 Discourse 사이트에 시드로 채워 넣을 계획입니다.

CDCK에서 이러한 대량 가져오기 스크립트를 호출하는 방법을 지원하거나, API를 통해 대량 가져오기 기능을 제공할 가능성이 있을까요?

그럴 가능성은 낮습니다. 상당히 니치한 요청일 뿐만 아니라 잠재적으로 매우 위험할 수 있기 때문입니다. 우연히도, 저는 카테고리, 사용자, 주제, 게시물을 위한 시트가 포함된 Google Docs 스프레드시트의 URL을 받아들이고 이를 가져오는 플러그인 작업을 곧 시작할 예정입니다. 하지만 이 플러그인은 자체 호스팅 사용자 및 엔터프라이즈 고객에게만 제공될 것으로 예상합니다.

이해합니다. 예외 처리를 추가하고, 외부 ID가 이미 존재하는 경우 건너뛰도록 하겠습니다. 한 번에 몇백 개만 가져오기 때문에, 이후 수동으로 검토하여 수정하는 방식으로 이 워크플로우는 잘 작동합니다. 다만, 시스템이 잘못된 상태로 전이되지 않도록 하는지 확인하고 싶었습니다.

그럼에도 불구하고, 그 플러그인은 훌륭한 대안이 될 것 같습니다! 한 달간 활성화할 수 있는 요금제를 제공하고, 이후 팀 플랜으로 전환할 수 있도록 해주시면 좋겠습니다.

API를 사용 중이라면, rails가 제공되는 여러 보호 장치를 통해 정말로 위험한 일을 하고 있지 않은지 확인할 수 있습니다.

제이, 고마워!

방금 500개를 업로드했어. 시간이 좀 걸렸지만, 게시물과 토픽의 대기 시간을 1초로 줄이고 각 생성 호출(create call) 후 1초간 sleep을 추가했을 뿐인데 문제가 해결됐어. 약 500개의 메시지를 업로드하는 데 4시간 정도 걸렸어.

이 방식이 확실히 맞는 것 같아. 당분간 검토하고 관리할 충분한 자료가 생겼네.

참고로 현재 이 모든 것은 비공개 Discourse에서 진행 중이야. 그래서 공개하기 전에 외관을 좀 더 깔끔하게 다듬을 거야.

도움 주셔서 다시 한번 고마워! 새 플러그인 기대하고 있어!