mirror of
https://github.com/hwchase17/langchain.git
synced 2026-02-10 19:20:24 +00:00
Compare commits
4 Commits
langchain-
...
erick/core
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1a14c394c1 | ||
|
|
acddfc772e | ||
|
|
3e618b16cd | ||
|
|
18eb9c249d |
21
libs/community/poetry.lock
generated
21
libs/community/poetry.lock
generated
@@ -1,4 +1,4 @@
|
||||
# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand.
|
||||
# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand.
|
||||
|
||||
[[package]]
|
||||
name = "aiohappyeyeballs"
|
||||
@@ -1829,7 +1829,7 @@ files = [
|
||||
|
||||
[[package]]
|
||||
name = "langchain"
|
||||
version = "0.3.13"
|
||||
version = "0.3.14"
|
||||
description = "Building applications with LLMs through composability"
|
||||
optional = false
|
||||
python-versions = ">=3.9,<4.0"
|
||||
@@ -1839,7 +1839,7 @@ develop = true
|
||||
[package.dependencies]
|
||||
aiohttp = "^3.8.3"
|
||||
async-timeout = {version = "^4.0.0", markers = "python_version < \"3.11\""}
|
||||
langchain-core = "^0.3.26"
|
||||
langchain-core = "^0.3.29"
|
||||
langchain-text-splitters = "^0.3.3"
|
||||
langsmith = ">=0.1.17,<0.3"
|
||||
numpy = [
|
||||
@@ -1858,7 +1858,7 @@ url = "../langchain"
|
||||
|
||||
[[package]]
|
||||
name = "langchain-core"
|
||||
version = "0.3.27"
|
||||
version = "0.3.29"
|
||||
description = "Building applications with LLMs through composability"
|
||||
optional = false
|
||||
python-versions = ">=3.9,<4.0"
|
||||
@@ -2618,41 +2618,30 @@ files = [
|
||||
{file = "pandas-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348"},
|
||||
{file = "pandas-2.2.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d9c45366def9a3dd85a6454c0e7908f2b3b8e9c138f5dc38fed7ce720d8453ed"},
|
||||
{file = "pandas-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86976a1c5b25ae3f8ccae3a5306e443569ee3c3faf444dfd0f41cda24667ad57"},
|
||||
{file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b8661b0238a69d7aafe156b7fa86c44b881387509653fdf857bebc5e4008ad42"},
|
||||
{file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:37e0aced3e8f539eccf2e099f65cdb9c8aa85109b0be6e93e2baff94264bdc6f"},
|
||||
{file = "pandas-2.2.3-cp310-cp310-win_amd64.whl", hash = "sha256:56534ce0746a58afaf7942ba4863e0ef81c9c50d3f0ae93e9497d6a41a057645"},
|
||||
{file = "pandas-2.2.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:66108071e1b935240e74525006034333f98bcdb87ea116de573a6a0dccb6c039"},
|
||||
{file = "pandas-2.2.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7c2875855b0ff77b2a64a0365e24455d9990730d6431b9e0ee18ad8acee13dbd"},
|
||||
{file = "pandas-2.2.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd8d0c3be0515c12fed0bdbae072551c8b54b7192c7b1fda0ba56059a0179698"},
|
||||
{file = "pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c124333816c3a9b03fbeef3a9f230ba9a737e9e5bb4060aa2107a86cc0a497fc"},
|
||||
{file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:63cc132e40a2e084cf01adf0775b15ac515ba905d7dcca47e9a251819c575ef3"},
|
||||
{file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:29401dbfa9ad77319367d36940cd8a0b3a11aba16063e39632d98b0e931ddf32"},
|
||||
{file = "pandas-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:3fc6873a41186404dad67245896a6e440baacc92f5b716ccd1bc9ed2995ab2c5"},
|
||||
{file = "pandas-2.2.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b1d432e8d08679a40e2a6d8b2f9770a5c21793a6f9f47fdd52c5ce1948a5a8a9"},
|
||||
{file = "pandas-2.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a5a1595fe639f5988ba6a8e5bc9649af3baf26df3998a0abe56c02609392e0a4"},
|
||||
{file = "pandas-2.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5de54125a92bb4d1c051c0659e6fcb75256bf799a732a87184e5ea503965bce3"},
|
||||
{file = "pandas-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb8ae78d8af97f849404f21411c95062db1496aeb3e56f146f0355c9989319"},
|
||||
{file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfcb5ee8d4d50c06a51c2fffa6cff6272098ad6540aed1a76d15fb9318194d8"},
|
||||
{file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:062309c1b9ea12a50e8ce661145c6aab431b1e99530d3cd60640e255778bd43a"},
|
||||
{file = "pandas-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13"},
|
||||
{file = "pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015"},
|
||||
{file = "pandas-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28"},
|
||||
{file = "pandas-2.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0"},
|
||||
{file = "pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24"},
|
||||
{file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659"},
|
||||
{file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb"},
|
||||
{file = "pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d"},
|
||||
{file = "pandas-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468"},
|
||||
{file = "pandas-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18"},
|
||||
{file = "pandas-2.2.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2"},
|
||||
{file = "pandas-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4"},
|
||||
{file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d"},
|
||||
{file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a"},
|
||||
{file = "pandas-2.2.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc6b93f9b966093cb0fd62ff1a7e4c09e6d546ad7c1de191767baffc57628f39"},
|
||||
{file = "pandas-2.2.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5dbca4c1acd72e8eeef4753eeca07de9b1db4f398669d5994086f788a5d7cc30"},
|
||||
{file = "pandas-2.2.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8cd6d7cc958a3910f934ea8dbdf17b2364827bb4dafc38ce6eef6bb3d65ff09c"},
|
||||
{file = "pandas-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99df71520d25fade9db7c1076ac94eb994f4d2673ef2aa2e86ee039b6746d20c"},
|
||||
{file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31d0ced62d4ea3e231a9f228366919a5ea0b07440d9d4dac345376fd8e1477ea"},
|
||||
{file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7eee9e7cea6adf3e3d24e304ac6b8300646e2a5d1cd3a3c2abed9101b0846761"},
|
||||
{file = "pandas-2.2.3-cp39-cp39-win_amd64.whl", hash = "sha256:4850ba03528b6dd51d6c5d273c46f183f39a9baf3f0143e566b89450965b105e"},
|
||||
{file = "pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667"},
|
||||
@@ -4715,4 +4704,4 @@ type = ["pytest-mypy"]
|
||||
[metadata]
|
||||
lock-version = "2.0"
|
||||
python-versions = ">=3.9,<4.0"
|
||||
content-hash = "92c00e0689d9f6cec3122bf6faf8e4fac3829f1cdd33b21a39ec92e1b5aa8585"
|
||||
content-hash = "285e19251cdc78fc8dbde4ccf887f0ca35a0800e757223bb4abefa471a04a33a"
|
||||
|
||||
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
|
||||
|
||||
[tool.poetry]
|
||||
name = "langchain-community"
|
||||
version = "0.3.13"
|
||||
version = "0.3.14"
|
||||
description = "Community contributed LangChain integrations."
|
||||
authors = []
|
||||
license = "MIT"
|
||||
@@ -33,8 +33,8 @@ ignore-words-list = "momento,collison,ned,foor,reworkd,parth,whats,aapply,mysogy
|
||||
|
||||
[tool.poetry.dependencies]
|
||||
python = ">=3.9,<4.0"
|
||||
langchain-core = "^0.3.27"
|
||||
langchain = "^0.3.13"
|
||||
langchain-core = "^0.3.29"
|
||||
langchain = "^0.3.14"
|
||||
SQLAlchemy = ">=1.4,<3"
|
||||
requests = "^2"
|
||||
PyYAML = ">=5.3"
|
||||
|
||||
@@ -73,3 +73,29 @@ help:
|
||||
@echo 'tests - run unit tests'
|
||||
@echo 'test TEST_FILE=<test_file> - run all tests in file'
|
||||
@echo 'test_watch - run unit tests in watch mode'
|
||||
|
||||
##########
|
||||
# CUSTOM #
|
||||
##########
|
||||
|
||||
bench-imports:
|
||||
time poetry run python -c "from typing import Any"
|
||||
time poetry run python -c "from typing import Any"
|
||||
time poetry run python -c "from langchain_core import __version__"
|
||||
time poetry run python -c "from langchain_core.tools import tool"
|
||||
time poetry run python -c "from langchain_core.messages import AIMessage"
|
||||
time poetry run python -c "from langchain_core.documents import Document"
|
||||
time poetry run python -c "from langchain_core._api import deprecated"
|
||||
time poetry run python -c "from langchain_core._api import beta"
|
||||
time poetry run python -c "from langchain_core.callbacks import BaseCallbackHandler"
|
||||
time poetry run python -c "from langchain_core.document_loaders import BaseLoader"
|
||||
time poetry run python -c "from langchain_core.embeddings import Embeddings"
|
||||
time poetry run python -c "from langchain_core.language_models import BaseChatModel"
|
||||
time poetry run python -c "from langchain_core.language_models import BaseLLM"
|
||||
time poetry run python -c "from langchain_core.load import loads"
|
||||
time poetry run python -c "from langchain_core.output_parsers import BaseOutputParser"
|
||||
time poetry run python -c "from langchain_core.prompts import ChatPromptTemplate"
|
||||
time poetry run python -c "from langchain_core.runnables import RunnableSerializable"
|
||||
time poetry run python -c "from langchain_core.tools import BaseTool"
|
||||
time poetry run python -c "from langchain_core.tracers import BaseTracer"
|
||||
time poetry run python -c "from langchain_core.vectorstores import VectorStore"
|
||||
|
||||
1
libs/core/it.py
Normal file
1
libs/core/it.py
Normal file
@@ -0,0 +1 @@
|
||||
from langchain_core.tools import tool
|
||||
@@ -6,43 +6,180 @@
|
||||
|
||||
BaseCallbackHandler --> <name>CallbackHandler # Example: AimCallbackHandler
|
||||
"""
|
||||
from typing import TYPE_CHECKING, Any
|
||||
|
||||
from langchain_core.callbacks.base import (
|
||||
AsyncCallbackHandler,
|
||||
BaseCallbackHandler,
|
||||
BaseCallbackManager,
|
||||
CallbackManagerMixin,
|
||||
Callbacks,
|
||||
ChainManagerMixin,
|
||||
LLMManagerMixin,
|
||||
RetrieverManagerMixin,
|
||||
RunManagerMixin,
|
||||
ToolManagerMixin,
|
||||
)
|
||||
from langchain_core.callbacks.file import FileCallbackHandler
|
||||
from langchain_core.callbacks.manager import (
|
||||
AsyncCallbackManager,
|
||||
AsyncCallbackManagerForChainGroup,
|
||||
AsyncCallbackManagerForChainRun,
|
||||
AsyncCallbackManagerForLLMRun,
|
||||
AsyncCallbackManagerForRetrieverRun,
|
||||
AsyncCallbackManagerForToolRun,
|
||||
AsyncParentRunManager,
|
||||
AsyncRunManager,
|
||||
BaseRunManager,
|
||||
CallbackManager,
|
||||
CallbackManagerForChainGroup,
|
||||
CallbackManagerForChainRun,
|
||||
CallbackManagerForLLMRun,
|
||||
CallbackManagerForRetrieverRun,
|
||||
CallbackManagerForToolRun,
|
||||
ParentRunManager,
|
||||
RunManager,
|
||||
adispatch_custom_event,
|
||||
dispatch_custom_event,
|
||||
)
|
||||
from langchain_core.callbacks.stdout import StdOutCallbackHandler
|
||||
from langchain_core.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
|
||||
if TYPE_CHECKING:
|
||||
|
||||
from langchain_core.callbacks.base import (
|
||||
AsyncCallbackHandler,
|
||||
BaseCallbackHandler,
|
||||
BaseCallbackManager,
|
||||
CallbackManagerMixin,
|
||||
Callbacks,
|
||||
ChainManagerMixin,
|
||||
LLMManagerMixin,
|
||||
RetrieverManagerMixin,
|
||||
RunManagerMixin,
|
||||
ToolManagerMixin,
|
||||
)
|
||||
from langchain_core.callbacks.file import FileCallbackHandler
|
||||
from langchain_core.callbacks.manager import (
|
||||
AsyncCallbackManager,
|
||||
AsyncCallbackManagerForChainGroup,
|
||||
AsyncCallbackManagerForChainRun,
|
||||
AsyncCallbackManagerForLLMRun,
|
||||
AsyncCallbackManagerForRetrieverRun,
|
||||
AsyncCallbackManagerForToolRun,
|
||||
AsyncParentRunManager,
|
||||
AsyncRunManager,
|
||||
BaseRunManager,
|
||||
CallbackManager,
|
||||
CallbackManagerForChainGroup,
|
||||
CallbackManagerForChainRun,
|
||||
CallbackManagerForLLMRun,
|
||||
CallbackManagerForRetrieverRun,
|
||||
CallbackManagerForToolRun,
|
||||
ParentRunManager,
|
||||
RunManager,
|
||||
adispatch_custom_event,
|
||||
dispatch_custom_event,
|
||||
)
|
||||
from langchain_core.callbacks.stdout import StdOutCallbackHandler
|
||||
from langchain_core.callbacks.streaming_stdout import StreamingStdOutCallbackHandler
|
||||
|
||||
def __getattr__(name: str) -> Any:
|
||||
if name == "dispatch_custom_event":
|
||||
from langchain_core.callbacks.manager import dispatch_custom_event
|
||||
|
||||
return dispatch_custom_event
|
||||
if name == "adispatch_custom_event":
|
||||
from langchain_core.callbacks.manager import adispatch_custom_event
|
||||
|
||||
return adispatch_custom_event
|
||||
if name == "RetrieverManagerMixin":
|
||||
from langchain_core.callbacks.base import RetrieverManagerMixin
|
||||
|
||||
return RetrieverManagerMixin
|
||||
if name == "LLMManagerMixin":
|
||||
from langchain_core.callbacks.base import LLMManagerMixin
|
||||
|
||||
return LLMManagerMixin
|
||||
if name == "ChainManagerMixin":
|
||||
from langchain_core.callbacks.base import ChainManagerMixin
|
||||
|
||||
return ChainManagerMixin
|
||||
if name == "ToolManagerMixin":
|
||||
from langchain_core.callbacks.base import ToolManagerMixin
|
||||
|
||||
return ToolManagerMixin
|
||||
if name == "Callbacks":
|
||||
from langchain_core.callbacks.base import Callbacks
|
||||
|
||||
return Callbacks
|
||||
if name == "CallbackManagerMixin":
|
||||
from langchain_core.callbacks.base import CallbackManagerMixin
|
||||
|
||||
return CallbackManagerMixin
|
||||
if name == "RunManagerMixin":
|
||||
from langchain_core.callbacks.base import RunManagerMixin
|
||||
|
||||
return RunManagerMixin
|
||||
if name == "BaseCallbackHandler":
|
||||
from langchain_core.callbacks.base import BaseCallbackHandler
|
||||
|
||||
return BaseCallbackHandler
|
||||
if name == "AsyncCallbackHandler":
|
||||
from langchain_core.callbacks.base import AsyncCallbackHandler
|
||||
|
||||
return AsyncCallbackHandler
|
||||
if name == "BaseCallbackManager":
|
||||
from langchain_core.callbacks.manager import BaseCallbackManager
|
||||
|
||||
return BaseCallbackManager
|
||||
if name == "BaseRunManager":
|
||||
from langchain_core.callbacks.manager import BaseRunManager
|
||||
|
||||
return BaseRunManager
|
||||
if name == "RunManager":
|
||||
from langchain_core.callbacks.manager import RunManager
|
||||
|
||||
return RunManager
|
||||
if name == "ParentRunManager":
|
||||
from langchain_core.callbacks.manager import ParentRunManager
|
||||
|
||||
return ParentRunManager
|
||||
if name == "AsyncRunManager":
|
||||
from langchain_core.callbacks.manager import AsyncRunManager
|
||||
|
||||
return AsyncRunManager
|
||||
if name == "AsyncParentRunManager":
|
||||
from langchain_core.callbacks.manager import AsyncParentRunManager
|
||||
|
||||
return AsyncParentRunManager
|
||||
if name == "CallbackManagerForLLMRun":
|
||||
from langchain_core.callbacks.manager import CallbackManagerForLLMRun
|
||||
|
||||
return CallbackManagerForLLMRun
|
||||
if name == "AsyncCallbackManagerForLLMRun":
|
||||
from langchain_core.callbacks.manager import AsyncCallbackManagerForLLMRun
|
||||
|
||||
return AsyncCallbackManagerForLLMRun
|
||||
if name == "CallbackManagerForChainRun":
|
||||
from langchain_core.callbacks.manager import CallbackManagerForChainRun
|
||||
|
||||
return CallbackManagerForChainRun
|
||||
if name == "AsyncCallbackManagerForChainRun":
|
||||
from langchain_core.callbacks.manager import AsyncCallbackManagerForChainRun
|
||||
|
||||
return AsyncCallbackManagerForChainRun
|
||||
if name == "CallbackManagerForToolRun":
|
||||
from langchain_core.callbacks.manager import CallbackManagerForToolRun
|
||||
|
||||
return CallbackManagerForToolRun
|
||||
if name == "AsyncCallbackManagerForToolRun":
|
||||
from langchain_core.callbacks.manager import AsyncCallbackManagerForToolRun
|
||||
|
||||
return AsyncCallbackManagerForToolRun
|
||||
if name == "CallbackManagerForRetrieverRun":
|
||||
from langchain_core.callbacks.manager import CallbackManagerForRetrieverRun
|
||||
|
||||
return CallbackManagerForRetrieverRun
|
||||
if name == "AsyncCallbackManagerForRetrieverRun":
|
||||
from langchain_core.callbacks.manager import AsyncCallbackManagerForRetrieverRun
|
||||
|
||||
return AsyncCallbackManagerForRetrieverRun
|
||||
if name == "CallbackManager":
|
||||
from langchain_core.callbacks.manager import CallbackManager
|
||||
|
||||
return CallbackManager
|
||||
if name == "CallbackManagerForChainGroup":
|
||||
from langchain_core.callbacks.manager import CallbackManagerForChainGroup
|
||||
|
||||
return CallbackManagerForChainGroup
|
||||
if name == "AsyncCallbackManager":
|
||||
from langchain_core.callbacks.manager import AsyncCallbackManager
|
||||
|
||||
return AsyncCallbackManager
|
||||
if name == "AsyncCallbackManagerForChainGroup":
|
||||
from langchain_core.callbacks.manager import AsyncCallbackManagerForChainGroup
|
||||
|
||||
return AsyncCallbackManagerForChainGroup
|
||||
if name == "StdOutCallbackHandler":
|
||||
from langchain_core.callbacks.stdout import StdOutCallbackHandler
|
||||
|
||||
return StdOutCallbackHandler
|
||||
if name == "StreamingStdOutCallbackHandler":
|
||||
from langchain_core.callbacks.streaming_stdout import (
|
||||
StreamingStdOutCallbackHandler,
|
||||
)
|
||||
|
||||
return StreamingStdOutCallbackHandler
|
||||
if name == "FileCallbackHandler":
|
||||
from langchain_core.callbacks.file import FileCallbackHandler
|
||||
|
||||
return FileCallbackHandler
|
||||
msg = f"module {__name__} has no attribute {name}"
|
||||
raise AttributeError(msg)
|
||||
|
||||
__all__ = [
|
||||
"dispatch_custom_event",
|
||||
|
||||
@@ -19,43 +19,144 @@ tool for the job.
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from langchain_core.tools.base import (
|
||||
FILTERED_ARGS as FILTERED_ARGS,
|
||||
)
|
||||
from langchain_core.tools.base import (
|
||||
BaseTool as BaseTool,
|
||||
)
|
||||
from langchain_core.tools.base import (
|
||||
BaseToolkit as BaseToolkit,
|
||||
)
|
||||
from langchain_core.tools.base import (
|
||||
InjectedToolArg as InjectedToolArg,
|
||||
)
|
||||
from langchain_core.tools.base import InjectedToolCallId as InjectedToolCallId
|
||||
from langchain_core.tools.base import SchemaAnnotationError as SchemaAnnotationError
|
||||
from langchain_core.tools.base import (
|
||||
ToolException as ToolException,
|
||||
)
|
||||
from langchain_core.tools.base import (
|
||||
_get_runnable_config_param as _get_runnable_config_param,
|
||||
)
|
||||
from langchain_core.tools.base import (
|
||||
create_schema_from_function as create_schema_from_function,
|
||||
)
|
||||
from langchain_core.tools.convert import (
|
||||
convert_runnable_to_tool as convert_runnable_to_tool,
|
||||
)
|
||||
from langchain_core.tools.convert import tool as tool
|
||||
from langchain_core.tools.render import ToolsRenderer as ToolsRenderer
|
||||
from langchain_core.tools.render import (
|
||||
render_text_description as render_text_description,
|
||||
)
|
||||
from langchain_core.tools.render import (
|
||||
render_text_description_and_args as render_text_description_and_args,
|
||||
)
|
||||
from langchain_core.tools.retriever import RetrieverInput as RetrieverInput
|
||||
from langchain_core.tools.retriever import (
|
||||
create_retriever_tool as create_retriever_tool,
|
||||
)
|
||||
from langchain_core.tools.simple import Tool as Tool
|
||||
from langchain_core.tools.structured import StructuredTool as StructuredTool
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from typing import Any
|
||||
|
||||
from langchain_core.tools.base import (
|
||||
FILTERED_ARGS as FILTERED_ARGS,
|
||||
)
|
||||
from langchain_core.tools.base import (
|
||||
BaseTool as BaseTool,
|
||||
)
|
||||
from langchain_core.tools.base import (
|
||||
BaseToolkit as BaseToolkit,
|
||||
)
|
||||
from langchain_core.tools.base import (
|
||||
InjectedToolArg as InjectedToolArg,
|
||||
)
|
||||
from langchain_core.tools.base import InjectedToolCallId as InjectedToolCallId
|
||||
from langchain_core.tools.base import SchemaAnnotationError as SchemaAnnotationError
|
||||
from langchain_core.tools.base import (
|
||||
ToolException as ToolException,
|
||||
)
|
||||
from langchain_core.tools.base import (
|
||||
_get_runnable_config_param as _get_runnable_config_param,
|
||||
)
|
||||
from langchain_core.tools.base import (
|
||||
create_schema_from_function as create_schema_from_function,
|
||||
)
|
||||
from langchain_core.tools.convert import (
|
||||
convert_runnable_to_tool as convert_runnable_to_tool,
|
||||
)
|
||||
from langchain_core.tools.convert import tool as tool
|
||||
from langchain_core.tools.render import ToolsRenderer as ToolsRenderer
|
||||
from langchain_core.tools.render import (
|
||||
render_text_description as render_text_description,
|
||||
)
|
||||
from langchain_core.tools.render import (
|
||||
render_text_description_and_args as render_text_description_and_args,
|
||||
)
|
||||
from langchain_core.tools.retriever import RetrieverInput as RetrieverInput
|
||||
from langchain_core.tools.retriever import (
|
||||
create_retriever_tool as create_retriever_tool,
|
||||
)
|
||||
from langchain_core.tools.simple import Tool as Tool
|
||||
from langchain_core.tools.structured import StructuredTool as StructuredTool
|
||||
|
||||
def __getattr__(name: str) -> Any:
|
||||
if name == "FILTERED_ARGS":
|
||||
from langchain_core.tools.base import FILTERED_ARGS
|
||||
|
||||
return FILTERED_ARGS
|
||||
if name == "BaseTool":
|
||||
from langchain_core.tools.base import BaseTool
|
||||
|
||||
return BaseTool
|
||||
if name == "BaseToolkit":
|
||||
from langchain_core.tools.base import BaseToolkit
|
||||
|
||||
return BaseToolkit
|
||||
if name == "InjectedToolArg":
|
||||
from langchain_core.tools.base import InjectedToolArg
|
||||
|
||||
return InjectedToolArg
|
||||
if name == "InjectedToolCallId":
|
||||
from langchain_core.tools.base import InjectedToolCallId
|
||||
|
||||
return InjectedToolCallId
|
||||
if name == "SchemaAnnotationError":
|
||||
from langchain_core.tools.base import SchemaAnnotationError
|
||||
|
||||
return SchemaAnnotationError
|
||||
if name == "ToolException":
|
||||
from langchain_core.tools.base import ToolException
|
||||
|
||||
return ToolException
|
||||
if name == "_get_runnable_config_param":
|
||||
from langchain_core.tools.base import _get_runnable_config_param
|
||||
|
||||
return _get_runnable_config_param
|
||||
if name == "create_schema_from_function":
|
||||
from langchain_core.tools.base import create_schema_from_function
|
||||
|
||||
return create_schema_from_function
|
||||
if name == "convert_runnable_to_tool":
|
||||
from langchain_core.tools.convert import convert_runnable_to_tool
|
||||
|
||||
return convert_runnable_to_tool
|
||||
if name == "tool":
|
||||
from langchain_core.tools.convert import tool
|
||||
|
||||
return tool
|
||||
if name == "ToolsRenderer":
|
||||
from langchain_core.tools.render import ToolsRenderer
|
||||
|
||||
return ToolsRenderer
|
||||
if name == "render_text_description":
|
||||
from langchain_core.tools.render import render_text_description
|
||||
|
||||
return render_text_description
|
||||
if name == "render_text_description_and_args":
|
||||
from langchain_core.tools.render import render_text_description_and_args
|
||||
|
||||
return render_text_description_and_args
|
||||
if name == "RetrieverInput":
|
||||
from langchain_core.tools.retriever import RetrieverInput
|
||||
|
||||
return RetrieverInput
|
||||
if name == "create_retriever_tool":
|
||||
from langchain_core.tools.retriever import create_retriever_tool
|
||||
|
||||
return create_retriever_tool
|
||||
if name == "Tool":
|
||||
from langchain_core.tools.simple import Tool
|
||||
|
||||
return Tool
|
||||
if name == "StructuredTool":
|
||||
from langchain_core.tools.structured import StructuredTool
|
||||
|
||||
return StructuredTool
|
||||
raise AttributeError(f"module {__name__} has no attribute {name}")
|
||||
|
||||
__all__ = [
|
||||
"FILTERED_ARGS",
|
||||
"BaseTool",
|
||||
"BaseToolkit",
|
||||
"InjectedToolArg",
|
||||
"InjectedToolCallId",
|
||||
"SchemaAnnotationError",
|
||||
"ToolException",
|
||||
"_get_runnable_config_param",
|
||||
"create_schema_from_function",
|
||||
"convert_runnable_to_tool",
|
||||
"tool",
|
||||
"ToolsRenderer",
|
||||
"render_text_description",
|
||||
"render_text_description_and_args",
|
||||
"RetrieverInput",
|
||||
"create_retriever_tool",
|
||||
"Tool",
|
||||
"StructuredTool",
|
||||
]
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from functools import partial
|
||||
from typing import Optional
|
||||
from typing import Literal, Optional, Union
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
from langchain_core.callbacks import Callbacks
|
||||
from langchain_core.documents import Document
|
||||
from langchain_core.prompts import (
|
||||
BasePromptTemplate,
|
||||
PromptTemplate,
|
||||
@@ -28,11 +29,16 @@ def _get_relevant_documents(
|
||||
document_prompt: BasePromptTemplate,
|
||||
document_separator: str,
|
||||
callbacks: Callbacks = None,
|
||||
) -> str:
|
||||
response_format: Literal["content", "content_and_artifact"] = "content",
|
||||
) -> Union[str, tuple[str, list[Document]]]:
|
||||
docs = retriever.invoke(query, config={"callbacks": callbacks})
|
||||
return document_separator.join(
|
||||
content = document_separator.join(
|
||||
format_document(doc, document_prompt) for doc in docs
|
||||
)
|
||||
if response_format == "content_and_artifact":
|
||||
return (content, docs)
|
||||
|
||||
return content
|
||||
|
||||
|
||||
async def _aget_relevant_documents(
|
||||
@@ -41,12 +47,18 @@ async def _aget_relevant_documents(
|
||||
document_prompt: BasePromptTemplate,
|
||||
document_separator: str,
|
||||
callbacks: Callbacks = None,
|
||||
) -> str:
|
||||
response_format: Literal["content", "content_and_artifact"] = "content",
|
||||
) -> Union[str, tuple[str, list[Document]]]:
|
||||
docs = await retriever.ainvoke(query, config={"callbacks": callbacks})
|
||||
return document_separator.join(
|
||||
content = document_separator.join(
|
||||
[await aformat_document(doc, document_prompt) for doc in docs]
|
||||
)
|
||||
|
||||
if response_format == "content_and_artifact":
|
||||
return (content, docs)
|
||||
|
||||
return content
|
||||
|
||||
|
||||
def create_retriever_tool(
|
||||
retriever: BaseRetriever,
|
||||
@@ -55,6 +67,7 @@ def create_retriever_tool(
|
||||
*,
|
||||
document_prompt: Optional[BasePromptTemplate] = None,
|
||||
document_separator: str = "\n\n",
|
||||
response_format: Literal["content", "content_and_artifact"] = "content",
|
||||
) -> Tool:
|
||||
"""Create a tool to do retrieval of documents.
|
||||
|
||||
@@ -66,6 +79,11 @@ def create_retriever_tool(
|
||||
model, so should be descriptive.
|
||||
document_prompt: The prompt to use for the document. Defaults to None.
|
||||
document_separator: The separator to use between documents. Defaults to "\n\n".
|
||||
response_format: The tool response format. If "content" then the output of
|
||||
the tool is interpreted as the contents of a ToolMessage. If
|
||||
"content_and_artifact" then the output is expected to be a two-tuple
|
||||
corresponding to the (content, artifact) of a ToolMessage (artifact
|
||||
being a list of documents in this case). Defaults to "content".
|
||||
|
||||
Returns:
|
||||
Tool class to pass to an agent.
|
||||
@@ -76,12 +94,14 @@ def create_retriever_tool(
|
||||
retriever=retriever,
|
||||
document_prompt=document_prompt,
|
||||
document_separator=document_separator,
|
||||
response_format=response_format,
|
||||
)
|
||||
afunc = partial(
|
||||
_aget_relevant_documents,
|
||||
retriever=retriever,
|
||||
document_prompt=document_prompt,
|
||||
document_separator=document_separator,
|
||||
response_format=response_format,
|
||||
)
|
||||
return Tool(
|
||||
name=name,
|
||||
@@ -89,4 +109,5 @@ def create_retriever_tool(
|
||||
func=func,
|
||||
coroutine=afunc,
|
||||
args_schema=RetrieverInput,
|
||||
response_format=response_format,
|
||||
)
|
||||
|
||||
@@ -8,11 +8,13 @@ import os
|
||||
import warnings
|
||||
from collections.abc import Sequence
|
||||
from importlib.metadata import version
|
||||
from typing import Any, Callable, Optional, Union, overload
|
||||
from typing import TYPE_CHECKING, Any, Callable, Optional, Union, overload
|
||||
|
||||
from packaging.version import parse
|
||||
from pydantic import SecretStr
|
||||
from requests import HTTPError, Response
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from requests import Response
|
||||
|
||||
from langchain_core.utils.pydantic import (
|
||||
is_pydantic_v1_subclass,
|
||||
@@ -57,7 +59,7 @@ def xor_args(*arg_groups: tuple[str, ...]) -> Callable:
|
||||
return decorator
|
||||
|
||||
|
||||
def raise_for_status_with_text(response: Response) -> None:
|
||||
def raise_for_status_with_text(response: "Response") -> None:
|
||||
"""Raise an error with the response text.
|
||||
|
||||
Args:
|
||||
@@ -66,6 +68,7 @@ def raise_for_status_with_text(response: Response) -> None:
|
||||
Raises:
|
||||
ValueError: If the response has an error status code.
|
||||
"""
|
||||
from requests import HTTPError
|
||||
try:
|
||||
response.raise_for_status()
|
||||
except HTTPError as e:
|
||||
|
||||
339
libs/core/memray-flamegraph-memory.html
Normal file
339
libs/core/memray-flamegraph-memory.html
Normal file
File diff suppressed because one or more lines are too long
@@ -30,8 +30,13 @@ from langchain_core.callbacks import (
|
||||
AsyncCallbackManagerForToolRun,
|
||||
CallbackManagerForToolRun,
|
||||
)
|
||||
from langchain_core.messages import ToolMessage
|
||||
from langchain_core.callbacks.manager import (
|
||||
CallbackManagerForRetrieverRun,
|
||||
)
|
||||
from langchain_core.documents import Document
|
||||
from langchain_core.messages import ToolCall, ToolMessage
|
||||
from langchain_core.messages.tool import ToolOutputMixin
|
||||
from langchain_core.retrievers import BaseRetriever
|
||||
from langchain_core.runnables import (
|
||||
Runnable,
|
||||
RunnableConfig,
|
||||
@@ -2118,6 +2123,57 @@ def test_tool_annotations_preserved() -> None:
|
||||
assert schema.__annotations__ == expected_type_hints
|
||||
|
||||
|
||||
def test_create_retriever_tool() -> None:
|
||||
class MyRetriever(BaseRetriever):
|
||||
def _get_relevant_documents(
|
||||
self, query: str, *, run_manager: CallbackManagerForRetrieverRun
|
||||
) -> list[Document]:
|
||||
return [Document(page_content=f"foo {query}"), Document(page_content="bar")]
|
||||
|
||||
retriever = MyRetriever()
|
||||
retriever_tool = tools.create_retriever_tool(
|
||||
retriever, "retriever_tool_content", "Retriever Tool Content"
|
||||
)
|
||||
assert isinstance(retriever_tool, BaseTool)
|
||||
assert retriever_tool.name == "retriever_tool_content"
|
||||
assert retriever_tool.description == "Retriever Tool Content"
|
||||
assert retriever_tool.invoke("bar") == "foo bar\n\nbar"
|
||||
assert retriever_tool.invoke(
|
||||
ToolCall(
|
||||
name="retriever_tool_content",
|
||||
args={"query": "bar"},
|
||||
id="123",
|
||||
type="tool_call",
|
||||
)
|
||||
) == ToolMessage(
|
||||
"foo bar\n\nbar", tool_call_id="123", name="retriever_tool_content"
|
||||
)
|
||||
|
||||
retriever_tool_artifact = tools.create_retriever_tool(
|
||||
retriever,
|
||||
"retriever_tool_artifact",
|
||||
"Retriever Tool Artifact",
|
||||
response_format="content_and_artifact",
|
||||
)
|
||||
assert isinstance(retriever_tool_artifact, BaseTool)
|
||||
assert retriever_tool_artifact.name == "retriever_tool_artifact"
|
||||
assert retriever_tool_artifact.description == "Retriever Tool Artifact"
|
||||
assert retriever_tool_artifact.invoke("bar") == "foo bar\n\nbar"
|
||||
assert retriever_tool_artifact.invoke(
|
||||
ToolCall(
|
||||
name="retriever_tool_artifact",
|
||||
args={"query": "bar"},
|
||||
id="123",
|
||||
type="tool_call",
|
||||
)
|
||||
) == ToolMessage(
|
||||
"foo bar\n\nbar",
|
||||
artifact=[Document(page_content="foo bar"), Document(page_content="bar")],
|
||||
tool_call_id="123",
|
||||
name="retriever_tool_artifact",
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.skipif(PYDANTIC_MAJOR_VERSION != 2, reason="Testing pydantic v2.")
|
||||
def test_tool_args_schema_pydantic_v2_with_metadata() -> None:
|
||||
from pydantic import BaseModel as BaseModelV2
|
||||
|
||||
23
libs/langchain/poetry.lock
generated
23
libs/langchain/poetry.lock
generated
@@ -1,4 +1,4 @@
|
||||
# This file is automatically @generated by Poetry 1.8.2 and should not be changed by hand.
|
||||
# This file is automatically @generated by Poetry 1.8.4 and should not be changed by hand.
|
||||
|
||||
[[package]]
|
||||
name = "aiohappyeyeballs"
|
||||
@@ -1990,7 +1990,7 @@ files = [
|
||||
|
||||
[[package]]
|
||||
name = "langchain-core"
|
||||
version = "0.3.26"
|
||||
version = "0.3.29"
|
||||
description = "Building applications with LLMs through composability"
|
||||
optional = false
|
||||
python-versions = ">=3.9,<4.0"
|
||||
@@ -2015,7 +2015,7 @@ url = "../core"
|
||||
|
||||
[[package]]
|
||||
name = "langchain-openai"
|
||||
version = "0.2.12"
|
||||
version = "0.2.14"
|
||||
description = "An integration package connecting OpenAI and LangChain"
|
||||
optional = true
|
||||
python-versions = ">=3.9,<4.0"
|
||||
@@ -2023,8 +2023,8 @@ files = []
|
||||
develop = true
|
||||
|
||||
[package.dependencies]
|
||||
langchain-core = "^0.3.21"
|
||||
openai = "^1.55.3"
|
||||
langchain-core = "^0.3.27"
|
||||
openai = "^1.58.1"
|
||||
tiktoken = ">=0.7,<1"
|
||||
|
||||
[package.source]
|
||||
@@ -2790,41 +2790,30 @@ files = [
|
||||
{file = "pandas-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348"},
|
||||
{file = "pandas-2.2.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d9c45366def9a3dd85a6454c0e7908f2b3b8e9c138f5dc38fed7ce720d8453ed"},
|
||||
{file = "pandas-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86976a1c5b25ae3f8ccae3a5306e443569ee3c3faf444dfd0f41cda24667ad57"},
|
||||
{file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b8661b0238a69d7aafe156b7fa86c44b881387509653fdf857bebc5e4008ad42"},
|
||||
{file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:37e0aced3e8f539eccf2e099f65cdb9c8aa85109b0be6e93e2baff94264bdc6f"},
|
||||
{file = "pandas-2.2.3-cp310-cp310-win_amd64.whl", hash = "sha256:56534ce0746a58afaf7942ba4863e0ef81c9c50d3f0ae93e9497d6a41a057645"},
|
||||
{file = "pandas-2.2.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:66108071e1b935240e74525006034333f98bcdb87ea116de573a6a0dccb6c039"},
|
||||
{file = "pandas-2.2.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7c2875855b0ff77b2a64a0365e24455d9990730d6431b9e0ee18ad8acee13dbd"},
|
||||
{file = "pandas-2.2.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd8d0c3be0515c12fed0bdbae072551c8b54b7192c7b1fda0ba56059a0179698"},
|
||||
{file = "pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c124333816c3a9b03fbeef3a9f230ba9a737e9e5bb4060aa2107a86cc0a497fc"},
|
||||
{file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:63cc132e40a2e084cf01adf0775b15ac515ba905d7dcca47e9a251819c575ef3"},
|
||||
{file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:29401dbfa9ad77319367d36940cd8a0b3a11aba16063e39632d98b0e931ddf32"},
|
||||
{file = "pandas-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:3fc6873a41186404dad67245896a6e440baacc92f5b716ccd1bc9ed2995ab2c5"},
|
||||
{file = "pandas-2.2.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b1d432e8d08679a40e2a6d8b2f9770a5c21793a6f9f47fdd52c5ce1948a5a8a9"},
|
||||
{file = "pandas-2.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a5a1595fe639f5988ba6a8e5bc9649af3baf26df3998a0abe56c02609392e0a4"},
|
||||
{file = "pandas-2.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5de54125a92bb4d1c051c0659e6fcb75256bf799a732a87184e5ea503965bce3"},
|
||||
{file = "pandas-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb8ae78d8af97f849404f21411c95062db1496aeb3e56f146f0355c9989319"},
|
||||
{file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfcb5ee8d4d50c06a51c2fffa6cff6272098ad6540aed1a76d15fb9318194d8"},
|
||||
{file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:062309c1b9ea12a50e8ce661145c6aab431b1e99530d3cd60640e255778bd43a"},
|
||||
{file = "pandas-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13"},
|
||||
{file = "pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015"},
|
||||
{file = "pandas-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28"},
|
||||
{file = "pandas-2.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0"},
|
||||
{file = "pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24"},
|
||||
{file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659"},
|
||||
{file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb"},
|
||||
{file = "pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d"},
|
||||
{file = "pandas-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468"},
|
||||
{file = "pandas-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18"},
|
||||
{file = "pandas-2.2.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2"},
|
||||
{file = "pandas-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4"},
|
||||
{file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d"},
|
||||
{file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a"},
|
||||
{file = "pandas-2.2.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc6b93f9b966093cb0fd62ff1a7e4c09e6d546ad7c1de191767baffc57628f39"},
|
||||
{file = "pandas-2.2.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5dbca4c1acd72e8eeef4753eeca07de9b1db4f398669d5994086f788a5d7cc30"},
|
||||
{file = "pandas-2.2.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8cd6d7cc958a3910f934ea8dbdf17b2364827bb4dafc38ce6eef6bb3d65ff09c"},
|
||||
{file = "pandas-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99df71520d25fade9db7c1076ac94eb994f4d2673ef2aa2e86ee039b6746d20c"},
|
||||
{file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31d0ced62d4ea3e231a9f228366919a5ea0b07440d9d4dac345376fd8e1477ea"},
|
||||
{file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7eee9e7cea6adf3e3d24e304ac6b8300646e2a5d1cd3a3c2abed9101b0846761"},
|
||||
{file = "pandas-2.2.3-cp39-cp39-win_amd64.whl", hash = "sha256:4850ba03528b6dd51d6c5d273c46f183f39a9baf3f0143e566b89450965b105e"},
|
||||
{file = "pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667"},
|
||||
@@ -5033,4 +5022,4 @@ type = ["pytest-mypy"]
|
||||
[metadata]
|
||||
lock-version = "2.0"
|
||||
python-versions = ">=3.9,<4.0"
|
||||
content-hash = "1113adf90d5867bd2c173e9022b6eee5ebfa5f77176d0eba67326d38ea5ca1f9"
|
||||
content-hash = "8263b9b9697f3251c51de95c653f97704713cef0c14dbc4f537dbdc8a901fd12"
|
||||
|
||||
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
|
||||
|
||||
[tool.poetry]
|
||||
name = "langchain"
|
||||
version = "0.3.13"
|
||||
version = "0.3.14"
|
||||
description = "Building applications with LLMs through composability"
|
||||
authors = []
|
||||
license = "MIT"
|
||||
@@ -33,7 +33,7 @@ langchain-server = "langchain.server:main"
|
||||
|
||||
[tool.poetry.dependencies]
|
||||
python = ">=3.9,<4.0"
|
||||
langchain-core = "^0.3.26"
|
||||
langchain-core = "^0.3.29"
|
||||
langchain-text-splitters = "^0.3.3"
|
||||
langsmith = ">=0.1.17,<0.3"
|
||||
pydantic = "^2.7.4"
|
||||
|
||||
Reference in New Issue
Block a user