Ollama를 백엔드로 활용하여 Node.js로 API를 구축하는 건 꽤 직관적이에요. Ollama는 기본적으로 로컬에서 REST API (localhost:11434) 로 모델과 대화할 수 있도록 해줘요. Node.js에서는 axios나 node-fetch를 써서 쉽게 연동할 수 있습니다.
✅ 기본 구조
- Ollama가 로컬에서 실행 중이어야 함 (기본 포트: 11434)
- Node.js 서버에서 HTTP 요청을 통해 Ollama API와 통신
✅ 예시: 간단한 Express.js 기반 API
1. Node.js 프로젝트 초기화
mkdir ollama-api
cd ollama-api
npm init -y
npm install express axios
2. index.js 작성
const express = require('express');
const axios = require('axios');
const app = express();
app.use(express.json());
app.post('/chat', async (req, res) => {
const { message } = req.body;
try {
const response = await axios.post('http://localhost:11434/api/generate', {
model: 'llama2', // 설치된 모델 이름
prompt: message,
stream: false
});
res.json({ response: response.data.response });
} catch (err) {
console.error('Error talking to Ollama:', err.message);
res.status(500).json({ error: 'Ollama error' });
}
});
app.listen(3000, () => {
console.log('Server listening on http://localhost:3000');
});
3. 서버 실행
node index.js
4. API 테스트
curl -X POST http://localhost:3000/chat \
-H "Content-Type: application/json" \
-d '{"message":"안녕! 오늘 날씨 어때?"}'
✅ 기타 팁
- 설치된 모델 이름은 ollama list 로 확인 가능
- 실시간 스트리밍 응답을 원하면 stream: true 설정 + EventSource or WebSocket 필요
- 프론트엔드 연동도 쉬움 (React/Vue 등)
필요하다면 WebSocket 기반 스트리밍 버전도 알려줄 수 있어요!
원하는 기능이나 구조가 있으면 더 구체적으로 도와줄게요.
728x90
'AI' 카테고리의 다른 글
AoA(Angle of Arrival) 스캐너 4대에서 얻은 방위각(Azimuth)과 고도각(Elevation) 정보를 사용하여 태그의 위치를 추정 (0) | 2025.04.24 |
---|---|
AoA 스캐너 4대와 AoA 태그 (0) | 2025.04.24 |
메모리 이슈 (0) | 2025.04.21 |
llama2 설치 (도커) (0) | 2025.04.21 |
Ollama (0) | 2025.04.21 |
Kafka Consumer 성능향상 (0) | 2025.03.21 |
Trino(트리노) 설치 (1) | 2025.03.20 |
온도 데이터를 활용한 예측 시스템 (0) | 2025.03.14 |
댓글