본문 바로가기
BB Life

챗GPT를 활용한 프로그래밍 : 변경된 OpenAI호출과 OpenAI키 암호화 방법

by jjvoka 2023. 11. 17.
728x90

챗GPT의 API를 활용하여 다양한 프로그램을 만들 수 있다. 

 

내 경우 '오늘의 타로'라는 타이틀로 타로 운세를 보는 프로그램을 만들고 이를 매일 같이 잘 사용하고 있다.

 

78장의 카드 중 임의의 3장을 보여주고 이 카드를 바탕으로 오늘의 운세를 해석하여 보여주는 프로그램이다. 

이때, 각 카드 조합에 따른 다양한 해석을 위해 방대한 데이터를 수집해야 하고 이를 조합하여 보여주는 게 보통일이 아니다. 

 

하지만, 이런 데이터를 OpenAI의 API를 이용하여 데이터를 받아오면 개발량은 상당히 줄어들게 된다. 

 

단, OpenAI의 API는 서비스 모델별로 요금이 부과되기에 공개 서비스 보다는 개인 참고용으로 활용하고 있다.

 

참고로 그 데이터양이 얼마되지 않아 부과되는 금액은 상당히 미미하다.

 

 

[기존 OpenAI 호출]

    import openai
 
    # OpenAI API 키 설정
    openai.api_key = API_KEY
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": prompt_text}
        ]
     )
     return response['choices'][0]['message']['content'].strip()

 

[변경된 OpenAI 호출]

 
     from openai import OpenAI
 
    client = OpenAI(
        api_key = API_KEY
    )

    client.models.list()
 
    response = client.chat.completions.create(
        model="gpt-3.5-turbo",
        messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": prompt_text}
        ]
     )
 
     return response.choices[0].message.content
 

 

대략 11월 10일 경 업데이트되어 불가피하게 소스를 수정해야 했다.

 

이중 오늘 다루고자 하는 내용은 위 소스 중 'api_key'를 소스페이지에 직접 입력하지 않고 암호화하여 파일로 불러오는 방법에 대해 소개하고자 한다. 

 

OpenAI를 활용한 개발 책들도 은근히 출간되고 있는 시점에서 예제 실행을 위해 API 키를 소스페이지에 직접 하드코딩하여 이용하는 모습을 볼 수 있었다. 

 

테스트 용도로라도 가급적 API Key가 유출되지 않게 조심해야 한다. 

 

GitHub에 API Key를 암호화는 프로그램 소스를 공유하였다.

 

KeyEncrytionTool_v1.0 바로가기

 

Mac환경에서 개발하였지만, Windows에서도 쉽게 반영 가능할 것이라 생각된다. 

 

 

프로그램을 실행하면 위와 같은 모습의 유틸리티가 실행된다. 

 

'Key:' 입력창에 OpenAI Key와 같은 암호를 넣어 암호화하여 파일로 저장할 수 있다. 꼭 OpenAI키만 넣으란 법은 없다. 일반적인 암호를 넣어 암호화 하여 파일로 저장 후 소스에서 불러와 활용할 수 있다.

 

 

encryted_api_key.bin 파일과 sedcret.key 두 파일이 생성된 모습이다.

 

이 두 파일을 가지고 파이썬 소스페이지에서 불러와 사용하는 방법을 잠시 살펴보겠다.

 

위 소스와 같이 secure.key와 encrypted_api_key.bin파일을 불러와 OpenAI와 통신할 수 있다.

 

OpenAI를 활용한 프로그램을 이제 막 시작했다면 위 소스를 참고하여 보안에 민감한 키 값을 암호화하여 사용할 수 있다.

 

 

소스 관련 문의는 voka@naver.com으로 보내주시면 회신드립니다.

 

 

 

 

728x90
728x90

댓글