ollama는 로컬에서 LLM(Large Language Model)을 실행하고 사용할 수 있도록 도와주는 툴입니다. LangChain과도 쉽게 연동할 수 있어, 인터넷 연결 없이도 AI 모델을 활용할 수 있습니다.

 


🔹 Ollama 기본 사용법

 

1️⃣ 설치

 

먼저, ollama를 설치해야 합니다.

MacOS & Linux:

curl -fsSL https://ollama.com/install.sh | sh

 

Windows:

Ollama 공식 홈페이지에서 설치 파일 다운로드

 

설치가 완료되면 터미널에서 ollama 명령어가 사용 가능해집니다.

 


2️⃣ 모델 다운로드 및 실행

 

Ollama는 로컬에서 실행할 LLM을 다운로드해야 합니다.

예를 들어, Mistral 모델을 다운로드하고 실행하려면:

ollama pull mistral
ollama run mistral

또는 llama3 모델을 사용하려면:

ollama pull llama3
ollama run llama3

이제 터미널에서 직접 모델과 대화할 수 있습니다.

 


🔹 Python에서 Ollama 사용하기

 

✅ Ollama + Python 기본 예제

 

Ollama의 API를 Python에서 호출하려면 ollama 패키지를 설치합니다.

import ollama

response = ollama.chat(model="mistral", messages=[{"role": "user", "content": "Explain quantum computing"}])
print(response["message"]["content"])

✅ 위 코드에서는 mistral 모델을 사용해 “Explain quantum computing” 질문에 대한 답을 생성합니다.

 


✅ Ollama + LangChain 사용 예제

 

LangChain에서 Ollama 모델을 사용할 수도 있습니다.

from langchain_community.llms import Ollama

llm = Ollama(model="mistral")
result = llm.invoke("What is the capital of South Korea?")
print(result)

✅ 이 코드는 mistral 모델을 사용하여 “대한민국의 수도는?” 질문에 답변합니다.

 


🔹 고급 기능

 

✅ 사용자 지정 모델 만들기

 

Ollama는 Modelfile을 사용하여 **사용자 정의 모델(Custom Model)**을 만들 수 있습니다.

 

1️⃣ Modelfile 생성:

touch Modelfile

2️⃣ 파일 내용 추가:

FROM mistral
SYSTEM "You are a helpful assistant that specializes in space science."

3️⃣ 모델 빌드 및 실행:

ollama create my-space-assistant -f Modelfile
ollama run my-space-assistant

이제 "my-space-assistant"라는 모델을 실행하면 우주 과학에 특화된 AI로 동작하게 됩니다.

 


🔹 Ollama vs OpenAI API

FeatureOllama (로컬)OpenAI API (클라우드)

💰 비용 무료 (하드웨어 필요) 유료 (API 비용 발생)
⚡ 속도 빠름 (로컬 실행) 느림 (네트워크 요청 필요)
🔗 인터넷 필요 여부 ❌ 필요 없음 ✅ 필요
🛠 모델 커스터마이징 ✅ 가능 (Modelfile) ❌ 불가능
🔄 모델 변경 가능 여부 ✅ 가능 (pull 사용) ✅ 가능 (API 변경)

 

 


🎯 정리

 

Ollama는 로컬에서 LLM을 실행할 수 있는 강력한 도구

Python 및 LangChain과 쉽게 연동 가능

인터넷 없이도 빠르게 AI 모델을 실행할 수 있어 보안성이 뛰어남

Modelfile을 사용해 모델을 맞춤 설정할 수도 있음

 

Ollama를 사용하면 클라우드 API 없이도 로컬에서 빠르고 저렴하게 AI 애플리케이션을 구축할 수 있습니다! 🚀

'Areas > LangChain' 카테고리의 다른 글

LangChain이란?  (0) 2025.03.16

LangChain은 LLM(대형 언어 모델, Large Language Model)을 활용한 애플리케이션을 더 쉽게 개발할 수 있도록 도와주는 Python 및 JavaScript 라이브러리입니다. 단순히 언어 모델을 호출하는 것이 아니라, 이를 체인(Chain)으로 연결하여 다양한 기능을 수행할 수 있도록 설계되었습니다.

 


📌 LangChain의 핵심 개념

 

LangChain은 LLM을 이용한 애플리케이션을 구축하는 데 필요한 여러 모듈(Component)을 제공합니다. 주요 개념을 정리하면 다음과 같습니다.

 

