본문 바로가기
데이터&AI/LLM

[무료] OpenAI API를 활용하여 유해성 검증하기!! (moderation API)

by 일등박사 2024. 11. 5.
728x90

openai의 API!!!

사용할때마다 매번 돈을 내는 치명적 단점이있는데요!!

텍스트 및 이미지의 유해성을 검증하는데 있어서는 무료로 오픈해두었습니다!!

검증하는 항목은 아래와 같은데요~~

 

  • 성적 콘텐츠 (sexual): 성적 콘텐츠 여부
  • 성적 콘텐츠/미성년자 (sexual/minors): 미성년자가 포함된 성적 콘텐츠 여부
  • 괴롭힘 (harassment): 괴롭힘 여부
  • 괴롭힘/위협 (harassment/threatening): 위협성 괴롭힘 여부
  • 증오 (hate): 증오 발언 여부
  • 증오/위협 (hate/threatening): 위협성 증오 발언 여부
  • 불법 (illicit): 불법적인 콘텐츠 여부
  • 불법/폭력적 (illicit/violent): 폭력적인 불법 콘텐츠 여부
  • 자해 (self-harm): 자해 관련 여부
  • 자해/의도 (self-harm/intent): 자해 의도가 있는 경우
  • 자해/방법 (self-harm/instructions): 자해 방법에 관한 콘텐츠 여부
  • 폭력 (violence): 폭력성 여부
  • 폭력/노골적 (violence/graphic): 노골적인 폭력 표현 여부

 

오늘은 이 유해성 검정 API 사용법을 알아보곘습니다!

 

 


1. openai client 객채 만들기 (api key세팅은 미리 되어 있어야 합니다!!)

import openai 
import json
import os
API_KEY = os.getenv('OPENAI_API_KEY')
client = openai.OpenAI(api_key = API_KEY)

 

 

2.텍스트 - 테스트!!

> 우선 처음에는 마음 따듯한 말을 넣어볼게요~!

response = client.moderations.create(
    model="omni-moderation-latest",
    input="나는 너를 사랑해",
)

json.loads(response.json())

그럼!! 모든 유해성에서 False가 나옵니다!!

 

그럼 인종 차별적 발언을하면? (저도 한국사람이기에, 남말고 우리에게 마음아픈말을 해보곘습니다!,,)

response = client.moderations.create(
    model="omni-moderation-latest",
    input="조선사람은 미개해!!",
)

json.loads(response.json())

 

그럼!! 괴롭힘과 증오 부분에서 해당되는것을 확인할 수 있습니다!

추가로 아랫부분에서는 그 점수도 볼수 있는데요!!

정말 해당부분만 높게 나오네요!

 

텍스트의 마지막으로 폭력적인 말을 해볼게요!!

response = client.moderations.create(
    model="omni-moderation-latest",
    input="너를 감금하고 폭행할거야. 그리고 폭탄을 터뜨려 죽여버리겠어!",
)

json.loads(response.json())

 

그럼!!!  정말로 그런 에러들을 잘 감지합니다!!

 

3. 이미지 - 테스트!!

 

 

영화의 포스터로 한번 테스트해보겠습니다!!

response = client.moderations.create(
    model="omni-moderation-latest",
    input=[
        {
            "type": "image_url",
            "image_url": {
                "url": "https://mblogthumb-phinf.pstatic.net/MjAyMTA2MjRfMjQ0/MDAxNjI0NTIzMzE0NTA2.226Wh8TLoUY_7ask8OMSG5_OMUxhrJn2n1zToZNR_I0g.bjFNj-a4Ma0E9Qfn0gc-oT8Bpc8pbR38y7I6FSTH64Qg.PNG.overcopy/%EC%8F%98%EC%9A%B0%EC%8B%9C%EB%A6%AC%EC%A6%88_%EC%9E%94%EC%9D%B8%ED%95%9C%EC%98%81%ED%99%94.png?type=w800",
                # can also use base64 encoded image URLs
                # "url": "data:image/jpeg;base64,abcdefg..."
            }
        },
    ],
)

json.loads(response.json())

 

그럼!! 폭력성이 있는것으로 잘 판단해줍니다~!!

 

이제!! 유해한 그림이나 텍스트 검증하기!! GPT를 통해 가능하겠지요~!^^

 

 

ㅁ 참고 : https://platform.openai.com/docs/guides/moderation/quickstart

728x90

댓글