pdf를 chunk 단위로 나눈 후 langchain으로 임베딩 하는 과정에서 다음과 같은 라이브러리가 필요했다.
from langchain.vectorstores import FAISS
from langchain.embeddings import OpenAIEmbeddings
embeddings = OpenAIEmbeddings(openai_api_key="secret_api_key_hide")
knowledge_base = FAISS.from_texts(chunks, embeddings)
에러 발생
knowledge_base = FAISS.from_texts(chunks, embeddings)
langchain : ModuleNotFoundError: No module named 'langchain_community'
처음에는 가상 환경에 langchain_community를 설치하면 되겠다. 라는 생각이였는데
pip install langchain_community
이걸 수행하면 오히려 기존 langchain 라이브러리와 충돌이 나면서
embeddings 변수(위에 선언)의 타입이 langchain_community.~~ 이렇게 나오게 되면서
langchain.vectorstres 를 이용할 수 없다. (alias FAISS)
from_texts에서 자꾸 저런 에러가 발생하게 되며, numpy 배열로 변환하라는 식의 에러 메시지도 확인할 수 있다.
가상환경을 삭제하고 다시 초기화하는 방법까지 시도해 보았다.
# 현재 가상환경 비활성화
deactivate
# 가상환경 폴더 삭제 (Windows에서)
rmdir /s /q ch10_env # 가상환경 폴더 이름이 'ch10_env'라 가정
# 또는 파일 탐색기로 직접 가상환경 폴더 삭제
# 새 가상환경 생성
python -m venv ch10_env
# 가상환경 활성화 (Windows)
ch10_env\Scripts\activate
필요한 라이브러리를 설치하고
pip install langchain faiss-cpu openai PyPDF2
했을 때도 해결되지 않았다.
여기까지가 사실 gpt의 답변이였고,
이제는 구글 서치가 답이였다.
stackoverflow에서 나와 비슷한 케이스의 답변을 찾을 수 있었다.
- 라이브러리를 변경한다.
from langchain.vectorstores import FAISS
from langchain.embeddings.openai import OpenAIEmbeddings
- langchain-community의 langchain-core만 install한다
pip install langchain-community langchain-core
# if still not working then:
pip install --upgrade langchain
어제부터 거의 4시간 정도 계속 다른 방법을 시도했는데,...
1. langchain_community를 설치해라 -> 하면 안됨
2. ValueError: input not a numpy array 타입이 이상하다. numpy 배열로 만들어서 보내라 -> numpy로 만들면 안 됨
해결!..