본문 바로가기
카테고리 없음

[파이썬] 카카오 KoGPT API 키발급, 파이썬 코딩 해보기

by 퍼포먼스마케팅코더 2022. 12. 26.
반응형

카카오 KoGPT API 키발급, 파이썬 코딩 해보기

카카오 KoGPT API 키발급 이후 사용해보기

 

안녕하십니까 오늘 얘기 드릴 거는 카카오에서 올해 10월이죠. 10월 정도의 자기네들이 만든 머신 러닝이 있죠. 카카오 KoGPT 라는 것을 만들었습니다. 이거에 대해서 사용해 봤던 결과로서는 근데 예제로만 판단을 했는데 실무적으로 더 파악을 해봐야 될 것 같기는 합니다. 오늘은 이 카카오의 머신 러닝으로 나왔었던 자연화 처리 이것에 관련해서 api 키를 발 급을 해보고 파이썬 코딩을 기반으로 해서 한 번 어떻게 하는지 알아보도록 하겠습니다.

카카오 KoGPT API 키발급, 파이썬 코딩 해보기

 

첫 번째는 다음 문장 만들기예요. 이 밑에 파이썬 코딩 을 돌려보시면 아시겠지만 여기에서 카카오 KoGPT 자연어 처리하는 머신 러닝 거기에다가 명령어를 보냅니다. 이 명령어를 보내면 이거 이후로 네가 글 써줘 이거거든요. 그에 걸맞은 파라미터를 전달해서 api로 호출을 하면 그에 걸맞은 다른 문장들을 뽑아주는 형식으로 돼 있습니다. 거의 한 보통은 거의 한 문장은 한 8 문장 정도를 뽑아주는 것 같아요. 나름 괜찮습니다. 명령어도 잘 뽑아주는 것 같고 유용하게 쓸 수 있겠다는 생각이 들었습니다. 이거 활용할 수 있는 방안이 예를 들면 거겠죠. 광고 마케팅 분야에서 많이 쓰일 것 같기는 한데 그중에서도 광고 카피라든가 아니면 블로그로 포스팅을 한다든가 기타 등등 것들을 할 때 유용하게 쓸 수 있는 부분이지 않을까라는 생각이 들었습니다.

 

# coding=utf8
# REST API 호출에 필요한 라이브러리
#다음 문장 만들기

import requests
import json

# [내 애플리케이션] > [앱 키] 에서 확인한 REST API 키 값 입력
REST_API_KEY = ''

# KoGPT API 호출을 위한 메서드 선언
# 각 파라미터 기본값으로 설정
def kogpt_api(prompt, max_tokens = 1, temperature = 1.0, top_p = 1.0, n = 1):
    r = requests.post(
        'https://api.kakaobrain.com/v1/inference/kogpt/generation',
        json = {
            'prompt': prompt,
            'max_tokens': max_tokens,
            'temperature': temperature,
            'top_p': top_p,
            'n': n
        },
        headers = {
            'Authorization': 'KakaoAK ' + REST_API_KEY,
            'Content-Type': 'application/json'
        }
    )
    # 응답 JSON 형식으로 변환
    response = json.loads(r.content)
    return response

# KoGPT에게 전달할 명령어 구성
prompt = '''인간처럼 생각하고, 행동하는 '지능'을 통해 인류가 이제까지 풀지 못했던'''

# 파라미터를 전달해 kogpt_api()메서드 호출
response = kogpt_api(
    prompt = prompt,
    max_tokens = 32,
    temperature = 1.0,
    top_p = 1.0,
    n = 3 
)

print(response)

 

두 번째는 문장 분류하기입니다. 이 문장 분류하기는 이미 클로버 스튜디오에서도 이미 한 번 내놨었던 적이 있었죠. 그것 중에 하나가 클로바 sentiment 라고 여기에서 나왔었던 것을 카카오도 서비스로 내놨었던 것 같긴 한데 어떤 특정 문장이 있는데 이 문장이 긍정이냐 부정이냐 가려서 전달을 해주는 방식입니다. 이것도 좋을지 나쁠지 것들은 보셔서 판단해보는 것도 나쁘지는 않을 것 같아요. 정확히는 파악을 해봐야 될 것 같기는 합니다. 긍정 부정으로 제대로 된 그러한 텍스트를 문장을 분류를 해주는 건지는 확인이 필요할 것 같긴 합니다.

 

#문장 분류하기


