LLM에 넣기 좋은 문서를 만들기 위한 LangChain 문서 청크 분할 가이드 (chunk_size & overlap 이해하기)# ✂️ 문서를 LLM 입력에 맞게 청크(chunk) 단위로 분할하는 단계# - 긴 문서는 한 번에 LLM에 넣기 어렵기 때문에, 적절한 길이로 잘라야 함# - LangChain의 CharacterTextSplitter를 사용해 '문자 기준'으로 분할함text_splitter = CharacterTextSplitter( chunk_size=1000, # 📏 한 청크당 최대 1,000자까지 포함 chunk_overlap=200 # 🔁 청크 간에 200자씩 겹치도록 설정 (문맥 끊김 방지용))# 🧩 실제 분할 실행: documents 리스트 ..
💼 전문가 지식 기반 응답 에이전트회사 내부 구성원들이 사용할 수 있는전문적인 지식 기반 질문응답(Q&A) 에이전트를 구축합니다.이 에이전트는 높은 정확도를 유지해야 하며, 구현 비용은 낮게 유지하는 것이 중요합니다. 이 프로젝트에서는 질문에 대한 높은 정확도를 보장하기 위해RAG (Retrieval Augmented Generation) 방식을 활용합니다.Gradio 챗봇 만들기 전에 알아야 할 파이썬 필수 라이브러리 정리 (os, glob, dotenv, gradio)# 📦 필수 라이브러리 임포트 (환경 설정 + UI 구성 등)import os # 🧭 파일 경로 및 환경 변수 관리를 위한 표준 라이브러리import glob # 📂 폴더 내 특정 패..
🤖 LangChain으로 시작하는 RAG 파이프라인 구축 여정이 글은 RAG(Retrieval-Augmented Generation) 개념을 바탕으로, LangChain을 활용해 실제 지식 검색 + 응답 파이프라인을 구축하는 흐름을 정리한 내용입니다.🔁 RAG 복습RAG란?사용자의 질문과 의미적으로 유사한 정보를 벡터 기반 검색을 통해 찾아내고,해당 정보를 프롬프트에 포함해 LLM이 더 정확한 응답을 생성하는 방식입니다.핵심 구성요소질문 → 벡터화벡터 DB에서 관련 문서 검색검색된 문서 + 질문 → LLM 입력LLM이 응답 생성🧱 오늘의 핵심: LangChain으로 RAG 구현하기🧩 LangChain이란?LangChain은 다양한 LLM 기능(문서 검색, 질의응답, 요약, 생성 등)을블록처럼 연결..
🤖 벡터와 RAG 완전 이해하기 – LLM이 똑똑해지는 원리이 글은 RAG(Retrieval-Augmented Generation) 와 벡터 임베딩 개념, 그리고 그것이 LLM과 어떻게 연결되는지를 시각적으로 정리한 내용입니다.🔹 1. LM vs. LLM: 뭐가 다른 걸까?구분LM (Language Model)LLM (Large Language Model)의미언어 모델매우 크고 복잡한 언어 모델예시BERT, GPT-2 등GPT-4, Claude, Gemini 등기능문장 생성, 다음 단어 예측문맥 이해, 질의응답, 요약, 생성 등특징상대적으로 작음수십억~수천억 파라미터🧠 요약: LLM은 크기와 기능 면에서 LM을 확장한 고성능 버전입니다.🔹 2. 벡터 임베딩이란?텍스트를 수치화된 의미의 점(Vect..
💼 전문가 수준의 지식 기반 질문응답 챗봇 만들기이번 글에서는 전자상거래 회사 Shopwise를 위한지식 기반 질문-응답(Q&A) 에이전트를 만드는 과정을 정리합니다.정확도와 신뢰성이 중요한 영역이기 때문에,RAG(Retrieval Augmented Generation) 방식을 활용하며,이를 통해 단순 LLM보다 훨씬 정확한 답변을 기대할 수 있습니다.📂 1. 프로젝트 준비 - 코드 및 환경 설정# 📁 운영체제 관련 기능을 다루는 기본 모듈# - 환경 변수 설정, 파일 경로 조작 등에 사용됨import os# 📂 특정 경로에서 파일을 패턴(예: *.txt)으로 한꺼번에 가져올 때 사용# - 예: 문서 디렉토리에서 모든 PDF 파일을 한 번에 불러오기import glob# 🔐 .env 파일에 저장..
문제점 리덕스를 적용한 간단한 리액트 프로젝트를 만들기 위해서 리덕스를 위한 코드를 준비하고 yarn start를 했지만 화면에 아무것도 나타나지 않았습니다. 이후 콘솔창을 열어보니 이런 에러가 떠있었습니다. 원인 import React from "react"; import ReactDOM from "react-dom/client"; import "./index.css"; import App from "./App"; import { createStore } from "redux"; import rootReducers from "./modules"; import { Provider } from "react-redux"; const store = createStore(rootReducers); ReactDO..
PeerJS PeerJS는 WebRTC를 사용하여 P2P(peer-to-peer) 통신을 쉽게 구현할 수 있도록 도와주는 JavaScript라이브러리입니다. PeerJS를 사용하면 브라우저에서 WebRTC를 사용하여 다른 브라우저와 직접 통신할 수 있습니다. 이를 통해 브라우저 간에 파일 전송, 비디오 및 오디오 스트리밍 등의 실시간 통신이 가능합니다. PeerJS는 WebRTC의 복잡한 구현 세부 사항을 추상화하여 개발자가 더 쉽게 P2P 통신을 구현할 수 있도록 도와줍니다. PeerJS는 서버를 통해 브라우저 간 통신을 중계합니다. 이를 통해 브라우저가 직접 연결을 설정하고 NAT 트래버셜을 처리하는 것과 달리, 서버를 통해 중계함으로써 편리하게 통신할 수 있습니다. 또한 PeerJS는 간단한 API..
MongoDB란? MongoDB는 NoSQL 데이터베이스 시스템 중 하나로, 문서 지향 데이터베이스(Document-Oriented Database)입니다. 관계형 데이터베이스의 테이블 구조 대신, MongoDB는 JSON 형식의 문서(Document)를 이용하여 데이터를 저장하고 조회합니다. MongoDB는 높은 확장성과 성능, 빠른 속도, 다양한 운영체제와 플랫폼에서의 호환성, 유연성 등의 특징을 가지고 있습니다. 또한 MongoDB는 분산 데이터베이스로서 여러 대의 서버에 데이터를 저장하고 관리할 수 있어서 대용량 데이터 처리에 적합합니다. MongoDB는 다양한 언어와 프레임워크에서 사용할 수 있습니다. MongoDB는 무료로 제공되는 Community Edition과 유료로 제공되는 Enterp..
프록시(Proxy)란? 프록시(Proxy)는 대리인이라는 뜻을 가진 말로, 인터넷 사용 시 사용자의 컴퓨터와 인터넷 사이에 위치하여 사용자가 직접 웹 사이트에 연결하지 않고, 대신 프록시 서버를 통해 웹 사이트와 통신하는 컴퓨터 시스템입니다. 프록시는 사용자의 IP 주소를 숨기는 데 주로 사용되며, 사용자의 컴퓨터에서 직접 연결하는 것보다 보안성과 개인 정보 보호를 강화할 수 있습니다. 또한 프록시를 통해 인터넷 사용량을 줄이고, 웹 사이트의 캐시를 이용하여 더 빠른 속도로 웹페이지를 불러올 수도 있습니다. 프록시 서버는 회사, 학교, 도서관 등에서 자주 사용됩니다.