광고 자리 모집 중 · 제휴 문의

Continue에서 Tab 자동 완성과 채팅을 별도 전용 모델로 라우팅하는 방법

365Finds Editorial
Wiki 문서 11,430편 수록

내 AI에서 365 Wiki 사용하기

아래 프롬프트를 복사해 평소 사용하는 AI에 붙여넣고 바로 질문하세요.

전체 Skill 다운로드

먼저 프롬프트로 체험해 보세요. 365 Wiki를 자주 쓴다면 전체 365Wiki Skill을 설치해 매번 붙여넣는 수고를 줄일 수 있습니다. 평소 쓰는 AI가 없다면 Gemini나 Microsoft Copilot 웹 버전도 사용할 수 있습니다.

VS Code나 JetBrains에서 Continue 확장 프로그램을 사용하는 개발자는 아키텍처 측면에서 중요한 문제에 직면하곤 합니다. 키 입력 단위의 Tab 코드 자동 완성은 극도로 낮은 응답 지연 시간(첫 번째 토큰 생성 시간인 TTFT 300ms 미만)을 요구하는 반면, 사이드바 채팅 및 프로젝트 리팩터링은 방대한 컨텍스트와 깊은 추론 능력을 갖춘 프론티어 모델이 필요합니다. Claude 3.5 Sonnet이나 GPT-4o 같은 고중량 모델을 Tab 자동 완성에 연결하면 타이핑 시 치명적인 지연이 발생하고 과도한 API 비용이 청구됩니다. 반대로 경량 완성 모델을 채팅에 활용하면 복잡한 아키텍처 설계와 디버깅을 제대로 수행할 수 없습니다.

이 문제를 해결하는 핵심 메커니즘은 '역할 기반 모델 라우팅(Role-based Model Routing)'입니다. Continue는 인라인 실시간 자동 완성과 탐색적 대화 추론을 아키텍처 수준에서 분리하도록 설계되었습니다. 본 가이드에서는 최신 config.yaml 표준 및 레거시 config.json 환경에서 Tab 자동 완성과 채팅 모델을 각각 분리하여 지정하고, 로컬 및 클라우드 엔드포인트를 튜닝하여 지연 시간을 최소화하는 방법을 설명합니다.


아키텍처 분리: Tab 자동 완성 vs 채팅

Tab 자동 완성과 채팅 인터랙션은 추구하는 성능 제약 조건과 모델 구조가 근본적으로 다릅니다.

평가 기준Tab 자동 완성사이드바 채팅 및 코드 편집 (Chat & Edit)
핵심 지표첫 토큰 생성 지연(TTFT < 300ms), 타이핑 연속성논리적 추론 깊이, 다중 파일 장문 컨텍스트 이해력
호출 빈도초고빈도(타이핑 일시 중지 시마다 발생, 시간당 수백 회)중/저빈도(개발자가 명시적으로 프롬프트 전송, 일일 수십 회)
모델 아키텍처Fill-In-The-Middle(FIM) 특화 소형 모델(1B–7B)대규모 Dense 모델 또는 MoE 기반 프론티어 추론 모델(14B–70B+ / 클라우드 API)
권장 배포 형태로컬 실행 엔진(Ollama, vLLM, llama.cpp) 또는 초저지연 클라우드 엔드포인트프론티어 클라우드 API(Anthropic, OpenAI, Mistral) 또는 고성능 로컬 서버
컨텍스트 구성커서 전후 코드 라인 및 AST/LSP 문법 정의대화 기록 전체, 프로젝트 파일 첨부, 에이전트 시스템 프롬프트

역할 분리를 통해 개발자는 로컬 모델을 활용해 API 비용 없는 비공개 밀리초 단위 입력을 지원받는 동시에 사이드바에서는 최고 성능 모델의 지능을 온전히 누릴 수 있습니다.


방법 1: 최신 표준 규격 (config.yaml)

최신 Continue 버전에서는 ~/.continue/config.yaml 경로의 설정 파일을 사용합니다. 모델의 작업 할당은 각 모델 정의에 포함된 roles 배열에 의해 제어됩니다.

모델 분리 단계:

  1. FIM을 지원하는 경량 로컬 모델을 정의하고 roles: [autocomplete]를 지정합니다.
  2. 코드 분석 및 다중 턴 대화에 최적화된 클라우드 모델을 정의하고 roles: [chat, edit]를 지정합니다.