prompt='''상품 후기를 긍정 또는 부정으로 분류합니다.
가격대비좀 부족한게많은듯=부정
재구매 친구들이 좋은 향 난다고 해요=긍정
ㅠㅠ약간 후회가 됩니다..=부정
이전에 먹고 만족해서 재구매합니다=긍정
튼튼하고 잘 쓸수 있을 것 같습니다. 이 가격에 이 퀄리티면 훌륭하죠='''
response = kogpt_api(prompt, max_tokens=1, temperature=0.4)
response

 

세 번째인데 이것도 클로버 스튜디오 안에 있었던 내용이죠. 클로바 Summary 라고 거기에서 나왔던 내용입니다. 내용인데 이건 한 줄로 요약하기 이런 거예요. 이것도 유용하게 쓸 수 있을 것 같기는 합니다. 어떤 특정 주제 글감에 대해서 썼다면 따라서 블로 주제나 제목이나 어떤 키워드를 삽입한 제목을 지을 때 어떻게 할 거냐 할 때 쓸 수 있는 방향이라고 보시면 될 것 같습니다.

 

#뉴스 한 줄 요약하기

prompt='''카카오(각자대표 남궁훈, 홍은택)의 임팩트 커머스 카카오메이커스와 카카오브레인(대표 김일두)이 '세계 동물의 날'을 맞아 멸종 위기 동물 보호에 힘을 보탠다. 

카카오메이커스와 카카오브레인은 4일 세계 동물의 날을 맞아, 카카오브레인의 AI 아티스트 '칼로' 와 현대미술가 고상우 작가가 협업한 제품을 오는 12일까지 카카오메이커스에서 단독 판매한다고 밝혔다. 판매 수익금 전액은 WWF(세계자연기금)에 기부할 예정이다. 

이번 프로젝트에 참여한 AI 아티스트 '칼로'는 'minDALL-E', 'RQ-Transformer' 등 카카오브레인의 초거대 이미지 생성 AI 모델을 발전시켜 하나의 페르소나로 재탄생한 AI 아티스트다. 1.8억 장 규모의 텍스트-이미지 데이터셋을 학습해 이해한 문맥을 바탕으로 다양한 화풍과 스타일로 이미지를 생성할 수 있다. 올해 6월에는 고상우 작가와의 공동 작업으로 생성한 1,000개의 호랑이 이미지를 조합한 디지털 작품으로 전시회를 진행한 바 있다. 

이번 프로젝트를 통해 선보이는 제품은 맨투맨과 머그컵이다. '칼로'가 생성한 호랑이 그림과 푸른색 사진 예술의 선구자인 고상우 작가 특유의 드로잉이 조화롭게 어우러져 완성된 500점의 호랑이 그림 모자이크 'Blue Tiger'가 새겨져 있다. 판매 수익금 전액은 WWF(세계자연기금)에 기부됨과 동시에, 낭비 없는 생산을 위해 주문 수량만큼 제품을 생산하는 카카오메이커스의 환경친화적 주문제작 방식(POD 생산)을 도입했다. 

카카오브레인 김일두 대표는 "AI 아티스트 칼로가 생성한 예술 작품으로 멸종 위기 동물 보호 활동에 동참하게 되어 기쁘다"며, "앞으로도 우리의 AI 기술을 통해 사회에 환원할 수 있는 의미 있는 프로젝트에 지속 참여하겠다"며 포부를 전했다. 

카카오 정영주 메이커스 실장은 "지난 8월 고양이의 날을 기념한 제품을 기획/판매해 기부한데 이어 사회의 다양한 구성원을 존중하고 배려하는 프로젝트를 이어가고 있다"며 "더 나은 세상을 만들기 위한 이용자들의 관심을 확인하고 있으며, 앞으로도 임팩트 커머스로서 다양한 가치를 담은 메이커스만의 제품을 선보일 것" 이라고 밝혔다.

한줄 요약:'''
response = kogpt_api(prompt, max_tokens=128, top_p=0.7)

response

 

네 번째는 어떤 질문에 답변하기 있는데 이미 따로 쓰이는 방향이 있기 때문에 많이 쓰일 것 같지는 않습니다. 넘어가고요.

 

#질문에 답변하기


