summaryrefslogtreecommitdiff
path: root/misc/py-langchain
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--misc/py-langchain-anthropic/Makefile26
-rw-r--r--misc/py-langchain-anthropic/distinfo3
-rw-r--r--misc/py-langchain-anthropic/pkg-descr2
-rw-r--r--misc/py-langchain-core/Makefile46
-rw-r--r--misc/py-langchain-core/distinfo3
-rw-r--r--misc/py-langchain-core/pkg-descr2
-rw-r--r--misc/py-langchain-google-genai/Makefile33
-rw-r--r--misc/py-langchain-google-genai/distinfo3
-rw-r--r--misc/py-langchain-google-genai/pkg-descr2
-rw-r--r--misc/py-langchain-openai/Makefile29
-rw-r--r--misc/py-langchain-openai/distinfo3
-rw-r--r--misc/py-langchain-openai/pkg-descr1
-rw-r--r--misc/py-langchain-tests/Makefile35
-rw-r--r--misc/py-langchain-tests/distinfo3
-rw-r--r--misc/py-langchain-tests/pkg-descr2
-rw-r--r--misc/py-langchain-text-splitters/Makefile33
-rw-r--r--misc/py-langchain-text-splitters/distinfo3
-rw-r--r--misc/py-langchain-text-splitters/pkg-descr2
-rw-r--r--misc/py-langchain/Makefile30
-rw-r--r--misc/py-langchain/distinfo3
-rw-r--r--misc/py-langchain/pkg-descr12
21 files changed, 276 insertions, 0 deletions
diff --git a/misc/py-langchain-anthropic/Makefile b/misc/py-langchain-anthropic/Makefile
new file mode 100644
index 000000000000..beaf312bb862
--- /dev/null
+++ b/misc/py-langchain-anthropic/Makefile
@@ -0,0 +1,26 @@
+PORTNAME= langchain-anthropic
+DISTVERSION= 0.3.17
+CATEGORIES= misc python # machine-learning
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTNAME= ${PORTNAME:S/-/_/}-${PORTVERSION}
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= LangChain: Integration package connecting Anthropic and LangChain
+WWW= https://github.com/langchain-ai/langchain/tree/master/libs/partners/anthropic
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pdm-backend>0:devel/py-pdm-backend@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}anthropic>=0:misc/py-anthropic@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}langchain-core>=0.3.68:misc/py-langchain-core@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pydantic2>=2.7.4:devel/py-pydantic2@${PY_FLAVOR}
+
+USES= python
+USE_PYTHON= pep517 autoplist
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/misc/py-langchain-anthropic/distinfo b/misc/py-langchain-anthropic/distinfo
new file mode 100644
index 000000000000..3a8864d81a72
--- /dev/null
+++ b/misc/py-langchain-anthropic/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1752898952
+SHA256 (langchain_anthropic-0.3.17.tar.gz) = f2c2a0382ed7992204d790ff8538448f5243f4dbb1e798256ef790c9a69033e4
+SIZE (langchain_anthropic-0.3.17.tar.gz) = 55831
diff --git a/misc/py-langchain-anthropic/pkg-descr b/misc/py-langchain-anthropic/pkg-descr
new file mode 100644
index 000000000000..c3daff08f845
--- /dev/null
+++ b/misc/py-langchain-anthropic/pkg-descr
@@ -0,0 +1,2 @@
+langchain-anthropic is an integration package connecting Anthropic
+and LangChain.
diff --git a/misc/py-langchain-core/Makefile b/misc/py-langchain-core/Makefile
new file mode 100644
index 000000000000..b6c749269703
--- /dev/null
+++ b/misc/py-langchain-core/Makefile
@@ -0,0 +1,46 @@
+PORTNAME= langchain-core
+DISTVERSION= 0.3.70
+CATEGORIES= misc python # machine-learning
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTNAME= ${PORTNAME:S/-/_/}-${PORTVERSION}
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= LangChain: Building applications with LLMs through composability
+WWW= https://python.langchain.com/docs/introduction/ \
+ https://github.com/langchain-ai/langchain
+
+LICENSE= MIT
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pdm-backend>0:devel/py-pdm-backend@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}jsonpatch>=1.33:devel/py-jsonpatch@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}langsmith>=0.3.45:misc/py-langsmith@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}packaging>=23.2:devel/py-packaging@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pydantic2>=2.7.4:devel/py-pydantic2@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pyyaml>=5.3:devel/py-pyyaml@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}tenacity>=8.4.0<10.0.0>=8.1.0:devel/py-tenacity@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}typing-extensions>=4.7:devel/py-typing-extensions@${PY_FLAVOR}
+TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}blockbuster>=1.5.18:devel/py-blockbuster@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}freezegun>=1.2.2:devel/py-freezegun@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}grandalf>=0.8:math/py-grandalf@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}langchain-tests>0:misc/py-langchain-tests@${PY_FLAVOR} \
+ ${PYNUMPY} \
+ ${PYTHON_PKGNAMEPREFIX}pytest-asyncio>=0.21.1:devel/py-pytest-asyncio@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytest-benchmark>0:devel/py-pytest-benchmark@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytest-codspeed>0:devel/py-pytest-codspeed@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytest-mock>=3.10.0:devel/py-pytest-mock@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytest-socket>=0.7.0:devel/py-pytest-socket@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytest-watcher>0:devel/py-pytest-watcher@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytest-xdist>=3.6.1:devel/py-pytest-xdist@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}responses>=0.25.0:devel/py-responses@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}syrupy>=4.0.2:devel/py-syrupy@${PY_FLAVOR}
+
+USES= python
+USE_PYTHON= pep517 autoplist pytest
+
+NO_ARCH= yes
+
+# tests fail with: INTERNALERROR> ValueError: no option named 'only_extended'
+
+.include <bsd.port.mk>
diff --git a/misc/py-langchain-core/distinfo b/misc/py-langchain-core/distinfo
new file mode 100644
index 000000000000..72770f30ecb4
--- /dev/null
+++ b/misc/py-langchain-core/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1753241145
+SHA256 (langchain_core-0.3.70.tar.gz) = 58551e5411ff9f92c7c8f4379e07e762ca66800e821cd904e19881fe41f691ee
+SIZE (langchain_core-0.3.70.tar.gz) = 566031
diff --git a/misc/py-langchain-core/pkg-descr b/misc/py-langchain-core/pkg-descr
new file mode 100644
index 000000000000..3ba3698d7f43
--- /dev/null
+++ b/misc/py-langchain-core/pkg-descr
@@ -0,0 +1,2 @@
+langchain-core is a core library of LangChain.
+LangChain is a framework for building LLM-powered applications.
diff --git a/misc/py-langchain-google-genai/Makefile b/misc/py-langchain-google-genai/Makefile
new file mode 100644
index 000000000000..aeb7ef696497
--- /dev/null
+++ b/misc/py-langchain-google-genai/Makefile
@@ -0,0 +1,33 @@
+PORTNAME= langchain-google-genai
+DISTVERSION= 2.1.8
+CATEGORIES= misc python # machine-learning
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTNAME= ${PORTNAME:S/-/_/g}-${PORTVERSION}
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= Integration package connecting Google's genai package and LangChain
+WWW= https://github.com/langchain-ai/langchain-google
+
+LICENSE= MIT
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}poetry-core>0:devel/py-poetry-core@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}filetype>=1.2.0:devel/py-filetype@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}google-ai-generativelanguage>=0.6.18:misc/py-google-ai-generativelanguage@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}langchain-core>=0.3.68:misc/py-langchain-core@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pydantic2>=2:devel/py-pydantic2@${PY_FLAVOR}
+#TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}freezegun>=1.2.2:devel/py-freezegun@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}langchain-tests>=0.3.20:misc/py-langchain-tests@${PY_FLAVOR} \
+ ${PYNUMPY} \
+ ${PYTHON_PKGNAMEPREFIX}pytest-asyncio>=0.21.1:devel/py-pytest-asyncio@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytest-mock>=3.10.0:devel/py-pytest-mock@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytest-watcher>0:devel/py-pytest-watcher@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}syrupy>=4.0.2:devel/py-syrupy@${PY_FLAVOR}
+
+USES= python
+USE_PYTHON= pep517 autoplist
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/misc/py-langchain-google-genai/distinfo b/misc/py-langchain-google-genai/distinfo
new file mode 100644
index 000000000000..9a7eeaa23c1c
--- /dev/null
+++ b/misc/py-langchain-google-genai/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1752881141
+SHA256 (langchain_google_genai-2.1.8.tar.gz) = dfdc491f66880ed85f88dc117f84d3feb19108ad4b8c408ad1d0efb27b7c9dd6
+SIZE (langchain_google_genai-2.1.8.tar.gz) = 44298
diff --git a/misc/py-langchain-google-genai/pkg-descr b/misc/py-langchain-google-genai/pkg-descr
new file mode 100644
index 000000000000..9d296ce1a0d8
--- /dev/null
+++ b/misc/py-langchain-google-genai/pkg-descr
@@ -0,0 +1,2 @@
+langchain-google-genai is an integration package connecting Google's genai
+package and LangChain.
diff --git a/misc/py-langchain-openai/Makefile b/misc/py-langchain-openai/Makefile
new file mode 100644
index 000000000000..5b82f11a564b
--- /dev/null
+++ b/misc/py-langchain-openai/Makefile
@@ -0,0 +1,29 @@
+PORTNAME= langchain-openai
+DISTVERSION= 0.3.28
+CATEGORIES= misc python # machine-learning
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTNAME= ${PORTNAME:S/-/_/}-${PORTVERSION}
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= LangChain: Integration package connecting OpenAI and LangChain
+WWW= https://python.langchain.com/docs/introduction/ \
+ https://github.com/langchain-ai/langchain
+
+LICENSE= MIT
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pdm-backend>0:devel/py-pdm-backend@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}langchain-core>=0.3.68:misc/py-langchain-core@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}openai>=1.86.0:misc/py-openai@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}tiktoken>=0.7:textproc/py-tiktoken@${PY_FLAVOR}
+
+USES= python
+USE_PYTHON= pep517 autoplist pytest
+
+NO_ARCH= yes
+
+# tests as of 0.3.28: 233 failed, 262 passed, 11 skipped, 2 xfailed, 5 xpassed, 52 warnings, 131 errors, 8 rerun in 217.53s (0:03:37)
+
+.include <bsd.port.mk>
diff --git a/misc/py-langchain-openai/distinfo b/misc/py-langchain-openai/distinfo
new file mode 100644
index 000000000000..41608050abd2
--- /dev/null
+++ b/misc/py-langchain-openai/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1752886986
+SHA256 (langchain_openai-0.3.28.tar.gz) = 6c669548dbdea325c034ae5ef699710e2abd054c7354fdb3ef7bf909dc739d9e
+SIZE (langchain_openai-0.3.28.tar.gz) = 753951
diff --git a/misc/py-langchain-openai/pkg-descr b/misc/py-langchain-openai/pkg-descr
new file mode 100644
index 000000000000..399e1f7dc0e7
--- /dev/null
+++ b/misc/py-langchain-openai/pkg-descr
@@ -0,0 +1 @@
+langchain-openai is an integration package connecting OpenAI and LangChain.
diff --git a/misc/py-langchain-tests/Makefile b/misc/py-langchain-tests/Makefile
new file mode 100644
index 000000000000..b2f71b7b89cc
--- /dev/null
+++ b/misc/py-langchain-tests/Makefile
@@ -0,0 +1,35 @@
+PORTNAME= langchain-tests
+DISTVERSION= 0.3.20
+CATEGORIES= misc python # machine-learning
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTNAME= ${PORTNAME:S/-/_/}-${PORTVERSION}
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= LangChain: Standard tests for LangChain implementations
+WWW= https://github.com/langchain-ai/langchain/tree/master/libs/standard-tests
+
+LICENSE= MIT
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pdm-backend>0:devel/py-pdm-backend@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}httpx>=0.25.0:www/py-httpx@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}langchain-core>=0.3.63:misc/py-langchain-core@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}numpy>=1.26.2:math/py-numpy@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytest>=7:devel/py-pytest@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytest-asyncio>=0.20:devel/py-pytest-asyncio@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytest-benchmark>0:devel/py-pytest-benchmark@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytest-codspeed>0:devel/py-pytest-codspeed@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytest-recording>0:devel/py-pytest-recording@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytest-socket>=0.6.0:devel/py-pytest-socket@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}syrupy>=4:devel/py-syrupy@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}vcrpy>=7.0:devel/py-vcrpy@${PY_FLAVOR}
+
+USES= python
+USE_PYTHON= pep517 autoplist pytest
+
+NO_ARCH= yes
+
+# tests as of 0.3.20: 127 passed, 27 skipped, 1 warning in 6.57s
+
+.include <bsd.port.mk>
diff --git a/misc/py-langchain-tests/distinfo b/misc/py-langchain-tests/distinfo
new file mode 100644
index 000000000000..697c53ffc950
--- /dev/null
+++ b/misc/py-langchain-tests/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1752828444
+SHA256 (langchain_tests-0.3.20.tar.gz) = b94c05e37d191d4768a1a5064f2ca4053bacd48ff41e10af245ffa6a065ead4d
+SIZE (langchain_tests-0.3.20.tar.gz) = 42979
diff --git a/misc/py-langchain-tests/pkg-descr b/misc/py-langchain-tests/pkg-descr
new file mode 100644
index 000000000000..099201d837b2
--- /dev/null
+++ b/misc/py-langchain-tests/pkg-descr
@@ -0,0 +1,2 @@
+Test support framework for LangChain,
+framework for building LLM-powered applications.
diff --git a/misc/py-langchain-text-splitters/Makefile b/misc/py-langchain-text-splitters/Makefile
new file mode 100644
index 000000000000..d9466b0060bc
--- /dev/null
+++ b/misc/py-langchain-text-splitters/Makefile
@@ -0,0 +1,33 @@
+PORTNAME= langchain-text-splitters
+DISTVERSION= 0.3.8
+CATEGORIES= misc python # machine-learning
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+DISTNAME= ${PORTNAME:S/-/_/g}-${PORTVERSION}
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= LangChain: Text splitting utilities
+WWW= https://github.com/langchain-ai/langchain/tree/master/libs/text-splitter \
+ https://github.com/langchain-ai/langchain
+
+LICENSE= MIT
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pdm-backend>0:devel/py-pdm-backend@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}langchain-core>=0.3.51:misc/py-langchain-core@${PY_FLAVOR}
+TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}freezegun>0:devel/py-freezegun@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}langchain-core>0:misc/py-langchain-core@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytest-asyncio>=0.21.1:devel/py-pytest-asyncio@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytest-mock>=3.10.0:devel/py-pytest-mock@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytest-socket>=0.7.0:devel/py-pytest-socket@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytest-watcher>0:devel/py-pytest-watcher@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pytest-xdist>=3.6.1:devel/py-pytest-xdist@${PY_FLAVOR}
+
+USES= python
+USE_PYTHON= pep517 autoplist pytest
+
+NO_ARCH= yes
+
+# tests fail: INTERNALERROR> ValueError: no option named 'only_extended'
+
+.include <bsd.port.mk>
diff --git a/misc/py-langchain-text-splitters/distinfo b/misc/py-langchain-text-splitters/distinfo
new file mode 100644
index 000000000000..fc86fa0d063d
--- /dev/null
+++ b/misc/py-langchain-text-splitters/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1752863677
+SHA256 (langchain_text_splitters-0.3.8.tar.gz) = 116d4b9f2a22dda357d0b79e30acf005c5518177971c66a9f1ab0edfdb0f912e
+SIZE (langchain_text_splitters-0.3.8.tar.gz) = 42128
diff --git a/misc/py-langchain-text-splitters/pkg-descr b/misc/py-langchain-text-splitters/pkg-descr
new file mode 100644
index 000000000000..19a318f629d2
--- /dev/null
+++ b/misc/py-langchain-text-splitters/pkg-descr
@@ -0,0 +1,2 @@
+LangChain Text Splitters contains utilities for splitting into chunks a wide
+variety of text documents.
diff --git a/misc/py-langchain/Makefile b/misc/py-langchain/Makefile
new file mode 100644
index 000000000000..a130ad988637
--- /dev/null
+++ b/misc/py-langchain/Makefile
@@ -0,0 +1,30 @@
+PORTNAME= langchain
+DISTVERSION= 0.3.26
+CATEGORIES= misc python # machine-learning
+MASTER_SITES= PYPI
+PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= LangChain: Building applications with LLMs through composability
+WWW= https://python.langchain.com/docs/introduction/ \
+ https://github.com/langchain-ai/langchain
+
+LICENSE= MIT
+
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pdm-backend>0:devel/py-pdm-backend@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlalchemy20>=1.4:databases/py-sqlalchemy20@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}async_timeout>=4.0.0:devel/py-async_timeout@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}langchain-core>=0.3.66:misc/py-langchain-core@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}langchain-text-splitters>=0.3.8:misc/py-langchain-text-splitters@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}langsmith>=0.1.17:misc/py-langsmith@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pydantic2>=2.7.4:devel/py-pydantic2@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}requests>=2:www/py-requests@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}pyyaml>=5.3:devel/py-pyyaml@${PY_FLAVOR}
+
+USES= python
+USE_PYTHON= pep517 autoplist pytest
+
+NO_ARCH= yes
+
+.include <bsd.port.mk>
diff --git a/misc/py-langchain/distinfo b/misc/py-langchain/distinfo
new file mode 100644
index 000000000000..acb95cba4289
--- /dev/null
+++ b/misc/py-langchain/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1752880089
+SHA256 (langchain-0.3.26.tar.gz) = 8ff034ee0556d3e45eff1f1e96d0d745ced57858414dba7171c8ebdbeb5580c9
+SIZE (langchain-0.3.26.tar.gz) = 10226808
diff --git a/misc/py-langchain/pkg-descr b/misc/py-langchain/pkg-descr
new file mode 100644
index 000000000000..960dec222104
--- /dev/null
+++ b/misc/py-langchain/pkg-descr
@@ -0,0 +1,12 @@
+LangChain is a framework for developing applications powered by large language
+models (LLMs).
+
+LangChain simplifies every stage of the LLM application lifecycle:
+* Development: Build your applications using LangChain's open-source components
+ and third-party integrations. Use LangGraph to build stateful agents with
+ first-class streaming and human-in-the-loop support.
+* Productionization: Use LangSmith to inspect, monitor and evaluate your
+ applications, so that you can continuously optimize and deploy with
+ confidence.
+* Deployment: Turn your LangGraph applications into production-ready APIs and
+ Assistants with LangGraph Platform.