langchain/libs/core/langchain_core
Jeremy Naccache a14cf87576
core[patch]: Add **kwargs to Langchain's dumps() to allow passing of json.dumps() … (#10628)
…parameters.

In Langchain's `dumps()` function, I've added a `**kwargs` parameter.
This allows users to pass additional parameters to the underlying
`json.dumps()` function, providing greater flexibility and control over
JSON serialization.

Many parameters available in `json.dumps()` can be useful or even
necessary in specific situations. For example, when using an Agent with
return_intermediate_steps set to true, the output is a list of
AgentAction objects. These objects can't be serialized without using
Langchain's `dumps()` function.

The issue arises when using the Agent with a language other than
English, which may contain non-ASCII characters like 'é'. The default
behavior of `json.dumps()` sets ensure_ascii to true, converting
`{"name": "José"}` into `{"name": "Jos\u00e9"}`. This can make the
output hard to read, especially in the case of intermediate steps in
agent logs.

By allowing users to pass additional parameters to `json.dumps()` via
Langchain's dumps(), we can solve this problem. For instance, users can
set `ensure_ascii=False` to maintain the original characters.

This update also enables users to pass other useful `json.dumps()`
parameters like `sort_keys`, providing even more flexibility.

The implementation takes into account edge cases where a user might pass
a "default" parameter, which is already defined by `dumps()`, or an
"indent" parameter, which is also predefined if `pretty=True` is set.

---------

Co-authored-by: Erick Friis <erick@langchain.dev>
2023-11-30 08:52:24 -08:00
..
_api REFACTOR: Refactor langchain_core (#13627) 2023-11-21 08:35:29 -08:00
callbacks IMPROVEMENT: Conditionally import core type hints (#13700) 2023-11-21 21:38:49 -08:00
documents REFACTOR: combine core documents files (#13733) 2023-11-22 10:10:26 -08:00
example_selectors IMPROVEMENT: Conditionally import core type hints (#13700) 2023-11-21 21:38:49 -08:00
globals IMPROVEMENT: filter global warnings properly (#13754) 2023-11-22 16:26:37 -08:00
language_models Fixes for opengpts release (#13960) 2023-11-28 21:49:43 +00:00
load core[patch]: Add **kwargs to Langchain's dumps() to allow passing of json.dumps() … (#10628) 2023-11-30 08:52:24 -08:00
messages Fixes for opengpts release (#13960) 2023-11-28 21:49:43 +00:00
output_parsers In Runnable.stream_log build up final_output from adding output chunks (#12781) 2023-11-28 21:50:41 +00:00
outputs REFACTOR: Refactor langchain_core (#13627) 2023-11-21 08:35:29 -08:00
prompts improvement: fix chat prompt loading from config (#13818) 2023-11-27 11:39:50 -05:00
pydantic_v1 Separate out langchain_core package (#13577) 2023-11-20 13:09:30 -08:00
runnables Track RunnableAssign as a separate run trace (#13972) 2023-11-28 22:02:31 +00:00
tracers In Runnable.stream_log build up final_output from adding output chunks (#12781) 2023-11-28 21:50:41 +00:00
utils langchain[patch], core[patch]: Make common utils public (#13932) 2023-11-27 15:34:46 -08:00
__init__.py Separate out langchain_core package (#13577) 2023-11-20 13:09:30 -08:00
agents.py Implement stream() and astream() for agents (#12783) 2023-11-28 08:11:37 +00:00
caches.py REFACTOR: Refactor langchain_core (#13627) 2023-11-21 08:35:29 -08:00
chat_history.py REFACTOR: Refactor langchain_core (#13627) 2023-11-21 08:35:29 -08:00
chat_sessions.py REFACTOR: Refactor langchain_core (#13627) 2023-11-21 08:35:29 -08:00
embeddings.py REFACTOR: Refactor langchain_core (#13627) 2023-11-21 08:35:29 -08:00
env.py Separate out langchain_core package (#13577) 2023-11-20 13:09:30 -08:00
exceptions.py REFACTOR: Refactor langchain_core (#13627) 2023-11-21 08:35:29 -08:00
memory.py REFACTOR: Refactor langchain_core (#13627) 2023-11-21 08:35:29 -08:00
prompt_values.py BUG: more core fixes (#13665) 2023-11-21 15:15:48 -08:00
retrievers.py REFACTOR: Refactor langchain_core (#13627) 2023-11-21 08:35:29 -08:00
stores.py REFACTOR: Refactor langchain_core (#13627) 2023-11-21 08:35:29 -08:00
tools.py IMPROVEMENT: Conditionally import core type hints (#13700) 2023-11-21 21:38:49 -08:00
vectorstores.py IMPROVEMENT: Conditionally import core type hints (#13700) 2023-11-21 21:38:49 -08:00