prompt='''의료 스타트업으로 구성된 원격의료산업협의회가 10월부터 열리는 국정감사 시기에 맞춰 국회와 정부에 비대면 진료법 근거 마련을 촉구하는 정책제안서를 제출한다. 코로나19 사태에 비대면 진료의 한시 허용으로 원격 진료, 의약품 배송 등 서비스가 속속 등장하는 가운데 제도화 논의를 서둘러야 한다는 목소리가 높아질 것으로 전망된다. 코리아스타트업포럼 산하 원격의료산업협의회는 '위드(with) 코로나' 방역 체계 전환을 염두에 두고 비대면 진료 제도화 촉구를 위한 공동 대응 작업을 추진하고 있다. 협의회는 닥터나우, 엠디스퀘어, SH바이오, 메디버디 등 의료 스타트업 13개사로 구성됐다. 협의회는 국정감사 시기를 겨냥해 국회와 주무 부처인 보건복지부에 비대면 진료의 법적 근거 마련을 촉구할 방침이다. 이를 위해 주요 의원실과 관련 의견을 교환하고 있다. 협의회는 궁극적으로 의료법과 약사법 개정이 필요하지만 의료법 테두리 안에서 시행령 개정 등으로도 비대면 진료 가능성과 대상·의료기관 등을 구체화할 수 있다는 복안이다. 복지부 장관령으로 비대면 진료 기간을 명시하는 방안 등을 통해 사업 리스크도 줄일 수 있다. 올해 안에 국내 방역체계 패러다임이 바뀔 것으로 예상되는 점도 비대면 진료 제도화의 필요성을 높이고 있다. 최근 코로나19 백신 접종이 속도를 내면서 방역 당국은 위드 코로나 방역체계 전환을 고려하고 있다. 인구 대비 백신 접종 완료율이 70%가 되는 오는 10월 말에는 전환 논의가 수면 위로 뜰 것으로 보인다.
정책제안서를 제출하는 시기는 언제인가?:'''
response = kogpt_api(prompt, max_tokens=128, temperature=0.2)

response

 

 

다섯 번째가 특정 정보 추려내기도 있긴 한데 어떤 정답형 검색으로 만들어 놨었던 이런 것 같아요. 정보를 뽑아낸다. 한다 이런 것들이 있기는 하는데 이것도 많이 쓰일 것 같지는 않습니다.

#특정 정보 추려내기

prompt='''임진왜란(壬辰倭亂)은 1592년(선조 25년) 도요토미 정권이 조선을 침략하면서 발발하여 1598년(선조 31년)까지 이어진 전쟁이다. 또한 임진왜란은 동아시아에 막대한 영향을 끼쳤으며, 두번의 침입이 있어서 제2차 침략은 정유재란이라 따로 부르기도 한다. 또한 이때 조선은 경복궁과 창덕궁 등 2개의 궁궐이 소실되었으며 약 백만명의 인구가 소실되었다.

명칭
일반적으로 임진년에 일어난 왜의 난리란 뜻으로 지칭되며 그 밖에 조선과 일본 사이에 일어난 전쟁이란 뜻에서 조일전쟁(朝日戰爭), 임진년에 일어난 전쟁이란 뜻에서 임진전쟁(壬辰戰爭), 도자기공들이 일본으로 납치된 후 일본에 도자기 문화가 전파되었다 하여 도자기 전쟁(陶瓷器戰爭)이라고도 한다. 일본에서는 당시 연호를 따서 분로쿠의 역(일본어: 文禄の役 분로쿠노에키[*])이라 하며, 중화인민공화국과 중화민국에서는 당시 명나라 황제였던 만력제의 호를 따 만력조선전쟁(萬曆朝鮮戰爭, 중국어: 萬曆朝鮮之役), 혹은 조선을 도와 왜와 싸웠다 하여 항왜원조(抗倭援朝)라고도 하며, 조선민주주의인민공화국에서는 임진조국전쟁(壬辰祖國戰爭)이라고 한다. 그밖에도 7년간의 전쟁이라 하여 7년 전쟁(七年戰爭)으로도 부른다.

임진왜란 때 조선의 왕은?

답:'''
response = kogpt_api(prompt, max_tokens=1, temperature=0.3)
response

 

다음은 말투 바꾸기인데요. 말투 바꾸기 이것도 쓰일 수 있을 것 같기는 해요. 어떤 여러 가지 문체들이 있기 때문에 어떤 문체에 맞게끔 뭔가 바꾸는 이런 것들도 쓰일 수 있는 방향이 있지 않을까 싶습니다.

 

#말투 바꾸기 

prompt='''주어진 문장을 존댓말 문장으로 바꿔주세요.

문장:하지마!
존댓말:하지 말아주세요.

문장:나랑 같이 놀러가자
존댓말:저랑 같이 놀러가지 않으실래요?

문장:배고파 밥줘
존댓말:배가고픈데 밥을 먹어도 될까요?

문장:그거 재밌어?
존댓말:그것은 재미 있나요?

문장:뭐하는거야 지금
존댓말:지금 무엇을 하시는 건가요?

문장:당장 제자리에 돌려놔
존댓말:'''
response = kogpt_api(prompt, max_tokens=10, temperature=0.7)
response

 

마지막으로 채팅하기 이건데 채팅하기도 많이 쓰일까 하는 생각이 들기는 하네요. 쓰인다면 근데 채팅하기에는 이미 다들 알겠지만 챗봇이라고 있죠 챗봇 형식으로 뭔가 만든 다든가 이런 걸 할 때 뭔가 유용하게 쓸 수 있는 서비스라고 보시면 될 것 같습니다.

 

#채팅하기

prompt='''정보:거주지 서울, 나이 30대, 성별 남자, 자녀 두 명, 전공 인공지능, 말투 친절함
정보를 바탕으로 질문에 답하세요.
Q:안녕하세요 반갑습니다. 자기소개 부탁드려도 될까요?
A:안녕하세요. 저는 서울에 거주하고 있는 30대 남성입니다.
Q:오 그렇군요, 결혼은 하셨나요?
A:'''
response = kogpt_api(prompt, max_tokens=64, temperature=0.3, top_p=0.85)
response

 

간단하게 살펴봤었었는데 아무래도 활용할 수 있는 범위는 많다 그다음에 더 두고 보면 활용할 수 있는 범위가 커질 것 같다 라는 생각이 듭니다.는 나중에는 머지않아 자동화 라든가 뭔가 것들이 다른 형식상으로 해서 추가가 될 것 같기는 하네요. 오늘은 이거에 대해서 간략하게만 알아봤고요 나머지 추가적으로 있다 싶어 면 그때 말씀드리도록 하겠습니다. 오늘은 여기까지입니다. 고맙습니다.

 

