Continue에 사내 LLM 또는 OpenRouter를 연동하는 실전 가이드

기업에서 AI 코드 어시스턴트를 도입할 때 가장 먼저 맞닥뜨리는 고민이 있다. “코드가 외부로 나가도 되는가?” 보안 정책상 외부 API를 쓸 수 없거나, 비용을 통제하면서도 여러 모델을 실험하고 싶은 경우가 많다. Continue는 이 두 가지 요구를 모두 충족할 수 있는 유연한 구조를 갖추고 있다.

이 글에서는 Continue에 사내 LLM(vLLM, Ollama 등)OpenRouter(멀티모델 게이트웨이)를 연동하는 방법을 실전 예시와 함께 정리한다.

1. Continue의 모델 연동 아키텍처

Continue는 OpenAI Chat Completions API 호환 프로토콜을 기반으로 동작한다. 즉, /v1/chat/completions 엔드포인트를 제공하는 서버라면 어떤 LLM이든 연동할 수 있다. 핵심 설정 구조는 다음과 같다:

// ~/.continue/config.json
{
  "models": [
    {
      "provider": "openai",
      "apiBase": "http://your-server:8000/v1",
      "apiKey": "your-api-key",
      "model": "model-name",
      "title": "표시 이름"
    }
  ]
}

이 구조를 이해하면 아래 모든 연동 방식이 동일한 패턴임을 알 수 있다.

2. OpenRouter 연동: 하나의 키로 100+ 모델 사용

OpenRouter는 OpenAI, Anthropic, Mistral, Meta 등 다양한 제공자의 모델을 하나의 API 키로 호출할 수 있는 게이트웨이 서비스다. 모델별 과금이 투명하고, 팀 단위 예산 관리도 가능해 기업 환경에서 유용하다.

// ~/.continue/config.json — OpenRouter 설정
{
  "models": [
    {
      "provider": "openai",
      "apiBase": "https://openrouter.ai/api/v1",
      "apiKey": "sk-or-v1-xxxxxxxxxxxx",
      "model": "anthropic/claude-sonnet-4",
      "title": "Claude Sonnet (OpenRouter)"
    },
    {
      "provider": "openai",
      "apiBase": "https://openrouter.ai/api/v1",
      "apiKey": "sk-or-v1-xxxxxxxxxxxx",
      "model": "mistralai/mistral-large-latest",
      "title": "Mistral Large (OpenRouter)"
    }
  ]
}
항목설명
provider"openai" 고정 (OpenAI 호환 프로토콜 사용)
apiBasehttps://openrouter.ai/api/v1
apiKeyOpenRouter 대시보드에서 발급한 API 키
modelOpenRouter 모델 ID (예: anthropic/claude-sonnet-4)

실무 팁: OpenRouter는 HTTP-Referer 헤더를 권장한다. Continue에서는 별도 설정 없이도 동작하지만, 사용량 추적을 위해 requestOptions.headers에 추가할 수 있다.

3. 사내 LLM 연동: vLLM / Ollama / TGI

보안이 중요한 환경에서는 사내 서버에 직접 LLM을 배포하고 Continue에서 연결하는 방식을 택한다. 대표적인 서빙 프레임워크와 설정 방법을 정리한다.

3-1. vLLM (추천)

vLLM은 OpenAI 호환 API를 기본 제공하므로 Continue와 가장 자연스럽게 연동된다.

# vLLM 서버 실행
python -m vllm.entrypoints.openai.api_server   --model meta-llama/Llama-3-8B-Instruct   --port 8000
// Continue 설정
{
  "provider": "openai",
  "apiBase": "http://internal-gpu-server:8000/v1",
  "apiKey": "dummy",
  "model": "meta-llama/Llama-3-8B-Instruct",
  "title": "사내 Llama 3 (vLLM)"
}

3-2. Ollama (로컬 개발용)

개인 개발 환경에서 빠르게 테스트할 때는 Ollama가 편리하다. Continue에 내장 provider가 있어 설정이 더 간단하다.

// Ollama 전용 설정
{
  "provider": "ollama",
  "model": "llama3",
  "title": "Llama 3 (Ollama Local)"
}

3-3. 연동 방식 비교

구분OpenRoutervLLM (사내)Ollama (로컬)
용도다양한 모델 실험, 팀 공유프로덕션 사내 배포개인 로컬 테스트
보안외부 전송 (암호화)내부망 격리로컬 전용
비용모델별 종량제GPU 인프라 비용무료 (로컬 자원)
설정 난이도낮음중간매우 낮음
성능네트워크 의존GPU 스펙 의존로컬 하드웨어 의존

4. 프롬프트 템플릿 커스터마이징

사내 모델이나 파인튜닝된 모델은 프롬프트 형식이 OpenAI와 다를 수 있다. Continue는 ~/.continue/config.jsoncompletionOptions에서 시스템 메시지를 커스터마이징할 수 있다.

{
  "models": [{
    "provider": "openai",
    "apiBase": "http://internal-server:8000/v1",
    "model": "custom-model",
    "systemMessage": "당신은 숙련된 시니어 개발자입니다. 한국어로 답변하세요.",
    "completionOptions": {
      "temperature": 0.3,
      "maxTokens": 4096
    }
  }]
}

주의: temperature를 너무 높이면 코드 생성 품질이 떨어지고, 너무 낮추면 창의적인 제안이 줄어든다. 코드 어시스턴트 용도로는 0.2~0.4가 적절하다.

5. 연동 후 검증 체크리스트

설정을 완료한 후 아래 항목을 반드시 확인한다:

  • 응답 테스트: Continue 사이드바에서 간단한 질문을 던져 모델이 정상 응답하는지 확인
  • 지연 시간: 코드 자동완성(Tab) 시 체감 속도가 괜찮은지 (200ms 이하 권장)
  • 에러 로그: VSCode Output 패널 → Continue에서 API 오류 메시지 확인
  • 모델 전환: 여러 모델을 등록했다면 사이드바 하단 드롭다운에서 전환이 되는지 확인
  • 한글 지원: 주석이나 커밋 메시지 작성 시 한글이 깨지지 않는지 확인

마치며

Continue는 단순한 VSCode 확장이 아니라, OpenAI 호환 프로토콜을 기반으로 어떤 LLM이든 연결할 수 있는 유연한 AI 코딩 프론트엔드다. OpenRouter로 다양한 모델을 실험하고, vLLM으로 사내 보안을 확보하며, Ollama로 로컬에서 빠르게 프로토타이핑할 수 있다.

특히 기업 환경에서는 “어떤 모델을 쓸 것인가”보다 “코드가 어디로 전송되는가”가 더 중요한 의사결정 기준이 된다. Continue의 유연한 연동 구조는 이 고민에 대한 실질적인 해답을 제공한다.