본문으로 건너뛰기

코랩에서 OpenAI API 사용법 — 클로드·제미나이도 같은 코드로

개발 가이드약 8분 읽기비교표복사 양식점검 카드
핵심 요약7개 절 · 약 8분

코랩 비밀에 키를 넣고, 복사한 셀 하나로 첫 답을 받아요. 모델 이름만 바꿔 세 회사 답을 비교하고, 표 데이터를 줄마다 분류해 CSV 로 내려받는 셀까지 담았어요.

읽는 분
코랩에서 글 분류·요약을 AI 로 돌려 보려는 대학원생·연구자·선생님
끝나면
코랩 셀을 실행해 GPT·클로드·제미나이 답을 받고, 표 데이터를 분류해 CSV 로 내려받아요.
이 글의 목차 (7개 절)
01

코랩에서 첫 답 받기까지

구글 코랩에서는 openai 파이썬 패키지 하나와 원포트 AI 키로 GPT·클로드·제미나이를 같은 코드로 불러요. 키는 코랩 왼쪽 열쇠 아이콘에 ONEPORT_API_KEY 라는 이름으로 넣고, 주소를 https://oneport.kr/v1 로 둔 아래 셀 하나를 실행하면 답이 나와요. 모델 이름 한 줄만 바꾸면 다른 회사 모델로 바뀌는데, 산 크레딧 종류에 따라 제미나이는 빠질 수 있어요.

키가 아직 없으면 원포트 AI API 크레딧을 사면 돼요. 받을 메일로 「키 받기」 링크가 와요. 학과·연구실에서 원화로 사고 세금계산서를 받으려면 문의해 주세요.

코랩 셀에 들어가는 네 가지
코랩 셀에 들어가는 네 가지
원포트 AI 키값sk-so- 로 시작하는 키알아 둘 점만들 때 원문이 한 번만 보이니 바로 복사해요
주소(base_url)값https://oneport.kr/v1알아 둘 점아래 셀에 이미 들어 있어요
첫 모델값gpt-5-mini알아 둘 점어느 크레딧으로 사도 불러요
파이썬 패키지값openai알아 둘 점셀 첫 줄이 설치해요
02

키를 노트북 밖에 숨겨 두기

셀에 키 원문을 적지 않아요. 노트북을 나눠 주거나 깃허브에 올리면 키도 같이 나가요.

  1. 코랩 노트북 왼쪽 세로 막대에서 열쇠 아이콘을 눌러요. 영어 화면에서는 Secrets 예요.
  2. 새 항목을 추가하고 이름에 ONEPORT_API_KEY 를 적어요. 이름에는 띄어쓰기를 넣지 않아요.
  3. 값(Value) 칸에 원포트 AI 키를 붙여 넣어요.
  4. 그 줄 왼쪽 스위치를 켜서 노트북이 키를 읽게 해요.
03

셀 하나 복사해 첫 답 받기

새 셀에 붙여 넣고 실행하면 셀 아래에 gpt-5-mini 의 답이 글로 찍혀요.

출력 길이 상한은 넣지 마세요. gpt-5-mini 는 답하기 전에 생각하는 데도 출력 몫을 써서, 상한이 작으면 빈 답이 올 수 있어요.

복사용 문안

코랩 셀 — 설치하고 첫 답 받기

%pip install -q -U openai
from google.colab import userdata
from openai import OpenAI

client = OpenAI(base_url="https://oneport.kr/v1", api_key=userdata.get("ONEPORT_API_KEY"))
MODEL = "gpt-5-mini"  # 바꿔 보기: "claude-haiku-4-5" · "gemini-3.5-flash"

resp = client.chat.completions.create(
    model=MODEL,
    messages=[{"role": "user", "content": "논문 초록을 세 줄로 요약하는 요령을 알려 줘."}],
)
print(resp.choices[0].message.content)
04

모델 이름만 바꿔 세 회사 답 비교하기