# KoGPT에게 전달할 명령어 구성
prompt = '''학원 공부방 인테리어 칠판 설치 충남 계룡 글로벌 학원의 내부를 한번 살펴볼까요. 계룡 글로벌 학원에서 내신성적이 더 잘 나오는 이유는. 앉아서 무조건 주입식 교육을 받는 전형적인 학원 같은 분위기라기보다 자유로운 미국의 학교와 도서관 같은 분위기가 물씬 묻어나네요. 우드를 활용한 인테리어 때문인 것 같아요. 학생들이 자유로운 분위기에서 창의성도 기르면서도 공부할 수 있도록 인테리어를 하셨어요. 초등 관중 등 관고 등관이 있는데 조 등 관을 고등관으로 변경하신 다 합니다. 그래서 수업하시는데 굉장히 효율적인 전자칠판을 찾게 되셨나 봐요. 아무래도 중고등학교 내신이나 수능을 준비하기 위해서는 긴 지문을 읽고 수업해야 하는데 일일이 유인물을 만들거나 재편집을 하려면 엄청 번거롭겠지요. 그렇게 수업을 몇 번 하다가 선생님들께서는 고민을 시작하십니다. 그냥 그 자리에서 바로 교재를 칠판에 똬아악 띄우고 칠판에서 지문을 확대하고 축소할 수는 없나. 네 됩니다. 상상만 하지 마세요. 이미 현실에 존재하니까요. 그게 바로 에이블클래스의 전자칠판 에이블클래스 전자칠판입니다. 전자펜으로 밑줄 쫙쫙. 별표 5개. 원하시는 대로 칠판에 판서하실 수 있으니 안 사실이 유가 없는 수업 필수 템입니다. 게다가 칠판에서 판서한 것들이 바로 그 자리에서 캡처 인쇄 녹화가 가능하니 이것이야말로 선생님의 티칭 효율을 올려주고 수업 자체의 퀄리티를 높여주는 디지털 기기 전자칠판이 아닐까요. 에이블클래스 사용 후기를 읽어보세요. 전국에 있는 공교육 사교육 기관에서 믿고 찾아주는 데는 다 이유가 있습니다. 원래 쓰던 교실 칠판을 그대로 터치가 되는 전자칠판으로 만들어주기 때문에 선생님들이 수업할 때 느끼시는 체감 효율성을 극대화해드려요. 수업이 효율적이 되면 학생들을 케어할 수 있는 시간과 에너지가 더 많아지겠죠. 선생님과 학생들 모두에게 윈윈 전략 빔프로젝터 전자칠판 하나로 수업의 디지털화가 가능해집니다. 계룡 글로벌 학원에서 내신성적이 더 잘 나오는 이유는. 국어 영어 수학 가르치실 때 정말 효율적으로 빛이 날 기능입니다. 계룡 글로벌 학원에서 내신성적이 더 잘 나오는 이유는. 빔프로젝터와 연결된 컴퓨터의 모니터입니다. 화면에 보이는 전 판서프로그램 터치 프로그램 리모컨 프로그램이지요. 에이블클래스 전자칠판은 터치센서 전자펜 리모컨 판서프로그램으로 구성되어 있는데요. 빔프로젝터가 칠판을 투사하고 투사되는 영역이 터치가 가능하도록 터치센서가 빔프로젝터 밑에 설치됩니다. 전자펜으로 터치센서가 적용된 칠판에서 아이콘을 클릭하거나 판서하시면 태블릿처럼 작동을 합니다. 리모컨으로 칠판에 띄어진 교재를 앞뒤로 왔다 갔다 자유자재로 책장 넘기듯이 넘기실 수 있어요. 당연히 판서할 때 필기구의 색깔도 바꾸실 수 있고요. 그리고 혹시라도 판서프로그램이 실수로 삭제가 되거나 에러가 생기면 바로 원격으로 실시간 AS 해드려요. 계룡 글로벌 학원에서 내신성적이 더 잘 나오는 이유는. 단초점 빔프로젝터를 사용하기 때문에 장초점 빔프로젝터보다 선생님이 칠판 앞에서 계실 때 눈부심이 거의 없어요. 학생들이 칠판을 봤을 때에도 마찬가지고요. 한 가지 미리 알려드리는 점은 빔프로젝터가 연결되면 컴퓨터나 노트북 모니터는 1280x800의 해상도에서 최적으로 호환되는데요. 빔프로젝터 HDMI 잭이 컴퓨터나 노트북에서 분리되었다가 다시 부팅이 되면 모니터 해상도가 제품 출고 시 기본 세팅 값으로 자동 설정되실 거예요. 디스플레이 설정에 들어가셔서 그 값을 다시 빔프로젝터에 최적화될 수 있게 1280x800으로 바꾸어 주세요. 참 쉽죠. 화이트보드 오른쪽에 보라색으로 보이는 아이콘 바는 판서프로그램입니다. 각각의 아이콘을 전자펜으로 클릭하시면 필기도구의 색깔이나 크기가 변경이 되기 때문에 수업에서 필요하실 때마다 자유자재로 활용하시면 됩니다. 형광펜 하이라이트를 통해서 학생들에게 중요한 점을 강조하실 수도 있죠. 계룡 글로벌 학원에서 내신성적이 더 잘 나오는 이유는. 아직 잘 모르시겠다고요. 걱정하지 마세요. 설치 후 프로그램 교육 시에 아주 차근차근 설명해 드려요. 화이트보드 옆에 리모컨 그려서 각 기능 설명해 놓은 거 보이시죠. 사용하실 선생님께서 손에 익으실 때까지 퇴근도 하지 않고 대기하고 있겠습니다. 🤣 계룡 글로벌 학원에서 내신 성적이 더 잘 나오는 이유는. 이렇게 교재를 바로 칠판에 띄울 수 있기에 선생님들께서는 교사용 교재를 보고 학생들은 책상에 코 박고 필기할 일이 없어요. 서로 눈 마주치면서 상호작용하는 수업을 하실 수 있습니다. 아래는 반전 기능입니다. 상황에 따라 블랙 모드가 더 잘 보인다 생각하시면 반전 기능을 활용해보세요. 가르치시는 과목에 따라서 활용도가 높은 기능입니다. 위 사진은 캡처 기능입니다. 수학 과목에서 아주 유용한데요 교재를 띄우면 문제 전체가 나오잖아요. 그때 한 문제만 캡처하기를 누르면 저렇게 한 문제만 자동으로 칠판 상단에 위치합니다. 그래서 나머지 공간 전부는 문제를 풀이할 수 있는 판서의 영역이 됩니다. 그리고 판서한 내용은 그대로 저장되기 때문에 인쇄를 하시거나 따로 파일로 만드셔서 학생들이 막힐 때마다 다시 복습할 수 있는 기능으로도 활용할 수 있어요. 전국 학교 및 학원에서 찾아주신 이유가 이제 보이시지요. 선생님들이 수업하실 때 선생님들을 최우선으로 생각하는 에이블클래스입니다. 사람 기분이라는 게 참전 염성이 높거든요. 내가 수업 때문에 지치면 학생들도 그 지친 기운을 받아 가니까요. 선생님들. 올겨울에 에이블클래스 전자칠판 하나 들여놓으세요. 전자칠판 덕분에 따뜻한 기운이 솟아나는 교실이 될 거예요.'''

# 파라미터를 전달해 kogpt_api()메서드 호출

response = kogpt_api(prompt, max_tokens=128, top_p=1.0)
반응형

댓글