langchain-core 1.0.0a5__py3-none-any.whl → 1.0.3__py3-none-any.whl

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.
Files changed (165) hide show
  1. langchain_core/__init__.py +1 -1
  2. langchain_core/_api/__init__.py +3 -4
  3. langchain_core/_api/beta_decorator.py +23 -26
  4. langchain_core/_api/deprecation.py +51 -64
  5. langchain_core/_api/path.py +3 -6
  6. langchain_core/_import_utils.py +3 -4
  7. langchain_core/agents.py +20 -22
  8. langchain_core/caches.py +65 -66
  9. langchain_core/callbacks/__init__.py +1 -8
  10. langchain_core/callbacks/base.py +321 -336
  11. langchain_core/callbacks/file.py +44 -44
  12. langchain_core/callbacks/manager.py +436 -513
  13. langchain_core/callbacks/stdout.py +29 -30
  14. langchain_core/callbacks/streaming_stdout.py +32 -32
  15. langchain_core/callbacks/usage.py +60 -57
  16. langchain_core/chat_history.py +53 -68
  17. langchain_core/document_loaders/base.py +27 -25
  18. langchain_core/document_loaders/blob_loaders.py +1 -1
  19. langchain_core/document_loaders/langsmith.py +44 -48
  20. langchain_core/documents/__init__.py +23 -3
  21. langchain_core/documents/base.py +98 -90
  22. langchain_core/documents/compressor.py +10 -10
  23. langchain_core/documents/transformers.py +34 -35
  24. langchain_core/embeddings/fake.py +50 -54
  25. langchain_core/example_selectors/length_based.py +1 -1
  26. langchain_core/example_selectors/semantic_similarity.py +28 -32
  27. langchain_core/exceptions.py +21 -20
  28. langchain_core/globals.py +3 -151
  29. langchain_core/indexing/__init__.py +1 -1
  30. langchain_core/indexing/api.py +121 -126
  31. langchain_core/indexing/base.py +73 -75
  32. langchain_core/indexing/in_memory.py +4 -6
  33. langchain_core/language_models/__init__.py +14 -29
  34. langchain_core/language_models/_utils.py +58 -61
  35. langchain_core/language_models/base.py +53 -162
  36. langchain_core/language_models/chat_models.py +298 -387
  37. langchain_core/language_models/fake.py +11 -11
  38. langchain_core/language_models/fake_chat_models.py +42 -36
  39. langchain_core/language_models/llms.py +125 -235
  40. langchain_core/load/dump.py +9 -12
  41. langchain_core/load/load.py +18 -28
  42. langchain_core/load/mapping.py +2 -4
  43. langchain_core/load/serializable.py +42 -40
  44. langchain_core/messages/__init__.py +10 -16
  45. langchain_core/messages/ai.py +148 -148
  46. langchain_core/messages/base.py +58 -52
  47. langchain_core/messages/block_translators/__init__.py +27 -17
  48. langchain_core/messages/block_translators/anthropic.py +6 -6
  49. langchain_core/messages/block_translators/bedrock_converse.py +5 -5
  50. langchain_core/messages/block_translators/google_genai.py +505 -20
  51. langchain_core/messages/block_translators/google_vertexai.py +4 -32
  52. langchain_core/messages/block_translators/groq.py +117 -21
  53. langchain_core/messages/block_translators/langchain_v0.py +5 -5
  54. langchain_core/messages/block_translators/openai.py +11 -11
  55. langchain_core/messages/chat.py +2 -6
  56. langchain_core/messages/content.py +337 -328
  57. langchain_core/messages/function.py +6 -10
  58. langchain_core/messages/human.py +24 -31
  59. langchain_core/messages/modifier.py +2 -2
  60. langchain_core/messages/system.py +19 -29
  61. langchain_core/messages/tool.py +74 -90
  62. langchain_core/messages/utils.py +474 -504
  63. langchain_core/output_parsers/__init__.py +13 -10
  64. langchain_core/output_parsers/base.py +61 -61
  65. langchain_core/output_parsers/format_instructions.py +9 -4
  66. langchain_core/output_parsers/json.py +12 -10
  67. langchain_core/output_parsers/list.py +21 -23
  68. langchain_core/output_parsers/openai_functions.py +49 -47
  69. langchain_core/output_parsers/openai_tools.py +16 -21
  70. langchain_core/output_parsers/pydantic.py +13 -14
  71. langchain_core/output_parsers/string.py +5 -5
  72. langchain_core/output_parsers/transform.py +15 -17
  73. langchain_core/output_parsers/xml.py +35 -34
  74. langchain_core/outputs/__init__.py +1 -1
  75. langchain_core/outputs/chat_generation.py +18 -18
  76. langchain_core/outputs/chat_result.py +1 -3
  77. langchain_core/outputs/generation.py +10 -11
  78. langchain_core/outputs/llm_result.py +10 -10
  79. langchain_core/prompt_values.py +11 -17
  80. langchain_core/prompts/__init__.py +3 -27
  81. langchain_core/prompts/base.py +48 -56
  82. langchain_core/prompts/chat.py +275 -325
  83. langchain_core/prompts/dict.py +5 -5
  84. langchain_core/prompts/few_shot.py +81 -88
  85. langchain_core/prompts/few_shot_with_templates.py +11 -13
  86. langchain_core/prompts/image.py +12 -14
  87. langchain_core/prompts/loading.py +4 -6
  88. langchain_core/prompts/message.py +3 -3
  89. langchain_core/prompts/prompt.py +24 -39
  90. langchain_core/prompts/string.py +26 -10
  91. langchain_core/prompts/structured.py +49 -53
  92. langchain_core/rate_limiters.py +51 -60
  93. langchain_core/retrievers.py +61 -198
  94. langchain_core/runnables/base.py +1478 -1630
  95. langchain_core/runnables/branch.py +53 -57
  96. langchain_core/runnables/config.py +72 -89
  97. langchain_core/runnables/configurable.py +120 -137
  98. langchain_core/runnables/fallbacks.py +83 -79
  99. langchain_core/runnables/graph.py +91 -97
  100. langchain_core/runnables/graph_ascii.py +27 -28
  101. langchain_core/runnables/graph_mermaid.py +38 -50
  102. langchain_core/runnables/graph_png.py +15 -16
  103. langchain_core/runnables/history.py +135 -148
  104. langchain_core/runnables/passthrough.py +124 -150
  105. langchain_core/runnables/retry.py +46 -51
  106. langchain_core/runnables/router.py +25 -30
  107. langchain_core/runnables/schema.py +75 -80
  108. langchain_core/runnables/utils.py +60 -67
  109. langchain_core/stores.py +85 -121
  110. langchain_core/structured_query.py +8 -8
  111. langchain_core/sys_info.py +27 -29
  112. langchain_core/tools/__init__.py +1 -14
  113. langchain_core/tools/base.py +285 -229
  114. langchain_core/tools/convert.py +160 -155
  115. langchain_core/tools/render.py +10 -10
  116. langchain_core/tools/retriever.py +12 -11
  117. langchain_core/tools/simple.py +19 -24
  118. langchain_core/tools/structured.py +32 -39
  119. langchain_core/tracers/__init__.py +1 -9
  120. langchain_core/tracers/base.py +97 -99
  121. langchain_core/tracers/context.py +29 -52
  122. langchain_core/tracers/core.py +49 -53
  123. langchain_core/tracers/evaluation.py +11 -11
  124. langchain_core/tracers/event_stream.py +65 -64
  125. langchain_core/tracers/langchain.py +21 -21
  126. langchain_core/tracers/log_stream.py +45 -45
  127. langchain_core/tracers/memory_stream.py +3 -3
  128. langchain_core/tracers/root_listeners.py +16 -16
  129. langchain_core/tracers/run_collector.py +2 -4
  130. langchain_core/tracers/schemas.py +0 -129
  131. langchain_core/tracers/stdout.py +3 -3
  132. langchain_core/utils/__init__.py +1 -4
  133. langchain_core/utils/_merge.py +2 -2
  134. langchain_core/utils/aiter.py +57 -61
  135. langchain_core/utils/env.py +9 -9
  136. langchain_core/utils/function_calling.py +89 -186
  137. langchain_core/utils/html.py +7 -8
  138. langchain_core/utils/input.py +6 -6
  139. langchain_core/utils/interactive_env.py +1 -1
  140. langchain_core/utils/iter.py +36 -40
  141. langchain_core/utils/json.py +4 -3
  142. langchain_core/utils/json_schema.py +9 -9
  143. langchain_core/utils/mustache.py +8 -10
  144. langchain_core/utils/pydantic.py +33 -35
  145. langchain_core/utils/strings.py +6 -9
  146. langchain_core/utils/usage.py +1 -1
  147. langchain_core/utils/utils.py +66 -62
  148. langchain_core/vectorstores/base.py +182 -216
  149. langchain_core/vectorstores/in_memory.py +101 -176
  150. langchain_core/vectorstores/utils.py +5 -5
  151. langchain_core/version.py +1 -1
  152. langchain_core-1.0.3.dist-info/METADATA +69 -0
  153. langchain_core-1.0.3.dist-info/RECORD +172 -0
  154. {langchain_core-1.0.0a5.dist-info → langchain_core-1.0.3.dist-info}/WHEEL +1 -1
  155. langchain_core/memory.py +0 -120
  156. langchain_core/messages/block_translators/ollama.py +0 -47
  157. langchain_core/prompts/pipeline.py +0 -138
  158. langchain_core/pydantic_v1/__init__.py +0 -30
  159. langchain_core/pydantic_v1/dataclasses.py +0 -23
  160. langchain_core/pydantic_v1/main.py +0 -23
  161. langchain_core/tracers/langchain_v1.py +0 -31
  162. langchain_core/utils/loading.py +0 -35
  163. langchain_core-1.0.0a5.dist-info/METADATA +0 -77
  164. langchain_core-1.0.0a5.dist-info/RECORD +0 -181
  165. langchain_core-1.0.0a5.dist-info/entry_points.txt +0 -4
