📘 시리즈: LLM + RAG + Ollama + NestJS 백엔드 연동 실습9. Swagger 문서화 + 클라이언트 연동으로 실전 RAG API 완성하기🎯 목표이제 우리는 RAG 시스템의 핵심 기능들을 모두 구성했습니다.이번 글에서는 이 시스템을 실제 서비스에 연동하기 위한 마무리 작업으로 다음을 수행합니다:API 문서화 (Swagger 사용)프론트엔드(React, Vue 등)와 연동하기 쉬운 구조로 정리배포 시 보안/성능 체크리스트 정리📚 1. NestJS Swagger 연동설치npm install --save @nestjs/swagger swagger-ui-express설정 (main.ts)import { SwaggerModule, DocumentBuilder } from '@nestjs/s..
📘 시리즈: LLM + RAG + Ollama + NestJS 백엔드 연동 실습8. 문서 메타데이터 태깅과 응답 캐싱으로 RAG 시스템 고도화하기🎯 목표이번 글에서는 RAG 시스템의 성능과 실용성을 높이기 위한 다음 기능을 구현합니다:문서별 메타데이터(파일명, 업로드 일시 등) 태깅질문 결과에 대한 캐싱 처리로 응답 속도 개선ChromaDB에서 조건 기반 검색 예제 실습🏷️ 1. 문서 메타데이터 태깅📦 문서 업로드 시 메타데이터 포함const doc = new Document({ pageContent: content, metadata: { filename: file.originalname, uploadedAt: new Date().toISOString(), category: '..
📘 시리즈: LLM + RAG + Ollama + NestJS 백엔드 연동 실습7. 문서 분할(Chunking)과 전처리 – RAG 성능 최적화 전략🎯 목표이 글에서는 AI가 더 정확하고 유의미한 응답을 할 수 있도록,문서 임베딩 전에 텍스트를 잘게 나누고(clean),벡터 저장 성능과 검색 정확도를 높이는 기법을 소개합니다.🧠 왜 문서 분할이 필요한가?LLM의 입력 토큰 제한 존재한 번에 너무 많은 정보를 주면 정답률 저하벡터 검색에서 짧고 명확한 의미 단위가 더 유리✂️ 문서 분할 전략1. 고정 길이 분할 (Fixed-size chunking)const splitter = new RecursiveCharacterTextSplitter({ chunkSize: 500, // 기본 500자 ..
📘 시리즈: LLM + RAG + Ollama + NestJS 백엔드 연동 실습6. 파일 업로드로 문서 자동 임베딩하기 (PDF, 텍스트 등)🎯 목표사용자가 직접 파일을 업로드하면, NestJS 서버가 자동으로:파일 내용을 읽고,문서로 분할(Chunking)한 뒤,벡터화하여 ChromaDB에 저장하는 기능을 구현합니다.수동 복붙은 이제 그만! PDF, TXT 등 파일 하나로 AI가 답변할 수 있도록 합니다.📦 필요한 패키지npm install multernpm install pdf-parsenpm install @nestjs/platform-expressmulter: 파일 업로드 처리pdf-parse: PDF 파일 텍스트 추출🧱 수정된 구조 (추가된 부분)src/ ┣ rag/ ┃ ┣ rag.con..
📘 시리즈: LLM + RAG + Ollama + NestJS 백엔드 연동 실습4. LangChain + Chroma로 문서 벡터화 & RAG 검색 파이프라인 구축🎯 목표이번 글에서는:PDF나 텍스트 문서를 벡터로 변환하고,ChromaDB에 저장한 뒤,사용자 질문에 관련 문서를 검색하고,LLM에게 함께 전달하는 RAG 구조의 핵심을 구현합니다.Retrieval-Augmented Generation = 정보 검색(Retrieval) + 텍스트 생성(Generation)🧩 RAG 구성 요약[질문] ↓[벡터 검색: Chroma] ↓[관련 문서 추출] ↓[문서 + 질문 → Ollama] ↓[응답 생성]🛠️ 1. LangChain 설치npm install langchain chromadbnpm in..
📘 시리즈: LLM + RAG + Ollama + NestJS 백엔드 연동 실습3. NestJS에서 Ollama와 통신하는 REST API 만들기🎯 목표이번 글에서는 NestJS로 만든 백엔드 서버에서로컬에 실행된 Ollama 모델에 질문을 보내고,LLM의 응답을 받아 API로 전달하는 기본 구조를 구현합니다.🧱 프로젝트 구조 미리보기src/ ┣ llm/ ┃ ┣ llm.controller.ts 👈 API endpoint ┃ ┣ llm.service.ts 👈 Ollama와 통신 로직 ┃ ┗ dto/ ┃ ┗ ask.dto.ts 👈 요청 형태 정의 ┗ app.module.ts🔧 1. LLM 모듈 생성nest generate module llmnest generate ..
📘 시리즈: LLM + RAG + Ollama + NestJS 백엔드 연동 실습2. Ollama 설치 및 로컬 LLM 실행하기 – 내 PC에서 Mistral 돌려보기🧩 Ollama란?Ollama는 로컬에서 LLM을 실행할 수 있게 도와주는 도구입니다.GPT-3.5나 Claude처럼 클라우드에서 작동하는 모델과 달리,Mistral, LLaMA2, Gemma 등의 오픈소스 모델을 개인 PC에서 직접 돌릴 수 있게 해줍니다.✅ Mac, Linux, Windows 모두 지원✅ GPU 지원 (특히 Mac M1/M2에 최적화)✅ REST API로 외부 애플리케이션과 쉽게 통신 가능🛠️ Ollama 설치하기1. Macbrew install ollamaollama run mistral2. Windows / WSL..
🧠 RAG 시스템의 벡터 데이터베이스 선택과 인덱싱 전략 완전 정복RAG(Retrieval-Augmented Generation)는 문서 기반의 정확한 응답을 제공하는 데 강력한 방법이지만, 많은 개발자들이 **“벡터 데이터베이스(Vector DB)”와 “인덱싱 전략”**을 소홀히 다룹니다.하지만 이 두 요소는 답변 속도와 정확도를 좌우하는 핵심 기술입니다.🔍 왜 벡터DB가 중요한가?RAG는 외부 문서에서 정보를 검색해 LLM의 응답에 활용합니다.이때 **"내 질문과 가장 비슷한 의미의 청크를 얼마나 빠르게 정확히 찾아낼 수 있느냐"**가 핵심인데, 그 모든 처리는 벡터 DB에서 이뤄집니다.📦 주요 벡터 DB 비교DB 이름 장점 단점 추천 상황FAISS빠르고 로컬에 최적분산 기능 없음실험용, 소규모..
📘 시리즈: LLM + RAG + Ollama + NestJS 백엔드 연동 실습1. 왜 LLM + RAG + Ollama + NestJS인가?🤔 이 시리즈를 시작한 이유요즘 AI 서비스를 만들다 보면 "단순 LLM 응답"만으로는 부족하다는 걸 금방 느끼게 됩니다.고객 맞춤형 응답, 문서 기반 질의응답, 혹은 내부 데이터 기반 지식 검색을 하려면RAG (Retrieval-Augmented Generation) 기술이 필요합니다.“RAG는 LLM의 기억을 외부로 확장하는 기술입니다.”하지만 실무에서는 다음과 같은 난관이 있습니다:GPT는 API 비용이 부담스럽고, 보안상 민감한 문서 처리에 적합하지 않음Ollama로 로컬에서 LLM을 돌리긴 했는데, 그걸 백엔드에서 어떻게 쓰는지 막막함벡터 검색, Lan..
📌 NestJS + Kubernetes & 마이크로서비스 배포: 실전 가이드45. NestJS MSA 아키텍처 다이어그램 총정리 – 실전 구조 설계와 패턴 모음복잡한 시스템일수록 전반적인 아키텍처의 이해와 시각화가 중요합니다.이번 글에서는 NestJS 기반의 마이크로서비스 아키텍처(MSA)를 전체적으로 설계하고,다양한 환경에 적용 가능한 대표 패턴 및 다이어그램을 정리합니다.SaaS, 스타트업 MVP, 엔터프라이즈 시스템 모두 적용 가능한 형태를 목표로 구성했습니다. 🧩✅ 1. 전체 아키텍처 다이어그램[Client] ↓[API Gateway (NestJS)] ↓ ┌───────────────┬───────────────┬───────────────┐ │ Auth Service │ User S..
- Total
- Today
- Yesterday
- SEO최적화
- SEO 최적화
- 백엔드개발
- 웹개발
- NestJS
- 프론트엔드면접
- Ktor
- JAX
- Python
- seo 최적화 10개
- 파이썬알고리즘
- nextJS
- REACT
- 개발블로그
- kotlin
- flax
- App Router
- Docker
- 딥러닝
- Next.js
- gatsbyjs
- 프론트엔드
- fastapi
- nodejs
- CI/CD
- AI챗봇
- rag
- Prisma
- llm
- PostgreSQL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |