MaartenGr / MaartenGr/BERTopic
Getting Started broken
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 7.8k
- Forks
- 920
- Avg merge
- 22h 24m
- Merged PRs (30d)
- 5
Description
```
from bertopic import BERTopic
from sklearn.datasets import fetch_20newsgroups
docs = fetch_20newsgroups(subset='all', remove=('headers', 'footers', 'quotes'))['data']
topic_model = BERTopic()
topics, probs = topic_model.fit_transform(docs)
```
```
---------------------------------------------------------------------------
PydanticUserError Traceback (most recent call last)
Cell In[56], line 1
----> 1 from bertopic import BERTopic
2 from sklearn.datasets import fetch_20newsgroups
4 docs = fetch_20newsgroups(subset='all', remove=('headers', 'footers', 'quotes'))['data']
File ~/.pyenv/versions/3.10.13/lib/python3.10/site-packages/bertopic/__init__.py:1
----> 1 from bertopic._bertopic import BERTopic
3 __version__ = "0.16.0"
5 __all__ = [
6 "BERTopic",
7 ]
File ~/.pyenv/versions/3.10.13/lib/python3.10/site-packages/bertopic/_bertopic.py:52
50 from bertopic.backend._utils import select_backend
51 from bertopic.vectorizers import ClassTfidfTransformer
---> 52 from bertopic.representation import BaseRepresentation
53 from bertopic.dimensionality import BaseDimensionalityReduction
54 from bertopic.cluster._utils import hdbscan_delegator, is_supported_hdbscan
File ~/.pyenv/versions/3.10.13/lib/python3.10/site-packages/bertopic/representation/__init__.py:38
36 # LangChain Generator
37 try:
---> 38 from bertopic.representation._langchain import LangChain
39 except ModuleNotFoundError:
40 msg = "`pip install langchain` \n\n"
File ~/.pyenv/versions/3.10.13/lib/python3.10/site-packages/bertopic/representation/_langchain.py:2
1 import pandas as pd
----> 2 from langchain.docstore.document import Document
3 from scipy.sparse import csr_matrix
4 from typing import Callable, Dict, Mapping, List, Tuple, Union
File ~/.pyenv/versions/3.10.13/lib/python3.10/site-packages/langchain/__init__.py:6
3 from importlib import metadata
4 from typing import Optional
----> 6 from langchain.agents import MRKLChain, ReActChain, SelfAskWithSearchChain
7 from langchain.cache import BaseCache
8 from langchain.chains import (
9 ConversationChain,
10 LLMBashChain,
(...)
18 VectorDBQAWithSourcesChain,
19 )
File ~/.pyenv/versions/3.10.13/lib/python3.10/site-packages/langchain/agents/__init__.py:2
1 """Interface for agents."""
----> 2 from langchain.agents.agent import (
3 Agent,
4 AgentExecutor,
5 AgentOutputParser,
6 BaseMultiActionAgent,
7 BaseSingleActionAgent,
8 LLMSingleActionAgent,
9 )
10 from langchain.agents.agent_toolkits import (
11 create_csv_agent,
12 create_json_agent,
(...)
21 create_vectorstore_router_agent,
22 )
23 from langchain.agents.agent_types import AgentType
File ~/.pyenv/versions/3.10.13/lib/python3.10/site-packages/langchain/agents/agent.py:16
13 from pydantic import BaseModel, root_validator
15 from langchain.agents.agent_types import AgentType
---> 16 from langchain.agents.tools import InvalidTool
17 from langchain.base_language import BaseLanguageModel
18 from langchain.callbacks.base import BaseCallbackManager
File ~/.pyenv/versions/3.10.13/lib/python3.10/site-packages/langchain/agents/tools.py:4
1 """Interface for tools."""
2 from typing import Optional
----> 4 from langchain.callbacks.manager import (
5 AsyncCallbackManagerForToolRun,
6 CallbackManagerForToolRun,
7 )
8 from langchain.tools.base import BaseTool, Tool, tool
11 class InvalidTool(BaseTool):
File ~/.pyenv/versions/3.10.13/lib/python3.10/site-packages/langchain/callbacks/__init__.py:3
1 """Callback handlers that allow listening to events in LangChain."""
----> 3 from langchain.callbacks.aim_callback import AimCallbackHandler
4 from langchain.callbacks.argilla_callback import ArgillaCallbackHandler
5 from langchain.callbacks.clearml_callback import ClearMLCallbackHandler
File ~/.pyenv/versions/3.10.13/lib/python3.10/site-packages/langchain/callbacks/aim_callback.py:4
1 from copy import deepcopy
2 from typing import Any, Dict, List, Optional, Union
----> 4 from langchain.callbacks.base import BaseCallbackHandler
5 from langchain.schema import AgentAction, AgentFinish, LLMResult
8 def import_aim() -> Any:
File ~/.pyenv/versions/3.10.13/lib/python3.10/site-packages/langchain/callbacks/base.py:7
4 from typing import Any, Dict, List, Optional, Union
5 from uuid import UUID
----> 7 from langchain.schema import (
8 AgentAction,
9 AgentFinish,
10 BaseMessage,
11 LLMResult,
12 )
15 class LLMManagerMixin:
16 """Mixin for LLM callbacks."""
File ~/.pyenv/versions/3.10.13/lib/python3.10/site-packages/langchain/schema.py:152
148 def messages_from_dict(messages: List[dict]) -> List[BaseMessage]:
149 return [_message_from_dict(m) for m in messages]
--> 152 class ChatGeneration(Generation):
153 """Output of a single generation."""
155 text = ""
File ~/.pyenv/versions/3.10.13/lib/python3.10/site-packages/langchain/schema.py:159, in ChatGeneration()
155 text = ""
156 message: BaseMessage
158 @root_validator
--> 159 def set_text(cls, values: Dict[str, Any]) -> Dict[str, Any]:
160 values["text"] = values["message"].content
161 return values
File ~/.pyenv/versions/3.10.13/lib/python3.10/site-packages/pydantic/deprecated/class_validators.py:222, in root_validator(pre, skip_on_failure, allow_reuse, *__args)
212 warn(
213 'Pydantic V1 style `@root_validator` validators are deprecated.'
214 ' You should migrate to Pydantic V2 style `@model_validator` validators,'
(...)
217 stacklevel=2,
218 )
220 if __args:
221 # Ensure a nice error is raised if someone attempts to use the bare decorator
--> 222 return root_validator()(*__args) # type: ignore
224 if allow_reuse is True: # pragma: no cover
225 warn(_ALLOW_REUSE_WARNING_MESSAGE, DeprecationWarning)
File ~/.pyenv/versions/3.10.13/lib/python3.10/site-packages/pydantic/deprecated/class_validators.py:228, in root_validator(pre, skip_on_failure, allow_reuse, *__args)
226 mode: Literal['before', 'after'] = 'before' if pre is True else 'after'
227 if pre is False and skip_on_failure is not True:
--> 228 raise PydanticUserError(
229 'If you use `@root_validator` with pre=False (the default) you MUST specify `skip_on_failure=True`.'
230 ' Note that `@root_validator` is deprecated and should be replaced with `@model_validator`.',
231 code='root-validator-pre-skip',
232 )
234 wrap = partial(_decorators_v1.make_v1_generic_root_validator, pre=pre)
236 def dec(f: Callable[..., Any] | classmethod[Any, Any, Any] | staticmethod[Any, Any]) -> Any:
PydanticUserError: If you use `@root_validator` with pre=False (the default) you MUST specify `skip_on_failure=True`. Note that `@root_validator` is deprecated and should be replaced with `@model_validator`.
For further information visit https://errors.pydantic.dev/2.4/u/root-validator-pre-skip
```
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the documented import and fit_transform example with the dependency versions shown in the traceback. Start at bertopic/representation/__init__.py and bertopic/representation/_langchain.py, then verify that the Getting Started example imports and runs without the reported PydanticUserError under supported dependencies.
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