langchain_core/globals.py CHANGED
@@ -1,18 +1,10 @@
1
1
  """Global values and configuration that apply to all of LangChain."""
2
2
 
3
- import warnings
4
3
  from typing import TYPE_CHECKING, Optional
5
4
 
6
5
  if TYPE_CHECKING:
7
6
  from langchain_core.caches import BaseCache
8
7
 
9
- try:
10
- import langchain # type: ignore[import-not-found]
11
-
12
- _HAS_LANGCHAIN = True
13
- except ImportError:
14
- _HAS_LANGCHAIN = False
15
-
16
8
 
17
9
  # DO NOT USE THESE VALUES DIRECTLY!
18
10
  # Use them only via `get_<X>()` and `set_<X>()` below,
@@ -29,26 +21,6 @@ def set_verbose(value: bool) -> None: # noqa: FBT001
29
21
  Args:
30
22
  value: The new value for the `verbose` global setting.
31
23
  """
32
- if _HAS_LANGCHAIN:
33
- # We're about to run some deprecated code, don't report warnings from it.
34
- # The user called the correct (non-deprecated) code path and shouldn't get
35
- # warnings.
36
- with warnings.catch_warnings():
37
- warnings.filterwarnings(
38
- "ignore",
39
- message=(
40
- "Importing verbose from langchain root module "
41
- "is no longer supported"
42
- ),
43
- )
44
- # N.B.: This is a workaround for an unfortunate quirk of Python's
45
- # module-level `__getattr__()` implementation:
46
- # https://github.com/langchain-ai/langchain/pull/11311#issuecomment-1743780004
47
- #
48
- # Remove it once `langchain.verbose` is no longer supported, and once all
49
- # users have migrated to using `set_verbose()` here.
50
- langchain.verbose = value
51
-
52
24
  global _verbose # noqa: PLW0603
53
25
  _verbose = value
54
26
 
@@ -59,35 +31,7 @@ def get_verbose() -> bool:
59
31
  Returns:
60
32
  The value of the `verbose` global setting.
61
33
  """
