모델별 실행 레시피
최종 업데이트
OpenRouter 무료 오픈 웨이트 모델로 코드 리뷰 API 연결하기
공개 코드와 리뷰 지시문을 보내면 OpenRouter가 오픈 웨이트 모델의 검토 답변을 돌려줘요.
OpenRouter는 여러 모델 제공자의 추론 API1를 한 요청 형식으로 연결해요. 이 레시피는 Meta Llama 3.3 70B Instruct의 :free 변형을 고정해 공개 Python 코드를 검토하고, 요청 본문·무료 상한·제공자 개인정보 정책을 함께 확인해요.
공개 코드 조각을 보내 리뷰 답변을 받아요
OpenRouter는 여러 모델 제공자의 추론 API를 한 요청 형식으로 연결해 주는 서비스예요. 공개 코드 조각과 리뷰 지시문을 보내면 모델의 검토 의견을 응답으로 받을 수 있어요. 이 글에서는 Llama 3.3 70B Instruct의 무료 변형을 지정해 Python 코드 한 조각을 검토하는 API 요청을 만들어 봅니다.
Llama 3.3은 가중치가 공개된 모델이고 Meta Llama 3.3 Community License를 따라 사용해요. OpenRouter의 :free 표시는 호스팅 API의 토큰2 가격이 0이라는 뜻이에요. Meta Llama 3.3 모델 카드 · OpenRouter 무료 모델 페이지

모델 이름과 무료 경로를 골라요
모델 ID 끝에 :free가 붙은 변형은 해당 모델의 무료 제공 경로예요. openrouter/free는 매 요청에 맞는 무료 모델을 선택하는 라우터라서 실제 응답 모델이 요청마다 달라질 수 있어요. 코드 리뷰 결과를 비교하거나 같은 모델로 재현하려면 이번 예제처럼 구체적인 무료 모델 ID를 적으세요. 자동 선택을 원할 때는 openrouter/free를 쓸 수 있지만, 오픈 웨이트 여부까지 고정해 주지는 않아요. 예제의 리뷰 지시문은 영어로 작성했어요.
Python 표준 라이브러리로 첫 요청을 보내요
Python 3과 인터넷 연결, OpenRouter 계정에서 만든 API 키가 필요해요. 아래 스크립트는 별도 SDK를 설치하지 않고 표준 라이브러리 urllib로 요청을 보내요. getpass가 키를 입력할 때 화면에 표시하지 않으므로 명령 기록이나 코드 파일에 키를 적지 않아도 돼요. 이 예제에서는 공개해도 되는 짧은 Python 함수만 API에 보내요.
코드를 review.py로 저장하고 터미널에서 python3 review.py를 실행해요. 프롬프트3가 나타나면 API 키를 입력하고 Enter를 눌러요.
키를 공유 문서나 저장소에 저장하지 마세요. 이미 노출했다면 OpenRouter 대시보드에서 해당 키를 폐기하고 새 키를 만들어 주세요.
import getpass
import json
import urllib.request
api_key = getpass.getpass("OpenRouter API key: ")
payload = {
"model": "meta-llama/llama-3.3-70b-instruct:free",
"messages": [
{
"role": "user",
"content": (
"Review this public Python example for correctness. State one concrete issue, "
"if any, and suggest a minimal fix:\n\n"
"def percentage(part, total):\n"
" return part / total * 100\n"
),
}
],
"max_tokens": 200,
}
request = urllib.request.Request(
"https://openrouter.ai/api/v1/chat/completions",
data=json.dumps(payload).encode("utf-8"),
headers={
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json",
},
method="POST",
)
with urllib.request.urlopen(request, timeout=60) as response:
result = json.load(response)
print(result["choices"][0]["message"]["content"])정상 응답과 첫 오류를 구분해요
요청이 성공하면 터미널에는 코드 검토 문장이 출력돼요. 응답 JSON의 choices[0].message.content에 리뷰가 들어 있고, usage에는 요청·생성 토큰 정보가 들어갈 수 있지만 지금 코드는 리뷰 문장만 출력해요.
토큰 정보도 보려면 코드 끝의 print(result["choices"][0]["message"]["content"]) 다음 줄에 print(result.get("usage"))를 추가하세요.
예제 함수의 total이 0일 때 나눗셈 오류가 생기는지 짚고 조건 검사를 제안하는 답을 기대할 수 있지만, 모델은 틀릴 수 있으니 코드와 테스트로 수정 근거를 확인하세요.
HTTP Error 401이면 키가 정확한지, 폐기된 키가 아닌지, Bearer 뒤에 공백이 있는지 확인하세요. HTTP Error 429이면 분당 20회 또는 하루 요청 한도에 닿았을 수 있어요. 무료 한도가 회복될 때까지 재시도 루프를 멈추고 요청 횟수를 줄이세요. No endpoints found나 모델 오류가 나오면 모델 페이지에서 해당 :free 엔드포인트가 현재 제공되는지, 요청 기능과 공급자 필터가 맞는지 확인한 뒤 무료 모델 ID를 다시 선택하세요.

