|
9 | 9 | _logger = logging.getLogger("braintrust.wrappers.langchain") |
10 | 10 |
|
11 | 11 | try: |
12 | | - from langchain_classic.callbacks.base import BaseCallbackHandler |
13 | | - from langchain_classic.schema import Document |
14 | | - from langchain_classic.schema.agent import AgentAction |
15 | | - from langchain_classic.schema.messages import BaseMessage |
16 | | - from langchain_classic.schema.output import LLMResult |
| 12 | + # Modern langchain |
| 13 | + from langchain_core.callbacks.base import BaseCallbackHandler |
| 14 | + from langchain_core.documents.base import Document |
| 15 | + from langchain_core.messages.base import BaseMessage |
| 16 | + from langchain_core.outputs.llm_result import LLMResult |
17 | 17 | except ImportError: |
18 | | - _logger.warning("Failed to import langchain, using stubs") |
19 | | - BaseCallbackHandler = object |
20 | | - Document = object |
21 | | - AgentAction = object |
22 | | - BaseMessage = object |
23 | | - LLMResult = object |
| 18 | + try: |
| 19 | + # after the release of langchain v1, these submodules were also migrated to langchain_classic |
| 20 | + from langchain_classic.callbacks.base import BaseCallbackHandler |
| 21 | + from langchain_classic.schema import Document |
| 22 | + from langchain_classic.schema.messages import BaseMessage |
| 23 | + from langchain_classic.schema.output import LLMResult |
| 24 | + except ImportError: |
| 25 | + try: |
| 26 | + # Old langchain from before the v1 version and the creation of langchain_classic |
| 27 | + from langchain.callbacks.base import BaseCallbackHandler |
| 28 | + from langchain.schema import Document |
| 29 | + from langchain.schema.messages import BaseMessage |
| 30 | + from langchain.schema.output import LLMResult |
| 31 | + except ImportError: |
| 32 | + raise ImportError( |
| 33 | + "Could not import langchain callbacks and schema submodules. " |
| 34 | + "Install one of: langchain_classic, langchain-core, or langchain<1." |
| 35 | + ) |
| 36 | + |
24 | 37 |
|
25 | 38 | langchain_parent = contextvars.ContextVar("langchain_current_span", default=None) |
26 | 39 |
|
|
0 commit comments