Discourse 이미지 필터

이 플러그인은 Google Cloud Vision API를 사용하여 포럼에 노골적인 이미지 업로드를 제한합니다. 이는 아바타, 로고 등 업로드된 모든 이미지를 대상으로 합니다.

업로드 오류 팝업을 사용하여 이미지 업로드가 제한된 이유에 대한 위반 사항을 설명하는 메시지를 표시합니다.

허용 범위는 사이트 설정을 통해 지정할 수 있습니다.


설정

단계:

  1. Google Cloud에서 서비스 계정을 생성합니다: Create service accounts  |  Identity and Access Management (IAM)  |  Google Cloud Documentation
    Google이 JSON 파일 다운로드를 트리거합니다. 해당 파일의 내용을 안전하게 보관하세요.

  2. app.yml 파일의 env 섹션 하단에 다음 줄을 붙여넣습니다.

     GOOGLE_ACCOUNT_TYPE: 'service_account'
     GOOGLE_CLIENT_ID: 'client-id-from-json-file'
     GOOGLE_CLIENT_EMAIL: "service-account-email-address"
     GOOGLE_PRIVATE_KEY:  아래 지침 참조
    
  • GOOGLE_PRIVATE_KEY 파라미터를 설정하는 방법?

    • JSON 파일의 키를 코드 편집기에 붙여넣으세요.
    • 찾기 및 바꾸기를 사용하여 \n을 \\n으로 대체합니다.
    • 결과를 복사하여 app.yml에서 GOOGLE_PRIVATE_KEY 앞에 붙여넣고, 작은따옴표 ' '로 감싸세요.
  1. 이제 플러그인 설치의 일반적인 단계를 따르세요.

플러그인 설정

if_adult_max_acceptable: adult 카테고리의 최대 허용 수준
if_spoof_max_acceptable: spoof 카테고리의 최대 허용 수준
if_medical_max_acceptable: medical 카테고리의 최대 허용 수준
if_violence_max_acceptable: violence 카테고리의 최대 허용 수준
if_racy_max_acceptable: racy 카테고리의 최대 허용 수준

이러한 기준과 API 자체에 대해 자세히 알아보려면 여기에서 확인하세요. Detect explicit content (SafeSearch)  |  Cloud Vision API  |  Google Cloud Documentation

:page_facing_up: 코드 가져오기

:raising_hand_woman: 기능 요청

:bug: 버그 보고

개발 참고 사항

macOS 개발 환경에서 사용하려면 .bash_profile 파일에 다음 줄을 추가하세요
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES

길을 잃으셨나요?

플러그인을 후원해 주신 @Terrapop님께 감사드립니다.

22개의 좋아요

@riking

