brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Jul 08. 2024

15.랭체인-Retrival-데이터다루기-2024-07

랭체인 완벽 입문-3/7

Retrival는 언어 모델이 학습한 시점에 존재하지 않는 지식이나 개념에 대해 답변 할수 있게 하는 모듈.



<1> RAG (Retrieval-Augmented Generation)

<2> 벡터화?

<3> 벡터 검색에서 RAG 통합

<4> 검색 및 프롬프트 구축 순서

<5> 소스

<6> PDF 기반으로 답하는 챗봇 만들기







<1> RAG (Retrieval-Augmented Generation)



사용자의 입력한 정보 관련 정보를 외부 데이터 베이스등에서 검색하여 , 그 정보를 이용해 프롬프트로 만들어 언어 모델을 호출한다.

학습하지 않은 지식이나 정보도 답변하게 되는 것이다.




<2> 벡터화?


컴퓨터가 이해 살 수 있도록 텍스트를 숫자의 조합으로 표현하는 과정이 텍스트 벡터화이다.

단어나 문장을 벡터로 표현할 수 있다.

유사 문장 검색을 위한 벡터화

수치로 표현한 것을 텍스트의 벡터화.




pip install -U langchain-community



ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.

langchain-openai 0.0.5 requires langchain-core<0.2,>=0.1.16, but you have langchain-core 0.2.11 which is incompatible.

Successfully installed langchain-0.2.6 langchain-community-0.2.6 langchain-core-0.2.11 langchain-text-splitters-0.2.2 langsmith-0.1.84



 python3 -m pip install -r .\requirements.txt





<3> 벡터 검색에서 RAG 통합


1

문서에서 데이터베이스를 만들어 질문으로 검색하게 하자.


2

사전 준비?

PDF나 텍스트 파일 -> 텍스트 추출 -> 벡터화 데이터 베이스에 자장.

벡터에서 유사한 문장을 검색



3

데이터 베이스 구축?

텍스트 추출

텍스트 분할

텍스트 벡터화

텍스트와 벡터를 벡터 데이터베이스에 저장




4

텍스트 추출 (Document loaders 모듈)

PDF, 엑셀, URL을 입력하면 텍스트만 추출하는 기능.

원본 정보가 text이면 불필요




5

텍스트 분할 (Text splitters)

너무 긴 텍스트는 언어모델이 처리할수 있는 글자 수 한계를 넘어간다.

적절히 쪼개어 의미 있게 볼수 있도록 나눠야 한다.



6

텍스트 벡터화 (text embedding models)

벡터화는 의미가 가까운 문장을 검색하게 하는것.




7

텍스트와 벡터를 벡터 데이터베이스에 저장 (Vector stores)

저장하자.

벡터 데이터베이스에 저장하자.

파인콘(Pinecone), 크로마DB(ChromaDB) 등이 있다.






<4> 검색 및 프롬프트 구축 순서



1

사용자의 입력을 벡터화



2

데이터베이스에서 검색해 문장 가져오기



3

유사 문장과 질문을 조합해 프롬프트 작성


4

프롬프트를 사용해 언어 모델 호출.



<5> 소스


1

전체 소스

https://github.com/wikibook/langchain



2

retrieval 소스

랭체인


https://github.com/wikibook/langchain/tree/master/03_retrieval




<6> PDF 기반으로 답하는 챗봇 만들기



1

 python3 -m pip install -r .\requirements.txt





2

샘플 PDF 다운 로드 하기

https://raw.githubusercontent.com/wikibook/langchain/master/asset/sample.pdf




감사합니다.

매거진의 이전글 14. 랭체인-Model I/O호출 -2024-07
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari