AI

· AI/RAG
임베딩(Embeddings)이란 무엇인가요?임베딩은 텍스트와 같은 비정형 데이터를 고정된 크기의 벡터로 변환하는 기술입니다. 단어, 문장, 문서 등 어떤 형태의 텍스트든 수치화된 형태로 바꿔야만 기계가 이해하고 계산할 수 있습니다.예를 들어 "나는 사과를 좋아해"와 "난 애플을 좋아해"는 인간의 눈엔 비슷하게 보이지만, 기계 입장에선 완전히 다른 문자열입니다. 하지만 임베딩을 거치면 두 문장이 서로 비슷한 위치의 벡터로 표현되어, 의미적으로 유사하다는 걸 인식할 수 있게 됩니다.왜 임베딩이 필요한가요?임베딩은 검색, 분류, 추천, 챗봇 등 거의 모든 LLM 기반 시스템에서 핵심적인 역할을 합니다. 특히 RAG (Retrieval-Augmented Generation) 구조에선 아래와 같은 이유로 필수입니..
· AI/RAG
RAG에서 텍스트 분할(Text Splitting)이 중요한 이유RAG(Retrieval-Augmented Generation) 시스템은 외부 문서에서 정보를 검색해 생성 모델에게 전달하는 방식으로 작동합니다. 이때, 검색 정확도와 응답 품질을 결정짓는 핵심 요소 중 하나가 바로 "텍스트 분할"입니다. 텍스트 분할은 긴 문서를 적절한 길이의 청크로 나누는 과정인데, 이를 잘못하면 의미가 끊기거나 중요한 문맥이 누락되면서 검색 및 생성 성능이 급격히 떨어질 수 있습니다. 특히 LLM이 참조할 수 있는 토큰 수가 제한되어 있기 때문에, 적절한 길이, 문맥 보존, 중복 최소화가 매우 중요합니다.Text Splitter의 다양한 전략LangChain에서는 다양한 형태의 텍스트 분할기를 제공하며, 각각의 spli..
LlamaIndex 완전 정복! 자주 쓰이는 함수와 예시 코드까지 한방에 정리요즘 LLM 애플리케이션을 개발하다 보면 RAG (Retrieval-Augmented Generation) 방식이 빠질 수 없죠. 그 중심에 있는 도구 중 하나가 바로 LlamaIndex입니다. 이 포스트에서는 LlamaIndex가 어떤 역할을 하는지부터, 자주 쓰이는 핵심 함수들과 그 사용법을 예제 코드와 함께 정리해봤어요. LlamaIndex란 무엇인가?LlamaIndex는 구조화된 문서 데이터를 기반으로 LLM 기반 응답을 생성할 수 있도록 돕는 문서-기반 질의 응답 시스템입니다. 기존의 LangChain이 다양한 LLM 도구를 연결하는 파이프라인 중심이라면, LlamaIndex는 특히 문서 검색과 임베딩 처리, Chunk..
· AI/RAG
RAG 시스템의 핵심 단계: 텍스트 분할(Text Splitter)이란?텍스트 분할은 Retrieval-Augmented Generation(RAG) 시스템의 두 번째 단계로, 대용량 문서를 LLM이 효율적으로 처리할 수 있도록 작고 의미 있는 단위로 나누는 작업입니다. 이 과정은 문서 내에서 정확하고 관련성 높은 정보를 추출하는 데 중요한 역할을 합니다.텍스트 분할의 필요성정확한 정보 검색: 문서를 세분화하여 질문(Query)에 관련성 높은 조각만 검색할 수 있도록 합니다.시스템 효율성 향상: 전체 문서를 처리할 필요 없이, 필요한 정보만 압축해 LLM에 전달함으로써 비용과 리소스를 절감합니다.할루시네이션 방지: 정보 과다로 인한 잘못된 응답 가능성을 줄이고, 정확한 문맥 제공이 가능합니다.텍스트 분할..
· AI/RAG
RAG 시스템의 핵심, 검색기(Retriever)란?검색기(Retriever)는 RAG(Retrieval-Augmented Generation) 시스템에서 5번째 단계에 해당하며, 사용자의 질문과 관련된 정보를 벡터 데이터베이스에서 찾아주는 역할을 합니다. 이 단계의 성능은 전체 시스템의 정확도와 응답 속도에 직접적인 영향을 미칩니다.검색기의 필요성정확도 향상: 사용자 질문과 높은 관련도를 가진 문서를 선택해, 보다 정밀한 답변을 생성합니다.응답 속도 개선: 효율적인 검색 알고리즘으로 빠르게 문서를 탐색하여 전체 시스템 응답 시간을 줄입니다.시스템 최적화: 관련된 문서만 선택해 불필요한 연산과 자원 낭비를 줄입니다.검색기의 동작 방식질문의 벡터화: 질문을 임베딩 기법으로 벡터화유사도 비교: 저장된 문서 ..
· AI/LangChain
LangChain Hub: 프롬프트와 체인을 공유하고 실행하는 LangSmith 기반 플랫폼LangChain Hub은 LangChain에서 제공하는 웹 기반 허브로, 다양한 프롬프트(prompt), 체인(chain), 에이전트(agent)를 탐색하고 직접 실행해볼 수 있는 플랫폼입니다.LangSmith와 연동되어 있으며, 로그인만 하면 커뮤니티가 공유한 다양한 구성 요소를 복사하거나 바로 사용할 수 있습니다.LangChain Hub의 특징웹 UI 기반으로 코드 없이 프롬프트와 체인을 탐색버전 관리 및 Fork 기능 지원 (GitHub 유사 방식)LangChain 프로젝트와 직접 연동 가능LangSmith를 통한 테스트, 디버깅, 실시간 실행 지원LangChain Hub 사용 방법1. 사이트 접속 및 로그..
· AI/AI 동향
MCP(Model Context Protocol)가 주목받는 이유와 활용법최근 AI 업계에서는 MCP(Model Context Protocol)라는 개념이 큰 주목을 받고 있습니다. 특히 대형 언어 모델(LLM)의 활용성, 협업성, 유연성을 극대화하는 핵심 기술로 떠오르며, OpenAI, Anthropic, Meta 등 주요 기업들도 관련 기술을 개발하거나 도입하고 있습니다.이 글에서는 MCP가 무엇인지, 왜 지금 주목받고 있는지, 그리고 실제로 어떻게 사용하는지 자세히 알아보겠습니다.1. MCP란 무엇인가요?MCP(Model Context Protocol)는 말 그대로 AI 모델이 ‘문맥’을 이해하고 조작할 수 있게 해주는 프로토콜입니다. 간단히 말하면, 다양한 문맥(Context)을 정형화된 방식으로..
· AI/LangChain
LangChain ChatPromptTemplate 소개ChatPromptTemplate은 LangChain에서 Chat 모델(OpenAI GPT, Anthropic Claude 등)과 연동하기 위해 사용하는 프롬프트 구성 클래스이다. 일반적인 PromptTemplate과 달리, 대화형 구조를 기반으로 메시지 역할(role)을 명시하고, 다중 메시지를 조합하는 방식으로 설계된다.기본 개념Chat 모델은 시스템 메시지, 사용자 메시지, 어시스턴트 메시지 등의 역할을 구분하며, ChatPromptTemplate은 이를 조합하여 구조화된 대화 맥락을 전달할 수 있도록 설계되었다.주요 구성 요소: SystemMessagePromptTemplate HumanMessagePromptTemplate AIMess..
· AI/LangChain
LangChain의 PromptTemplate은 LLM 체인 구성 시 입력값을 프롬프트 문자열로 포맷팅해주는 핵심 컴포넌트이다. 이 글에서는 프롬프트 템플릿 사용 시 유용한 기능인 partial_variables와 load_prompt에 대해 설명한다.1. partial_variables정의: 프롬프트에서 일부 변수만 미리 고정값으로 설정하고, 나머지는 실행 시점에 동적으로 입력받는 방식이다.용도공통 문맥 또는 시스템 지시어 등을 프롬프트에 고정하고, 일부만 외부 입력으로 받을 때다양한 입력에 대해 동일한 베이스 프롬프트를 재사용할 때예제 코드from langchain.prompts import PromptTemplatebase_prompt = PromptTemplate.from_template( ..
· AI/LangChain
LangChain 고급 LCEL 컴포넌트: RunnablePassthrough, RunnableParallel, RunnableLambdaLangChain Expression Language(LCEL)에서는 다양한 Runnable 계열의 유틸리티 클래스들을 제공한다. 이 글에서는 그 중에서도 실무에서 자주 활용되는 RunnablePassthrough, RunnableParallel, RunnableLambda 세 가지 컴포넌트를 개별적으로 정리한다.1. RunnablePassthrough정의: 입력을 그대로 출력으로 반환하는 가장 단순한 형태의 Runnable 구현체이다.용도 체인 구조 테스트 시 플레이스홀더 역할 전처리 또는 후처리를 생략하고 기본 입력값을 유지할 때 병렬 실행 시 특정 경로에서 ..