pip install openai = 1.10.0
echo 'export OPENAI_API_KEY="your-api-key"' >> ~/.bash_profile
source ~/.bash_profile
echo 'export OPENAI_API_KEY="your-api-key" >> ~/.zshrc
source ~/.zshrc
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)
| 매개변수 | 설명 |
|---|---|
| model | 사용할 모델 이름gpt-3.5-turbo, gpt-3.5-turbo-16k, gpt-4, gpt-4-32k 등 |
| messages | 대화 히스토리 각 메시지는 role과 content로 구성role은 다음 중 하나:• system: 역할 부여• user: 질문 또는 지시• assistant: 이전 응답 설정 (예시 제공 등) |
| temperature | 생성 텍스트의 창의성/무작위성 조절 (0~2) • 높을수록 다양하고 창의적인 응답 • 낮을수록 사실 기반, 일관된 응답 |
| top_p | 확률 누적 기반 샘플링 (0~1) • temperature와 함께 사용 X (보통 하나만 조절)• 낮을수록 일관성↑, 높을수록 다양성↑ |
| n | 생성할 응답 개수 • 너무 크게 설정 시 응답 속도 느려지고 요금 증가 |
| stream | True: 실시간 스트리밍 응답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 문자열 (로그 추적 등에 사용됨) |
chat GPT에 전달하는 프롬프트에 몇 가지 참고 사례를 포함해 학습시키고, 응답 내용을 조정하는 것
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
)