랭체인 완벽 입문-3/7
사용자의 입력한 정보 관련 정보를 외부 데이터 베이스등에서 검색하여 , 그 정보를 이용해 프롬프트로 만들어 언어 모델을 호출한다.
학습하지 않은 지식이나 정보도 답변하게 되는 것이다.
컴퓨터가 이해 살 수 있도록 텍스트를 숫자의 조합으로 표현하는 과정이 텍스트 벡터화이다.
단어나 문장을 벡터로 표현할 수 있다.
유사 문장 검색을 위한 벡터화
수치로 표현한 것을 텍스트의 벡터화.
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
1
문서에서 데이터베이스를 만들어 질문으로 검색하게 하자.
2
사전 준비?
PDF나 텍스트 파일 -> 텍스트 추출 -> 벡터화 데이터 베이스에 자장.
벡터에서 유사한 문장을 검색
3
데이터 베이스 구축?
텍스트 추출
텍스트 분할
텍스트 벡터화
텍스트와 벡터를 벡터 데이터베이스에 저장
4
텍스트 추출 (Document loaders 모듈)
PDF, 엑셀, URL을 입력하면 텍스트만 추출하는 기능.
원본 정보가 text이면 불필요
5
텍스트 분할 (Text splitters)
너무 긴 텍스트는 언어모델이 처리할수 있는 글자 수 한계를 넘어간다.
적절히 쪼개어 의미 있게 볼수 있도록 나눠야 한다.
6
텍스트 벡터화 (text embedding models)
벡터화는 의미가 가까운 문장을 검색하게 하는것.
7
텍스트와 벡터를 벡터 데이터베이스에 저장 (Vector stores)
저장하자.
벡터 데이터베이스에 저장하자.
파인콘(Pinecone), 크로마DB(ChromaDB) 등이 있다.
1
사용자의 입력을 벡터화
2
데이터베이스에서 검색해 문장 가져오기
3
유사 문장과 질문을 조합해 프롬프트 작성
4
프롬프트를 사용해 언어 모델 호출.
1
전체 소스
https://github.com/wikibook/langchain
2
retrieval 소스
랭체인
https://github.com/wikibook/langchain/tree/master/03_retrieval
1
python3 -m pip install -r .\requirements.txt
2
샘플 PDF 다운 로드 하기
https://raw.githubusercontent.com/wikibook/langchain/master/asset/sample.pdf
감사합니다.