강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

david님의 프로필 이미지
david

작성한 질문수

RAG 마스터: 기초부터 고급기법까지 (feat. LangChain)

Re-rank (재순위화) 기법 - Cross Encoder Reranker, LLM Reranker 활용

Cross Encoder Reranker 임포트 에러 관련 내용입니다.

작성

·

16

·

수정됨

0

랭채인 버전 관련 정보 입니다.

langchain 1.2.0

langchain-classic 1.0.1

langchain-community 0.4.1

langchain-core 1.2.5

langchain-huggingface 1.2.0

langchain-text-splitters 1.1.0

langgraph 1.0.5

langgraph-checkpoint 3.0.1

langgraph-prebuilt 1.0.5

langgraph-sdk 0.3.1

langsmith 0.5.2

 

이전 답변 내용에서

from langchain_classic.retrievers.document_compressors import CrossEncoderReranker

이 부분도 역시 에러가 발생합니다

원래 코드 였던

from langchain.retrievers.document_compressors import CrossEncoderReranker

이 코드에서는 에러가 발생하지 않지만

여전히

from langchain_community.cross_encoders import HuggingFaceCrossEncoder

 

이코드에서 에러가 발생합니다

 

 

PROBLEMS

[{

"resource": "/c:/study/conda_rag/LangChain_005_Advanced_Retrieval.ipynb",

"owner": "workbench.notebook.cellDiagnostics",

"severity": 8,

"message": "ImportError: cannot import name 'create_model' from 'langchain_core.utils.pydantic' (c:\\D\\miniconda3\\envs\\langchain_env\\Lib\\site-packages\\langchain_core\\utils\\pydantic.py)",

"source": "Cell Execution Error",

"startLineNumber": 4,

"startColumn": 1,

"endLineNumber": 4,

"endColumn": 71

}]

 

 

전체 에러 콜백 은 아래와 같습니다

 

 

---------------------------------------------------------------------------

ImportError Traceback (most recent call last)

Cell In[31], line 3

1 from langchain.retrievers import ContextualCompressionRetriever

2 from langchain.retrievers.document_compressors import CrossEncoderReranker

----> 3 from langchain_community.cross_encoders import HuggingFaceCrossEncoder

5 #from langchain_classic.retrievers.document_compressors import CrossEncoderReranker

6 #from langchain_community.cross_encoders.huggingface import HuggingFaceCrossEncoder

12 model = HuggingFaceCrossEncoder(model_name="BAAI/bge-reranker-v2-m3")

File c:\D\miniconda3\envs\langchain_env\Lib\site-packages\langchain_community\cross_encoders\__init__.py:47, in getattr(name)

45 def getattr(name: str) -> Any:

46 if name in modulelookup:

---> 47 module = importlib.import_module(_module_lookup[name])

48 return getattr(module, name)

49 raise AttributeError(f"module {__name__} has no attribute {name}")

File c:\D\miniconda3\envs\langchain_env\Lib\importlib\__init__.py:126, in import_module(name, package)

124 break

125 level += 1

--> 126 return bootstrap.gcd_import(name[level:], package, level)

File c:\D\miniconda3\envs\langchain_env\Lib\site-packages\langchain_community\cross_encoders\huggingface.py:5

1 from typing import Any, Dict, List, Tuple

3 from pydantic import BaseModel, ConfigDict, Field

...

(...) 36 model_validator,

37 )

38 from typing_extensions import override

ImportError: cannot import name 'create_model' from 'langchain_core.utils.pydantic' (c:\D\miniconda3\envs\langchain_env\Lib\site-packages\langchain_core\utils\pydantic.py)

 

 

답변 2

0

판다스 스튜디오님의 프로필 이미지
판다스 스튜디오
지식공유자

안녕하세요.

제공해주신 의존성 목록으로 새롭게 가상환경을 생성해서 테스트했습니다.

image.png

 

langchain 1.2.0에서는 from langchain.retrievers.document_compressors import CrossEncoderReranker 임포트 에러가 발생하고 있습니다. 하지만, from langchain_classic.retrievers.document_compressors import CrossEncoderReranker에서는 정상 작동하고 있습니다. 제가 판단하기에는 현재 사용중인 conda 환경에서 의존성 충돌이 발생한 것으로 보입니다.

아래 AI 인턴의 답변과 같이 langchain, langchain_community, pydantic 등을 최신 버전으로 업데이트하거나, 가상환경을 새롭게 생성해서 재설치후에 테스트해보시는 것도 좋을 것 같습니다.

 

0

안녕하세요, 인프런 AI 인턴입니다.

david님께서 겪고 있는 문제는 langchain_community.cross_encoders 모듈에서 HuggingFaceCrossEncoder를 임포트하려고 할 때 발생하는 ImportError입니다. 이는 보통 사용 중인 모듈과 패키지 버전 간의 호환성 문제가 원인일 가능성이 큽니다. 아래와 같은 해결법을 시도해 보시길 권장드립니다:

  1. 패키지 업데이트: langchainlangchain_community의 최신 버전을 설치했는지 확인해 주세요. 라이브러리의 버전 간 불일치가 있을 수 있으니, 다음 명령어로 패키지를 최신 상태로 업데이트해 보세요:
   pip install --upgrade langchain langchain_community
  1. Pydantic 버전 확인: langchain_core가 의존하는 pydantic 패키지의 버전이 최신 버전인지 확인합니다. 만약 pydantic 버전이 낮다면, 아래 명령어로 업데이트를 시도합니다:
   pip install --upgrade pydantic
  1. 캐시 삭제 및 환경 재설정: 종종 설치 관련 캐시가 문제를 일으킬 수 있습니다. 가상 환경을 재설치하여 문제가 해결되는지 확인해 보세요. 이를 위해 다음 명령어를 사용하여 기존 캐시를 삭제하고 다시 설치합니다:
   pip cache purge
  1. 참고 게시물: 유사한 유형의 임포트 및 모듈 에러 해결을 다룬 게시물을 참고하시면 도움이 될 수 있습니다:

위의 방법들이 도움이 되길 바랍니다. 문제가 지속된다면 설치 로그, 현재 설치된 패키지들의 버전 정보를 다시 점검해 봐야 할 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

david님의 프로필 이미지
david

작성한 질문수

질문하기