
OpenAI-API
OpenAI의 GPT API 플랫폼은 개발자들이 자신의 애플리케이션, 서비스, 웹사이트 등에 GPT 모델(예: GPT-3.5, GPT-4, GPT-4o)을 쉽게 통합할 수 있도록 제공되는 클라우드 기반 인터페이스이다.
OpenAI의 API 플랫폼 가입 → API 키 발급
다양한 언어 처리 작업(대화 생성, 요약, 번역, 코드 생성 등)을 수행하는 GPT 모델을 RESTful 방식으로 호출할 수 있다.
사용량에 따라 토큰 단위로 요금이 부과된다.
이미지, 오디오 등 멀티모달 처리 기능도 지원하며,
대규모 애플리케이션에 적합한 유연하고 확장 가능한 인공지능 활용 기반을 제공한다.
"ChatGPT is amazing!"
→ 토큰으로 나누면:
["Chat", "G", "PT", " is", " amazing", "!"] → 총 6개 토큰
기준 요금 계산 = 입력 토큰 + 출력 토큰
Per 1M tokens : "100만 토큰을 처리했을 때 얼마를 지불하는가"
GPT-3.5-turbo:
입력 1M tokens → $0.50
출력 1M tokens → $1.50
100만 토큰 입력 + 출력이면 총 $2.00 요금이 나올 수 있다.
순서대로 대화 메시지들을 보내면, GPT가 그 흐름을 이해하고 응답을 생성한다.
"역할(role)" + "내용(content)" 쌍들을 배열로 만들어 GPT에게 전달한다.
{
"model": "gpt-4",
"messages": [
{
"role": "system",
"content": "너는 초보자를 위한 파이썬 튜터야."
},
{
"role": "user",
"content": "리스트와 튜플의 차이를 알려줘."
}
]
}
OpenAI의 API 플랫폼에서 발급받은 API_KEY는 .env에 저장하였다!
!pip install dotenv
import os
from openai import OpenAI
from dotenv import load_dotenv
load_dotenv()
True
client = OpenAI(api_key=os.getenv("API_KEY"))
response = client.chat.completions.create(
model='gpt-4.1-nano-2025-04-14',
messages=[{"role": "user", "content": "왜 강남은 강남이라고 할까요?"}],
temperature=0.0
)
print(response)
print(response.choices[0].message.content) # 응답 중 메시지 대답만 뽑아냄.
import gradio as gr
load_dotenv()
True
client = OpenAI(
api_key = os.getenv("API_KEY")
)
# 예제 데이터
example = {
"한국어":["오늘 날씨 어때?", "최근 멀티모달 AI 기술이 인기를 끌고 있다"],
"영어":["How is the weather today?", "Recently, multimodal AI technology has become popular"],
"일본어":["今日の天気はどう?", "最近マルチモーダルAI技術が人気を集めている"]
}
def translate_text_chatgpt(text, src_lang, trg_lang):
def build_fewshot(src_lang, trg_lang):
src_examples = example[src_lang]
trg_examples = example[trg_lang]
fewshot_messages = []
for src_text, trg_text in zip(src_examples, trg_examples):
fewshot_messages.append({"role":"user", "content":src_text})
fewshot_messages.append({"role":"assistant", "content":trg_text})
return fewshot_messages
system_instruction = f'assistant는 번역앱으로 동작한다. {src_lang}를 {trg_lang}로 적절하게 번역된 텍스트만 출력한다.'
fewshot_messages = build_fewshot(src_lang, trg_lang)
messages = [{"role":"system", "content":system_instruction}, *fewshot_messages, {"role":"user", "content":text}]
response = client.chat.completions.create(
model='gpt-4.1-nano-2025-04-14',
messages=messages
)
return response.choices[0].message.content
def gradio_translate(text, src_lang, trg_lang):
if not text.strip():
return "번역할 내용을 입력하세요"
if src_lang == trg_lang:
return "원본 언어와 번역 언어가 같습니다. 다른 언어를 선택하세요"
return translate_text_chatgpt(text, src_lang, trg_lang)
with gr.Blocks() as demo:
gr.Markdown("# 초간단 번역 앱")
text_input = gr.Textbox(label="번역할 내용을 입력하세요", placeholder="여기에 내용을 입력하세요")
src_lang_dropdown = gr.Dropdown(choices=["한국어", "영어", "일본어"], value="영어", label="번역할 언어를 선택하세요")
trg_lang_dropdown = gr.Dropdown(choices=["영어", "한국어", "일본어"], value="한국어", label="번역된 언어를 선택하세요")
translate_button = gr.Button("번역하기")
output_text = gr.Textbox(label="번역 결과", placeholder="번역된 결과가 여기에 표시됩니다.", interactive=False)
translate_button.click(
gradio_translate,
inputs=[text_input, src_lang_dropdown, trg_lang_dropdown],
outputs=output_text
)
demo.launch()