첫 셀을 실행한 뒤 아래 셀을 이어서 실행하면 같은 질문에 세 모델이 차례로 답해요. 부를 수 없는 모델은 멈추지 않고 오류 번호와 메시지를 한 줄로 찍어요.

모델을 정하지 않은 원포트 AI API 크레딧이나 제미나이 팩으로 샀다면 셋 다 답해요. 클로드·GPT 팩으로 샀다면 제미나이 줄에 403 model_not_in_plan 이 찍히고, 메시지 안 「이 모델로 바꿔 보세요:」 뒤에 바꿔 넣을 모델 id 가 있어요.

다른 모델을 넣으려면 GET /v1/models 에서 kind 가 chat 인 id 를 골라요. 이 코드로는 chat 모델만 불러요.

이 글에서 쓰는 모델 id
이 글에서 쓰는 모델 id
오픈AI(GPT)모델 idgpt-5-mini쓰는 곳첫 셀 기본 모델
앤트로픽(클로드)모델 idclaude-haiku-4-5쓰는 곳비교 셀
구글(제미나이)모델 idgemini-3.5-flash쓰는 곳비교 셀

2026년 10월 17일 GET /v1/models 에서 확인한 id 예요.

복사용 문안

코랩 셀 — 세 모델 답 비교

import openai

question = "실험 노트를 정리하는 요령을 두 문장으로 알려 줘."
for model in ["gpt-5-mini", "claude-haiku-4-5", "gemini-3.5-flash"]:
    try:
        r = client.chat.completions.create(model=model, messages=[{"role": "user", "content": question}])
        print(f"[{model}]\n{r.choices[0].message.content}\n")
    except openai.APIStatusError as e:
        print(f"[{model}] {e.status_code} {e.message}\n")
05

표 데이터를 줄마다 분류하기

첫 셀을 실행한 뒤 이어서 실행해요. 수업 피드백 예시 세 줄이 들어 있어 파일 없이 바로 돌아가고, 한 줄마다 한 번씩 불러요. 결과는 엑셀에서 한글이 안 깨지는 CSV 로 내려받아요.

내 CSV 를 올렸는데 UnicodeDecodeError 가 나면 셀의 encoding 을 cp949 로 바꿔요.

head(20) 으로 20줄만 먼저 돌려 쓴 양을 보고 늘려요. 다 돌리려면 df.head(20) 을 df 로 바꿔요. 이름·연락처·학번처럼 사람을 알아볼 수 있는 열은 빼고 보내요.

1 크레딧 = 부가세 포함 2원어치예요.

모델마다 크레딧을 얼마나 사용하는지는 API 안내의 모델별 차감 단가 표에, 크레딧 판매 금액은 요금 안내에 있어요.

CLI · 설정

코랩 셀 — 표 데이터 분류하고 CSV 내려받기

import pandas as pd
from google.colab import files

df = pd.DataFrame({"comment": [
    "예시가 많아서 이해하기 쉬웠어요.",
    "진도가 빨라서 따라가기 힘들었어요.",
    "과제 안내가 조금 늦게 올라왔어요.",
]})
# 내 파일로 바꾸려면 아래 두 줄의 # 을 지워요(글이 든 열 이름은 comment).
# up = files.upload()
# df = pd.read_csv(next(iter(up)), encoding="utf-8")

def classify(text):
    r = client.chat.completions.create(
        model=MODEL,
        messages=[
            {"role": "system", "content": "글을 읽고 긍정·부정·보통 중 하나와 이유를 20자 안으로 답해."},
            {"role": "user", "content": text},
        ],
    )
    return r.choices[0].message.content.strip()

sample = df.head(20).copy()
sample["result"] = sample["comment"].apply(classify)
print(sample)
sample.to_csv("result.csv", index=False, encoding="utf-8-sig")
files.download("result.csv")
06

첫 실행이 멈출 때

SecretNotFoundError: Secret ONEPORT_API_KEY does not exist.

원인·확인
열쇠 아이콘에 넣은 이름과 셀의 이름이 한 글자라도 다르면 나요.
해결 방법
열쇠 아이콘을 열어 이름을 ONEPORT_API_KEY 로 맞춰요.