프로덕션 설정 예시

name: Continue Hybrid Routing
version: 0.0.1
schema: v1

models:
  # 1. Tab 자동 완성 전용 모델 (로컬 Ollama 구동)
  - name: Qwen2.5 Coder 1.5B (Autocomplete)
    provider: ollama
    model: qwen2.5-coder:1.5b
    roles:
      - autocomplete
    autocompleteOptions:
      debounceDelay: 250
      maxPromptTokens: 1024

  # 2. 채팅 및 리팩터링용 고성능 추론 모델 (Anthropic API)
  - name: Claude 3.5 Sonnet (Chat & Edit)
    provider: anthropic
    model: claude-3-5-sonnet-latest
    apiKey: YOUR_ANTHROPIC_API_KEY
    roles:
      - chat
      - edit

  # 3. 대체 클라우드 채팅 모델 (OpenAI)
  - name: GPT-4o (Chat)
    provider: openai
    model: gpt-4o
    apiKey: YOUR_OPENAI_API_KEY
    roles:
      - chat

핵심 매개변수 설명


방법 2: 레거시 호환 규격 (config.json)

구버전 Continue를 유지 관리하는 환경에서는 ~/.continue/config.json 파일을 사용합니다. 이 구조에서는 models 배열과 분리된 최상위 tabAutocompleteModel 객체를 통해 자동 완성 모델을 지정합니다.

[!NOTE] config.json 및 최상위 tabAutocompleteModel 속성은 공식적으로 지원 중단 예정(Deprecated)으로 분류되어 있습니다. 하위 호환성은 보장되지만 점진적으로 config.yaml로 전환하는 것을 권장합니다.

레거시 설정 예시

{
  "models": [
    {
      "title": "Claude 3.5 Sonnet",
      "provider": "anthropic",
      "model": "claude-3-5-sonnet-latest",
      "apiKey": "YOUR_ANTHROPIC_API_KEY"
    },
    {
      "title": "GPT-4o",
      "provider": "openai",
      "model": "gpt-4o",
      "apiKey": "YOUR_OPENAI_API_KEY"
    }
  ],
  "tabAutocompleteModel": {
    "title": "Qwen2.5-Coder 1.5B",
    "provider": "ollama",
    "model": "qwen2.5-coder:1.5b"
  },
  "tabAutocompleteOptions": {
    "debounceDelay": 250,
    "maxPromptTokens": 1024
  }
}

이 구조의 특징:


시나리오별 권장 모델 조합

하드웨어 사양, 보안 규정 및 비용 예산에 맞춰 다음과 같은 조합을 권장합니다.

시나리오 A: 로컬 및 클라우드 하이브리드 구성 (일반적인 최적 선택)

시나리오 B: 오프라인 폐쇄망 및 엄격한 보안 구성

시나리오 C: 고정밀 클라우드 전용 자동 완성 구성


엔드포인트 튜닝 및 문제 해결

모델 라우팅 설정 외에도 백엔드 추론 엔진의 병목 현상을 해결해야 원활한 개발 환경이 유지됩니다.

1. Ollama 동시 실행 및 메모리 상주 설정

로컬에서 자동 완성 모델과 대화형 모델을 동시에 운영할 경우, Ollama의 기본 설정으로 인해 요청이 직렬 대기열에 걸릴 수 있습니다.

2. 디바운스 및 컨텍스트 길이 최적화

3. IDE 확장 프로그램 간 충돌 방지

설정 후 회색 제안 텍스트가 나타나지 않을 때:


설정 검증

설정을 저장한 후 IDE에서 정상 동작 여부를 확인합니다.

  1. Continue 패널(Ctrl+L / Cmd+L)을 열고 하단 모델 드롭다운에 Chat으로 지정된 모델(예: Claude 3.5 Sonnet)만 나타나는지 확인합니다.
  2. 코드 파일에서 함수 선언부를 작성한 후 300밀리초 동안 대기합니다. 옅은 회색의 고스트 텍스트가 지연 없이 나타나고 로컬 Ollama 엔진에서 요청을 처리했다면 분리 설정이 성공적으로 완료된 것입니다.

참고 자료