ollama로 로컬에서 나만의 AI 챗봇 만들기
반응형

안녕하세요 😉
유유자적한 개발자 유로띠 입니다 😀
 


👏👏👏👏
 
 
이번 포스팅에서는
✅ Ollama 란 🦙
✅ Ollama 설치
✅ Ollama JavaScript 라이브러리 사용하기
✅ Ollama web-ui 사용하기

에 대해서 알아보겠습니다
 
 
 
 

Ollama : 올라마 🦙


 
 
 

✅  Ollama (: 올라마) 란?

Get up and running with large language models, locally.
- ollama.io -

 
로컬에서 대형 언어 모델(Large Language Models: LLM)을 쉽게 사용할 수 있도록 하는 플랫폼입니다.
현재는 MacOS 과 Linux 환경에서만 제공하고 있습니다.

 

MacOS 기준으로 Ollama 설치를 진행하도록 하겠습니다.
 

✅  Ollama  설치

 
brew 명령어를 통해 간단하게 설치가 가능합니다.

brew install ollama

# Mac M1
arch -arm64 brew install ollama

 
설치완료 후 run 명령어를 통해 ollama를 실행하려고 하면 다음과 같은 에러가 발생됩니다.

$ ollama run llama2
Error: could not connect to ollama app, is it running?

 

참고로 위의 명령어는 llama2 언어모델을 이용하여 ollama를 실행하는 명령어 입니다.
그래서 실행하기 전에 ollama부터 먼저 기동해야 합니다.
 

ollama serve

 
해당 명령어룰 실행하면 로컬에 http://localhost:11434로 서버가 기동 되는 것을 알 수 있습니다.

 
 
간단하게 기동이 완료되었습니다.


 
help 명령어를 통해 ollama의 명령어를 확인할 수 있습니다.

$ ollama help

Large language model runner

Usage:
  ollama [flags]
  ollama [command]

Available Commands:
  serve       Start ollama
  create      Create a model from a Modelfile
  show        Show information for a model
  run         Run a model
  pull        Pull a model from a registry
  push        Push a model to a registry
  list        List models
  cp          Copy a model
  rm          Remove a model
  help        Help about any command

Flags:
  -h, --help      help for ollama
  -v, --version   Show version information

Use "ollama [command] --help" for more information about a command.

 
 
다음으로 AI 언어 모델을 선택하여 기동 합니다.
언어 모델은 ollama 라이브러리에서 확인 가능합니다.

 

가장 인기가 있는 llama2(: 라마2)를  사용하도록 하겠습니다.
llama2는 Large Language Model Meta AI의 약자로 메타에서 출시한 대형 언어 모델로 입니다. 또한 상업적으로도 사용이 가능한 오픈소스입니다.

라마2로 올라마를 실행해 보겠습니다.
 

ollama run llama2

 
 처음 시작하면 해당 언어 모델 pull 작업을 진행합니다.
 파라미터를 설정할 수도 있는데, 명시하지 않으면 기본적으로 7B로 설치를 진행하며 용량은 대략 3.8G입니다.

7B 모델을 사용하는 경우 최소 8G RAM이 필요합니다.
13B - 16G RAM
33B - 32G RAM

 

다음은 아래의 표를 참고하시면 됩니다.

 

ollama model Library

 

 

 
설치가 완료되면 프롬프트를 통해 대화가 가능합니다.
 
드디어 로컬에서 AI 챗봇을 구축하였습니다.
 

 
 
한글로 질문은 가능하지만 답변은 한글로 해주진 않습니다. 방법이 있을 듯한데… 🤔
 
이번에 다른 언어 모델인 mistral(: 미스트랄)을 설치해 보겠습니다.
mistral은 프랑스의 Mistral AI가 만든 오픈소스 언어 모델입니다.
 

ollama run mistral

 
mistral의 경우 놀랍게도 한국어로 답변을 해주는 것을 알 수 있습니다.
 

 
 
올라마를 이용하여 두 가지 언어 모델을 설치하고 프롬프트를 통해 대화가 가능한 AI 챗봇을 완성하였습니다. 👍

 
 

Ollama JavaScript Library


 

2024년 1월 23일 Ollama에서 Python과 JavaScript 라이브러리를 공개하였습니다.
https://ollama.ai/blog/python-javascript-libraries

 

Python & JavaScript Libraries · Ollama Blog

The initial versions of the Ollama Python and JavaScript libraries are now available, making it easy to integrate your Python or JavaScript, or Typescript app with Ollama in a few lines of code. Both libraries include all the features of the Ollama REST AP

ollama.ai

 