하루 무료 한도 안에서 비용을 고정해요
2026년 10월 16일 OpenRouter 요금 안내에서 무료 모델은 기본 계정 기준 분당 20회, 하루 50회까지예요. 실패한 요청도 일일 한도에 포함돼요. 계정이 크레딧을 누적 10달러 이상 구매하면 무료 모델 요청 한도가 하루 1,000회로 올라가요. 무료 범위에서 시험한다면 크레딧을 구매하지 않는 편이 비용을 관리하기 쉬워요.
| 계정 조건 | 무료 모델 한도 | 확인할 점 |
|---|---|---|
| 기본 무료 계정 | 20회/분 · 50회/일 | 오류 요청도 하루 한도에 포함 |
| 크레딧 10달러 이상 누적 구매 | 20회/분 · 1,000회/일 | 기존 누적 구매액 기준 |
이 예제의 모델 문자열을 meta-llama/llama-3.3-70b-instruct:free 그대로 유지하고, 다른 모델을 고를 때도 페이지 가격이 무료인지 확인하세요. meta-llama/llama-3.3-70b-instruct처럼 :free가 없는 모델 ID는 유료 경로일 수 있어요. OpenRouter 무료 플랜에는 예산·지출 제어 기능이 표시되어 있지 않으므로, 테스트 중에는 크레딧이나 자동 충전을 설정하지 말고 활동 내역에서 사용 모델과 비용을 확인하세요. 다른 유료 모델을 자동 대체 모델로 넣지 마세요.
모델 제공자에게 전달되는 코드와 개인정보를 관리해요
OpenRouter는 입력·출력을 자체 모델 학습에 사용하지 않는다고 밝히지만, 요청 내용은 선택한 모델 제공자에게 전달돼요. 제공자마다 입력 보관과 학습 정책이 다를 수 있으니 Llama 3.3 모델 페이지의 제공자 안내를 읽고, 공개 코드만 보내세요. OpenRouter 개인정보 정책 · Llama 3.3 무료 모델 페이지
제공자 필터를 적용하려면 요청 본문에 provider 설정을 추가해요. data_collection: "deny"는 데이터를 수집하는 제공자를 제외하고, zdr: true는 Zero Data Retention 정책을 둔 제공자만 선택해요.
조건에 맞는 무료 제공자가 없으면 요청을 멈추고, 유료 모델로 자동 전환하는 fallback은 설정하지 않아요. Python 예제에서는 payload를 만든 다음 request = urllib.request.Request( 줄 바로 앞에 코드를 추가해요. 제공자 데이터 수집 제어
payload["provider"] = {
"data_collection": "deny",
"zdr": True,
}무료 API로 확인할 작업과 다른 경로를 나눠요

용어 각주
자주 묻는 질문
- 이 글에서 가장 먼저 확인할 것은 무엇인가요?
- OpenRouter는 여러 모델 제공자의 추론 API를 한 요청 형식으로 연결해요. 이 레시피는 Meta Llama 3.3 70B Instruct의 `:free` 변형을 고정해 공개 Python 코드를 검토하고, 요청 본문·무료 상한·제공자 개인정보 정책을 함께 확인해요.
- 선택하지 않는 편이 좋은 경우는 언제인가요?
- 키를 공유 문서나 저장소에 저장하지 마세요. 이미 노출했다면 OpenRouter 대시보드에서 해당 키를 폐기하고 새 키를 만들어 주세요.
- 조건과 출처는 어디서 확인하나요?
- Llama 3.3은 가중치가 공개된 모델이고 Meta Llama 3.3 Community License를 따라 사용해요. OpenRouter의 `:free` 표시는 호스팅 API의 토큰 가격이 0이라는 뜻이에요. [Meta Llama 3.3 모델 카드](https://huggingface.co/meta-llama/Llama-3.3-70B-Instruct) · [OpenRouter 무료 모델 페이지](https://openrouter.ai/meta-llama/llama-3.3-70b-instruct:free)
