Bagatur
7040013140
core[patch]: fix deprecation pydantic bug ( #25204 )
...
#25004 is incompatible with pydantic < 1.10.17. Introduces fix for this.
2024-08-08 16:39:38 -07:00
Eugene Yurtsev
429a0ee7fd
core[minor]: Add factory for looking up secrets from the env ( #25198 )
...
Add factory method for looking secrets from the env.
2024-08-08 16:41:58 -04:00
Erick Friis
c6ece6a96d
core: autodetect more ls params ( #25044 )
...
Co-authored-by: ccurme <chester.curme@gmail.com >
2024-08-08 12:44:21 -07:00
Eugene Yurtsev
30fb345342
core[minor]: Add from_env utility ( #25189 )
...
Add a utility that can be used as a default factory
The goal will be to start migrating from of the pydantic models to use
`from_env` as a default factory if possible.
```python
from pydantic import Field, BaseModel
from langchain_core.utils import from_env
class Foo(BaseModel):
name: str = Field(default_factory=from_env('HELLO'))
```
2024-08-08 14:52:35 -04:00
Eugene Yurtsev
2f209d84fa
core[patch]: Add pydantic get_fields adapter ( #25187 )
...
Add adapter to get fields
2024-08-08 17:47:42 +00:00
Eugene Yurtsev
425f6ffa5b
core[patch]: Fix aindex API ( #25155 )
...
A previous PR accidentally broke the aindex API by renaming a positional
argument vectorstore into vector_store. This PR reverts this change.
2024-08-08 12:08:18 -04:00
Eugene Yurtsev
7b1a132aff
core[patch]: Add unit tests for Serializable ( #25152 )
...
Add a few test cases for serializable (many other test cases already
covered
throguh runnable tests).
2024-08-07 21:01:36 +00:00
Bagatur
df99b832a7
core[patch]: support Field deprecation ( #25004 )
...

2024-08-07 13:57:55 -07:00
ccurme
803eba3163
core[patch]: check for model_fields attribute ( #25108 )
...
`__fields__` raises a warning in pydantic v2
2024-08-07 13:32:56 -07:00
Bagatur
b4c12346cc
core[patch]: Release 0.2.29 ( #25126 )
2024-08-07 09:50:20 -07:00
Erick Friis
dff83cce66
core[patch]: base language model disable_streaming ( #25070 )
...
Co-authored-by: Bagatur <baskaryan@gmail.com >
Co-authored-by: Bagatur <22008038+baskaryan@users.noreply.github.com >
2024-08-07 09:26:21 -07:00
Eugene Yurtsev
28e0958ff4
core[patch]: Relax rate limit unit tests in terms of timing ( #25140 )
...
Relax rate limit unit tests
2024-08-07 14:04:58 +00:00
Eugene Yurtsev
4d28c70000
core[patch]: Sort Config attributes ( #25127 )
...
This PR does an aesthetic sort of the config object attributes. This
will make it a bit easier to go back and forth between pydantic v1 and
pydantic v2 on the 0.3.x branch
2024-08-07 02:53:50 +00:00
Bagatur
70677202c7
core[patch]: Release 0.2.29rc1 ( #25115 )
2024-08-06 21:36:56 +00:00
Bagatur
78403a3746
core[patch], openai[patch]: enable strict tool calling ( #25111 )
...
Introduced
https://openai.com/index/introducing-structured-outputs-in-the-api/
2024-08-06 21:21:06 +00:00
Eugene Yurtsev
d283f452cc
core[minor]: Add support for DocumentIndex in the index api ( #25100 )
...
Support document index in the index api.
2024-08-06 12:30:49 -07:00
William FH
267855b3c1
Set Context in RunnableSequence & RunnableParallel ( #25073 )
2024-08-06 11:10:37 -07:00
Bagatur
2c798622cd
docs: runnable docstring space ( #25106 )
2024-08-06 16:46:50 +00:00
Eugene Yurtsev
293a4a78de
core[patch]: Include dependencies in sys_info ( #25076 )
...
`python -m langchain_core.sys_info`
```bash
System Information
------------------
> OS: Linux
> OS Version: #44~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Jun 18 14:36:16 UTC 2
> Python Version: 3.11.4 (main, Sep 25 2023, 10:06:23) [GCC 11.4.0]
Package Information
-------------------
> langchain_core: 0.2.28
> langchain: 0.2.8
> langsmith: 0.1.85
> langchain_anthropic: 0.1.20
> langchain_openai: 0.1.20
> langchain_standard_tests: 0.1.1
> langchain_text_splitters: 0.2.2
> langgraph: 0.1.19
Optional packages not installed
-------------------------------
> langserve
Other Dependencies
------------------
> aiohttp: 3.9.5
> anthropic: 0.31.1
> async-timeout: Installed. No version info available.
> defusedxml: 0.7.1
> httpx: 0.27.0
> jsonpatch: 1.33
> numpy: 1.26.4
> openai: 1.39.0
> orjson: 3.10.6
> packaging: 24.1
> pydantic: 2.8.2
> pytest: 7.4.4
> PyYAML: 6.0.1
> requests: 2.32.3
> SQLAlchemy: 2.0.31
> tenacity: 8.5.0
> tiktoken: 0.7.0
> typing-extensions: 4.12.2
```
2024-08-06 09:57:39 -04:00
orkhank
111c7df117
docs: update numbering of items in method docs ( #25093 )
...
Some methods' doc strings have a wrong numbering of items. The numbers
were adjusted accordingly
2024-08-06 09:21:52 -04:00
Bagatur
6eb42c657e
core[patch]: Remove default BaseModel init docstring ( #25009 )
...
Currently a default init docstring gets appended to the class docstring
of every BaseModel inherited object. This removes the default init
docstring.

2024-08-06 01:04:04 +00:00
Gram Liu
88a9a6a758
core[patch]: Add pydantic metadata to subset model ( #25032 )
...
- **Description:** This includes Pydantic field metadata in
`_create_subset_model_v2` so that it gets included in the final
serialized form that get sent out.
- **Issue:** #25031
- **Dependencies:** n/a
- **Twitter handle:** @gramliu
---------
Co-authored-by: Bagatur <baskaryan@gmail.com >
Co-authored-by: Bagatur <22008038+baskaryan@users.noreply.github.com >
2024-08-05 17:57:39 -07:00
BhujayKumarBhatta
8f33fce871
docs: change for optional variables in chatprompt ( #25017 )
...
Fixes #24884
2024-08-05 23:57:44 +00:00
Bagatur
e572521f2a
core[patch]: exclude special pydantic init params ( #25084 )
2024-08-05 23:32:51 +00:00
Eugene Yurtsev
4bcd2aad6c
core[patch]: Relax time constraints on rate limit test ( #25071 )
...
Try to keep the unit test fast, but also have it repeat more robustly
2024-08-05 17:04:22 -04:00
Eugene Yurtsev
41dfad5104
core[minor]: Introduce DocumentIndex abstraction ( #25062 )
...
This PR adds a minimal document indexer abstraction.
The goal of this abstraction is to allow developers to create custom
retrievers that also have a standard indexing API and allow updating the
document content in them.
The abstraction comes with a test suite that can verify that the indexer
implements the correct semantics.
This is an iteration over a previous PRs
(https://github.com/langchain-ai/langchain/pull/24364 ). The main
difference is that we're sub-classing from BaseRetriever in this
iteration and as so have consolidated the sync and async interfaces.
The main problem with the current design is that runt time search
configuration has to be specified at init rather than provided at run
time.
We will likely resolve this issue in one of the two ways:
(1) Define a method (`get_retriever`) that will allow creating a
retriever at run time with a specific configuration.. If we do this, we
will likely break the subclass on BaseRetriever
(2) Generalize base retriever so it can support structured queries
---------
Co-authored-by: Erick Friis <erick@langchain.dev >
2024-08-05 18:06:33 +00:00
Bagatur
1dcee68cb8
docs: show beta directive ( #25013 )
...

2024-08-03 03:07:45 +00:00
Bagatur
e81ddb32a6
docs: fix kwargs docstring ( #25010 )
...
Fix:

2024-08-02 19:54:54 -07:00
Bagatur
57747892ce
docs: show deprecation warning first in api ref ( #25001 )
...
OLD

NEW

2024-08-02 17:35:25 -07:00
Bagatur
4305f78e40
core[patch]: Release 0.2.28 ( #25000 )
2024-08-02 21:07:06 +00:00
Bagatur
0de0cd2d31
core[patch]: merge message runs nit ( #24997 )
...
Only add separator if both chunks are non-empty
2024-08-02 20:25:43 +00:00
Bagatur
245cb5a252
core[patch]: Release 0.2.27 ( #24952 )
2024-08-02 01:43:24 +00:00
Bagatur
199e9c5ae0
core[patch]: Fix tool args schema inherited field parsing ( #24936 )
...
Fix #24925
2024-08-01 18:36:33 -07:00
Leonid Ganeline
4092876863
core: docstrings `BaseCallbackHandler update ( #24948 )
...
Added missed docstrings
2024-08-01 20:46:53 -04:00
WU LIFU
ad16eed119
core[patch]: runnable config ensure_config deep copy from var_child_runnable… ( #24862 )
...
**issue**: #24660
RunnableWithMessageHistory.stream result in error because the
[evaluation](https://github.com/langchain-ai/langchain/blob/master/libs/core/langchain_core/runnables/branch.py#L220 )
of the branch
[condition](99eb31ec41/libs/core/langchain_core/runnables/history.py (L328C1-L329C1)
)
unexpectedly trigger the
"[on_end](99eb31ec41/libs/core/langchain_core/runnables/history.py (L332)
)"
(exit_history) callback of the default branch
**descriptions**
After a lot of investigation I'm convinced that the root cause is that
1. during the execution of the runnable, the
[var_child_runnable_config](99eb31ec41/libs/core/langchain_core/runnables/config.py (L122)
)
is shared between the branch
[condition](99eb31ec41/libs/core/langchain_core/runnables/history.py (L328C1-L329C1)
)
runnable and the [default branch
runnable](99eb31ec41/libs/core/langchain_core/runnables/history.py (L332)
)
within the same context
2. when the default branch runnable runs, it gets the
[var_child_runnable_config](99eb31ec41/libs/core/langchain_core/runnables/config.py (L163)
)
and may unintentionally [add more handlers
](99eb31ec41/libs/core/langchain_core/runnables/config.py (L325)
)to
the callback manager of this config
3. when it is again the turn for the
[condition](99eb31ec41/libs/core/langchain_core/runnables/history.py (L328C1-L329C1)
)
to run, it gets the `var_child_runnable_config` whose callback manager
has the handlers added by the default branch. When it runs that handler
(`exit_history`) it leads to the error
with the assumption that, the `ensure_config` function actually does
want to create a immutable copy from `var_child_runnable_config` because
it starts with an [`empty` variable
](99eb31ec41/libs/core/langchain_core/runnables/config.py (L156)
),
i go ahead to do a deepcopy to ensure that future modification to the
returned value won't affect the `var_child_runnable_config` variable
Having said that I actually
1. don't know if this is a proper fix
2. don't know whether it will lead to other unintended consequence
3. don't know why only "stream" runs into this issue while "invoke" runs
without problem
so @nfcampos @hwchase17 please help review, thanks!
---------
Co-authored-by: Lifu Wu <lifu@nextbillion.ai >
Co-authored-by: Nuno Campos <nuno@langchain.dev >
Co-authored-by: Bagatur <baskaryan@gmail.com >
2024-08-01 17:30:32 -07:00
Eugene Yurtsev
75776e4a54
core[patch]: In unit tests, use _schema()
instead of BaseModel.schema() ( #24930 )
...
This PR introduces a module with some helper utilities for the pydantic
1 -> 2 migration.
They're meant to be used in the following way:
1) Use the utility code to get unit tests pass without requiring
modification to the unit tests
2) (If desired) upgrade the unit tests to match pydantic 2 output
3) (If desired) stop using the utility code
Currently, this module contains a way to map `schema()` generated by
pydantic 2 to (mostly) match the output from pydantic v1.
2024-08-01 11:59:04 -04:00
Bagatur
25b93cc4c0
core[patch]: stringify tool non-content blocks ( #24626 )
...
Slightly breaking bugfix. Shouldn't cause too many issues since no
models would be able to handle non-content block ToolMessage.content
anyways.
2024-07-31 16:42:38 -07:00
Eugene Yurtsev
210623b409
core[minor]: Add support for pydantic 2 to utility to get fields ( #24899 )
...
Add compatibility for pydantic 2 for a utility function.
This will help push some small changes to master, so they don't have to
be kept track of on a separate branch.
2024-07-31 19:11:07 +00:00
Bagatur
7d1694040d
core[patch]: Release 0.2.26 ( #24898 )
2024-07-31 19:00:50 +00:00
Eugene Yurtsev
5099a9c9b4
core[patch]: Update unit tests with a workaround for using AnyID in pydantic 2 ( #24892 )
...
Pydantic 2 ignores __eq__ overload for subclasses of strings.
2024-07-31 14:42:12 -04:00
Bagatur
8461934c2b
core[patch], integrations[patch]: convert TypedDict to tool schema support ( #24641 )
...
supports following UX
```python
class SubTool(TypedDict):
"""Subtool docstring"""
args: Annotated[Dict[str, Any], {}, "this does bar"]
class Tool(TypedDict):
"""Docstring
Args:
arg1: foo
"""
arg1: str
arg2: Union[int, str]
arg3: Optional[List[SubTool]]
arg4: Annotated[Literal["bar", "baz"], ..., "this does foo"]
arg5: Annotated[Optional[float], None]
```
- can parse google style docstring
- can use Annotated to specify default value (second arg)
- can use Annotated to specify arg description (third arg)
- can have nested complex types
2024-07-31 18:27:24 +00:00
Erick Friis
88418af3f5
core: release 0.2.25 ( #24833 )
2024-07-30 18:41:09 +00:00
Nuno Campos
68ecebf1ec
core: Fix implementation of trim_first_node/trim_last_node to use exact same definition of first/last node as in the getter methods ( #24802 )
2024-07-30 08:44:27 -07:00
Bagatur
a6d1fb4275
core[patch]: introduce ToolMessage.status ( #24628 )
...
Anthropic models (including via Bedrock and other cloud platforms)
accept a status/is_error attribute on tool messages/results
(specifically in `tool_result` content blocks for Anthropic API). Adding
a ToolMessage.status attribute so that users can set this attribute when
using those models
2024-07-29 14:01:53 -07:00
ccurme
9998e55936
core[patch]: support tool calls with non-pickleable args in tools ( #24741 )
...
Deepcopy raises with non-pickleable args.
2024-07-29 13:18:39 -04:00
William FH
01ab2918a2
core[patch]: Respect injected in bound fns ( #24733 )
...
Since right now you cant use the nice injected arg syntas directly with
model.bind_tools()
2024-07-28 15:45:19 -07:00
Bagatur
8964f8a710
core: use mypy<1.11 ( #24749 )
...
Bug in mypy 1.11.0 blocking CI, see example:
https://github.com/langchain-ai/langchain/actions/runs/10127096903/job/28004492692?pr=24641
2024-07-27 16:37:02 -07:00
William FH
0535d72927
Add type() in error msg ( #24723 )
2024-07-26 16:48:45 -07:00
Eugene Yurtsev
9be6b5a20f
core[patch]: Correct doc-string for InMemoryRateLimiter ( #24730 )
...
Correct the documentaiton string.
2024-07-26 22:17:22 +00:00
Bagatur
315223ce26
core[patch]: Release 0.2.24 ( #24722 )
2024-07-26 18:55:32 +00:00