MaartenGr / MaartenGr/KeyBERT

importing KeyBERT causes pydantic_core problems

Open
#195 3 comments 1 reaction 0 assignees View on GitHub
Dominant language
Python
Stars
4.2k
Forks
385
PR merge metrics
No merged PRs in 30d

Description

Encountered an "ImportError: cannot import name 'validate_core_schema' from 'pydantic_core'" error when importing KeyBERT.

Using keybert 0.8.3 and pydantic-core v 2.6.3:

```
(llmEnv) C:\Users\rajah>conda list | find "pydantic"
pydantic 2.3.0 pypi_0 pypi
pydantic-core 2.6.3 pypi_0 pypi

(llmEnv) C:\Users\rajah>conda list | find "keybert"
keybert 0.8.3 pypi_0 pypi
```

Full trace:

```

(llmEnv) C:\Users\rajah>python
Python 3.9.7 (default, Sep 16 2021, 16:59:28) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from keybert import KeyBERT
Traceback (most recent call last):
File "", line 1, in
File "C:\Users\rajah\anaconda3\envs\llmEnv\lib\site-packages\keybert\__init__.py", line 2, in
from keybert._model import KeyBERT
File "C:\Users\rajah\anaconda3\envs\llmEnv\lib\site-packages\keybert\_model.py", line 17, in
from keybert.llm._base import BaseLLM
File "C:\Users\rajah\anaconda3\envs\llmEnv\lib\site-packages\keybert\llm\__init__.py", line 28, in
from keybert.llm._langchain import LangChain
File "C:\Users\rajah\anaconda3\envs\llmEnv\lib\site-packages\keybert\llm\_langchain.py", line 3, in
from langchain.docstore.document import Document
File "C:\Users\rajah\anaconda3\envs\llmEnv\lib\site-packages\langchain\__init__.py", line 6, in
from langchain.agents import MRKLChain, ReActChain, SelfAskWithSearchChain
File "C:\Users\rajah\anaconda3\envs\llmEnv\lib\site-packages\langchain\agents\__init__.py", line 31, in
from langchain.agents.agent import (
File "C:\Users\rajah\anaconda3\envs\llmEnv\lib\site-packages\langchain\agents\agent.py", line 23, in
from langchain.agents.agent_iterator import AgentExecutorIterator
File "C:\Users\rajah\anaconda3\envs\llmEnv\lib\site-packages\langchain\agents\agent_iterator.py", line 21, in
from langchain.callbacks.manager import (
File "C:\Users\rajah\anaconda3\envs\llmEnv\lib\site-packages\langchain\callbacks\__init__.py", line 23, in
from langchain.callbacks.manager import (
File "C:\Users\rajah\anaconda3\envs\llmEnv\lib\site-packages\langchain\callbacks\manager.py", line 41, in
from langchain.callbacks.tracers import run_collector
File "C:\Users\rajah\anaconda3\envs\llmEnv\lib\site-packages\langchain\callbacks\tracers\__init__.py", line 3, in
from langchain.callbacks.tracers.langchain import LangChainTracer
File "C:\Users\rajah\anaconda3\envs\llmEnv\lib\site-packages\langchain\callbacks\tracers\langchain.py", line 12, in
from langsmith import Client
File "C:\Users\rajah\anaconda3\envs\llmEnv\lib\site-packages\langsmith\__init__.py", line 10, in
from langsmith.client import Client
File "C:\Users\rajah\anaconda3\envs\llmEnv\lib\site-packages\langsmith\client.py", line 39, in
from langsmith.evaluation import evaluator as ls_evaluator
File "C:\Users\rajah\anaconda3\envs\llmEnv\lib\site-packages\langsmith\evaluation\__init__.py", line 4, in
from langsmith.evaluation.string_evaluator import StringEvaluator
File "C:\Users\rajah\anaconda3\envs\llmEnv\lib\site-packages\langsmith\evaluation\string_evaluator.py", line 3, in
from pydantic import BaseModel
File "C:\Users\rajah\anaconda3\envs\llmEnv\lib\site-packages\pydantic\__init__.py", line 372, in __getattr__
module = import_module(module_name, package=package)
File "C:\Users\rajah\anaconda3\envs\llmEnv\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "C:\Users\rajah\anaconda3\envs\llmEnv\lib\site-packages\pydantic\main.py", line 15, in
from ._internal import (
File "C:\Users\rajah\anaconda3\envs\llmEnv\lib\site-packages\pydantic\_internal\_decorators.py", line 15, in
from ._core_utils import get_type_ref
File "C:\Users\rajah\anaconda3\envs\llmEnv\lib\site-packages\pydantic\_internal\_core_utils.py", line 15, in
from pydantic_core import validate_core_schema as _validate_core_schema
ImportError: cannot import name 'validate_core_schema' from 'pydantic_core' (C:\Users\rajah\anaconda3\envs\llmEnv\lib\site-packages\pydantic_core\__init__.py)
>>> exit()
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Reproduce the failure with `from keybert import KeyBERT` using the reported Python, KeyBERT, pydantic, and pydantic-core versions. Trace the import path through `keybert/__init__.py`, `keybert/_model.py`, `keybert/llm/__init__.py`, and `keybert/llm/_langchain.py`, then verify that importing KeyBERT succeeds with the supported dependency combination.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
machine-learning
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.