Local LLM을 이용한 Application 개발 예시 및 챗봇 활용

GPT, LLaMa, Perplexity, DeepSeek 등의 다양한 LLM은 텍스트 이해는 하고 인터넷 검색은 물론, 이미지나 음성 등 다양한 입력에 대응하는 멀티모달 능력까지 갖추고 있습니다. 이러한 고성능 LLM 모델들은 대량의 GPU 연산과 방대한 데이터 학습을 위해 대부분 클라우드 기반으로 제공 되고 있고, 일부 기능은 유로 구독을 하여야 합니다.
최근 소형 LLM , sLLM과 같은 모델들이 등장하고 NPU(신경망 프로세서)처럼 연산에 특화된 소형 칩이 등장하면서, 엣지 디바이스에서도 LLM을 사용할 수 있게 되었습니다. 앞으로 이러한 소형 LLM의 보급으로 다양한 단말기에서 LLM을 기반으로 서비스를 이용 하게 될 것입니다. 특히 스마트 키오스크, 공장 자동화 장비, 드론 같은 현장 중심 디바이스에서도 LLM을 직접 실행하는 환경이 빠르게 확산될 것으로 보입니다.
이러한 LLM을 PC 또는 로컬 환경에서 구축하는 방법 입니다.
LLM(대형 언어 모델)의 멀티모달 및 고성능 클라우드 기반 서비스 활용이 일반화되는 가운데, 소형 LLM(sLLM)과 NPU 같은 연산 특화 칩 등장으로 PC 및 엣지 디바이스에서 직접 LLM을 구축·운영하는 사례가 늘고 있습니다. 아래는 PC 또는 로컬 환경에서 소형 LLM을 설치하고 사용하는 구체적인 방법과 절차를 정리합니다.
Local LLM을 이용한 Application 개발 예시 및 챗봇 활용
아래는 로컬 LLM(예: Ollama, LM Studio, Open Interpreter 등)을 활용하여 실제 애플리케이션과 챗봇을 개발하는 대표 절차와 예시입니다.
1. 하드웨어 및 환경 준비
CPU/GPU: 최신 x86-64 CPU 이상 권장, LLM 실행에는 GPU(VRAM 6~16GB 이상) 탑재 시 성능 개선
메모리: 최소 16GB RAM 권장, 모델 및 캐시용 디스크 공간 여유 확보
운영체제: Windows 10 이상, macOS, Ubuntu 기반 리눅스 모두 지원
인터넷: 초기 설치·모델 다운로드 시 필요, 이후에는 오프라인 사용 가능
2. 개발 기본 절차
1) LLM 환경 설치 및 모델 세팅
1) 로컬 LLM 설치 툴 선택 및 설치 방법
- Ollama (CLI 기반, 다양한 오픈소스 모델 지원)
- ollama.com 접속 후 운영체제 맞는 설치파일 다운로드 및 설치
- 다운로드 : https://ollama.com/?form=MG0AV3
* Linux : https://ollama.com/download/linux
* Windows : https://ollama.com/download/windows
* Mac OS : https://ollama.com/download/mac
- 터미널(명령 프롬프트)에서 ollama --version으로 설치 확인
모델 목록 확인 및 다운로드:
bash
ollama list
ollama pull llama3 # 예: LLama 3 모델 다운
모델 실행:
bash
ollama run llama3
[Window GUI 기반 설치]
LM Studio (GUI 기반, 윈도우·맥 등 지원)
- 원하는 LLM 툴 설치 (예: Ollama, LM Studio).
- Ollama: 공식 홈페이지에서 설치 →
ollama pull llama3로 모델 다운로드 - LM Studio: 앱 설치 → 모델 검색/다운로드 후 “Load Model”
- Ollama: 공식 홈페이지에서 설치 →
- 실행 확인:
ollama run llama3 # 또는 LM Studio에서 'Load Model' 클릭
2) 애플리케이션 개발 언어 및 프레임워크 선택
- 파이썬, Node.js, Rust 등 일반 프로그래밍 언어에서 REST API 호출 가능
- 대표적인 웹/챗봇 프레임워크 활용 가능 (Flask, FastAPI, Express 등)
3) 로컬 LLM API 연동
- Ollama/LM Studio 등은 로컬에서 REST API(대부분 기본 11434 포트)로 서비스
- 예시: 파이썬에서 요청
import requests url = "http://localhost:11434/api/generate" data = { "model": "llama3", "prompt": "안녕하세요! 무엇을 도와드릴까요?" } response = requests.post(url, json=data) print(response.json()["response"])
3. 챗봇 Application 개발 예시 (Flask + Ollama)
1) 기본 챗봇 서버 코드
from flask import Flask, request, jsonify
import requests
app = Flask(__name__)
OLLAMA_URL = "http://localhost:11434/api/generate"
MODEL = "llama3"
def query_llm(prompt):
payload = {
"model": MODEL,
"prompt": prompt
}
res = requests.post(OLLAMA_URL, json=payload)
return res.json().get("response", "응답 없음")
@app.route("/chat", methods=["POST"])
def chat():
user_text = request.json.get("message", "")
reply = query_llm(user_text)
return jsonify({"reply": reply})
if __name__ == "__main__":
app.run(port=5000)
커멘드 라인 테스트
#커맨드라인 챗봇 (Python)
import requests
def ask_llm(prompt):
url = "http://localhost:11434/api/generate"
response = requests.post(url, json={"model": "llama3", "prompt": prompt})
return response.json()["response"]
print("Local LLM CLI Bot - 'exit' to quit")
while True:
text = input("User> ")
if text.lower() == "exit":
break
print("Bot>", ask_llm(text))
2) 챗봇 프론트엔드 연동
- React, Vue 등 SPA로 /chat으로 AJAX POST → 챗봇 응답 UI 구현
- 간단히 curl로 테스트:
- curl -X POST -H "Content-Type: application/json" -d '{"message":"오늘 날씨 어때?"}' http://localhost:5000/chat
3) 확장적 활용 예시
- 파일 업로드 후 요약, 코드 리뷰, 자동화 명령어 실행 등 다양한 기능 제공 가능
- 예) PDF/엑셀 요약, 코드 오류 설명 등
4. 챗봇 서비스 확장 팁
- 봇 성능 개선:
- 긴 맥락 유지, 지식베이스(FAQ 등) 연결, 추가 파라미터(온도, max_tokens) 조절
- 다양한 LLM 교체:
- Ollama, LM Studio에서 적합 모델 (Llama3, Mistral, Gemma 등)로 손쉽게 전환
- 온프레미스/사내망 배포 가능
- 외부 인터넷 연결 없이 자신의 PC/서버에만 AI 챗봇 운영 가능
Local LLM API 활용: 웹 & CLI 챗봇 예시
아래는 로컬 LLM(예: Ollama)을 API로 연동해 웹(Flask 기반) 챗봇과 커맨드라인(CLI) 챗봇을 구현하는 대표 예시입니다.
1. API/서버 구조
- LLM 서버: Ollama(Llama3 등) →
http://localhost:11434/api/generate - 웹서버: Flask 등에서 Ollama REST API 호출
- CLI 챗봇: Python 또는 Node.js 스크립트에서 직접 REST API 호출
2. 웹 챗봇 예시 (Flask)
server.py
from flask import Flask, request, jsonify
import requests
app = Flask(__name__)
OLLAMA_URL = "http://localhost:11434/api/generate"
MODEL = "llama3"
def query_llm(prompt):
payload = {
"model": MODEL,
"prompt": prompt
}
res = requests.post(OLLAMA_URL, json=payload)
return res.json().get("response", "응답 없음")
@app.route("/chat", methods=["POST"])
def chat():
user_text = request.json.get("message", "")
reply = query_llm(user_text)
return jsonify({"reply": reply})
if __name__ == "__main__":
app.run(port=5000)
간단 웹 UI 연동 (HTML/JS)
LLM 챗봇
전송
function send() {
fetch('/chat', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({message: document.getElementById('input').value})
})
.then(r=>r.json())
.then(j=>document.getElementById('result').innerText=j.reply || '응답 없음');
}
3. CLI 챗봇 예시 (Python)
cli_chat.py
import requests
OLLAMA_URL = "http://localhost:11434/api/generate"
MODEL = "llama3"
def ask_llm(prompt):
response = requests.post(OLLAMA_URL, json={"model": MODEL, "prompt": prompt})
return response.json()["response"]
def main():
print("로컬 LLM CLI 챗봇. 종료는 'exit' 입력!")
while True:
msg = input("User> ")
if msg.lower() == "exit":
break
reply = ask_llm(msg)
print("Bot>", reply)
if __name__ == "__main__":
main()
실행 방법
python cli_chat.py
# User> 오늘 날씨 어때?
# Bot> 현재 인터넷 연결이 없으므로 날씨를 직접 안내할 수 없습니다...
4. Node.js CLI 예시
// cli_chat.js (Node.js 18+)
const readline = require('readline');
const axios = require('axios');
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
const URL = 'http://localhost:11434/api/generate';
async function ask(prompt) {
const {data} = await axios.post(URL, {model:'llama3', prompt});
return data.response;
}
console.log("로컬 LLM CLI 챗봇(종료: exit)");
rl.prompt();
rl.on('line', async (line) => {
if (line.trim().toLowerCase() === 'exit') process.exit();
const reply = await ask(line.trim());
console.log("Bot>", reply);
rl.prompt();
});
5. 주요 활용 확장 팁
- 파라미터 조정: REST API에서 temperature, max_tokens 등 추가
- 웹앱 통합: React/Vue/Next.js 등과 통합, 파일 요약/분석 등 실서비스 구현
- 온프레미스 배포: 사내망, 자체 서버에 LLM 배포·운영 가능
결론
API 구조만 이해하면 웹·CLI·서버 어디든 쉽게 챗봇 및 다양한 LLM 기반 앱을 만들 수 있습니다.
- Flask(웹), 커맨드라인(Python/Node.js) 등을 활용해 원하는 형태로 실용 챗봇 개발이 가능합니다.
구체적 기능 확장(파일 처리, 데이터베이스 연동, 멀티 모델 지원 등)이 궁금하시면 사례별 추가 설명도 제공해드릴 수 있습니다.