1️⃣ LLM (Large Language Model)

OpenAI(GPT-4, GPT-3.5), Claude, Mistral, Llama 등 다양한 모델을 쉽게 호출할 수 있도록 지원합니다.

로컬 모델(ollama, Hugging Face 모델)과의 연동도 가능합니다.

 

2️⃣ Prompt Templates

LLM에 전달할 프롬프트를 템플릿 형태로 관리하여 재사용할 수 있습니다.

예시:

from langchain.prompts import PromptTemplate

prompt = PromptTemplate.from_template("What is the capital of {country}?")
print(prompt.format(country="France"))  # "What is the capital of France?"

 

 

3️⃣ Chains (체인)

여러 개의 LLM 호출, API 요청 등을 하나의 흐름으로 연결할 수 있습니다.

예를 들어, 프롬프트를 생성하고 → LLM에 전달하고 → 결과를 포스트프로세싱하는 작업을 체인으로 묶을 수 있음.

 

4️⃣ Agents (에이전트)

단순히 체인된 작업을 수행하는 것이 아니라, 주어진 도구(Tool)를 활용하여 더 역동적인 문제 해결이 가능합니다.

예를 들어, LLM이 계산기 도구, 검색 도구, 데이터베이스 조회 도구 등을 활용하여 답을 찾도록 구성할 수 있음.

ReAct(Reasoning + Acting) 방식을 기반으로 동작.

 

5️⃣ Memory (메모리)

LangChain은 기본적으로 Stateless(상태 없음)이지만, 특정 기능을 통해 대화 히스토리를 기억할 수 있음.

챗봇과 같이 문맥을 유지해야 하는 애플리케이션에서 유용함.

 

6️⃣ Retrieval-Augmented Generation (RAG)

LLM은 훈련 데이터 이후의 정보를 모름.

이를 해결하기 위해, 외부 데이터베이스(Vector DB)에서 정보를 검색(Retrieve)한 후, LLM에 제공하는 방식.

대표적으로 FAISS, Chroma, Weaviate, Pinecone 등의 벡터 DB를 활용.

 


🚀 LangChain의 활용 예시

 

LangChain을 활용하면 다음과 같은 애플리케이션을 만들 수 있습니다.

1. Chatbot – OpenAI API를 활용한 대화형 챗봇

2. 문서 요약 시스템 – 긴 문서를 LLM을 이용해 요약

3. 질문 응답 시스템 (Q&A Bot) – 벡터DB(RAG)를 활용하여 문서 기반의 Q&A 제공

4. 데이터 분석 도우미 – LLM이 Pandas, SQL 등을 활용해 데이터를 분석하는 에이전트

5. 자동화된 검색 시스템 – LLM이 Google Search, Wikipedia 검색을 수행하여 정보를 제공

6. 코딩 도우미 – LangChain을 활용해 코드 자동 생성 및 디버깅 지원

 


🛠 LangChain 코드 예제

 

✅ OpenAI API를 이용한 간단한 체인 예제

from langchain.chat_models import ChatOpenAI
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate

# OpenAI API 키 설정 (환경 변수 또는 직접 입력)
import os
os.environ["OPENAI_API_KEY"] = "your-api-key"

# 프롬프트 템플릿 생성
prompt = PromptTemplate.from_template("What is the capital of {country}?")

# LLM 초기화
llm = ChatOpenAI(model="gpt-3.5-turbo")

# 체인 생성
chain = LLMChain(llm=llm, prompt=prompt)

# 실행
result = chain.run(country="Germany")
print(result)  # "Berlin"

 

 


🎯 LangChain이 유용한 이유

 

LLM을 더 쉽게 활용 – OpenAI, Hugging Face 등 다양한 모델을 쉽게 연결 가능

컴포넌트 기반 설계 – Prompt, Chain, Agent, Memory 등의 모듈을 조합하여 확장 가능

RAG 기반 검색 최적화 – 벡터 DB를 이용해 최신 정보를 LLM에 제공 가능

강력한 도구 활용 (Tools & Agents) – 계산기, API 호출, DB 조회 등을 결합하여 자동화된 AI 시스템 구축 가능

 

LangChain은 단순한 챗봇을 넘어, 지능적인 AI 애플리케이션을 만들기 위한 필수 도구로 자리 잡고 있습니다. 🚀

'Areas > LangChain' 카테고리의 다른 글

LangChain에서 Ollama 사용하는 법  (0) 2025.03.16

+ Recent posts