[LLM] OpenAI GPT API ์‚ฌ์šฉ ๊ฐ€์ด๋“œ | ChatGPT ์ฝ”๋“œ๋กœ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ

2024. 9. 15. 18:12ยท๐Ÿ’ป Programming/LLM
๋ฐ˜์‘ํ˜•

์•ˆ๋…•ํ•˜์„ธ์š” ! ์š”์ฆ˜ 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 ํ‚ค ๋ฐœ๊ธ‰๋ถ€ํ„ฐ ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ ์ฝ”๋“œ ์ž‘์„ฑ๊นŒ์ง€ ์ฐจ๊ทผ์ฐจ๊ทผ ์„ค๋ช…ํ–ˆ์œผ๋‹ˆ, ์ฒ˜์Œ ์‹œ์ž‘ํ•˜๋Š” ๋ถ„๋“ค์—๊ฒŒ ๋„์›€์ด ๋˜์—ˆ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค! ์•ž์œผ๋กœ ๋” ๋‹ค์–‘ํ•œ ์‚ฌ์šฉ๋ฒ•์— ๋Œ€ํ•ด ํฌ์ŠคํŒ…ํ•ด ๋ณผํ…Œ๋‹ˆ ๋”ฐ๋ผ์™€์ฃผ์„ธ์š” ใ…Žใ…Ž

๊ถ๊ธˆํ•œ ์ ์ด ์žˆ๋‹ค๋ฉด ์–ธ์ œ๋“ ์ง€ ๋Œ“๊ธ€๋กœ ๋‚จ๊ฒจ์ฃผ์„ธ์š” ๐Ÿ˜Š

๋ฐ˜์‘ํ˜•

'๐Ÿ’ป Programming > LLM' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[LLM] RAG ์„ค๋ช… ๋ฐ ์‹ค์Šต | OpenAI ๋ชจ๋ธ๊ณผ ChromaDB๋ฅผ ์ด์šฉํ•œ RAG ์‹ค์Šต  (2) 2024.09.16
[LLM] OpenAI Playground ํ™œ์šฉ ๊ฐ€์ด๋“œ | Chat, Assistant, TTS, Completions | ํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹  (0) 2024.09.13
[LLM] Ollama: ๋กœ์ปฌ์—์„œ LLM์„ ์‹คํ–‰ํ•˜๋Š” ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ• | ollama ์‚ฌ์šฉ ๋ฐฉ๋ฒ•  (2) 2024.09.11
'๐Ÿ’ป Programming/LLM' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [LLM] RAG ์„ค๋ช… ๋ฐ ์‹ค์Šต | OpenAI ๋ชจ๋ธ๊ณผ ChromaDB๋ฅผ ์ด์šฉํ•œ RAG ์‹ค์Šต
  • [LLM] OpenAI Playground ํ™œ์šฉ ๊ฐ€์ด๋“œ | Chat, Assistant, TTS, Completions | ํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹
  • [LLM] Ollama: ๋กœ์ปฌ์—์„œ LLM์„ ์‹คํ–‰ํ•˜๋Š” ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ• | ollama ์‚ฌ์šฉ ๋ฐฉ๋ฒ•
๋ญ…์ฆค
๋ญ…์ฆค
AI ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ
    ๋ฐ˜์‘ํ˜•
  • ๋ญ…์ฆค
    moovzi’s Doodle
    ๋ญ…์ฆค
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
  • ๊ณต์ง€์‚ฌํ•ญ

    • โœจ About Me
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (216)
      • ๐Ÿ“– Fundamentals (34)
        • Computer Vision (9)
        • 3D vision & Graphics (6)
        • AI & ML (16)
        • etc. (3)
      • ๐Ÿ› Research (78)
        • Deep Learning (7)
        • Perception (19)
        • OCR (7)
        • Multi-modal (8)
        • Image•Video Generation (18)
        • 3D Vision (4)
        • Material • Texture Recognit.. (8)
        • Large-scale Model (7)
        • etc. (0)
      • ๐Ÿ› ๏ธ Engineering (8)
        • Distributed Training & Infe.. (5)
        • AI & ML ์ธ์‚ฌ์ดํŠธ (3)
      • ๐Ÿ’ป Programming (92)
        • Python (18)
        • Computer Vision (12)
        • LLM (4)
        • AI & ML (18)
        • Database (3)
        • Distributed Computing (6)
        • Apache Airflow (6)
        • Docker & Kubernetes (14)
        • ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ (4)
        • etc. (7)
      • ๐Ÿ’ฌ ETC (4)
        • ์ฑ… ๋ฆฌ๋ทฐ (4)
  • ๋งํฌ

    • ๋ฆฌํ‹€๋ฆฌ ํ”„๋กœํ•„ (๋ฉ˜ํ† ๋ง, ๋ฉด์ ‘์ฑ…,...)
    • ใ€Ž๋‚˜๋Š” AI ์—”์ง€๋‹ˆ์–ด์ž…๋‹ˆ๋‹คใ€
    • Instagram
    • Brunch
    • Github
  • ์ธ๊ธฐ ๊ธ€

  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
๋ญ…์ฆค
[LLM] OpenAI GPT API ์‚ฌ์šฉ ๊ฐ€์ด๋“œ | ChatGPT ์ฝ”๋“œ๋กœ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”