62
- if _HAS_LANGCHAIN:
63
- # We're about to run some deprecated code, don't report warnings from it.
64
- # The user called the correct (non-deprecated) code path and shouldn't get
65
- # warnings.
66
- with warnings.catch_warnings():
67
- warnings.filterwarnings(
68
- "ignore",
69
- message=(
70
- ".*Importing verbose from langchain root module "
71
- "is no longer supported"
72
- ),
73
- )
74
- # N.B.: This is a workaround for an unfortunate quirk of Python's
75
- # module-level `__getattr__()` implementation:
76
- # https://github.com/langchain-ai/langchain/pull/11311#issuecomment-1743780004
77
- #
78
- # Remove it once `langchain.verbose` is no longer supported, and once all
79
- # users have migrated to using `set_verbose()` here.
80
- #
81
- # In the meantime, the `verbose` setting is considered True if either the
82
- # old or the new value are True. This accommodates users who haven't
83
- # migrated to using `set_verbose()` yet. Those users are getting
84
- # deprecation warnings directing them to use `set_verbose()` when they
85
- # import `langchain.verbose`.
86
- old_verbose = langchain.verbose
87
- else:
88
- old_verbose = False
89
-
90
- return _verbose or old_verbose
34
+ return _verbose
91
35
 
92
36
 
93
37
  def set_debug(value: bool) -> None: # noqa: FBT001
@@ -96,24 +40,6 @@ def set_debug(value: bool) -> None: # noqa: FBT001
96
40
  Args:
97
41
  value: The new value for the `debug` global setting.
98
42
  """
99
- if _HAS_LANGCHAIN:
100
- # We're about to run some deprecated code, don't report warnings from it.
101
- # The user called the correct (non-deprecated) code path and shouldn't get
102
- # warnings.
103
- with warnings.catch_warnings():
104
- warnings.filterwarnings(
105
- "ignore",
106
- message="Importing debug from langchain root module "
107
- "is no longer supported",
108
- )
109
- # N.B.: This is a workaround for an unfortunate quirk of Python's
110
- # module-level `__getattr__()` implementation:
111
- # https://github.com/langchain-ai/langchain/pull/11311#issuecomment-1743780004
112
- #
113
- # Remove it once `langchain.debug` is no longer supported, and once all
114
- # users have migrated to using `set_debug()` here.
115
- langchain.debug = value
116
-
117
43
  global _debug # noqa: PLW0603
118
44
  _debug = value
119
45
 
@@ -124,32 +50,7 @@ def get_debug() -> bool:
124
50
  Returns:
125
51
  The value of the `debug` global setting.
126
52
  """
