인프런 커뮤니티 질문&답변
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
안녕하세요.
제공해주신 의존성 목록으로 새롭게 가상환경을 생성해서 테스트했습니다.

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입니다. 이는 보통 사용 중인 모듈과 패키지 버전 간의 호환성 문제가 원인일 가능성이 큽니다. 아래와 같은 해결법을 시도해 보시길 권장드립니다:
- 패키지 업데이트:
langchain및langchain_community의 최신 버전을 설치했는지 확인해 주세요. 라이브러리의 버전 간 불일치가 있을 수 있으니, 다음 명령어로 패키지를 최신 상태로 업데이트해 보세요:
pip install --upgrade langchain langchain_community
- Pydantic 버전 확인:
langchain_core가 의존하는pydantic패키지의 버전이 최신 버전인지 확인합니다. 만약pydantic버전이 낮다면, 아래 명령어로 업데이트를 시도합니다:
pip install --upgrade pydantic
- 캐시 삭제 및 환경 재설정: 종종 설치 관련 캐시가 문제를 일으킬 수 있습니다. 가상 환경을 재설치하여 문제가 해결되는지 확인해 보세요. 이를 위해 다음 명령어를 사용하여 기존 캐시를 삭제하고 다시 설치합니다:
pip cache purge
참고 게시물: 유사한 유형의 임포트 및 모듈 에러 해결을 다룬 게시물을 참고하시면 도움이 될 수 있습니다:
위의 방법들이 도움이 되길 바랍니다. 문제가 지속된다면 설치 로그, 현재 설치된 패키지들의 버전 정보를 다시 점검해 봐야 할 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.