✅  Ollama JavaScript 사용하기


javascript 프로젝트를 하나 만들고 npm을 이용하여 ollama 라이브러리를 설치합니다.

npm i ollama

 
 
ollama import 후 chat 명령어를 통해 질의를 진행할 수 있습니다.

import ollama from 'ollama'

const response = await ollama.chat({
  model: 'llama2', // mistral
  messages: [{ role: 'user', content: 'Why is the sky blue?' }],
})
console.log(response.message.content)

 
위에서 ollama를 기동(ollama serve)하였다면 원하는 언어 모델을 설정한 후 메시지를 전달하여 답변을 받을 수 있습니다.
api 서버로 만들어서 대화형으로 챗봇을 만든다면 프롬프트 보다 편하고 활용도가 높아 보입니다.
 
 

 

 
 
 

Ollama-webui


 

올라마가 다양하게 지원하지만 역시나 옆에 두고 코딩이나 문서정리, 지식 등 AI 어시스턴트처럼 사용하기 원하실 겁니다.
Ollama도 Ollama-webui라는 web 인터페이스를 제공하여 chatGPT 스타일처럼 사용할 수 있습니다.

 

 

GitHub - ollama-webui/ollama-webui: ChatGPT-Style Web UI Client for Ollama 🦙

ChatGPT-Style Web UI Client for Ollama 🦙. Contribute to ollama-webui/ollama-webui development by creating an account on GitHub.

github.com

 

 

✅  Ollama-webui 설치

 
기본적으로 docker를 이용하여 설치를 진행합니다.
설치 전 로컬에 docker가 존재해야 합니다.
docker를 이용한 설치를 강력히 권고하고 있으며 아쉽게도 docker를 사용하지 않고 설치하는 방법은 공식적으로 존재하지 않습니다.
 

다음 docker명령어를 실행하여 ollama-webui를 구동시킵니다.

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v ollama-webui:/app/backend/data --name ollama-webui --restart always ghcr.io/ollama-webui/ollama-webui:main

 
 
위에 명령어를 실행하면 ollama-webui 이미지를 내려받습니다.

$ docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v ollama-webui:/app/backend/data --name ollama-webui --restart always ghcr.io/ollama-webui/ollama-webui:main
Unable to find image 'ghcr.io/ollama-webui/ollama-webui:main' locally
main: Pulling from ollama-webui/ollama-webui
a5573528b1f0: Pull complete
6110cc4e2385: Pull complete
f0dc523ed943: Pull complete
12220cddc3fc: Pull complete
b2660536b80f: Pull complete
f4b9a01d4c45: Pull complete
3198daf06c8a: Pull complete
75243eb8a4ef: Pull complete
9e6166b6c26a: Pull complete
93108ccb7619: Pull complete
b227150190b6: Pull complete
ec697420e5a7: Pull complete
3391d3a34c81: Pull complete
209c438ead0d: Pull complete
Digest: sha256:a75849aab71d070bdd721bfc540eeac6c8c062d46e926dd135d17a416fa5da19
Status: Downloaded newer image for ghcr.io/ollama-webui/ollama-webui:main
7cc11372aa256575f48b0515d30d8c2d53ea2b88ada43321a2e767a1935d193a

 
 
로컬 docker에 이미지 생성 및 컨테이너가 실행되고 있는 것을 확인할 수 있습니다.

설치 및 구동이 완료되었습니다!
 

 

 
설치가 완료되었다면 해당 주소(http://localhost:3000)로 접근하면 다음과 같은 로그인 화면을 볼 수 있습니다.
 

 

 
 
계정이 없기 때문에 Sign up에서 이름, 이메일, 비밀번호를 입력하여 회원 가입을 진행합니다.

 
 
가입 후 로그인을 하면 다음과 같이 chatGPT 스타일의 web 인터페이스를 볼 수 있습니다.

왼쪽에는 chat 히스토리가 있고 중앙에서 챗을 진행합니다.
 

 
 
 
챗을 진행하기 전 위쪽에 Select a model를 선택해 언어 모델을 선택하고 메시지를 입력하면 대화를 진행할 수 있습니다.
 
 


 
또한, openAI key를 입력하면 ollama에서도 chatGPT를 사용할 수 있습니다.
 

 
 OpenAI API을 이용해서 사용하는 것은 다음 글에 작성하도록 하겠습니다

이렇게 Ollama(올라마)를 이용하여 간단하게 로컬환경에서 나만의 챗봇을 만들어보았습니다.


 
 

참고

https://ollama.ai/

 

Ollama

Get up and running with large language models, locally.

ollama.ai

 

반응형