[LLM] OpenAI GPT API ์ฌ์ฉ ๊ฐ์ด๋ | ChatGPT ์ฝ๋๋ก ์ฌ์ฉํด๋ณด๊ธฐ
์๋ ํ์ธ์ ! ์์ฆ LLM ๊ณต๋ถ๋ฅผ ํ๋ฉด์ ๊ณ์ ๊ธฐ๋ก์ ๋จ๊ธฐ๊ณ ์๋ ๋ญ ์ฆค์ ๋๋ค.
์ค๋์ OpenAI์ GPT API๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์๋ ค๋๋ฆด๊ฒ์ ๐ฅ
OpenAI์ GPT API๋ฅผ ์ฌ์ฉํ๋ฉด OpenAI LLM์ ๋ค์ํ ๊ธฐ๋ฅ์ ์ฌ์ฉํด ๋ณผ ์ ์์ด์. ๋ณต์กํ ์ฝ๋ฉ์ด๋ AI ๋ชจ๋ธ ํ์ต ์์ด๋ ์ฑ๋ด, ๊ธ์ฐ๊ธฐ ๋์ฐ๋ฏธ, ๋ฐ์ดํฐ ๋ถ์, ๊ทธ๋ฆฌ๊ณ ๋ฒ์ญ ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ์ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋ต๋๋ค. ์ด๋ฌํ API ์ฌ์ฉ๋ฒ์ ์๋ฉด ๋ค์ํ ํ๋ก์ ํธ์ ์ง์ LLM์ ํ์ฉํ ์ ์๊ฒ ์ฃ ? ์ง๊ธ๋ถํฐ OpenAI GPT API๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ํ์ํ ๊ฒ๋ค์ ์ฐจ๊ทผ์ฐจ๊ทผ ์์๋ณผ๊ฒ์.
๐ API ์ฌ์ฉ ์ค๋น
OpenAI ์ ๋ฃ ๊ฒฐ์ ๋ฅผ ํ์ จ๋ค๋ฉด, OpenAI Platform์์ ๋ก๊ทธ์ธ ํ, API ํค๋ฅผ ๋ฐ๊ธ๋ฐ์ผ์ ์ผ ํด์!
์ด API ํค๋ OpenAI์ ๋ชจ๋ธ์ ํธ์ถํ ๋ ํ์ํ๋, ๋ฐ๊ธ ํ ์ ์ ์ฅํด ์ฃผ์ธ์.
OpenAI ํ๋ซํผ ์น ํ์ด์ง์์ Dashboard โก๏ธ API keys์์ "Create new secret key"๋ฅผ ํด๋ฆญํ๋ฉด API Key๋ฅผ ๋ฐ๊ธ๋ฐ์ ์ ์๋ต๋๋ค.
API Key๊ฐ ๋ฐ๊ธ๋๋ฉด "Copy"๋ฅผ ๋๋ฌ ๋ณธ์ธ๋ง ํ์ธํ ์ ์๋ ๊ณณ์ ์ ์ ์ฅํด ์ฃผ์ธ์~!
๐ API ํธ์ถ ์์
์ด์ ๋ฐ๊ธ๋ฐ์ API ํค๋ฅผ ์ฌ์ฉํ์ฌ API๋ฅผ ํธ์ถํด ๋ณผ๊ฒ์. ์์ ์ฝ๋๋ OpenAI์ GPT API๋ฅผ ์ด์ฉํด ๊ฐ๋จํ ๋ํํ ์๋ต์ ์์ฑํ๋ ์์ ์์. ์๋์ ์ฝ๋๋ฅผ ๋จ๊ณ์ ์ผ๋ก ์ค๋ช ํด ๋๋ฆด๊ฒ์ ๐ค
pip install openai
from openai import OpenAI
import os
from getpass import getpass
# Colab์ API ํค๋ฅผ ์์ ํ๊ฒ ์
๋ ฅ๋ฐ๊ธฐ
api_key = getpass("OpenAI API ํค๋ฅผ ์
๋ ฅํ์ธ์: ")
# API ํค๋ฅผ ํ๊ฒฝ ๋ณ์์ ์ ์ฅ
os.environ['OPENAI_API_KEY'] = api_key
def create_chat_completion(system_input, user_input, model="gpt-4o-mini", temperature=1.15, max_tokens=150):
try:
# ๋ฉ์์ง ๋ชฉ๋ก์ ์๋์ผ๋ก ์์ฑํด์
messages = [
{"role": "system", "content": system_input},
{"role": "user", "content": user_input}
]
response = OpenAI().chat.completions.create(
model=model,
messages=messages,
temperature=temperature,
max_tokens=max_tokens # ์ต๋ ํ ํฐ ์๋ฅผ ์ง์ ํด์
)
# ์์ฑ๋ ์๋ต์ ๋ฐํํด์
return response
except Exception as e:
return f"Error: {str(e)}"
# ๋ฉ์์ง ๋ชฉ๋ก ์์
system_input = "๋ AI ์ ๋ฌธ ๊ฐ์ฌ์. AI, ๊ฐ๋ฐ์ ๊ด๋ จ๋ ์ง๋ฌธ์๋ง ์น์ ํ๊ณ ๊ฐ๋ตํ๊ฒ ๋ต๋ณํด์ค"
user_input = "LLM์ผ๋ก ๋ฌด์์ ํ ์ ์๋์ง ์ค๋ช
ํด์ค."
# API ํธ์ถ ๋ฐ ๊ฒฐ๊ณผ ์ถ๋ ฅ
responses = create_chat_completion(system_input, user_input)
print(responses)
print(responses.choices[0].message.content)
1. ํ๊ฒฝ ์ธํ
- openai ํจํค์ง ๋ค์ด๋ก๋
- ํ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ํฌํธ
2. API ํค ์ ๋ ฅ๋ฐ๊ธฐ
- getpass๋ฅผ ์ด์ฉํด API ํค๋ฅผ ์ ๋ ฅ๋ฐ๊ณ , os.environ์ ํตํด ํ๊ฒฝ๋ณ์๋ก ์ ์ฅํด์.
3. ์ฑ๋ด ์๋ต ์์ฑ ํจ์ ์ ์
create_chat_completion ํจ์๋ GPT ๋ชจ๋ธ์ ๋ค์ํ ๋งค๊ฐ๋ณ์๋ฅผ ์ค์ ํ์ฌ ๋ํํ ์๋ต์ ์์ฑํฉ๋๋ค.
- OpenAI().chat.completions.create()
- API ์๋ฒ์ ๋ฉ์์ง ๋ชฉ๋ก์ ์ ์กํ๊ณ , ๋ชจ๋ธ์ด ์์ฑํ ์๋ต์ ๋ฐ์์ ๋ฐํํ๋ ํจ์
- ๋ํ ๋งฅ๋ฝ(์์คํ ๊ณผ ์ฌ์ฉ์ ์ ๋ ฅ)์ ๋ฐ๋ผ ์๋ต์ ์์ฑ
- ์ด์ ๋ํ ๋ด์ฉ์ ๊ธฐ์ตํ์ง ์๋ ๋ฐฉ๋ฒ์ ๋๋ค
- system_input: ์์คํ ์ ์ญํ ์ด๋ ์ง์นจ. ์๋ฅผ ๋ค์ด, "๋ AI ์ ๋ฌธ ๊ฐ์ฌ์ผ."์ ๊ฐ์ ๋ด์ฉ์ ์ค์ ํ ์ ์์
- user_input: ์ฌ์ฉ์๋ก๋ถํฐ ์ ๋ ฅ๋ฐ์ ์ง๋ฌธ์ด๋ ์์ฒญ.
- model: ์ฌ์ฉํ ๋ชจ๋ธ์ ์ง์ . ์ฌ๊ธฐ์๋ "gpt-4o-mini"๋ก ์ค์
- temperature: ์๋ต์ ๋ค์์ฑ์ ์กฐ์ . ๊ฐ์ด ๋์์๋ก ๋ ์ฐฝ์์ ์ด๊ณ ๋ค์์ฑ์ด ์๋ ์๋ต์ ์์ฑ
- max_tokens: ์์ฑ๋ ์๋ต์ ์ต๋ ํ ํฐ ์๋ฅผ ์ง์
4. ํจ์ ํธ์ถ ๋ฐ ๊ฒฐ๊ณผ ์ถ๋ ฅ
- system_input๊ณผ user_input์ ์ ์ํ๊ณ , create_chat_completion ํจ์๋ฅผ ํธ์ถํฉ๋๋ค.
- ์์ฑ๋ ์๋ต์ responses ๋ณ์์ ์ ์ฅํ๊ณ ์ถ๋ ฅํด์.
- ์๋ต์ ๋ด์ฉ์ responses.choices[0].message.content์ ๋ค์ด ์์ด์.
๐ Colab ์ค์ต
์ฝ๋๋ฅผ ์ญ~ ๋ณด๊ธฐ๋ง ํ๋ฉด ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง ๊ฐ์ด ์ ์์ฌ ์ ์์ด์, Colab์ผ๋ก ์ค์ตํด๋ณผ ์ ์๊ฒ ์ค๋นํ์ด์!
์์์ ์ค๋ช ๋๋ฆฐ ์ฝ๋์ ๋์ผํ์ง๋ง, ๋จ๊ณ๋ณ๋ก ์ํํด ๋ณผ ์ ์์ผ๋ ์ฝ๋๋ฅผ ๋ ์ฝ๊ฒ ์ดํดํด ๋ณผ ์ ์๊ฒ ์ฃ ?
LLM-Tutorials/OpenAI/OpenAI_API_call.ipynb at main · mov-z/LLM-Tutorials
๋ค์ํ LLM ํํ ๋ฆฌ์ผ์ ์ ๊ณตํฉ๋๋ค. . Contribute to mov-z/LLM-Tutorials development by creating an account on GitHub.
github.com

์ด์ OpenAI GPT API๋ฅผ ํ์ฉํ๋ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์์ด์. ์ด ํฌ์คํ ์์๋ API ํค ๋ฐ๊ธ๋ถํฐ ๊ฐ๋จํ ์์ ์ฝ๋ ์์ฑ๊น์ง ์ฐจ๊ทผ์ฐจ๊ทผ ์ค๋ช ํ์ผ๋, ์ฒ์ ์์ํ๋ ๋ถ๋ค์๊ฒ ๋์์ด ๋์๊ธธ ๋ฐ๋๋๋ค! ์์ผ๋ก ๋ ๋ค์ํ ์ฌ์ฉ๋ฒ์ ๋ํด ํฌ์คํ ํด ๋ณผํ ๋ ๋ฐ๋ผ์์ฃผ์ธ์ ใ ใ
๊ถ๊ธํ ์ ์ด ์๋ค๋ฉด ์ธ์ ๋ ์ง ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์ ๐