Chat GPT #1

obok·2025년 6월 9일

DL

목록 보기
1/8

OpenAI 라이브러리 설치

pip install openai = 1.10.0

윈도우에서 API key 환경변수 설정

  • [설정] - [설정찾기] - 환경변수 입력
  • [계정의 환경 변수 편집]
  • [사용자 환경 변수] - [새로 만들기]
  • 변수이름에 OPENAI_API_KEY, 변수 값에 API key

macOS에서 API key 환경 변수 설정

  • bash의 경우
echo 'export OPENAI_API_KEY="your-api-key"' >> ~/.bash_profile
source ~/.bash_profile
  • zsh의 경우
echo 'export OPENAI_API_KEY="your-api-key" >> ~/.zshrc
source ~/.zshrc

API를 사용해 VS Code에서 Chat GPT에 질문하기

from openai import OpenAI

client = OpenAI()

response = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "user", "content": "Tell me about Chat GPT"},
    ],
)

print(response.choices[0].message.content)

Chat GPT API 매개변수

매개변수설명
model사용할 모델 이름
gpt-3.5-turbo, gpt-3.5-turbo-16k, gpt-4, gpt-4-32k
messages대화 히스토리
각 메시지는 rolecontent로 구성
role은 다음 중 하나:
system: 역할 부여
user: 질문 또는 지시
assistant: 이전 응답 설정 (예시 제공 등)
temperature생성 텍스트의 창의성/무작위성 조절 (0~2)
• 높을수록 다양하고 창의적인 응답
• 낮을수록 사실 기반, 일관된 응답
top_p확률 누적 기반 샘플링 (0~1)
temperature와 함께 사용 X (보통 하나만 조절)
• 낮을수록 일관성↑, 높을수록 다양성↑
n생성할 응답 개수
• 너무 크게 설정 시 응답 속도 느려지고 요금 증가
streamTrue: 실시간 스트리밍 응답
False: 한 번에 전체 응답
stop특정 문자열(들)이 등장하면 응답 중지
예: stop=["\nUser:"]
max_tokens응답의 최대 토큰 수
• gpt-3.5-turbo: 약 4096 토큰
• gpt-4: 약 8192~128k 토큰 (모델에 따라 다름)
※ 입력 + 출력 토큰 포함
presence_penalty문장 내 새로운 주제/단어 등장 유도 (-2~2)
• 값↑일수록 새로운 내용 생성 가능성↑
frequency_penalty같은 단어 반복 방지 (-2~2)
• 값↑일수록 동일 단어 빈도 감소
logit_bias특정 단어/토큰 등장 확률 조절
• 예: {"2579": -100} → 해당 토큰 완전히 제외
100으로 설정 시 강제 등장 가능
user사용자 구분 목적의 ID 문자열 (로그 추적 등에 사용됨)

Few-shot학습

chat GPT에 전달하는 프롬프트에 몇 가지 참고 사례를 포함해 학습시키고, 응답 내용을 조정하는 것

SNS 포스팅 생성 봇 구현

  • 봇을 위한 X 계정 준비, X API 키
  • chat GPT API로 게시글 자동 생성 프로그램 작성
  • 트위터 API로 생성한 글을 자동 게시 프로그램 구현

X API 무료 플랜 : 월 1500회
트위터 API key : Access Token, Access Token Secret, API Key, API Key Secret, Better Token

from openai import OpenAI
client = OpenAI()

def make_tweet():
	request = "저는 시를 좋아하는 독서계입니다. 저를 대신해 트위터에 올릴 트윗을 140자 이내로 작성해 주세요. n\n\n 트윗을 작성할 때 다음 예문을 참고해 주세요.\n\n"
    tweet1 = "예문1: 탄산수 한 컵 섞은 채도의 여름\n\n"
    tweet2 = "예문2: 오랜 기간 친구였던 사람이랑 연애를 시작하면서 편안한 분위기였다는 말을 어떻게 이렇게 표현해요... 축적된 사계절이 낭만을 저지했대\n\n"
    tweet3 = "예문3: 안미옥 시집 <>은 아무래도 이 문장이죠 주저앉아 있을 때 이 구절로 힘을 얻은 게 몇 번인지......\n\n"
    tweet4 = "예문4: 오늘 산 시집 시인의 말이 너무 너무 좋음... 오직 시인의 말만 보고 이거다 싶어서 구입을 해버렸어요...\n\n"
    tweet5 = "예문5: 오랜만에 시집 폈다가 본 문장 아 나는 또 이런걸로 살아가야 하는구나\n\n"
    
    content = raquest + tweet1 + tweet2 + tweet3 + tweet4 + tweet5
    
    client = tweepy.Client(
    	bearerToken,
        consumerKey,
        consumerSecret,
        accessToken,
        accessTokenSecret
   )

	

0개의 댓글