검색 결과 위에 짧은 답변 붙이기: EXAONE을 찾다가 Solar Pro 4로

검색 결과 위에 짧은 답변 붙이기: EXAONE을 찾다가 Solar Pro 4로

블로그 검색창에 글 내용만 근거로 답하는 기능을 붙인 기록입니다. 쓸 수 있는 EXAONE API를 찾다 막힌 과정, 업스테이지 Solar Pro 4를 고른 이유, 근거 없는 답을 막는 두 겹의 장치와 비용 통제를 다룹니다.

2026-11-01 LLM Engineering
#블로그 검색#Solar#업스테이지#RAG#EXAONE
X LinkedIn

목록 대신 한 문단이 필요할 때

지난 글 끝에서 못 찾던 질문이 있었습니다. "누가 무슨 작업 했는지 추적". 이건 온톨로지에 '감사 추적' 같은 문제·해결 개념과 관계를 더 넣으면서 해결됐습니다. 지금은 거버넌스 글이 1위로 나옵니다.

그런데 쓰다 보니 다른 아쉬움이 생겼습니다. "배치 작업 메모리가 계속 늘어나는 이유"를 치면 맞는 글이 1위로 뜹니다. 하지만 답을 알려면 결국 글을 열어 읽어야 합니다.

구글 검색 결과 위의 짧은 요약처럼, 두세 문장으로 먼저 답해 주면 좋겠다고 생각했습니다.

EXAONE으로 하려다 막힌 곳

모델은 EXAONE으로 정해 두고 시작했습니다. 국산 모델이고, 이 연재에서 이미 검색어 생성에 쓰고 있었기 때문입니다.

막힌 곳은 모델이 아니라 API였습니다. FriendliAI 키를 발급받아 서버리스 모델 목록을 직접 조회했습니다. GLM과 Gemma만 있고 EXAONE은 없었습니다. K-EXAONE 무료 API는 올해 1월 28일에 끝났습니다. 7월에 나온 K-EXAONE 2.0은 모델 파일만 공개됐습니다. 모델 비교 사이트도 EXAONE 4.5에 "API 제공사 없음"이라고 적고 있었습니다.

남은 길은 두 가지였습니다.

  • 전용 GPU에 직접 띄우기: A100 기준 시간당 $4입니다. 쉴 때 꺼지게 할 수는 있지만, 33B 모델이 다시 올라오는 시간만큼 독자가 기다려야 합니다.
  • 맥미니에서 돌리기: 비용은 없습니다. 대신 7.8B 모델이라 답 하나에 15~20초가 걸렸고, 집 컴퓨터를 외부에 열어야 합니다.

둘 다 블로그 검색에 붙이기엔 무거웠습니다. 그래서 다른 국산 모델을 찾았고, 업스테이지 Solar Pro 4로 정했습니다. 8월에 나온 모델이고, 사용량만큼 내는 API가 있습니다. 근거 3천 토큰에 답 250토큰이면 한 번에 약 $0.0012입니다.

근거는 상위 3편의 섹션만

답변은 검색 결과를 그대로 재료로 씁니다. 상위 3편에서 질문과 가까운 섹션을 두 개씩 고릅니다. 의미 검색이 가장 가깝다고 본 섹션을 먼저 쓰고, 나머지는 질문 단어가 많이 든 섹션입니다.

모델에게는 이 섹션들에만 번호를 붙여 넘깁니다. 답의 문장마다 [1], [2]를 달게 하고, 화면은 이 번호를 해당 글 링크로 바꿉니다. 글자는 생성되는 대로 흘려 보여줍니다. 첫 글자가 1초 안팎에 뜨니 기다린다는 느낌이 거의 없습니다.

지어낸 답을 막는 두 겹

모델을 확정하기 전, 맥미니의 EXAONE으로 먼저 시험했습니다. 블로그에 없는 "쿠버네티스 오토스케일링 설정"을 물었습니다.

블로그 글에는 그런 내용이 없다고 먼저 말하더니, "하지만 일반적으로는"으로 이어 가며 HPA 설정 YAML까지 길게 써 내려갔습니다. 프롬프트에 금지한다고 적어 둔 바로 그 행동이었습니다.

그래서 모델의 양심에 맡기지 않기로 했습니다. 서버에서 한 번 거릅니다.

