개발 중 막히거나 모르는 부분이 생길 때, 코드를 더 개선해보고 싶은데 답이 안나올 때 누구나 한번 쯤은 ChatGPT 같은 LLM 모델에 코드를 복붙해서 GPT에 답을 구한 경험이 있을 겁니다. 언제나 이렇게 사용할 수 있으면 좋겠지만 ChatGPT나 Gemini 같은 유료 모델의 경우 무료버전을 사용한다면 매달 어마어마한 구독료를 내야 하며, 회사나 보안 상의 이유로 코드가 유출되면 안되는 경우 ChatGPT 사용에 제약이 따르기도 하죠.
저도 어떻게 하면 좋을 지 방법을 찾아보던 중 Ollama와 Continue라는 플러그인에 대해 알게되어 한번 소개해봅니다.
선 요약
Ollama: 로컬에서 쓰는 LLM
Continue: IDE에서 로컬 LLM 돌리는 플러그인
Ollama + Continue: 로컬에서 걱정없이 GPT 쓴다!
Ollama
1. Ollama 란?
Ollama는 로컬에서 LLM 모델을 다운로드하고 동작시키는 무료 LLM 오픈 소스 플랫폼입니다. Ollama를 통해 메타의 Llama, 마이크로소프트의 Phi 등 다양한 LLM 모델을 설치하고 사용할 수 있으며, 아래의 Ollama 홈페이지에서 어떤 LLM 모델이 있는지 확인할 수 있습니다.
Ollama
Get up and running with large language models.
ollama.com
2. Ollama를 왜 쓰는데?
1) 데이터 보안
ChatGPT와 같은 클라우드 환경의 LLM을 사용할 경우 사용자의 질의응답의 모든 내용이 서버로 전송됩니다. 즉, 중요 데이터가 유출 될 수도 있죠. 하지만 Ollama는 로컬에서 LLM 모델이 실행되기 때문에 데이터가 서버로 전송되지 않으며 데이터가 유출될 일이 없습니다.
2) 비용
클라우드 LLM은 API 호출 당 비용이 발생할 수 있지만, Ollama는 로컬에서만 동작하기 때문에 비용이 발생하지 않습니다.
3) 네트워크 독립성
로컬에서 동작하기 때문에 네크워크 연결이 필요하지 않다는 장점도 있습니다. 또한 네트워크를 연결하지 않기 때문에 응답이 빠르다는 점도 장점이죠.
3. Ollama 설치 방법
자, 이제 왜 써야하는지는 대충 알겠으니 한번 설치해봅니다.
참고로 저는 mac 환경에서 진행했습니다.
1) Ollama 설치 방법
Ollama
Get up and running with large language models.
ollama.com
위 링크에 접속한 후
화면 중앙의 'Download' 버튼 클릭 후
다음의 화면에서 본인의 OS에 맞게 설치합니다.
# Ollama 버전 확인
ollama --version
Ollama 설치가 완료되었다면 터미널을 열어 위의 명령어를 실행합니다.
Ollama가 잘 설치되었는지 확인해줍니다.
위 이미지처럼 버전이 출력된다면 정상적으로 설치된 것입니다.
2) LLM 모델 설치
library
Get up and running with large language models.
ollama.com
위 링크에서 설치할 적당한 LLM 모델을 찾아봅니다.
해당 페이지에선 다양한 용도와 특성에 맞게 최적화 된 모델을 찾아볼 수 있습니다. 저는 알리바바의 'qwen2.5-coder'라는 LLM 모델을 설치하겠습니다.
※ Continue 플러그인에서 로컬 LLM을 사용하려면 한 가지 이상의 LLM 모델을 설치해야 합니다.
# LLM 모델 설치
ollama pull qwen2.5-coder
터미널을 열어 위의 명령어를 실행해줍니다.
# Ollama에 설치되어있는 LLM 모델 확인
ollama list
설치가 완료되었다면 위 명령어를 실행하여 LLM 모델이 잘 설치되었는지 확인합니다.
모델이 잘 설치됐다면 위 이미지처럼 설치한 LLM 모델 목록이 표시될 것입니다.
3) LLM 실행하기
# LLM 모델 실행하기
ollama run qwen2.5-coder
위 명령어를 실행하면 아래의 이미지처럼 터미널에서 LLM 모델을 사용할 수 있습니다.
자. 이제 로컬에서 LLM을 사용할 수 있게 되었습니다.
하지만 매번 터미널 열어서 가독성도 안좋은 상태로 질의응답하면 피곤하겠죠? 그래서 이제 나오는게 Continue 입니다.
Continue
CodeGPT, Copilot, Gemini 처럼 다양한 IDE에서 편한 UI로 LLM을 실시간으로 활용하게 하는 플러그인들이 있습니다. 오늘은 그 중에서도 무료 오픈소스 플러그인인 Continue를 소개할까 합니다.
1. Continue 란?
무료로 사용 가능한 AI Code 어시스턴트 플러그인이며 채팅, 자동 완성, 편집 등의 기능을 지원합니다. 사용하는 LLM 모델에 따라 무료로 사용하거나 API 호출을 통해 유료 클라우드 LLM 모델을 사용할 수도 있습니다.
자세한 내용이 궁금하다면 아래 링크를 확인해보세요.
Overview | Continue
Getting started with Continue
docs.continue.dev
2. 사용 가능 IDE
VS Code와 JetBrains(IntelliJ, Android Studio)에서 사용 가능합니다.
※ 2024년 11월 12일 기준 JetBrains IDE 특정 버전에서 Continue 사이드바 채팅창이 활성화되지 않는 문제가 있습니다. 따라서 VS Code 기준 사용 방법만 작성하며 추후 Continue가 안정화 된다면 JetBrains 환경 사용 방법도 추가하겠습니다.
※ 참고 용으로 해당 문제에 대한 해결 방법을 다룬 Github 이슈를 링크해둘테니 시도해보시기 바랍니다.(제 경우엔 안됐습니다.)
IntelliJ Plugin not working in Android Studio · Issue #596 · continuedev/continue
Before submitting your bug report I believe this is a bug. I'll try to join the Continue Discord for questions I'm not able to find an open issue that reports the same bug I've seen the troubleshoo...
github.com
3. VS Code에서 Continue 사용하기
자세한 내용이 궁금하시다면 아래 링크를 참조하시기 바랍니다.
Install | Continue
The open-source AI code assistant for developers
docs.continue.dev
0) 준비물
- VS Code
- Ollama
- LLM 모델
1) VS Code에 Continue 플러그인 설치
a. VS Code를 열고 키보드의 (Ctrl + Shift + x) 클릭 또는 좌측 하단의 블럭 모양의 아이콘(확장) 클릭
b. 검색 창에 Continue 입력 후 검색
c. Continue - Codestral, Claude, and more 설치
또는 아래 링크를 타고 들어가서 다운로드 받을 수도 있습니다.
Continue - Codestral, Claude, and more - Visual Studio Marketplace
Extension for Visual Studio Code - The leading open-source AI code assistant
marketplace.visualstudio.com
2) 좌측 사이드바에 생성된 Continue 아이콘을 우측 사이드바로 이동
이미지와 같이 좌측 사이드바에 생성 된 Continue 아이콘을 우측 상단으로 드래그하여 옮깁니다.
※ 해당 단계는 필수 사항은 아니지만 Continue의 채팅 UI가 우측에 최적화 되어 있어서 옮기는걸 추천한다고 합니다.
3) 사용할 LLM 모델 설정
VS Code를 열어 우측 하단의 설정 아이콘을 클릭하거나 중앙 상단의 주소 창을 클릭한 후 > Continue: Open config.json 라고 검색합니다.
위 이미지처럼 continue의 설정 파일이 열릴 것입니다. 여기서 우리가 사용할 LLM 모델로 수정해야 합니다.
그 전에 설정 파일의 속성들이 각각 어떤 것을 의미하는지 궁금하다면 아래 더보기를 펼쳐주세요. ❗️
"models": [
{
"title": "Claude 3.5 Sonnet"
"provider": "anthropic",
"model": "claude-3-5-sonnet-20240620",
"apiKey": "",
}
],
- models는 Continue에서 사용할 LLM 모델들을 정의합니다.
- (필수) title: LLM 모델 이름(별명)
- (필수) model: 사용할 LLM 모델
- (필수) provider: 모델을 제공하는 서비스
- apiKey: 클라우드 LLM 모델 등 외부 모델을 사용할 때 필요한 API 키
"tabAutocompleteModel": {
"title": "Codestral",
"provider": "mistral",
"model": "codestral-latest",
"apiKey": ""
},
- tabAutocompleteModel은 자동완성 기능을 사용할 때 활용되는 모델들을 정의합니다.
- Continue에서는 자동 완성 기능 사용 시 범용적인 LLM 모델보다 코드 작성에 특화 된 모델 사용을 권장하고 있습니다. (링크)
- 하위 속성은 models와 동일합니다.
더 자세한 내용이 궁금하다면 아래 링크를 참고하시기 바랍니다.
Reference | Continue
Reference for the Continue _config.json_ configuration file
docs.continue.dev
"models": [
{
"model": "claude-3-5-sonnet-20240620",
"provider": "anthropic",
"apiKey": "",
"title": "Claude 3.5 Sonnet"
},
{
"model": "qwen2.5-coder",
"provider": "ollama",
"title": "Qwen2.5-Coder"
}
],
"tabAutocompleteModel": {
"title": "Qwen2.5-Coder",
"provider": "ollama",
"model": "qwen2.5-coder",
"apiKey": ""
},
위와 같이 내용을 수정해줍니다.
models에 사용하는 LLM 모델을 추가하고 tabAutocompleteModel도 사용하는 LLM 모델로 수정해줍니다.
수정이 완료 되었다면 (윈도우) Ctrl + S / (mac) Cmd + S 를 입력하여 변경 사항을 저장해줍니다.
다시 우측 사이드바에서 Continue를 열어 QuickStart 창을 닫고 채팅 입력 창에 모델을 클릭합니다.
표시 된 LLM 모델 목록 중 추가한 LLM 모델을 선택합니다.
여기까지 끝났다면 이제 자유롭게 영상처럼 코드 복붙하며 물어볼 수 있습니다!
4. Continue 활용 가이드
1) 쉽게 코드 복붙해서 질문하기
코드를 긁어 질문할 때 물어볼 코드를 드래그 한 후 Ctrl + Shift + L 를 누르면 위 이미지처럼 바로 채팅 창에 해당 코드 블럭이 입력됩니다.
2) 에러 발생 지점 질문하기
위 이미지처럼 에러가 발생하는 지점에 커서를 두고 Ctrl + . 을 누른 후 Ask Continue 를 실행하면
이렇게 바로 에러에 대한 질문과 답변이 생성됩니다.
3) 기술문서 기반으로 질문하기
채팅 창에 @ 입력 후 Docs를 선택합니다.
참고할 기술 문서가 리스트 중에 있다면 클릭하고 없다면 최하단의 + Add Docs를 선택합니다.
원하는 기술의 URL과 제목을 입력하고 Submit 버튼을 클릭합니다.
그럼 위와 같이 Android 기술 문서가 추가된 것을 확인할 수 있습니다. (추가되기까지 시간이 좀 걸립니다.)
4) 코드 자동 완성
코드 작성 중 가만히 있으면 Continue 가 코드를 완성해줍니다. Continue가 완성한 코드를 사용하고 싶다면 tab 키를, 기각하고 싶다면 delete 키를 입력합니다.
Continue가 코드를 완성하는 동안 위 이미지처럼 VS Code 창 우측 하단에 Continue 옆으로 progressBar가 돌아갑니다. LLM 모델에 따라 코드가 완성되기까지 시간이 걸립니다. 기다리면 됩니다.
코드가 완성될 때까지 마냥 기다리는게 싫다면 자동완성 기능을 단축어로 지정해주면 됩니다. VS Code 중앙 상단의 주소창에
> Preferences: Open keyboard Shortcuts 라고 검색합니다.
단축어 목록이 표시될텐데 입력창에 editor.action.inlineSuggest.trigger 라고 검색합니다.
표시된 명령의 좌측에 커서를 두면 + 버튼이 표시되는데 클릭합니다.
단축어가 중복되지 않도록 주의하며 단축어를 지정하고 저장합니다. (저는 Ctrl + Shift + / 로 지정했습니다.)
5) 주석문으로 코드 완성하기
주석을 작성하고 기다리거나 위에서 지정한 자동 완성 단축키를 입력하면 위의 이미지처럼 주석문에 따라 코드를 작성해줍니다.
나머지 Continue의 기능들을 더 자세히 알아보고 싶다면 아래 링크를 참고하시기 바랍니다.
Continue
Amplified developers, AI-enhanced development · The leading open-source AI code assistant. You can connect any models and any context to build custom autocomplete and chat experiences inside the IDE
www.continue.dev