ETC

CodeGPT로 IntelliJ에서 Ollama LLM 사용하기

devson 2024. 9. 11. 14:32

LLM은 업무의 방식을 바꿔놓은지 오래 되었다.

내가 하고 있는 작업에 대해 의견을 물어보면서 업무의 도우미 역할도 해주고, 새로운 기술을 배울 때에도 구글 검색보다도 더 편리하고 빠르게 예제를 보여준다.

또한 LLM을 통해 코딩 업무를 직접적으로 도움 받을 수 있는 서비스 또한 여럿 나왔는데, 대표적으로 Github의 Copilot과 Jetbrains의 AI Assistant가 있다.

 

하지만 보안 상의 이유로 외부 LLM을 사용하기 힘든 경우가 있을 수 있는데, 이때 local LLM을 사용하여 LLM의 도움을 받을 수 있다.

 

이번 포스팅에서는 IntelliJ의 CodeGPT plugin을 사용하여 Ollama 환경에서 설치한 local LLM을 통해 copilot 기능을 활용하는 방법에 대해 알아보도록 하겠다.

 


 

Ollama LLM 모델 다운로드

Ollama는 Llama, Gemma와 같은 open source LLM을 쉽게 설치하고 사용할 수 있게 해주는 툴로 사이트에서 쉽게 설치할 수 있다.

 

설치 후 CLI를 통해 LLM 모델을 다운로드 받는다. 나의 경우 코드 생성에 특화된 codellama 모델을 설치하였다.

$ ollama run codellama

 

설치가 완료된 후에는 CLI를 통해 채팅을 할 수 있다.

 

CodeGPT

CodeGPT는 IntelliJ plugin으로 LLM을 사용하여 IntelliJ IDE에 copilot 기능을 제공하는 plugin 이다.

 

CodeGPT - IntelliJ IDEs Plugin | Marketplace

Introducing CodeGPT, an AI-powered personal copilot, designed to generate high quality code and support you in various programming activities. Access top-tier language...

plugins.jetbrains.com

 

ChatGPT와 같은 외부 LLM도 사용할 수 있지만, Ollama 를 통해 local LLM을 사용할 수도 있다. 

(유사한 plugin으로 DevoxxGenie plugin도 있지만 CodeGPT가 보다 많은 기능을 제공하고 있어서 CodeGPT를 쓰는 것을 더 추천한다)

 

plugin을 설치하면 오른쪽 툴바에 아이콘이 생성된다.

 

Provider setting

pluging settings를 통해 LLM provider 설정을 할 수 있다.

나의 경우 Ollama를 사용했는데 Ollama provider의 host와 설치된 모델 중 어떤 모델을 사용할지를 설정할 수 있다.

Host의 경우 기본 Ollama host 설정과 동일하니 기본 설정으로 Ollama를 설치했다면 따로 건드릴 건 없다.

 

Chat

CodeGPT가 지원하는 기능으로 LLM과의 채팅을 지원한다.

간단하게 오른쪽 아이콘을 클릭하면 바로 채팅을 할 수 있으며, 입력창 하단에 어떤 모델을 사용할지 쉽게 설정할 수 있다.

 

 

Persona 설정

CodeGPT는 기본적으로 주어진 질문에 대해 LLM에게 persona(역할)를 부여하여 답변을 하도록 한다.

그렇기 때문에 상황에 맞지 않는 persona가 부여되어 있으면(Python 코드인데 Golang expert로 설정되어 있는 경우) 엉뚱한 답변을 할 수도 있다.


이는 settings를 통해 preset persona에 대한 prompt를 확인할 수도 있고, custom persona를 생성할 수도 있다.

 

입력창을 통해 코드에 대한 질문을 입력하면 아래와 같이 LLM이 답변을 해주는 것을 확인할 수 있다.

 

CodeGPT의 편리한 부분은 간단하게 생성된 코드를 에디터로 붙여넣기 할 수 있다는 점이다.

 

에디터로 코드 붙여넣기

 

 

또한 @를 통해 특정 파일을 첨부하여 해당 파일과 관련된 질문을 던질 수 있다.

특정 파일 내의 코드의 시간 복잡도에 대한 질의

 

Code completion

앞서 살펴본 것 처럼 채팅을 통해서 뿐만 아니라 에디터에서 즉석으로 코드를 만들어 주기도한다.

IDE 하단에 CodeGPT 아이콘을 통해 해당 기능을 on/off 할 수 있다.

 

 

tab을 눌러 제안된 코드를 사용할 수 있다