Local LLM 구축하기 · 25/30 · 에이전트와 연결
로컬 모델을 기본으로 쓰면서 일부 질문만 외부 모델에 보낼 수 있습니다. 이때는 사용자가 전송 대상을 확인할 수 있어야 해요. 로컬 실행이 실패해도 자동으로 클라우드에 넘기지 않는 분기를 만들어 보겠습니다.
13편과 24편의 공용 파일을 사용합니다. 외부 호출은 사용자가 선택한 비민감 질문에만 허용합니다.
로컬 실패와 외부 전송 정책
메모리가 부족해 로컬 요청이 실패했다고 자료의 외부 전송까지 허용된 것은 아닙니다. 가용성을 위한 fallback과 데이터 전송 정책을 따로 정해야 합니다. 아래 예제는 로컬 실패를 그대로 알리고 자동 전환하지 않습니다.
| 입력 조건 | 경로 |
|---|---|
| 기본 실행 | 로컬 Ollama |
| –cloud만 지정 | 외부 전송 확인이 없어 중단 |
| –cloud –public 지정 | 사용자가 고른 외부 모델 |
| 로컬 호출 오류 | 오류를 반환하고 사용자가 원인 점검 |
public 옵션은 사용자가 확인했다는 표시입니다. 민감정보를 탐지하거나 공개 가능한 자료임을 보증하지는 않습니다. 주민번호가 없어도 기밀 자료일 수 있으므로 조직에서는 데이터 분류와 허용 경로를 별도로 정의합니다.
사용자가 선택하는 분기
import argparse
from llm_http import post, MODEL
from openrouter_demo import cloud_chat
parser = argparse.ArgumentParser()
parser.add_argument("--cloud", action="store_true")
parser.add_argument("--public", action="store_true",
help="외부 전송 가능한 비민감 질문임을 사용자가 확인")
args = parser.parse_args()
if args.cloud and not args.public:
parser.error("Cloud use requires explicit --public confirmation")
question = input("질문: ").strip()
if not 1 <= len(question) <= 1000:
raise SystemExit("Use a question of 1 to 1000 characters")
if args.cloud:
model = input("검토한 OpenRouter 모델 ID: ").strip()
answer, usage = cloud_chat(question, model)
print(answer)
print("route=cloud", usage)
else:
r = post("/api/chat", {
"model": MODEL, "messages": [{"role": "user", "content": question}],
"stream": False,
"options": {"num_ctx": 4096, "num_predict": 256, "temperature": 0.2}
})
print(r["message"]["content"])
print("route=local")
.\.venv\Scripts\python.exe .\hybrid_chat.py
# 가상 질문을 외부에 보낼 때만 실행
.\.venv\Scripts\python.exe .\hybrid_chat.py --cloud --public
라우팅 규칙과 데이터 분류
모델에게 요청의 난도를 분류하게 할 수도 있지만 그 호출에도 시간과 비용이 듭니다. 외부 모델에 민감도 판단을 맡기면 분류 전에 이미 자료를 보낸 셈이에요. 우선 사용자 선택과 명확한 업무 규칙으로 경로를 나눕니다.
자동 라우팅이 필요하면 문서 종류와 길이, 허용 제공자, 모델별 평가 결과를 기준으로 정합니다. 예를 들어 사내 규정 검색은 로컬에 두고 공개 문서의 문체 수정만 외부 후보로 둘 수 있습니다. 어떤 자료를 어디로 보낼지 설명할 수 있는 규칙이 필요합니다.
경로·토큰·비용 기록
로그에는 질문 전문보다 경로, 모델 ID, 처리 시간, 상태와 토큰 수를 먼저 기록합니다. 입력·출력 토큰에 각각 단가를 곱해 비용을 더하고 별도의 도구 요금도 확인합니다. 실제 청구는 키별 한도와 계정 사용 내역으로 대조합니다.
샘플 CLI에는 여러 사용자 인증과 동시 요청 제한, 예산의 원자적 차감이 포함돼 있지 않습니다. 공유 서비스에서는 이런 처리를 추가해야 합니다. 요청 본문과 RAG 근거 중 무엇이 외부로 전송되는지도 사용자가 확인할 수 있게 구성합니다.
참고 자료
문서·모델 태그 확인 기준: 2026년 10월 18일. 기본 실습 환경: Windows 11 x64.




답글 남기기