OpenRouter API로 텍스트 생성
OpenRouter의 단일 API로 여러 제공자의 언어 모형을 호출한다.
API 호출과 로컬 생성 비교
- API 호출: 입력을 서비스 제공자의 서버로 보내고 원격 모형이 생성한 결과를 받는 방식
- 로컬 생성: 모형 파일을 내려받아 자신의 컴퓨터에서 직접 추론하는 방식
- 앞의 EXAONE 실습: 빌린 Colab GPU에서 실행했지만 모형 파일을 직접 내려받아 추론했으므로 로컬 생성 방식
| 비교 항목 | API 호출 | 로컬 생성 |
|---|---|---|
| 모형 실행 위치 | 서비스 제공자의 서버 | 사용자의 컴퓨터 |
| 준비 사항 | API 키와 네트워크 연결 | 모형 파일, 실행 라이브러리, 충분한 메모리와 연산 장치 |
| 비용 | 사용한 입력·출력 토큰 등에 따라 과금 | 보통 호출료는 없지만 하드웨어, 저장 공간, 전력 필요 |
| 데이터 | 입력이 외부 서버로 전송되므로 서비스의 보안·개인정보 정책 확인 필요 | 완전히 로컬로 구성하면 입력을 기기 안에서 처리 가능 |
| 인터넷 | 호출할 때마다 필요 | 최초 다운로드 후에는 모형과 도구에 따라 오프라인 실행 가능 |
| 적합한 경우 | 최신 대형 모형 사용, 여러 제공자 비교, 빠른 시작 | 민감한 자료 처리, 오프라인 사용, 반복 호출 |
OpenRouter
- OpenRouter: 여러 회사의 언어 모형을 하나의 API로 제공하는 서비스
- 한 계정에서 여러 모형의 사용량과 결제를 관리
- 같은 요청 형식으로 OpenAI, Google 등의 모형을 호출
- API 주소:
https://openrouter.ai/api/v1 - 모형 식별자:
제공자/모형형식google/gemini-2.5-flash-lite: Google의 Gemini 2.5 Flash Liteopenai/gpt-4.1-mini: OpenAI의 GPT-4.1 Mini
- OpenRouter 문서
- 모형 목록
무료 모형 라우터
openrouter/free: 현재 사용 가능한 무료 모형 중 하나를 자동 선택- 장점: 별도의 토큰 비용 없이 간단한 API 실습 가능
- 제한: 호출할 때마다 선택되는 모형이 달라질 수 있으며 가용성이 제한적
- 무료 모형 요청 횟수: 하루 50회, 크레딧을
$10이상 구매한 계정은 하루 1,000회
- 무료 모형 요청 횟수: 하루 50회, 크레딧을
- 응답의
model: 실제로 선택된 모형의 식별자
API 키 만들기
- OpenRouter Keys: Create Key를 눌러 API 키 생성
- API 키: OpenRouter 계정의 사용 권한을 확인하는 비밀 문자열
- 주의: 노트북 코드, 출력, 공유 링크에 API 키를 직접 입력하지 않음
크레딧 충전과 사용량 확인
- OpenRouter Credits: Add Credits에서 충전 금액과 결제 방법 선택
- 크레딧: 미국 달러(USD) 기준 선불 잔액 (아래 조건은 2026년 9월 기준)
- 1회 최소 충전액:
$5 - 구매 수수료: 충전액의 5.5%, 최소
$0.80 - 결제 방법: 주요 신용카드, AliPay, USDC 암호화폐
- 1회 최소 충전액:
- 유료 모형 비용: 모형별 입력·출력 토큰 가격에 따라 크레딧에서 차감
- OpenRouter Activity: 모형, 제공자, API 키별 사용량과 비용 확인
- 신규 계정: 구매 크레딧이
$0이어도 소액의 시험용 허용량으로 유료 모형 호출이 가능할 수 있음
Colab 보안 비밀에 저장
- Colab 왼쪽 메뉴의 열쇠 아이콘 선택
- 새 보안 비밀의 이름을
OPENROUTER_API_KEY로 지정 - 값에 OpenRouter API 키를 붙여 넣고 노트북 액세스 허용
from google.colab import userdata
openrouter_api_key = userdata.get("OPENROUTER_API_KEY")
로컬 환경 변수에서 읽기
- 로컬에서는 터미널에
OPENROUTER_API_KEY환경 변수를 설정한 뒤 같은 터미널에서 Python이나 Jupyter 실행 - API 키를 Python 코드나 공유할 노트북에 직접 입력하지 않음
export OPENROUTER_API_KEY=발급받은_키 # macOS·Linux (Windows PowerShell은 $env:OPENROUTER_API_KEY="발급받은_키")
import os
openrouter_api_key = os.environ["OPENROUTER_API_KEY"]
OpenAI 라이브러리 사용
- OpenRouter API: OpenAI의 Chat Completions 요청 형식과 호환
openai라이브러리:base_url을 바꾸면 OpenRouter 호출에 사용 가능- 호출할 모형:
model값으로 선택
!pip install -q openai
from openai import OpenAI
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key=openrouter_api_key,
)
base_url: 요청을 보낼 API 서버의 주소api_key: 앞에서 읽은 OpenRouter API 키- OpenAI 라이브러리 사용과 OpenAI 모형 사용은 별개의 선택
무료 모형으로 생성
messages: 발화자의 역할과 내용을 담은 메시지 목록max_tokens: 새로 생성할 토큰 수의 상한temperature: 확률분포의 평탄한 정도
messages = [
{
"role": "user",
"content": "생성형 AI가 교육에 활용되는 예를 두 문장으로 설명해 줘.",
}
]
response = client.chat.completions.create(
model="openrouter/free",
messages=messages,
max_tokens=120, # 응답 길이의 상한
temperature=0.7,
)
- 실제로 선택된 모형 확인
response.model # 실제로 응답한 모형
실행 결과
'inclusionai/ling-3.0-flash-vl:free'
- 생성된 텍스트 확인
response.choices[0].message.content # 첫 번째 응답의 내용
실행 결과
'생성형 AI는 학생의 학습 수준에 맞춰 맞춤형 문제와 해설을 자동으로 생성하여 개인 맞춤 학습을 지원할 수 있습니다.'
- 실행 결과: 이 실행에서는 한 문장만 생성되어 지시 준수 여부도 선택된 무료 모형에 따라 달라짐
고정된 모형으로 생성
- 고정된 모형 식별자: 호출할 모형을 직접 지정
- 아래 예시: Google의 Gemini 2.5 Flash Lite 사용
유료 모형 호출
- 고정된 유료 모형을 호출하면 OpenRouter 크레딧 차감
- 수업에서는 짧은 입력과 작은
max_tokens로 비용 제한 - 호출 전 모형 목록에서 현재 가격 확인
response = client.chat.completions.create(
model="google/gemini-2.5-flash-lite",
messages=messages,
max_tokens=120,
temperature=0.7,
)
response.choices[0].message.content # 생성된 텍스트
실행 결과
'생성형 AI는 학생들의 개별 학습 속도와 수준에 맞춰 맞춤형 학습 자료와 피드백을 제공하여 학습 효과를 높일 수 있습니다. 또한, 창의적인 글쓰기, 코딩, 예술 등 다양한 분야에서 아이디어를 생성하고 초안을 작성하는 데 도움을 주어 학생들의 창의성과 문제 해결 능력을 함양하는 데 기여할 수 있습니다.'
- 코드의 변화:
model만 무료 라우터에서 Google 모형으로 변경 - 요청과 응답 구조: 동일한 OpenAI 호환 형식 유지
여러 제공자의 모형 비교
- 비교 조건: 메시지와 생성 설정을 고정하고 모형만 변경
- 비교 모형: Google Gemini와 OpenAI GPT
model_names = [
"google/gemini-2.5-flash-lite",
"openai/gpt-4.1-mini",
]
for model_name in model_names:
response = client.chat.completions.create(
model=model_name,
messages=messages,
max_tokens=120,
temperature=0.7,
)
print(response.model)
print(response.choices[0].message.content)
실행 결과
google/gemini-2.5-flash-lite
생성형 AI는 학생들에게 맞춤형 학습 콘텐츠를 제공하여 개별 학습 속도와 이해도를 높이는 데 활용될 수 있습니다. 또한, AI 튜터는 학생들이 질문하고 즉각적인 피드백을 받을 수 있도록 지원하여 학습 참여도를 향상시킬 수 있습니다.
openai/gpt-4.1-mini
생성형 AI는 학생 맞춤형 학습 자료를 자동으로 제작하여 개별 학습 효과를 높인다. 또한, 복잡한 개념을 쉽게 이해할 수 있도록 대화형 튜터 역할을 수행한다.
- 공통 코드: API 주소, 메시지 구조, 응답을 읽는 방법이 같음
- 비교 항목: 지시 준수, 내용, 문체, 응답 속도
- 비용: 모형별 입력 및 출력 토큰 가격에 따라 달라짐
토큰 사용량 확인
prompt_tokens: 입력에 사용된 토큰 수completion_tokens: 생성에 사용된 토큰 수total_tokens: 입력과 생성 토큰 수의 합
response.usage.prompt_tokens # 입력 토큰 수
실행 결과
27
response.usage.completion_tokens # 생성 토큰 수
실행 결과
51
response.usage.total_tokens # 전체 토큰 수
실행 결과
78
- 위 사용량: 비교 루프의 마지막 응답인
openai/gpt-4.1-mini기준 - 비용 계산: 입력 토큰 수 × 입력 단가 + 출력 토큰 수 × 출력 단가
- 단가는 모형마다 다르고 보통 출력 토큰이 입력 토큰보다 비쌈
API 사용 시 주의점
- API 키: 코드에 직접 기록하거나 다른 사람에게 공유하지 않음
- 비용: 모형별 가격과 최대 생성 길이를 호출 전에 확인
- 무료 모형: 실습에는 편리하지만 선택되는 모형과 가용성이 달라질 수 있음
- 민감한 정보: 개인정보, 비밀번호, 비공개 자료를 입력하지 않음
- 매개변수 지원: 모형과 제공자에 따라 사용할 수 있는 기능이 다를 수 있음