NotebookAccessError: Notebook does not have access to secret ONEPORT_API_KEY

원인·확인
키 줄 왼쪽 스위치가 꺼져 있어요.
해결 방법
스위치를 켜고 셀을 다시 실행해요.

TimeoutException: Requesting secret ONEPORT_API_KEY timed out.

원인·확인
대개 코랩 화면 밖에서 셀을 돌렸을 때 나요. 코랩 비밀은 코랩 화면에서 실행할 때만 읽혀요.
해결 방법
브라우저의 코랩 노트북에서 다시 실행해요.

AuthenticationError 401 authentication_error 가 와요

원인·확인
키를 일부만 붙여 넣었거나, 폐기·기한 지난 키예요. sk-som- 으로 시작하는 관리 키로도 이 오류가 나요.
해결 방법
sk-so- 로 시작하는 키를 다시 붙여 넣어요. 원문을 잃었다면 새 키를 만들어요.

402 insufficient_credit 가 와요

원인·확인
잔액이 모자라요. 한 번 부를 때 답 길이 몫을 미리 잡아 두어서, 잔액이 조금 남아 있어도 와요.
해결 방법
크레딧을 채우고 다시 실행해요.

403 model_not_in_plan 이 와요

원인·확인
산 크레딧으로 부를 수 없는 회사의 모델이에요.
해결 방법
메시지의 「이 모델로 바꿔 보세요:」 뒤 id 로 MODEL 줄을 바꿔요.

404 model_not_found 가 와요

원인·확인
모델 id 에 오타가 있거나 지금은 없는 옛 이름이에요.
해결 방법
GET /v1/models 에서 id 를 복사해 그대로 넣어요.

You tried to access openai.ChatCompletion, but this is no longer supported in openai>=1.0.0

원인·확인
예전 블로그에서 옮긴 코드예요. 지금 openai 패키지에서는 그 문법이 없어졌어요.
해결 방법
이 글 셀처럼 client = OpenAI(…) 를 만들고 client.chat.completions.create 로 불러요.
07

연구실에서 나눠 쓰고 증빙 받기

키는 구성원마다 따로 만들어요. 스쿨오더·오피스오더 「AI API」 화면에서 「키 만들기」로 이름을 붙여 만들고, 키마다 한 달 한도를 정해요. 한 사람이 한도에 닿아도 나머지 키는 그대로 써요.

재원·인정기간이 적힌 지갑이면 「AI API」 화면 「개요」의 재원 카드에서 「정산용 원장 받기 (CSV)」로 사용 내역을 받아요(지갑 주인만). 한 줄이 키 × 사용일 × 모델이라 키 이름별로 어느 모델을 얼마나 불렀는지 갈라 볼 수 있어요.

학과·센터는 스쿨오더 주문서에서 계좌입금·카드 결제·납품 후 결제(후불) 중에 고르고, 견적서·청구서·세금계산서 같은 서류를 받아요. 원화 결제나 서류가 먼저 필요하면 문의해 주세요.

자주 묻는 질문

코랩 말고 내 컴퓨터 파이썬에서도 되나요?

돼요. pip install openai 로 설치하고, 터미널에서 ONEPORT_API_KEY 환경변수에 키를 넣어요. 코드 맨 위에 import os 를 더한 뒤 api_key 자리에 userdata.get 대신 os.environ["ONEPORT_API_KEY"] 를 넣어요. google.colab 은 코랩에서만 있어서 from google.colab 줄은 지워요.

답을 한 글자씩 흘려 받을 수도 있나요?

돼요. create 에 stream=True 를 넣고, 조각마다 if chunk.choices and chunk.choices[0].delta.content: 일 때만 이어 찍어요. 마지막 조각은 사용량만 담고 choices 가 비어 있어요. 이 글의 세 모델은 /v1/models 에서 supports_streaming 이 true 예요.

출처와 확인일

함께 보면 좋은 글과 도움말

← 블로그 전체 목록 보기