// 의미상 가장 가까운 섹션이거나, 검색어 단어의 절반 이상이 든 섹션만 근거로 인정
const grounded = sources.some((s) => s.sections.some((x) => x.grounded));
if (!grounded) return new Response("블로그 글에서 답을 찾지 못했습니다.");

근거가 없으면 모델을 아예 부르지 않습니다. 비용도 들지 않습니다.

화면에서 한 번 더 거릅니다. 답이 "블로그 글에서…"로 시작하거나, 끝까지 출처 번호가 하나도 없으면 같은 문구로 바꿉니다.

이 두 번째 장치가 Solar에서 바로 걸렸습니다. Solar의 첫 답은 내용은 정확했는데 번호를 빼먹었습니다. 그대로 두면 맞는 답이 "찾지 못했습니다"로 바뀝니다. 프롬프트에 예시를 넣으니 문장마다 번호를 붙였습니다.

프롬프트의 규칙 부분
- 한국어 존댓말, 담백한 개발자 문체. 인사말·서론·요약 문구·이모지 금지.
- 모든 문장 끝 마침표 앞에 근거 글 번호를 대괄호로 붙이세요.
  예: '참조 고리를 끊어 메모리를 비웁니다 [1].' 두 글이 근거면 [1][2].
- 글에 없는 사실·수치·제품 기능을 지어내지 마세요. 일반 지식으로 보충하지 마세요.
- 글에서 답을 찾을 수 없으면 정확히 "블로그 글에서 답을 찾지 못했습니다."만 출력하세요.

엉뚱한 곳에서 하나 더 걸렸습니다. 모델을 바꿨는데 예전 EXAONE의 답이 나왔습니다. 같은 질문의 답을 7일 캐시하는데, 캐시 키에 모델 이름이 없었던 겁니다. 키에 모델 이름을 넣어 해결했습니다.

비용이 새지 않게

답변은 버튼을 눌러야만 만듭니다. 검색할 때마다 부르면 독자가 타이핑하는 동안에도 비용이 나가기 때문입니다.

같은 질문과 같은 근거 글의 답은 7일 동안 캐시합니다. 하루 호출은 200번까지만 받습니다. 최악의 날에도 $0.25 남짓입니다. 봇과 다른 사이트에서 온 요청은 받지 않고, 질문 내용은 저장하지 않습니다.

API 키는 Cloudflare의 비밀 값으로만 둡니다. 키가 빠지면 답변 버튼이 저절로 사라집니다.

모델은 바꿔 끼울 수 있게

OpenAI 호환 방식으로 짰기 때문에 주소, 모델 이름, 키 세 가지만 바꾸면 다른 모델로 넘어갑니다. 로컬 시험은 실제로 그렇게 맥미니의 EXAONE으로 했습니다.

나중에 EXAONE을 사용량만큼 부를 수 있는 API가 다시 열리면 설정 세 줄로 돌아갈 수 있습니다. 모델을 고르는 일보다, 근거 밖의 말을 막는 장치를 먼저 만들어 두는 편이 오래 남는다고 봅니다.

출처 및 참고자료

  1. K-EXAONE Launches with Day-0 Support on FriendliAI — Free Until Jan 28 PTFriendliAI BlogK-EXAONE 서버리스 API 무료 제공이 2026년 1월 28일(PT)까지였다는 점
  2. 최고의 성능으로 누구나 사용한다!...LG AI연구원, 국내 최대 파라미터 7500억개 ‘K-엑사원 2.0’ 공개인공지능신문K-EXAONE 2.0의 Hugging Face 공개와 Apache 2.0 전환. 기사에 API 제공 언급 없음
  3. EXAONE 4.5 33B - API ProvidersArtificial Analysis"No API providers are currently available" 표기(확인 시점 2026-11-01)
  4. PricingFriendliAI전용 엔드포인트 GPU 시간당 요금(A100 80GB $4, H100 80GB $5)
  5. Solar Pro 4Upstage Console 문서모델 id solar-pro4, 2026-08-06 출시, 입력 $0.30·출력 $1.20(100만 토큰당), 한국어 입출력 지원
  6. Getting startedUpstage Console 문서OpenAI 호환 기본 주소 https://api.upstage.ai/v1, 가입 시 무료 크레딧 $10