Commit Graph

1328 Commits

Author SHA1 Message Date
Mason Daugherty
8f3674cae3 Merge branch 'cc/1.0/standard_content' into mdrxy/call-version 2025-08-26 20:26:57 -04:00
Mason Daugherty
32941d6ec5 . 2025-08-26 20:25:09 -04:00
Mason Daugherty
8a14148336 . 2025-08-26 19:55:32 -04:00
ccurme
2d450d4d3b fix(core): (v1) finish test (#32701) 2025-08-26 18:03:47 -04:00
Mason Daugherty
e49156e63f chore: rfc to use .text instead of .text() (#32699) 2025-08-26 16:54:04 -04:00
Mason Daugherty
04bcccf2fe Merge branch 'cc/1.0/standard_content' of github.com:langchain-ai/langchain into mdrxy/call-version 2025-08-26 16:43:15 -04:00
Mason Daugherty
18d1cf236e . 2025-08-26 16:42:58 -04:00
ccurme
447db13473 feat(openai): (v1) support content_blocks on legacy v0 responses API format (#32700) 2025-08-26 16:33:59 -04:00
Mason Daugherty
fa5d49f7b6 Merge branch 'cc/1.0/standard_content' of github.com:langchain-ai/langchain into mdrxy/call-version 2025-08-26 16:04:21 -04:00
Mason Daugherty
395515762e Merge branch 'wip-v1.0' into cc/1.0/standard_content 2025-08-26 15:52:11 -04:00
Mason Daugherty
a2322f68ba Merge branch 'master' into wip-v1.0 2025-08-26 15:51:57 -04:00
Mason Daugherty
3d08b6bd11 chore: adress pytest-asyncio deprecation warnings + other nits (#32696)
amongst some linting imcompatible rules
2025-08-26 15:51:38 -04:00
ccurme
2bbd034f85 fix(core): (v1) invoke callback prior to yielding final chunk (#32695) 2025-08-26 14:58:43 -04:00
Mason Daugherty
dc5ac6695c . 2025-08-26 14:43:31 -04:00
Mason Daugherty
620779f61b . 2025-08-26 14:38:09 -04:00
Mason Daugherty
720d08e932 . 2025-08-26 14:24:32 -04:00
Mason Daugherty
5222d51fb0 . 2025-08-26 14:22:11 -04:00
Mason Daugherty
72b2436b49 ss 2025-08-26 14:12:04 -04:00
Mason Daugherty
19d3a73646 . 2025-08-26 14:11:01 -04:00
Mason Daugherty
df3db473b8 Merge branch 'cc/1.0/standard_content' of github.com:langchain-ai/langchain into mdrxy/call-version 2025-08-26 13:55:01 -04:00
Mason Daugherty
706ea1b757 . 2025-08-26 13:54:22 -04:00
Mason Daugherty
f1b676c0ee . 2025-08-26 13:54:14 -04:00
Mason Daugherty
518f4dfccb . 2025-08-26 13:54:04 -04:00
ccurme
c63c3ea290 feat(core): (v1) add sentinel value to output_version (#32692) 2025-08-26 13:29:20 -04:00
ccurme
dbebe2ca97 release(core): 0.3.75 (#32693) 2025-08-26 11:12:03 -04:00
ccurme
fe9599f118 feat(core): parse tool_call_chunks in content in aggregated stream (#32664) 2025-08-25 15:38:22 -04:00
ccurme
97bd2cf938 fix(core): (v1) fix PDF input translation for openai chat completions (#32673) 2025-08-25 15:15:03 -04:00
Mason Daugherty
5ef18e8f5b feat(core): add .text property, introduce TextAccessor for backward compatibility with text access methods (#32672) 2025-08-25 14:51:40 -04:00
ccurme
f33480c2cf feat(core): trace response body on error (#32653) 2025-08-25 14:28:19 -04:00
Mason Daugherty
4e0fd330aa fix: update content_blocks property docstring 2025-08-25 14:10:21 -04:00
Mason Daugherty
1c55536ec1 chore(core): add note about backward compatibility for tool_calls in additional_kwargs in JsonOutputKeyToolsParser 2025-08-25 10:30:41 -04:00
Maitrey Talware
622337a297 docs(docs): fixed typos in documentations (#32661)
Minor typo fixes. (Not linked to current open issues)
2025-08-25 10:02:53 -04:00
Chester Curme
2d9fe703cb Merge branch 'wip-v1.0' into cc/1.0/standard_content 2025-08-25 09:56:39 -04:00
Chester Curme
7a108618ae Merge branch 'master' into wip-v1.0 2025-08-25 09:39:39 -04:00
ccurme
62d746e630 feat(core): (v1) restore separate type for AIMessage.tool_calls (#32668) 2025-08-25 09:37:41 -04:00
ccurme
26833f2ebc feat(anthropic): v1 support (#32623) 2025-08-22 16:06:53 -04:00
Mason Daugherty
5bcf7d006f refactor(core): data block handling, normalize message formats, strip IDs from messages (#32572)
> [!WARNING]
> **BREAKING:** Simplifies message normalization to single consistent
path, requiring partner package updates

**Key Changes:**
- Consistent multimodal handling:
- OpenAI `image_url` blocks pass through unchanged (broad compatibility)
- OpenAI `input_audio` and `file` blocks convert to v1 standard
equivalents
  - Legacy v0 multimodal blocks convert to v1 standard
  - Everything else passes through unchanged
- Partner packages must update content block parsing logic

**Partner Updates**

`output_version` affects how messages are serialized into `.content`.
`_normalize_messages()` will now upgrade v0 content to v1, so, all
partners now receive v1 format input regardless of `output_version`.

Migration:
- Partner packages must update to handle v1 input content blocks
- `output_version` still controls serialization format of responses
(unchanged)

---------

Co-authored-by: Chester Curme <chester.curme@gmail.com>
2025-08-21 14:48:23 -04:00
Chester Curme
3c8edbecb2 Merge branch 'wip-v1.0' into cc/1.0/standard_content
# Conflicts:
#	libs/core/langchain_core/messages/ai.py
2025-08-21 14:12:29 -04:00
ccurme
6f058e7b9b fix(core): (v1) update BaseChatModel return type to AIMessage (#32626) 2025-08-21 14:02:24 -04:00
ccurme
0444e260be refactor: convert message content inside BaseChatModel (#32606) 2025-08-19 12:25:44 -04:00
Mason Daugherty
43b9d3d904 feat(core): implement dynamic translator registration for model providers (#32602)
Extensible registry system for translating AI message content blocks
from various model providers. Refactors the way provider-specific
content is handled, moving from hardcoded logic to a plugin-like
architecture.
2025-08-19 10:08:56 -04:00
Christophe Bornet
02d6b9106b chore(core): add mypy pydantic plugin (#32604)
This helps to remove a bunch of mypy false positives.
2025-08-19 09:39:53 -04:00
William FH
b470c79f1d refactor(core): Use duck typing for _StreamingCallbackHandler (#32535)
It's used in langgraph and maybe elsewhere, so would be preferable if it
could just be duck-typed
2025-08-19 05:41:07 -07:00
Mason Daugherty
0e6c172893 refactor(core): prefixes, again (#32599)
Put in `core.utils` this time to prevent other circular import issues
present in the `normalize()` rfc:

`base` imports `content`
`content` imports `ensure_id()` from `base`
2025-08-18 17:24:57 -04:00
Mason Daugherty
8ee0cbba3c refactor(core): prefixes (#32597)
re: #32589 cc: @ccurme
- Rename namespace: `messages.content_blocks` -> `messages.content`
- Prefixes and ID logic are now in `messages.common` instead of
`AIMessage` since the logic is shared between messages and message
content. Did this instead of `utils` due to circular import problems
that were hairy
2025-08-18 16:33:12 -04:00
ccurme
4790c7265a feat(core): lazy-load standard content (#32570) 2025-08-18 10:30:49 -04:00
ccurme
aca7c1fe6a fix(core): temporarily fix tests (#32589) 2025-08-18 09:45:06 -04:00
Mason Daugherty
2375c3a4d0 add note 2025-08-15 16:39:36 -04:00
Mason Daugherty
0199b56bda rfc test_utils to make clearer what was existing before and after, and add comments 2025-08-15 16:37:39 -04:00
Mason Daugherty
00345c4de9 tests: add more data content block tests 2025-08-15 16:28:46 -04:00