logo

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 Lite
    • openai/gpt-4.1-mini: OpenAI의 GPT-4.1 Mini
  • OpenRouter 문서
  • 모형 목록

무료 모형 라우터

  • openrouter/free: 현재 사용 가능한 무료 모형 중 하나를 자동 선택
  • 장점: 별도의 토큰 비용 없이 간단한 API 실습 가능
  • 제한: 호출할 때마다 선택되는 모형이 달라질 수 있으며 가용성이 제한적
    • 무료 모형 요청 횟수: 하루 50회, 크레딧을 $10 이상 구매한 계정은 하루 1,000회
  • 응답의 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 암호화폐
  • 유료 모형 비용: 모형별 입력·출력 토큰 가격에 따라 크레딧에서 차감
  • 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 키: 코드에 직접 기록하거나 다른 사람에게 공유하지 않음
  • 비용: 모형별 가격과 최대 생성 길이를 호출 전에 확인
  • 무료 모형: 실습에는 편리하지만 선택되는 모형과 가용성이 달라질 수 있음
  • 민감한 정보: 개인정보, 비밀번호, 비공개 자료를 입력하지 않음
  • 매개변수 지원: 모형과 제공자에 따라 사용할 수 있는 기능이 다를 수 있음
Previous
채팅 템플릿