langchain 1.0.0a6__tar.gz → 1.0.0a7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of langchain might be problematic. Click here for more details.
- {langchain-1.0.0a6 → langchain-1.0.0a7}/PKG-INFO +5 -5
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/__init__.py +1 -1
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/agents/middleware/human_in_the_loop.py +1 -1
- {langchain-1.0.0a6 → langchain-1.0.0a7}/pyproject.toml +23 -32
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/agents/test_middleware_agent.py +9 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/LICENSE +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/README.md +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/_internal/__init__.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/_internal/_documents.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/_internal/_lazy_import.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/_internal/_prompts.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/_internal/_typing.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/_internal/_utils.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/agents/__init__.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/agents/_internal/__init__.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/agents/_internal/_typing.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/agents/middleware/__init__.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/agents/middleware/dynamic_system_prompt.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/agents/middleware/prompt_caching.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/agents/middleware/summarization.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/agents/middleware/types.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/agents/middleware_agent.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/agents/react_agent.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/agents/structured_output.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/agents/tool_node.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/chat_models/__init__.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/chat_models/base.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/documents/__init__.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/embeddings/__init__.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/embeddings/base.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/embeddings/cache.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/globals.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/py.typed +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/storage/__init__.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/storage/encoder_backed.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/storage/exceptions.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/storage/in_memory.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/text_splitter.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/tools/__init__.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/__init__.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/integration_tests/__init__.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/integration_tests/agents/__init__.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/integration_tests/agents/test_response_format.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/integration_tests/cache/__init__.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/integration_tests/cache/fake_embeddings.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/integration_tests/chat_models/__init__.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/integration_tests/chat_models/test_base.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/integration_tests/conftest.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/integration_tests/embeddings/__init__.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/integration_tests/embeddings/test_base.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/integration_tests/test_compile.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/__init__.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/agents/__init__.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/agents/__snapshots__/test_middleware_agent.ambr +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/agents/__snapshots__/test_react_agent_graph.ambr +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/agents/any_str.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/agents/compose-postgres.yml +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/agents/compose-redis.yml +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/agents/conftest.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/agents/conftest_checkpointer.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/agents/conftest_store.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/agents/memory_assert.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/agents/messages.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/agents/model.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/agents/specifications/responses.json +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/agents/specifications/return_direct.json +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/agents/test_react_agent.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/agents/test_react_agent_graph.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/agents/test_response_format.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/agents/test_responses.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/agents/test_responses_spec.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/agents/test_return_direct_spec.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/agents/test_tool_node.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/agents/utils.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/chat_models/__init__.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/chat_models/test_chat_models.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/conftest.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/embeddings/__init__.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/embeddings/test_base.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/embeddings/test_caching.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/embeddings/test_imports.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/storage/__init__.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/storage/test_imports.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/stubs.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/test_dependencies.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/test_imports.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/test_pytest_config.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/tools/__init__.py +0 -0
- {langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/tools/test_imports.py +0 -0
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: langchain
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.0a7
|
|
4
4
|
Summary: Building applications with LLMs through composability
|
|
5
5
|
License: MIT
|
|
6
6
|
Project-URL: Source Code, https://github.com/langchain-ai/langchain/tree/master/libs/langchain
|
|
7
7
|
Project-URL: Release Notes, https://github.com/langchain-ai/langchain/releases?q=tag%3A%22langchain%3D%3D0%22&expanded=true
|
|
8
8
|
Project-URL: repository, https://github.com/langchain-ai/langchain
|
|
9
|
-
Requires-Python:
|
|
9
|
+
Requires-Python: <4.0.0,>=3.10.0
|
|
10
10
|
Requires-Dist: langchain-core<2.0.0,>=0.3.75
|
|
11
|
-
Requires-Dist: langchain-text-splitters<
|
|
12
|
-
Requires-Dist: langgraph
|
|
13
|
-
Requires-Dist: pydantic
|
|
11
|
+
Requires-Dist: langchain-text-splitters<2.0.0,>=0.3.11
|
|
12
|
+
Requires-Dist: langgraph<2.0.0,>=0.6.7
|
|
13
|
+
Requires-Dist: pydantic<3.0.0,>=2.7.4
|
|
14
14
|
Provides-Extra: community
|
|
15
15
|
Requires-Dist: langchain-community; extra == "community"
|
|
16
16
|
Provides-Extra: anthropic
|
|
@@ -149,7 +149,7 @@ class HumanInTheLoopMiddleware(AgentMiddleware):
|
|
|
149
149
|
if not messages:
|
|
150
150
|
return None
|
|
151
151
|
|
|
152
|
-
last_ai_msg = next((msg for msg in messages if isinstance(msg, AIMessage)), None)
|
|
152
|
+
last_ai_msg = next((msg for msg in reversed(messages) if isinstance(msg, AIMessage)), None)
|
|
153
153
|
if not last_ai_msg or not last_ai_msg.tool_calls:
|
|
154
154
|
return None
|
|
155
155
|
|
|
@@ -6,15 +6,15 @@ build-backend = "pdm.backend"
|
|
|
6
6
|
|
|
7
7
|
[project]
|
|
8
8
|
authors = []
|
|
9
|
-
requires-python = ">=3.10"
|
|
9
|
+
requires-python = ">=3.10.0,<4.0.0"
|
|
10
10
|
dependencies = [
|
|
11
|
-
"langchain-core
|
|
12
|
-
"langchain-text-splitters
|
|
13
|
-
"langgraph>=0.6.7",
|
|
14
|
-
"pydantic>=2.7.4",
|
|
11
|
+
"langchain-core>=0.3.75,<2.0.0",
|
|
12
|
+
"langchain-text-splitters>=0.3.11,<2.0.0",
|
|
13
|
+
"langgraph>=0.6.7,<2.0.0",
|
|
14
|
+
"pydantic>=2.7.4,<3.0.0",
|
|
15
15
|
]
|
|
16
16
|
name = "langchain"
|
|
17
|
-
version = "1.0.
|
|
17
|
+
version = "1.0.0a7"
|
|
18
18
|
description = "Building applications with LLMs through composability"
|
|
19
19
|
readme = "README.md"
|
|
20
20
|
|
|
@@ -81,35 +81,32 @@ repository = "https://github.com/langchain-ai/langchain"
|
|
|
81
81
|
|
|
82
82
|
[dependency-groups]
|
|
83
83
|
test = [
|
|
84
|
-
"pytest
|
|
85
|
-
"pytest-cov>=4.0.0",
|
|
86
|
-
"pytest-watcher>=0.2.6",
|
|
87
|
-
"pytest-asyncio>=0.23.2",
|
|
88
|
-
"pytest-socket>=0.6.0",
|
|
89
|
-
"
|
|
90
|
-
"pytest-
|
|
84
|
+
"pytest>=8.0.0,<9.0.0",
|
|
85
|
+
"pytest-cov>=4.0.0,<8.0.0",
|
|
86
|
+
"pytest-watcher>=0.2.6,<1.0.0",
|
|
87
|
+
"pytest-asyncio>=0.23.2,<2.0.0",
|
|
88
|
+
"pytest-socket>=0.6.0,<1.0.0",
|
|
89
|
+
"pytest-xdist<4.0.0,>=3.6.1",
|
|
90
|
+
"pytest-mock",
|
|
91
|
+
"syrupy>=4.0.2,<5.0.0",
|
|
92
|
+
"toml>=0.10.2,<1.0.0",
|
|
91
93
|
"langchain-tests",
|
|
92
94
|
"langchain-text-splitters",
|
|
93
95
|
"langchain-openai",
|
|
94
|
-
"toml>=0.10.2",
|
|
95
|
-
"pytest-mock",
|
|
96
|
-
]
|
|
97
|
-
codespell = [
|
|
98
|
-
"codespell<3.0.0,>=2.2.0",
|
|
99
96
|
]
|
|
100
97
|
lint = [
|
|
101
|
-
"ruff>=0.12.2",
|
|
98
|
+
"ruff>=0.12.2,<0.13.0",
|
|
102
99
|
]
|
|
103
100
|
typing = [
|
|
104
|
-
"mypy
|
|
105
|
-
"types-toml>=0.10.8.20240310",
|
|
101
|
+
"mypy>=1.18.1,<1.19.0",
|
|
102
|
+
"types-toml>=0.10.8.20240310,<1.0.0.0",
|
|
106
103
|
]
|
|
107
104
|
test_integration = [
|
|
108
|
-
"vcrpy>=7.0",
|
|
109
|
-
"wrapt>=1.15.0",
|
|
110
|
-
"python-dotenv>=1.0.0",
|
|
111
|
-
"cassio>=0.1.0",
|
|
112
|
-
"langchainhub>=0.1.16",
|
|
105
|
+
"vcrpy>=7.0.0,<8.0.0",
|
|
106
|
+
"wrapt>=1.15.0,<2.0.0",
|
|
107
|
+
"python-dotenv>=1.0.0,<2.0.0",
|
|
108
|
+
"cassio>=0.1.0,<1.0.0",
|
|
109
|
+
"langchainhub>=0.1.16,<1.0.0",
|
|
113
110
|
"langchain-core",
|
|
114
111
|
"langchain-text-splitters",
|
|
115
112
|
]
|
|
@@ -131,7 +128,6 @@ path = "../partners/openai"
|
|
|
131
128
|
editable = true
|
|
132
129
|
|
|
133
130
|
[tool.ruff]
|
|
134
|
-
target-version = "py310"
|
|
135
131
|
exclude = [
|
|
136
132
|
"tests/integration_tests/examples/non-utf8-encoding.py",
|
|
137
133
|
]
|
|
@@ -231,11 +227,6 @@ exclude = [
|
|
|
231
227
|
disallow_any_generics = false
|
|
232
228
|
warn_return_any = false
|
|
233
229
|
|
|
234
|
-
[tool.codespell]
|
|
235
|
-
skip = ".git,*.pdf,*.svg,*.pdf,*.yaml,*.ipynb,poetry.lock,*.min.js,*.css,package-lock.json,example_data,_dist,examples,*.trig"
|
|
236
|
-
ignore-regex = ".*(Stati Uniti|Tense=Pres).*"
|
|
237
|
-
ignore-words-list = "momento,collison,ned,foor,reworkd,parth,whats,aapply,mysogyny,unsecure,damon,crate,aadd,symbl,precesses,accademia,nin"
|
|
238
|
-
|
|
239
230
|
[tool.coverage.run]
|
|
240
231
|
omit = [
|
|
241
232
|
"tests/*",
|
|
@@ -438,6 +438,15 @@ def test_human_in_the_loop_middleware_single_tool_accept() -> None:
|
|
|
438
438
|
assert result["messages"][0] == ai_message
|
|
439
439
|
assert result["messages"][0].tool_calls == ai_message.tool_calls
|
|
440
440
|
|
|
441
|
+
state["messages"].append(
|
|
442
|
+
ToolMessage(content="Tool message", name="test_tool", tool_call_id="1")
|
|
443
|
+
)
|
|
444
|
+
state["messages"].append(AIMessage(content="test_tool called with result: Tool message"))
|
|
445
|
+
|
|
446
|
+
result = middleware.after_model(state)
|
|
447
|
+
# No interrupts needed
|
|
448
|
+
assert result is None
|
|
449
|
+
|
|
441
450
|
|
|
442
451
|
def test_human_in_the_loop_middleware_single_tool_edit() -> None:
|
|
443
452
|
"""Test HumanInTheLoopMiddleware with single tool edit response."""
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langchain-1.0.0a6 → langchain-1.0.0a7}/langchain/agents/middleware/dynamic_system_prompt.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langchain-1.0.0a6 → langchain-1.0.0a7}/tests/integration_tests/agents/test_response_format.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/agents/specifications/responses.json
RENAMED
|
File without changes
|
{langchain-1.0.0a6 → langchain-1.0.0a7}/tests/unit_tests/agents/specifications/return_direct.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|