[Python/ChatGPT] chatGPT 실무 활용편: OpenAI API로 원하는 텍스트 추출하기, API 사용 비용

생성형 AI, 신기하긴 한데 실무에 어떻게 직접 적용할지 막막하신가요? 실제로 제가 실무에서 활용했던 것 중 하나로, ChatGPT API를 활용하여 텍스트를 추출하는 방법에 대해 포스팅 해보려고 합니다🙂 궁금한 점은 댓글로 남겨주세요!

API 키 발급

먼저 OpenAI의 공식 웹사이트에서 ChatGPT API에 로그인하여 API 키를 발급받아야 합니다. 발급된 키는 다른 사람이 악용할 경우, 과금될 수 있으니 절대 절대 공개하면 안됩니다! openAI 링크를 클릭하여 발급 받는 페이지로 이동할 수 있어요.

OpenAI 키 발급받기

Create new secrety key를 누르면 이름을 입력할 수 있어요.

API Key 이름 입력

이름을 입력한 후 [Create secret key]를 누르면 API key 발급이 완료됩니다! 꼭 Key 값을 잘 복사해주세요. Done을 누른 이후로는 Key값을 다시 볼 수 없어요. 따라서 Key값을 잃어버리면 새로 발급 받아야 합니다.

API Key 발급 완료

필수 라이브러리 설치

API를 사용하기 위해 openai 라이브러리를 설치합니다.

!pip install openai

예제 데이터 – 식품안전나라

이제 간단한 예제를 통해 ChatGPT API를 활용하여 텍스트를 추출하는 방법을 살펴볼게요. 예시 데이터는 식품안전나라의 건강기능식품 원료별 정보입니다. 링크에 들어가 보시면 358개의 개별인정원료가 있는데요, 클릭해보시면 각 개별인정원료에 대한 원재료, 인정번호, 업체명, 기능성내용, 일일섭취량, 섭취 시 주의사항 등이 작성되어 있습니다.
그런데 섭취시 주의사항의 경우 아예 없는 경우도, 한 줄로 작성된 경우, 여러 항목이 작성된 경우 등 케이스가 다양해요. 358여개에 대한 모든 케이스를 일일이 파악해서 복잡한 if else문을 짜는 대신, 똑똑하게 chatGPT를 활용하여 쉽게 해결해보아요!

예시데이터1
예시데이터2

텍스트 추출하기

from openai import OpenAI

api_key = "YOUR_API_KEY" #아까 복사한 API KEY 값을 복사해서 붙여주세요!!
client = OpenAI(api_key = api_key)

프롬프트 작성하기

프롬프트는 openai의 Playground 페이지에서 먼저 작성하는 것을 추천해드려요. 원하는 프롬프트가 작성되고 나면 View Code를 통해 API를 사용할 수 있는 코드를 자동으로 작성해줘요 🙂 저는 Chat 모드로 작성했어요. 동일한 결과를 위해 Temperature을 0으로 설정했어요. Temperature이 커질수록 매번 다양한 대답을 생성해줍니다.

OpenAI Playground에서 프롬프트 작성하기

추출 결과

추출 결과

API 활용하기

마음에 드는 답변을 얻으셨다면, 코드화 합니다. Playground 페이지의 오른쪽 상단 [View Code]를 클릭하면 api 사용을 위한 코드를 자동으로 생성하여 제공해줍니다.

API 응답을 위한 코드생성

function 작성

추출 전 텍스트를 text 파라미터로 둔 함수를 작성해보았어요.

def warning(text):
  response = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[
      {
        "role": "system",
        "content": "you are a helper who extract data from text in python list form. Just extract python list without description"
      },
      {
        "role": "user",
        "content": f"건강기능식품 원료에 대한 내용에서 섭취 주의사항에 관한 내용을 python list 형태로 추출해줘.\n\n{text}"
      }
    ],
    temperature=0,
    max_tokens=2203,
    top_p=1,
    frequency_penalty=0,
    presence_penalty=0
  )
  return response.choices[0].message.content

추출 결과

각 항목별로 주의사항이 잘 추출 된 것을 확인할 수 있어요. 🥰

텍스트 추출 결과

API 사용 비용

총 358개의 항목에 대해 추출한 결과, 비용은 약 $0.36로 들었어요. 500원? 아주… 가성비 넘치네요! 😊


마무리

ChatGPT API를 활용한 간단한 예제를 살펴 보았는데요. 다른 chatGPT 활용 사례에 대해서도 하나씩 포스팅 해 보겠습니다. 감사합니다.

Leave a Comment