오늘은 Chat GPT 활용법에 대해 알아보았습니다.
머신러닝과 딥러닝에 지친 마음을 Chat GPT로 달래 보았습니다.
저는 주로 Chat GPT 무료버전과 뤼튼을 주로 사용합니다.
처음 뤼튼을 사용했을 땐 이미지 생성이 활성화되지 않았는데 최근에 다시 보니 이미지 생성이 활성화된 것 같아요.
그 외에도 Chat GPT 4 유로버전을 무료로 사용할 수 있는 수많은 대안방법이 있습니다.
다양한 챗봇을 사용할 수 있는 POE.COM, 파일 분석을 위한 Cluade, 데이터 분석은 Julius 그리고 Bing 챗봇을 이용하셔도 됩니다.
Bing 챗봇은 Edge 브라우저를 통해 Bing.com에 접속하시면 됩니다.
그러면 상단의 채팅이 눈에 보일 텐데 클릭 후 해당 서비스 이용이 가능합니다.
왼쪽 사진은 수강생 중 한 분이 북클럽을 그려달라고 AI에 요청한 사진입니다.
1. 1980년대 미국 그래피티 감성
2. 그래피티는 물감이 흘러내리는 듯한 느낌으로
3. 소그룹으로 책을 읽는 모습이 비쳤으면 좋겠어
라는 조건이었습니다.
오른쪽 사진은 한 수강생 분의 트러플 김치찌개를 바탕으로 단계별 이미지 생성을 요청하니 나온 결과물이에요.
고기가 약간 베이컨 같고 마늘은 통마늘, 고춧가루 대신 페페론치노를 쓰는 걸로 봐서 일단 한국인 입맛은 아닌 거 같아요. (ㅋㅋㅋ)
이를 통해 Chat GPT의 기본 사용법에 대해 간단히 알아보겠습니다.
사용 시 중요성
1. 주제 분리의 중요성 : Chat GPT는 주어진 맥락과 정보를 기반으로 대화를 진행하기 때문에 새롭게 질문할 경우 주제를 명확히 분리할 것
2. 역할 (페르소나) 지정의 중요성 : 대화를 시작하기 전 적절한 역할을 지정해 줘서 전문적이며 맥락에 부합한 답변을 얻을 것
3. 컨텍스트의 중요성 : 대화 시작 전 명확한 역할과 컨텍스트를 설정하고 출력 요청할 것
4. 말투 지정의 중요성 : 대화 목적을 고려하여 원하는 문장 구성과, 어조, 리듬을 얻기 위해선 적절한 말투를 선정할 것
5. 대상 지정의 중요성 : 대상 연령에게 알맞은 전문성과 배경지식 등 효과적인 전달을 위해 고려할 것
6. 구분 기호의 중요성 : Chat GPT가 요청을 정확히 이해하며 적절한 답변을 얻기 위해 복잡한 지시사항이나 여러 개의 질문의 경우 구분 기호를 사용하여 각 요소를 분명히 구분할 것
7. 단계별 지침의 중요성 (코드리뷰) : 복잡한 작업을 위해 단계별 지침을 제공하여 체계적으로 전달할 것
8. 사례와 예제의 중요성 : 사례와 예제를 통해 Chat GPT에게 명확히 상황을 설명하고 원하는 답변의 형식을 제공할 것
9. 구조화된 출력 지정의 중요성 : 명확한 출력 형식을 요청함으로 데이터를 보다 유용하고 활용 가능한 형태로 받을 것
10. 점진적 확장의 중요성 : 책 작성, 프로젝트, 비즈니스 계획 등 큰 규모에도 유용하니 단계별 목표를 세분화하여 각 단계에 집중해서 진행할 것
위를 바탕으로 Chat GPT를 보다 더 적절하고 여러 분야에서 활용할 수 있는 방법에 대해 알아보았습니다.
직접 써보며 느낀 건 더 좋은 글을 작성할 수 있도록 직접 Chat GPT에게 피드백을 해주는 것이 결과물이 가장 좋았습니다.
이제 Chat GPT API를 활용하는 방법에 대해 배워보았습니다.
라이브러리 설치
언어는 Python을 사용하며 Colab이나 Jupyter Notebook으로 진행
!pip install openai
API Key 생성
https://platform.openai.com/api-keys 사이트에 접속 후 메뉴에서 API Keys를 클릭
+ Create new secret key 버튼을 눌러 이름을 설정하고 API Key를 생성
# Colab에서 Key 설정
from openai import OpenAI # OpenAI 모듈
client = OpenAI(api_key='사용자의 API Key로 대체')
+ 여기서 주의할 점
Key는 처음에 한 번만 copy 할 수 있으니 따로 저장
(추후에는 확인할 수 없음, 기억이 안 날 시 새로운 Key 생성)
안전한 보관을 위해 다른 사람과 가능한 공유하지 말고 사용
+ ex)
from openai import OpenAI # OpenAI 모듈 불러오기
# OpenAI API 키 설정
client = OpenAI(api_key='your-api-key') # 사용자의 API 키로 대체해야 함
# ChatGPT를 사용한 텍스트 생성 요청
response = client.chat.completions.create(
model = "gpt-3.5-turbo",
messages = [{"role" : "user", "content" : "Hello World!"}]
)
# API 응답에서 마지막 메시지의 내용을 출력
print(response.choices[0].message.content)
client : OpenAI API 클라이언트의 인스턴스
chat.completions.create() : 대화형 챗봇을 생성하는 함수
+ 매개변수
model : 사용할 GPT-3 모델을 지정
messages : 대화의 맥락을 나타내는 메시지 목록
(messages는 role, content 두 가지 주요 구성 요소 가짐)
+ role은 메시지의 발신자 (주로 두 가지로 구분)
"user" : 사용자의 메시지
"system" or "assistant" : 챗봇 또는 시스템의 메시지
content는 메시지의 실제 내용 (질문, 명령, 정보, 응답)
+ 설명
코드의 첫 부분에서는 OpenAI 모듈을 가져오고, API 키를 설정
API 키는 OpenAI 웹사이트에서 생성한 키로 대체
다음으로 ChatGPT 모델을 사용하여 텍스트 생성 요청 전송
model 매개변수에는 사용할 모델을 선택, messages 매개변수에는 대화를 나타내는 메시지를 리스트 형태로 전달
이 예제에서는 사용자가 "Hello World!"라는 메시지를 입력한 것으로 설정
마지막으로 API 응답에서 마지막 메시지의 내용을 가져와서 출력
+ ex) Python 코드를 사용하여 API 요청을 보내는 예제
for i in range(10) :
response = client.chat.completions.create(
model = "gpt-3.5-turbo",
messages = [{"role" : "user", "content" : "Translate the following korean text to English: 안녕하세요 오늘 날씨가 좋네요. 햇살이 맑아요"}],
max_tokens=10,
temperature=0.7,
top_p=0.8,
frequency_penalty=0.2
)
print(response.choices[0].message.content)
+ 매개변수
1. max_tokens : 최대 토큰 수
2. temperature : 창의성 조절
3. top_p : 텍스트 다양성 조절
4. frequency_penalty : 단어 반복 감소
5. presence_penalty : 새로운 정보 증가
from typing import List
def assist_blogger(
facts: List[str], tone: str, length_words: int, style: str
):
facts = ", ".join(facts)
prompt_role = "너는 블로그 전문가고, 파워블로그처럼 글을 써야 해"
prompt = f"{prompt_role} \
FACTS: {facts} \
TONE: {tone} \
LEGNTH: {length_words} words \
STYLE: {style}"
return ask_chatbot([{"role": "user", "content": prompt}])
+ 매개변수
1. facts (사실들) : 글에 포함될 사실들의 목록
2. tone (톤) : 글의 톤 또는 스타일 (전문적, 친근한...)
3. length_words (길이) : 글의 단어 수
4. style (스타일) : 글의 스타일 (SEO 최적화, 설득력 있는...)
더 자세한 코드는 제 GitHub에 올려두었습니다.
필요한 코드 부분은 참고하시면 될 것 같아요 :)
https://github.com/soohyun020812/ormcamp
GitHub - soohyun020812/ormcamp: 오름캠프 교육에서 활용한 실습 내용들 정리
오름캠프 교육에서 활용한 실습 내용들 정리. Contribute to soohyun020812/ormcamp development by creating an account on GitHub.
github.com