YYYEJI

[MAC] OpenAI로 텍스트 답변 생성하기 본문

인공지능 챗봇

[MAC] OpenAI로 텍스트 답변 생성하기

YEJI ⍢ 2025. 7. 31. 21:11
728x90

안녕하세요! 송로지입니다 🌷

 

 

요즘 대부분의 LLM(Large Language Model)은 프레임워크(LangChain etc.)를 통해 사용하는 경우가 많은데

때로는 OpenAI의 API를 직접 호출해서 사용하는게 더 간단하고 직관절일 수가 있다고 하네요!

 

 

↓↓↓  OpenAI 라이브러리를 사용하고 GPT 모델에게 직접 요청하고 응답받는 코드를 소개할게요  ↓↓↓

먼저 OpenAI 키를 발급받아 .env 파일 또는 환경 변수로 등록해 두는 거 잊으시면 안 돼요 ❎ 

https://yyyeji.tistory.com/427

 

[Mac] Azure OpenAI 키 발급받는 과정 한 눈에 살펴보기

안녕하세요! 송로지입니다 🌷2년만에 대학교로 돌아온 저에요 >_ 오늘도 여김없이 교수님 과제로 하루를 시작하고 하루를 끝냅니다 ,,,전국의 모든 대학생분들 화이팅, ,,, 아자ㅏㅏ!! 오늘은 마

yyyeji.tistory.com

https://yyyeji.tistory.com/431

 

[MAC] OpenAI-API Key 안전하게 사용하기!

안녕하세요! 송로지입니다 🌷API 키를 사용할 때 비용이 발생하는 만큼 ,, 매우 안전하게 사용해야 된다는 사실을 아시나요? 아무리 관리를 잘한다고 해도 깃허브 업로드, 블로그 작성 등을 할

yyyeji.tistory.com

 

 

환경 변수 등록이 되었다면 openai 라이브러리도 설치하셔야 됩니다!

pip install openai

터미널(CLI)을 통해 설치해주세요~

 

 

설치가 완료되었다면 이제 코드를 살펴봅시다!

# OpenAI API를 직접 사용하는 방법
from openai import OpenAI

# Completion 요청 (prompt -> completion)
response = openai.chat.completions.create(
                model = "gpt-4o-mini",
                messages = [
                    # developer 역할 - 전반적인 동작 방식 정의
                    {"role":"system", "content":"You are a helpful programming assistant."},
                    # user 역할 - 실제 요처어 내용
                    {"role":"user", "content":"파이썬에서 파일을 읽는 방법을 알려줘"}
                ],
                temperature = 0.7,
                max_tokens=100,
)

# 결과 출력
response

 

위에 코드는 GPT-4o 모델에게 직접 질문을 던지고 응답을 받는 구조에요!

 

 

코드를 더 자세히 살펴볼게요

from openai import OpenAI

우선 OpenAI 패키지를 임포트합니다

 

 

client = OpenAI()

API 클라이언트를 생성/초기화하고

 

 

Chat Completion 요청 구조를 확인해보면

response = client.chat.completions.create()

위에 함수를 통해 텍스트 생성을 요청합니다..!

 

 

model = "gpt-4o-mini"

model은 사용할 모델 지정하게 됩니다 

 

 

모델 선택할 때 고려해야 될 상황은:

* gpt-4.1: 높은 성능 but 높은 비용

* gpt-4.1-mini: 빠른 속도 and 낮은 비용

* o1 계열: 복잡한 추론이 필요한 경우

 

 

이렇게 고려한다고 해요!

 

 

다음으로 messages 속성을 살펴볼게요

messages = [
    {"role":"system", "content":"You are a helpful programming assistant."},
    {"role":"user", "content":"파이썬에서 파일을 읽는 방법을 알려줘"}
]

대화 맥락을 리스트 형태로 전달하게 되는데 

"role"은 system, developer, user 등에서 지정이 돼요!

 

 

* system: AI의 행동 방식을 지시하는 역할

* user: 실제 사용자가 입력하는 메세지

입니다.

 

 

"content"는 실제 메세지 내용이에요! 

temperature = 0.7,
max_tokens=100,

Temperature은 단어를 선택할 때 얼마나 무작위적으로 선택할지 조절한는 매개변수에요

값의 범위는 0.0~1.0이고 

0.0은 같은 질문에 같은 답을 받게 되고, (ex. 수학 풀이, 번역 등)

0.7은 적당한 창의성과 일관성, (ex. 아이디어 생성 등)

1.0은 창의적이지만 예측 불가능한 답변을 받게 됩니다. (ex. 시나리오 창작 등)

 

 

max_tokens는 생성되는 응답의 최대 토큰 수를 설정하는 값인데요!

토큰은 단어 단위가 아니라, 단어 조각이라고 보시면 돼요

https://platform.openai.com/tokenizer

위에 링크를 따라가면 단어든 문장이든 토큰이 어떻게 구별되는지 눈으로 확인하실 수 있어요!

 

 

response를 입력하시면 답변을 받아보실 수 있어요!

근데 너무 복잡해 보이지 않나요?

사실 content 부분을 읽으시면 답을 확인해 보이실 수 있는데 보다 쉽게 확인하는 방법!

 

 

마크다운을 사용해보기로 해요! 

Chatgpt 응답 방식에서도 마크 다운이 사용되신다는 사실을 알고 계셨나요?

from IPython.display import Markdown, display

display(Markdown(response.choices[0].message.content))

다들 익숙한 화면이 보이죠? ㅎㅎ

728x90