Getting a "'_thread.RLock'" object error when instantiating a LangChain model as a default object
- Dominant language
- Python
- Stars
- 521
- Forks
- 86
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 35
Description
#### ALL software version info
param==2.1.0
langchain-openai==0.1.9
#### Description of expected behavior and the observed behavior
The following errors out when setting the default instantiation of a ChatOpenAI object on a parameter:
```python
import param
from langchain_openai import ChatOpenAI
class TestClass(param.Parameterized):
model = param.ClassSelector(class_=ChatOpenAI, default=ChatOpenAI())
TestClass()
```

This is likely because `ChatOpenAI` is meant to handle concurrency.
I am able to work around this by instantiating the model in the __init__:
```python
import param
from langchain_openai import ChatOpenAI
class TestClass(param.Parameterized):
model = param.ClassSelector(class_=ChatOpenAI, default=None)
def __init__(self, **params):
super().__init__(**params)
self.model = ChatOpenAI()
TestClass()
```
This isn't an ideal solution, as it feels like a hacky workaround and adds overhead to the codebase.
Contributor guide
Assessment
This issue has not been assessed yet.