본문 바로가기

📚도서 공부/LangChain으로 구현하는 LLM15

5-3(챗봇이란?, 문서 로더 구현) 챗봇 만들기 라. 챗봇 구현-1 문서 로더 설정간단한 챗봇을 LangChain에서 아래의 레시피에 따라 만들어 보자.문서 로더 설정문서를 벡터 저장소에 저장벡터 저장소에서 정보를 검색하는 챗봇 설정이를 여러 형식으로 일반화하고 Streamlit을 통한 웹 브라우저 인터페이스를 통해 사용 가능하게 만들어 볼 것이다. 문서를 끌어다 놓고 질문을 시작할 수도 있게 해보자. 문서 로더부터 시작하자.1. 문서 로드import loggingimport pathlibfrom typing import Anyfrom langchain.schema import Documentfrom langchain.document_loaders import PyPDFLoader, TextLoader, UnstructuredWordDocumentLo.. 2024. 5. 15.
5-3(챗봇이란?, 로딩 및 검색) 챗봇 만들기 다. LangChain에서의 로딩 및 검색LangChain은 검색 시스템을 구축하기 위한 여러 구성 요소의 도구 체인을 구현한다.먼저 데이터 로더를 통해 문서를 로드한다 → 문서를 변환하고 임베딩으로 사용할 수 있도록 벡터 저장소에 전달 → 벡터 저장소와 관련된 검색기(retriever)를 쿼리1) 문서 로더문서 로더는 데이터를 소스에서 document 객체러 로드하는데 사용된다. Document 객체는 텍스트와 관련된 메타데이터로 구성된다.txt 파일을 로드하는 TextLoader, 웹 페이지 텍스트를 로드하는 WebBaseLoader, Arxiv에서 기사를 로드하는 ArxivLoader, 유튜브 대본을 로드하는 YoutubeLoader 등이 있다. 웹 페이지의 경우 Diffbot 통합을 사용하면 내용.. 2024. 5. 11.
5-2(챗봇이란?, 벡터 저장소) 챗봇 만들기 나. 벡터 저장소벡터 저장소란, 벡터 임베딩을 저장하고 검색하는 데 사용되는 메커니즘을 나타낸다. 벡터 저장소는 벡터 임베딩을 효율적으로 저장하고 검색하기 위해 특별히 설계된 독립적인 솔루션이다. 벡터 데이터베이스는 벡터 임베딩을 관리하고 Faiss와 같은 독립적인 벡터 인덱스를 사용하는 것 보다 여러 이점을 제공하기 위해 설계되었다.아래와 같이 세 가지 수준이 있다.인덱싱은 벡터를 조직화해 벡터를 빠르게 검색할 수 있도록 구조화 한다. k-d 트리나 Annoy(Approximate nearest neighbors oh yeah)와 같은 다양한 알고리즘이 있다.벡터 라이브러리는 점곱 및 벡터 인덱싱과 같은 벡터 작업을 수행하는 기능을 제공한다.Milvus나 Pinecone과 같은 벡터 데이터베이스는 대규.. 2024. 5. 9.
5-1(챗봇이란?, 임베딩) 챗봇 만들기 LLM 기반 챗봇들은 고객 서비스와 같은 대화영 작업에서는 유창하나. 세계 지식이 부족하기 때문에 주제별 질문에는 잘 답변을 못한다. 이를 극복하기 위해 RAG를 통해 어떻게 해결할 수 있는지 탐구해 본다.핵심은 문서를 벡터 임베딩으로 말뭉치(corpus)를 인코딩해 신속한 의미 검색을 가능하게 하고, 검색 결과를 챗봇의 프롬프트에 통합하는 것이다.주요 주제(Topic)챗봇이란 무엇인가?검색과 벡터의 이해LangChain에서의 로딩 및 검색챗봇 구현응답 중재1. 챗봇이란 무엇인가?챗봇이란, 텍스트 또는 음성을 통한 대화 상호 작용 시뮬레이션 AI 프로그램이다. GPT-3와 같은 LLM 출현은 ChatGPT(2022)와 같은 더 인간적인 챗봇 시스템을 가능하게 하였으나, 그 능력은 여전히 상당히 제한적이다.. 2024. 5. 2.