아바타/로고 업로드 중에 Rails 측에서 예외가 발생하면 업로드 오류 팝업이 표시되지 않는다는 것을 깨달아서 이 PR(FIX: erroneous condition which would cause an error if ever satisfied - Pull Request #10605 - discourse/discourse - GitHub)을 만들었습니다. 컴포저에서 업로드할 때는 잘 동작합니다. 이를 통합하는 것이 좋은 upstream 변경 사항이 될 것이라고 생각했습니다.

6개의 좋아요

알림 주셔서 감사합니다. GitHub 알림을 놓쳤네요.

5개의 좋아요

병합해 주셔서 정말 감사합니다. Discourse와 제 플러그인 모두에 도움이 됩니다.

4개의 좋아요

좋아요, 이걸 가능하게 해준 @fzngagan 님, 도와주셔서 감사합니다. 함께 일하게 되어 정말 즐거웠습니다.

COPPA 아동 안전 요건을 준수하거나, 애드센스(AdSense) 관련 안전을 유지하고 싶거나, 단순히 어디에도 폭력적이거나 노출된 이미지를 원하지 않는 모든 커뮤니티에게는 이 플러그인이 필수입니다.

7개의 좋아요

@Razcle
이 내용은 당신에게 흥미로울 수 있습니다

Faizaan, 고마워! 언어 이해에 더 집중하고 사용자 정의가 가능한 무언가를 만들어 보는 걸 생각하고 있었어. 그쪽에 대한 경험이 있었어?

R

3개의 좋아요

@jahan_gagan은 NLP에 대해 몇 마디 할 것이 있을 수도 있습니다.

2개의 좋아요

stackoverflow dataset으로 tags prediction을 시도해 봤고, 그 다음에는 동일한 코드를 discourse 데이터셋에 적용해 보았습니다. 하지만 discourse 데이터셋의 데이터량이 적어서 해당 코드가 여기서는 작동하지 않았습니다.

2개의 좋아요

서비스 계정에 어떤 스코프가 필요한가요? “Request had insufficient authentication scopes” 오류가 발생하고 있습니다.

이것이 도움이 될 수 있을까요? 완전히 클라이언트 사이드에서 실행됩니다

텍스트 독성 모델

이 플러그인은 텍스트가 아닌 이미지용입니다.

텍스트를 위한 Jigsaw 엔진 기반의 Google Perspective 플러그인이 있습니다:

2개의 좋아요

안녕하세요 :waving_hand: 이 플러그인은 아직 사용 가능한가요? 마지막 커밋이 약 4년 전이라는 걸 방금 확인했어요. 감사합니다 :slightly_smiling_face:

1개의 좋아요

테스트 인스턴스에 설치하려고 해봤는데, gem 관련 문제가 있는 것 같습니다. 재구성이 실패했습니다. hopefully 해결 가능할 것 같습니다. :crossed_fingers: 아마도 이 gem들이 더 이상 지원되지 않게 된 것일 수도 있겠네요…

rake aborted!

Gem::LoadError: can't activate google-protobuf-3.13.0-x86_64-linux, already activated google-protobuf-4.27.3-x86_64-linux (Gem::LoadError)

/var/www/discourse/lib/plugin_gem.rb:25:in `load'

/var/www/discourse/lib/plugin/instance.rb:835:in `gem'

/var/www/discourse/plugins/discourse-image-filter/plugin.rb:12:in `activate!'

/var/www/discourse/lib/plugin/instance.rb:778:in `instance_eval'

/var/www/discourse/lib/plugin/instance.rb:778:in `activate!'

/var/www/discourse/lib/discourse.rb:348:in `block in activate_plugins!'

/var/www/discourse/lib/discourse.rb:345:in `each'

/var/www/discourse/lib/discourse.rb:345:in `activate_plugins!'

/var/www/discourse/config/application.rb:231:in `block in <class:Application>'

/var/www/discourse/lib/plugin.rb:6:in `initialization_guard'

/var/www/discourse/config/application.rb:231:in `<class:Application>'

/var/www/discourse/config/application.rb:75:in `<module:Discourse>'

/var/www/discourse/config/application.rb:74:in `<top (required)>'

/var/www/discourse/Rakefile:7:in `<top (required)>'

/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/exe/rake:27:in `<top (required)>'

/usr/local/bin/bundle:25:in `load'

/usr/local/bin/bundle:25:in `<main>'

(See full trace by running task with --trace)

I, [2024-08-02T16:48:02.872895 #1] INFO -- : gem install os -v 1.1.1 -i /var/www/discourse/plugins/discourse-image-filter/gems/3.3.3 --no-document --ignore-dependencies --no-user-install

Successfully installed os-1.1.1

1 gem installed

gem install google-protobuf -v 3.13.0 -i /var/www/discourse/plugins/discourse-image-filter/gems/3.3.3 --no-document --ignore-dependencies --no-user-install

Successfully installed google-protobuf-3.13.0-x86_64-linux

1 gem installed

I, [2024-08-02T16:48:02.886926 #1] INFO -- : Terminating async processes

I, [2024-08-02T16:48:02.888160 #1] INFO -- : Sending INT to HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 36

I, [2024-08-02T16:48:02.888588 #1] INFO -- : Sending TERM to exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 98

2024-08-02 16:48:02.888 UTC [36] LOG: received fast shutdown request

98:signal-handler (1722617282) Received SIGTERM scheduling shutdown...

2024-08-02 16:48:02.892 UTC [36] LOG: aborting any active transactions

98:M 02 Aug 2024 16:48:02.896 # User requested shutdown...

98:M 02 Aug 2024 16:48:02.897 * Saving the final RDB snapshot before exiting.

2024-08-02 16:48:02.906 UTC [36] LOG: background worker "logical replication launcher" (PID 51) exited with exit code 1

2024-08-02 16:48:02.909 UTC [46] LOG: shutting down

98:M 02 Aug 2024 16:48:02.939 * DB saved on disk

98:M 02 Aug 2024 16:48:02.939 # Redis is now ready to exit, bye bye...

2024-08-02 16:48:02.949 UTC [36] LOG: database system is shut down

FAILED

--------------------

Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 571 exit 1>

Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'

exec failed with the params {"cd"=>"$home", "tag"=>"migrate", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}

bootstrap failed with exit code 1

** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.

./discourse-doctor may help diagnose the problem.

9213a43b80e800c6f2b1d0adc0663ec82a483b860f0302b8ebabc8a3b2bb0619

이 문제를 #broken으로 태그했습니다.

2개의 좋아요