로컬 LLM + RAG 기반 AI 채팅봇 만들기8.1 프로젝트 개발 과정 정리이번 장에서는 로컬 LLM과 RAG 기반 AI 챗봇 프로젝트의 개발 과정과 주요 기술을 정리합니다.또한, 프로젝트를 진행하면서 배운 점과 개선할 점을 정리하여향후 프로젝트 확장 및 최적화 방향을 고민해보겠습니다.1) 프로젝트 개요 및 목표✅ 프로젝트 목표클라우드가 아닌 로컬 환경에서 실행되는 LLM 기반 AI 챗봇 개발RAG(Retrieval-Augmented Generation) 기술을 활용한 검색 기반 보강 생성 적용WebSocket을 통한 실시간 채팅 지원PostgreSQL 및 FAISS를 활용한 대화 기록 및 벡터 검색 엔진 구축SvelteKit을 활용한 사용자 친화적인 UI 구현 및 배포✅ 주요 사용 기술 스택카테고리 ..
로컬 LLM + RAG 기반 AI 채팅봇 만들기7.2 데이터베이스 성능 최적화이제 AI 챗봇의 데이터베이스 성능을 최적화하여 쿼리 실행 속도를 향상시키겠습니다.PostgreSQL을 기반으로 쿼리 성능 튜닝, 캐싱, 파티셔닝, 인덱스 최적화 등의 기법을 적용하여대규모 데이터 환경에서도 원활한 서비스를 제공할 수 있도록 최적화합니다.1) 데이터베이스 성능 저하 요인 분석✅ 데이터베이스 성능이 저하되는 주요 원인대량의 대화 기록 저장 및 조회 시 응답 속도 저하비효율적인 SQL 쿼리 및 잘못된 인덱스 설정동일한 요청이 반복적으로 발생하면서 불필요한 DB 부하 발생대화 기록이 지속적으로 증가하면서 테이블 크기 비대화2) 쿼리 성능 튜닝 (EXPLAIN ANALYZE 활용)✅ ① 느린 쿼리 분석PostgreSQL..
로컬 LLM + RAG 기반 AI 채팅봇 만들기7.1 API 응답 속도 개선이제 배포가 완료되었으므로, AI 챗봇의 응답 속도를 최적화하여 사용자 경험을 향상시키겠습니다.이번 단계에서는 LLM 모델 최적화 및 비동기 처리 최적화를 적용하여 API 성능을 개선하는 방법을 살펴봅니다.1) API 응답 속도를 저하시킬 수 있는 요소✅ 주요 성능 저하 요인LLM 모델 호출 지연 → Llama3 모델 응답 시간이 길어질 수 있음비효율적인 데이터베이스 쿼리 → 대화 기록을 조회할 때 성능 저하 가능비동기 처리 부족 → API 응답을 동기 방식으로 처리하면 대기 시간이 증가2) LLM 모델 최적화 (양자화 모델 활용)✅ ① 양자화(Quantization)란?LLM 모델을 경량화하여 메모리 사용량을 줄이고, 실행 속도..
로컬 LLM + RAG 기반 AI 채팅봇 만들기6.2 프론트엔드 배포 (Vercel)이제 SvelteKit으로 개발한 프론트엔드를 배포하여어디서나 AI 챗봇을 사용할 수 있도록 Vercel을 활용하여 배포하겠습니다.1) Vercel을 사용하는 이유✅ Vercel의 장점손쉬운 배포 → GitHub와 연동하여 자동 배포 가능서버리스(Serverless) 환경 지원 → API 호출만으로 백엔드와 통신 가능빠른 글로벌 배포 → CDN(Content Delivery Network) 적용2) Vercel 가입 및 환경 설정✅ ① Vercel 가입 및 프로젝트 생성Vercel 공식 사이트에 접속GitHub 계정과 연결"New Project" 버튼 클릭SvelteKit 프로젝트 선택 후 Import배포 설정 페이지에서..
로컬 LLM + RAG 기반 AI 채팅봇 만들기6.1 백엔드 Docker 컨테이너화 및 배포이제 Ktor 기반의 백엔드 서버를 Docker 컨테이너로 패키징하여 배포 가능하도록 설정합니다.Docker를 활용하면 환경에 관계없이 쉽게 배포하고, 운영 중인 서버를 일관성 있게 유지할 수 있습니다.1) Docker를 사용하는 이유✅ Docker 배포의 장점환경 일관성 유지 → 운영 체제(OS)와 관계없이 동일한 환경에서 실행 가능간편한 배포 → 컨테이너 이미지를 사용하면 배포가 용이확장성 향상 → 여러 컨테이너를 병렬 실행하여 성능 확장 가능2) Docker 설치 및 기본 설정✅ ① Docker 설치Windows / Mac: Docker 공식 사이트에서 설치Linux (Ubuntu):sudo apt updat..
로컬 LLM + RAG 기반 AI 채팅봇 만들기5.3 WebSocket 테스트 (웹 브라우저 콘솔 활용)이제 WebSocket을 활용하여 AI 챗봇과 실시간으로 메시지를 주고받는 기능이 정상적으로 동작하는지 테스트해야 합니다.이번 단계에서는 웹 브라우저 콘솔 및 Postman을 사용하여 WebSocket이 정상적으로 연결되고 메시지를 주고받을 수 있는지 검증하겠습니다.1) WebSocket 테스트의 중요성✅ WebSocket 테스트가 필요한 이유WebSocket 연결이 정상적으로 이루어지는지 확인사용자가 메시지를 입력했을 때, 서버에서 올바른 응답을 반환하는지 검증WebSocket이 다중 사용자 환경에서도 안정적으로 작동하는지 테스트서버가 WebSocket 연결을 안정적으로 유지하며, 비정상 종료 시 복..
로컬 LLM + RAG 기반 AI 채팅봇 만들기5.2 API 테스트 (Postman 사용)이제 RESTful API가 정상적으로 동작하는지 검증하기 위해,Postman을 활용하여 API 테스트를 진행하겠습니다.1) API 테스트의 중요성✅ API 테스트가 필요한 이유프론트엔드와 백엔드가 정상적으로 연동되는지 확인WebSocket과 RESTful API가 제대로 동작하는지 검증API 요청 및 응답 데이터를 예상대로 반환하는지 테스트2) Postman 설치 및 기본 설정✅ ① Postman 다운로드 및 설치Postman 공식 웹사이트: https://www.postman.com/운영체제에 맞는 버전을 다운로드하고 설치3) Postman을 이용한 API 테스트✅ ① AI 챗봇 메시지 전송 테스트 (POST /..
로컬 LLM + RAG 기반 AI 채팅봇 만들기3.5.2 대화 이력 저장 및 조회 API 구현이제 PostgreSQL에 저장된 대화 이력을 API를 통해 관리할 수 있도록대화 기록을 저장하고 조회하는 API를 구현하겠습니다.1) API 설계 개요✅ API에서 제공할 기능1️⃣ 대화 저장하기사용자가 WebSocket을 통해 메시지를 보낼 때 자동으로 DB에 저장2️⃣ 특정 세션의 대화 이력 조회사용자가 특정 세션에서 진행한 대화 목록을 조회3️⃣ 사용자별 전체 대화 세션 목록 조회사용자가 생성한 모든 대화 세션 리스트를 불러오기2) API 엔드포인트 설계HTTP 메서드엔드포인트설명POST/chat/save대화 메시지 저장GET/chat/{sessionId}특정 대화 세션의 대화 기록 조회GET/chat/s..
로컬 LLM + RAG 기반 AI 채팅봇 만들기3.5 PostgreSQL 연동 및 대화 기록 저장3.5.1 대화 기록 데이터 모델 설계AI 챗봇에서 대화 기록을 저장하는 기능은 매우 중요합니다.이 기능을 통해 사용자의 질문과 AI의 응답을 데이터베이스에 저장하고,향후 대화 분석, 추천 시스템 개선, 개인화된 서비스 제공 등에 활용할 수 있습니다.이번 단계에서는 PostgreSQL을 사용하여 대화 기록을 저장할 데이터 모델을 설계합니다.1) 대화 기록을 저장해야 하는 이유✅ AI 챗봇의 대화 기록 저장 필요성사용자 경험 개선 → 과거 대화를 기반으로 더 나은 AI 응답 제공 가능대화 이력 분석 → 인기 있는 질문 패턴 분석, 사용자 성향 파악 가능데이터 활용 확장성 → 추천 시스템, 피드백 학습, 질의응답..
로컬 LLM + RAG 기반 AI 채팅봇 만들기FAISS를 활용하여 검색된 문서를 로컬 LLM (Llama 3)과 결합하여 더욱 정확한 응답을 생성하는 과정을 구현합니다.이 과정에서 RAG (Retrieval-Augmented Generation) 기법을 적용하여 검색된 문서를 기반으로 LLM이 답변을 생성하도록 만듭니다.1) 검색된 문서 + LLM 결합 방식✅ 기존 LLM 방식의 문제점LLM 단독으로 응답을 생성할 경우, 사전 학습된 데이터만 사용최신 정보가 포함되지 않아 정확성이 낮을 수 있음문맥과 관련 없는 답변이 생성될 가능성 있음✅ RAG 적용 후 기대 효과검색된 문서를 참고하여 LLM이 보다 정확한 응답 생성최신 정보를 포함할 수 있어 업데이트된 답변 제공 가능불필요한 환각(Hallucinat..
- Total
- Today
- Yesterday
- babel
- llm
- Docker
- Page
- Next.js
- 챗봇개발
- AI챗봇
- 웹개발
- 개발블로그
- PostgreSQL
- nextJS
- Python
- Webpack
- rag
- 관리자
- 백엔드개발
- 프론트엔드
- 페이지
- nodejs
- LangChain
- 로컬LLM
- 리액트
- Project
- REACT
- 백엔드
- kotlin
- til
- github
- Ktor
- fastapi
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |