Example 2

Langchain으로 간단한 RAG 구현하기

Langchain으로 소설 "난쟁이가 쏘아올린 작은 공" PDF 문서에 대한 답변을 제공해 줄 수 있는 간단한 RAG 애플리케이션을 구현했다. (코드에 대한 설명은 Gist 주석으로 대신한다.) 아직 잘 모르는 상태로 무작정 다이브했으니, 간단하게 개념을 정리하겠다. LLM이 답변을 지어내는 것을 방지하고, 커스텀한 컨텍스트 제공을 위해 LLM을 이용한 챗봇에는 검색증강생성(RAG)라는 기술을 사용한다. RAG 애플리케이션은 일반적으로 두 구성요소로 이루어진다. 1. 인덱싱(Indexing) - 소스에서 데이터를 수집하고 인덱싱하는 과정2. 검색과 생성(Retrieval and generation) - 유저에게 쿼리를 받아서 인덱스에서 관련 데이터를 찾아 모델에게 전달하는 실질적인 RAG 체인이다. 인..

자료구조 : 큐(Queue) 이해하고, 구현하기 in C++

Queue 1분만에 파악하기! 큐(Queue)은 선입선출 (First In First Out, FIFO) 자료구조이다. 먼저 넣은 자료가 가장 마지막에 나오는 스택(Stack)과는 반대이다. >> 스택에 대한 포스트를 참조 큐에 자료를 넣는 행동은 Put(또는 Enqueue), 꺼내는 행동은 Get(또는 Dequeue)이라고 하며 큐의 제일 앞에 있는 자료를 Front(또는 Head), 가장 뒤의 자료를 Rear(또는 Tail)라고 한다. 또한 큐가 꽉 차서 더 이상 큐에 자료를 넣을 수 없는 경우를 Overflow라고 하고, 큐가 비어있어 자료를 더이상 Get(Dequeue)할 수 없는 경우를 Underflow라고 한다. Queue, 어디에 쓸까? 'Queue'는 줄, 대기행렬이라는 뜻을 가지고 있다...