Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-langchain-openai for
openSUSE:Factory checked in at 2026-08-11 17:14:53
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-langchain-openai (Old)
and /work/SRC/openSUSE:Factory/.python-langchain-openai.new.17972 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-langchain-openai"
Tue Aug 11 17:14:53 2026 rev:7 rq:1370578 version:1.4.3
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-langchain-openai/python-langchain-openai.changes
2026-08-09 21:46:05.468271202 +0200
+++
/work/SRC/openSUSE:Factory/.python-langchain-openai.new.17972/python-langchain-openai.changes
2026-08-11 17:16:09.243550127 +0200
@@ -1,0 +2,18 @@
+Mon Aug 10 20:32:53 UTC 2026 - Martin Pluskal <[email protected]>
+
+- Update to 1.4.3:
+ * Filter invalid tool calls out of message content: blocks of type
+ invalid_tool_call are now dropped when converting v1 content back
+ to the Chat Completions format, alongside reasoning and tool_call
+ blocks, so a malformed tool call no longer leaks into the message
+ content while remaining reachable through the message's
+ invalid_tool_calls attribute
+ * Document that the choice between the Chat Completions API and the
+ Responses API is inferred in part from the model name and is
+ independent of base_url, so use_responses_api should be set
+ explicitly when talking to OpenAI-compatible providers
+ * Note in the include_response_headers documentation that some
+ inference providers return additional metadata, such as the
+ served model name, in their response headers
+
+-------------------------------------------------------------------
Old:
----
langchain_openai-1.4.2.tar.gz
New:
----
langchain_openai-1.4.3.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-langchain-openai.spec ++++++
--- /var/tmp/diff_new_pack.qXoTkk/_old 2026-08-11 17:16:09.843575553 +0200
+++ /var/tmp/diff_new_pack.qXoTkk/_new 2026-08-11 17:16:09.847575723 +0200
@@ -17,7 +17,7 @@
Name: python-langchain-openai
-Version: 1.4.2
+Version: 1.4.3
Release: 0
Summary: An integration package connecting OpenAI and LangChain
License: MIT
++++++ langchain_openai-1.4.2.tar.gz -> langchain_openai-1.4.3.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/langchain_openai-1.4.2/PKG-INFO
new/langchain_openai-1.4.3/PKG-INFO
--- old/langchain_openai-1.4.2/PKG-INFO 2020-02-02 01:00:00.000000000 +0100
+++ new/langchain_openai-1.4.3/PKG-INFO 2020-02-02 01:00:00.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 2.4
Name: langchain-openai
-Version: 1.4.2
+Version: 1.4.3
Summary: An integration package connecting OpenAI and LangChain
Project-URL: Homepage,
https://docs.langchain.com/oss/python/integrations/providers/openai
Project-URL: Documentation,
https://reference.langchain.com/python/integrations/langchain_openai/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/langchain_openai-1.4.2/langchain_openai/_version.py
new/langchain_openai-1.4.3/langchain_openai/_version.py
--- old/langchain_openai-1.4.2/langchain_openai/_version.py 2020-02-02
01:00:00.000000000 +0100
+++ new/langchain_openai-1.4.3/langchain_openai/_version.py 2020-02-02
01:00:00.000000000 +0100
@@ -1,3 +1,3 @@
"""Version information for `langchain-openai`."""
-__version__ = "1.4.2"
+__version__ = "1.4.3"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/langchain_openai-1.4.2/langchain_openai/chat_models/_compat.py
new/langchain_openai-1.4.3/langchain_openai/chat_models/_compat.py
--- old/langchain_openai-1.4.2/langchain_openai/chat_models/_compat.py
2020-02-02 01:00:00.000000000 +0100
+++ new/langchain_openai-1.4.3/langchain_openai/chat_models/_compat.py
2020-02-02 01:00:00.000000000 +0100
@@ -165,7 +165,7 @@
if block_type == "text":
# Strip annotations
new_content.append({"type": "text", "text": block["text"]})
- elif block_type in ("reasoning", "tool_call"):
+ elif block_type in ("reasoning", "tool_call",
"invalid_tool_call"):
pass
else:
new_content.append(block)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/langchain_openai-1.4.2/langchain_openai/chat_models/base.py
new/langchain_openai-1.4.3/langchain_openai/chat_models/base.py
--- old/langchain_openai-1.4.2/langchain_openai/chat_models/base.py
2020-02-02 01:00:00.000000000 +0100
+++ new/langchain_openai-1.4.3/langchain_openai/chat_models/base.py
2020-02-02 01:00:00.000000000 +0100
@@ -985,7 +985,11 @@
"""
include_response_headers: bool = False
- """Whether to include response headers in the output message
`response_metadata`."""
+ """Whether to include response headers in the output message
`response_metadata`.
+
+ Note: some inference providers return additional metadata (such as served
model
+ names) in the response headers. Enable to capture these metadata.
+ """
disabled_params: dict[str, Any] | None = Field(default=None)
"""Parameters of the OpenAI client or `chat.completions` endpoint that
should be
@@ -3307,6 +3311,24 @@
)
```
+ !!! warning "Model name can trigger Responses API routing"
+
+ The choice between the Chat Completions API
(`/v1/chat/completions`)
+ and the Responses API (`/v1/responses`) is inferred in part from
the
+ model name, independent of `base_url`.
+
+ `use_responses_api` should generally be set explicitly to avoid
ambiguity,
+ especially when using OpenAI-compatible providers:
+
+ ```python
+ model = ChatOpenAI(
+ base_url="http://localhost:8000/v1",
+ api_key="EMPTY",
+ model="codex-7b-instruct",
+ use_responses_api=False,
+ )
+ ```
+
??? info "`model_kwargs` vs `extra_body`"
Use the correct parameter for different types of API arguments:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/langchain_openai-1.4.2/pyproject.toml
new/langchain_openai-1.4.3/pyproject.toml
--- old/langchain_openai-1.4.2/pyproject.toml 2020-02-02 01:00:00.000000000
+0100
+++ new/langchain_openai-1.4.3/pyproject.toml 2020-02-02 01:00:00.000000000
+0100
@@ -20,7 +20,7 @@
"Topic :: Scientific/Engineering :: Artificial Intelligence",
]
-version = "1.4.2"
+version = "1.4.3"
requires-python = ">=3.10.0,<4.0.0"
dependencies = [
"langchain-core>=1.5.3,<2.0.0",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/langchain_openai-1.4.2/tests/unit_tests/chat_models/test_base.py
new/langchain_openai-1.4.3/tests/unit_tests/chat_models/test_base.py
--- old/langchain_openai-1.4.2/tests/unit_tests/chat_models/test_base.py
2020-02-02 01:00:00.000000000 +0100
+++ new/langchain_openai-1.4.3/tests/unit_tests/chat_models/test_base.py
2020-02-02 01:00:00.000000000 +0100
@@ -3644,6 +3644,13 @@
"args": {"location": "San Francisco"},
},
{
+ "type": "invalid_tool_call",
+ "id": "call_234",
+ "name": "get_weather",
+ "args": '{"location":',
+ "error": "Failed to parse tool call arguments as JSON",
+ },
+ {
"type": "text",
"text": "Hello, world!",
"annotations": [
@@ -3653,11 +3660,29 @@
],
id="chatcmpl-123",
response_metadata={"model_provider": "openai", "model_name":
"gpt-4.1"},
+ invalid_tool_calls=[
+ InvalidToolCall(
+ id="call_234",
+ name="get_weather",
+ args='{"location":',
+ error="Failed to parse tool call arguments as JSON",
+ type="invalid_tool_call",
+ )
+ ],
),
AIMessage(
[{"type": "text", "text": "Hello, world!"}],
id="chatcmpl-123",
response_metadata={"model_provider": "openai", "model_name":
"gpt-4.1"},
+ invalid_tool_calls=[
+ InvalidToolCall(
+ id="call_234",
+ name="get_weather",
+ args='{"location":',
+ error="Failed to parse tool call arguments as JSON",
+ type="invalid_tool_call",
+ )
+ ],
),
)
],
@@ -3668,6 +3693,7 @@
result = _convert_from_v1_to_chat_completions(message_v1)
assert result == expected
assert result.tool_calls == message_v1.tool_calls # tool calls remain
cached
+ assert result.invalid_tool_calls == message_v1.invalid_tool_calls
# Check no mutation
assert message_v1 != result
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/langchain_openai-1.4.2/uv.lock
new/langchain_openai-1.4.3/uv.lock
--- old/langchain_openai-1.4.2/uv.lock 2020-02-02 01:00:00.000000000 +0100
+++ new/langchain_openai-1.4.3/uv.lock 2020-02-02 01:00:00.000000000 +0100
@@ -728,7 +728,7 @@
[[package]]
name = "langchain-openai"
-version = "1.4.2"
+version = "1.4.3"
source = { editable = "." }
dependencies = [
{ name = "langchain-core" },