127
- if _HAS_LANGCHAIN:
128
- # We're about to run some deprecated code, don't report warnings from it.
129
- # The user called the correct (non-deprecated) code path and shouldn't get
130
- # warnings.
131
- with warnings.catch_warnings():
132
- warnings.filterwarnings(
133
- "ignore",
134
- message="Importing debug from langchain root module "
135
- "is no longer supported",
136
- )
137
- # N.B.: This is a workaround for an unfortunate quirk of Python's
138
- # module-level `__getattr__()` implementation:
139
- # https://github.com/langchain-ai/langchain/pull/11311#issuecomment-1743780004
140
- #
141
- # Remove it once `langchain.debug` is no longer supported, and once all
142
- # users have migrated to using `set_debug()` here.
143
- #
144
- # In the meantime, the `debug` setting is considered True if either the old
145
- # or the new value are True. This accommodates users who haven't migrated
146
- # to using `set_debug()` yet. Those users are getting deprecation warnings
147
- # directing them to use `set_debug()` when they import `langchain.debug`.
148
- old_debug = langchain.debug
149
- else:
150
- old_debug = False
151
-
152
- return _debug or old_debug
53
+ return _debug
153
54
 
154
55
 
155
56
  def set_llm_cache(value: Optional["BaseCache"]) -> None:
@@ -158,26 +59,6 @@ def set_llm_cache(value: Optional["BaseCache"]) -> None:
158
59
  Args:
159
60
  value: The new LLM cache to use. If `None`, the LLM cache is disabled.
160
61
  """
161
- if _HAS_LANGCHAIN:
162
- # We're about to run some deprecated code, don't report warnings from it.
163
- # The user called the correct (non-deprecated) code path and shouldn't get
164
- # warnings.
165
- with warnings.catch_warnings():
166
- warnings.filterwarnings(
167
- "ignore",
168
- message=(
169
- "Importing llm_cache from langchain root module "
170
- "is no longer supported"
171
- ),
172
- )
173
- # N.B.: This is a workaround for an unfortunate quirk of Python's
174
- # module-level `__getattr__()` implementation:
175
- # https://github.com/langchain-ai/langchain/pull/11311#issuecomment-1743780004
176
- #
177
- # Remove it once `langchain.llm_cache` is no longer supported, and
178
- # once all users have migrated to using `set_llm_cache()` here.
179
- langchain.llm_cache = value
180
-
181
62
  global _llm_cache # noqa: PLW0603
182
63
  _llm_cache = value
183
64
 
@@ -188,33 +69,4 @@ def get_llm_cache() -> Optional["BaseCache"]:
188
69
  Returns:
189
70
  The value of the `llm_cache` global setting.
190
71
  """
191
- if _HAS_LANGCHAIN:
192
- # We're about to run some deprecated code, don't report warnings from it.
193
- # The user called the correct (non-deprecated) code path and shouldn't get
194
- # warnings.
195
- with warnings.catch_warnings():
196
- warnings.filterwarnings(
197
- "ignore",
198
- message=(
199
- "Importing llm_cache from langchain root module "
200
- "is no longer supported"
201
- ),
202
- )
203
- # N.B.: This is a workaround for an unfortunate quirk of Python's
204
- # module-level `__getattr__()` implementation:
205
- # https://github.com/langchain-ai/langchain/pull/11311#issuecomment-1743780004
206
- #
207
- # Remove it once `langchain.llm_cache` is no longer supported, and
208
- # once all users have migrated to using `set_llm_cache()` here.
209
- #
210
- # In the meantime, the `llm_cache` setting returns whichever of
211
- # its two backing sources is truthy (not `None` and non-empty),
212
- # or the old value if both are falsy. This accommodates users
213
- # who haven't migrated to using `set_llm_cache()` yet.
214
- # Those users are getting deprecation warnings directing them
215
- # to use `set_llm_cache()` when they import `langchain.llm_cache`.
216
- old_llm_cache = langchain.llm_cache
217
- else:
218
- old_llm_cache = None
219
-
220
- return _llm_cache or old_llm_cache
72
+ return _llm_cache
@@ -1,7 +1,7 @@
1
1
  """Code to help indexing data into a vectorstore.
2
2
 
3
3
  This package contains helper logic to help deal with indexing data into
4
- a vectorstore while avoiding duplicated content and over-writing content
4
+ a `VectorStore` while avoiding duplicated content and over-writing content
5
5
  if it's unchanged.
6
6
  """
7
7