langchain 0.3.25__py3-none-any.whl → 0.3.27__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.

Potentially problematic release.


This version of langchain might be problematic. Click here for more details.

Files changed (582) hide show
  1. langchain/__init__.py +110 -96
  2. langchain/_api/__init__.py +2 -2
  3. langchain/_api/deprecation.py +3 -3
  4. langchain/_api/module_import.py +51 -46
  5. langchain/_api/path.py +1 -1
  6. langchain/adapters/openai.py +8 -8
  7. langchain/agents/__init__.py +15 -12
  8. langchain/agents/agent.py +160 -133
  9. langchain/agents/agent_iterator.py +31 -14
  10. langchain/agents/agent_toolkits/__init__.py +7 -6
  11. langchain/agents/agent_toolkits/ainetwork/toolkit.py +1 -1
  12. langchain/agents/agent_toolkits/amadeus/toolkit.py +1 -1
  13. langchain/agents/agent_toolkits/azure_cognitive_services.py +1 -1
  14. langchain/agents/agent_toolkits/clickup/toolkit.py +1 -1
  15. langchain/agents/agent_toolkits/conversational_retrieval/openai_functions.py +6 -4
  16. langchain/agents/agent_toolkits/csv/__init__.py +4 -2
  17. langchain/agents/agent_toolkits/file_management/__init__.py +1 -1
  18. langchain/agents/agent_toolkits/file_management/toolkit.py +1 -1
  19. langchain/agents/agent_toolkits/github/toolkit.py +9 -9
  20. langchain/agents/agent_toolkits/gitlab/toolkit.py +1 -1
  21. langchain/agents/agent_toolkits/json/base.py +1 -1
  22. langchain/agents/agent_toolkits/multion/toolkit.py +1 -1
  23. langchain/agents/agent_toolkits/office365/toolkit.py +1 -1
  24. langchain/agents/agent_toolkits/openapi/base.py +1 -1
  25. langchain/agents/agent_toolkits/openapi/planner.py +2 -2
  26. langchain/agents/agent_toolkits/openapi/planner_prompt.py +10 -10
  27. langchain/agents/agent_toolkits/openapi/prompt.py +1 -1
  28. langchain/agents/agent_toolkits/openapi/toolkit.py +1 -1
  29. langchain/agents/agent_toolkits/pandas/__init__.py +4 -2
  30. langchain/agents/agent_toolkits/playwright/__init__.py +1 -1
  31. langchain/agents/agent_toolkits/playwright/toolkit.py +1 -1
  32. langchain/agents/agent_toolkits/powerbi/base.py +1 -1
  33. langchain/agents/agent_toolkits/powerbi/chat_base.py +1 -1
  34. langchain/agents/agent_toolkits/powerbi/prompt.py +2 -2
  35. langchain/agents/agent_toolkits/powerbi/toolkit.py +1 -1
  36. langchain/agents/agent_toolkits/python/__init__.py +4 -2
  37. langchain/agents/agent_toolkits/spark/__init__.py +4 -2
  38. langchain/agents/agent_toolkits/spark_sql/base.py +1 -1
  39. langchain/agents/agent_toolkits/spark_sql/toolkit.py +1 -1
  40. langchain/agents/agent_toolkits/sql/prompt.py +1 -1
  41. langchain/agents/agent_toolkits/sql/toolkit.py +1 -1
  42. langchain/agents/agent_toolkits/vectorstore/base.py +2 -2
  43. langchain/agents/agent_toolkits/vectorstore/prompt.py +2 -4
  44. langchain/agents/agent_toolkits/vectorstore/toolkit.py +12 -11
  45. langchain/agents/agent_toolkits/xorbits/__init__.py +4 -2
  46. langchain/agents/agent_toolkits/zapier/toolkit.py +1 -1
  47. langchain/agents/agent_types.py +7 -7
  48. langchain/agents/chat/base.py +6 -12
  49. langchain/agents/chat/output_parser.py +9 -6
  50. langchain/agents/chat/prompt.py +3 -4
  51. langchain/agents/conversational/base.py +9 -5
  52. langchain/agents/conversational/output_parser.py +4 -2
  53. langchain/agents/conversational/prompt.py +2 -3
  54. langchain/agents/conversational_chat/base.py +7 -5
  55. langchain/agents/conversational_chat/output_parser.py +9 -11
  56. langchain/agents/conversational_chat/prompt.py +5 -6
  57. langchain/agents/format_scratchpad/__init__.py +3 -3
  58. langchain/agents/format_scratchpad/log_to_messages.py +1 -1
  59. langchain/agents/format_scratchpad/openai_functions.py +8 -6
  60. langchain/agents/format_scratchpad/tools.py +5 -3
  61. langchain/agents/format_scratchpad/xml.py +33 -2
  62. langchain/agents/initialize.py +18 -9
  63. langchain/agents/json_chat/base.py +18 -18
  64. langchain/agents/json_chat/prompt.py +2 -3
  65. langchain/agents/load_tools.py +2 -1
  66. langchain/agents/loading.py +28 -18
  67. langchain/agents/mrkl/base.py +9 -4
  68. langchain/agents/mrkl/output_parser.py +17 -13
  69. langchain/agents/mrkl/prompt.py +1 -2
  70. langchain/agents/openai_assistant/base.py +80 -70
  71. langchain/agents/openai_functions_agent/base.py +47 -38
  72. langchain/agents/openai_functions_multi_agent/base.py +40 -27
  73. langchain/agents/openai_tools/base.py +8 -8
  74. langchain/agents/output_parsers/__init__.py +3 -3
  75. langchain/agents/output_parsers/json.py +7 -7
  76. langchain/agents/output_parsers/openai_functions.py +15 -7
  77. langchain/agents/output_parsers/openai_tools.py +9 -4
  78. langchain/agents/output_parsers/react_json_single_input.py +10 -5
  79. langchain/agents/output_parsers/react_single_input.py +15 -11
  80. langchain/agents/output_parsers/self_ask.py +3 -2
  81. langchain/agents/output_parsers/tools.py +18 -13
  82. langchain/agents/output_parsers/xml.py +99 -28
  83. langchain/agents/react/agent.py +4 -4
  84. langchain/agents/react/base.py +22 -17
  85. langchain/agents/react/output_parser.py +5 -6
  86. langchain/agents/react/textworld_prompt.py +0 -1
  87. langchain/agents/react/wiki_prompt.py +14 -15
  88. langchain/agents/schema.py +3 -2
  89. langchain/agents/self_ask_with_search/base.py +19 -15
  90. langchain/agents/self_ask_with_search/prompt.py +0 -1
  91. langchain/agents/structured_chat/base.py +14 -11
  92. langchain/agents/structured_chat/output_parser.py +16 -18
  93. langchain/agents/structured_chat/prompt.py +3 -4
  94. langchain/agents/tool_calling_agent/base.py +7 -6
  95. langchain/agents/tools.py +2 -2
  96. langchain/agents/utils.py +2 -3
  97. langchain/agents/xml/base.py +5 -5
  98. langchain/agents/xml/prompt.py +1 -2
  99. langchain/cache.py +12 -12
  100. langchain/callbacks/__init__.py +11 -11
  101. langchain/callbacks/aim_callback.py +2 -2
  102. langchain/callbacks/argilla_callback.py +1 -1
  103. langchain/callbacks/arize_callback.py +1 -1
  104. langchain/callbacks/arthur_callback.py +1 -1
  105. langchain/callbacks/base.py +7 -7
  106. langchain/callbacks/clearml_callback.py +1 -1
  107. langchain/callbacks/comet_ml_callback.py +1 -1
  108. langchain/callbacks/confident_callback.py +1 -1
  109. langchain/callbacks/context_callback.py +1 -1
  110. langchain/callbacks/flyte_callback.py +1 -1
  111. langchain/callbacks/human.py +2 -2
  112. langchain/callbacks/infino_callback.py +1 -1
  113. langchain/callbacks/labelstudio_callback.py +1 -1
  114. langchain/callbacks/llmonitor_callback.py +1 -1
  115. langchain/callbacks/manager.py +6 -6
  116. langchain/callbacks/mlflow_callback.py +2 -2
  117. langchain/callbacks/openai_info.py +1 -1
  118. langchain/callbacks/promptlayer_callback.py +1 -1
  119. langchain/callbacks/sagemaker_callback.py +1 -1
  120. langchain/callbacks/streaming_aiter.py +4 -1
  121. langchain/callbacks/streaming_aiter_final_only.py +5 -3
  122. langchain/callbacks/streaming_stdout_final_only.py +5 -3
  123. langchain/callbacks/streamlit/__init__.py +3 -2
  124. langchain/callbacks/streamlit/mutable_expander.py +1 -1
  125. langchain/callbacks/streamlit/streamlit_callback_handler.py +3 -3
  126. langchain/callbacks/tracers/__init__.py +1 -1
  127. langchain/callbacks/tracers/base.py +2 -1
  128. langchain/callbacks/tracers/comet.py +1 -1
  129. langchain/callbacks/tracers/evaluation.py +1 -1
  130. langchain/callbacks/tracers/log_stream.py +1 -1
  131. langchain/callbacks/tracers/logging.py +1 -1
  132. langchain/callbacks/tracers/stdout.py +1 -1
  133. langchain/callbacks/trubrics_callback.py +1 -1
  134. langchain/callbacks/utils.py +4 -4
  135. langchain/callbacks/wandb_callback.py +1 -1
  136. langchain/callbacks/whylabs_callback.py +1 -1
  137. langchain/chains/api/base.py +36 -22
  138. langchain/chains/api/news_docs.py +1 -2
  139. langchain/chains/api/open_meteo_docs.py +1 -2
  140. langchain/chains/api/openapi/requests_chain.py +1 -1
  141. langchain/chains/api/openapi/response_chain.py +1 -1
  142. langchain/chains/api/podcast_docs.py +1 -2
  143. langchain/chains/api/prompt.py +1 -2
  144. langchain/chains/api/tmdb_docs.py +1 -2
  145. langchain/chains/base.py +89 -55
  146. langchain/chains/chat_vector_db/prompts.py +2 -3
  147. langchain/chains/combine_documents/__init__.py +1 -1
  148. langchain/chains/combine_documents/base.py +24 -11
  149. langchain/chains/combine_documents/map_reduce.py +39 -31
  150. langchain/chains/combine_documents/map_rerank.py +34 -21
  151. langchain/chains/combine_documents/reduce.py +47 -26
  152. langchain/chains/combine_documents/refine.py +26 -17
  153. langchain/chains/combine_documents/stuff.py +19 -12
  154. langchain/chains/constitutional_ai/base.py +4 -4
  155. langchain/chains/constitutional_ai/principles.py +22 -25
  156. langchain/chains/constitutional_ai/prompts.py +25 -28
  157. langchain/chains/conversation/base.py +6 -7
  158. langchain/chains/conversation/memory.py +5 -5
  159. langchain/chains/conversation/prompt.py +5 -5
  160. langchain/chains/conversational_retrieval/base.py +41 -20
  161. langchain/chains/conversational_retrieval/prompts.py +2 -3
  162. langchain/chains/elasticsearch_database/base.py +8 -9
  163. langchain/chains/elasticsearch_database/prompts.py +2 -3
  164. langchain/chains/ernie_functions/__init__.py +2 -2
  165. langchain/chains/example_generator.py +3 -1
  166. langchain/chains/flare/base.py +26 -12
  167. langchain/chains/graph_qa/cypher.py +2 -2
  168. langchain/chains/graph_qa/falkordb.py +1 -1
  169. langchain/chains/graph_qa/gremlin.py +1 -1
  170. langchain/chains/graph_qa/neptune_sparql.py +1 -1
  171. langchain/chains/graph_qa/prompts.py +2 -2
  172. langchain/chains/history_aware_retriever.py +2 -1
  173. langchain/chains/hyde/base.py +6 -5
  174. langchain/chains/hyde/prompts.py +5 -6
  175. langchain/chains/llm.py +77 -61
  176. langchain/chains/llm_bash/__init__.py +2 -1
  177. langchain/chains/llm_checker/base.py +7 -5
  178. langchain/chains/llm_checker/prompt.py +3 -4
  179. langchain/chains/llm_math/base.py +16 -9
  180. langchain/chains/llm_math/prompt.py +1 -2
  181. langchain/chains/llm_summarization_checker/base.py +9 -6
  182. langchain/chains/llm_symbolic_math/__init__.py +2 -1
  183. langchain/chains/loading.py +170 -153
  184. langchain/chains/mapreduce.py +4 -3
  185. langchain/chains/moderation.py +8 -9
  186. langchain/chains/natbot/base.py +8 -8
  187. langchain/chains/natbot/crawler.py +73 -76
  188. langchain/chains/natbot/prompt.py +2 -3
  189. langchain/chains/openai_functions/__init__.py +7 -7
  190. langchain/chains/openai_functions/base.py +13 -10
  191. langchain/chains/openai_functions/citation_fuzzy_match.py +12 -11
  192. langchain/chains/openai_functions/extraction.py +19 -19
  193. langchain/chains/openai_functions/openapi.py +35 -35
  194. langchain/chains/openai_functions/qa_with_structure.py +19 -12
  195. langchain/chains/openai_functions/tagging.py +2 -4
  196. langchain/chains/openai_tools/extraction.py +7 -8
  197. langchain/chains/qa_generation/base.py +4 -3
  198. langchain/chains/qa_generation/prompt.py +5 -5
  199. langchain/chains/qa_with_sources/base.py +14 -6
  200. langchain/chains/qa_with_sources/loading.py +16 -8
  201. langchain/chains/qa_with_sources/map_reduce_prompt.py +8 -9
  202. langchain/chains/qa_with_sources/refine_prompts.py +0 -1
  203. langchain/chains/qa_with_sources/retrieval.py +14 -5
  204. langchain/chains/qa_with_sources/stuff_prompt.py +6 -7
  205. langchain/chains/qa_with_sources/vector_db.py +17 -6
  206. langchain/chains/query_constructor/base.py +34 -33
  207. langchain/chains/query_constructor/ir.py +4 -4
  208. langchain/chains/query_constructor/parser.py +37 -32
  209. langchain/chains/query_constructor/prompt.py +5 -6
  210. langchain/chains/question_answering/chain.py +21 -10
  211. langchain/chains/question_answering/map_reduce_prompt.py +14 -14
  212. langchain/chains/question_answering/map_rerank_prompt.py +3 -3
  213. langchain/chains/question_answering/refine_prompts.py +2 -5
  214. langchain/chains/question_answering/stuff_prompt.py +5 -5
  215. langchain/chains/retrieval.py +1 -3
  216. langchain/chains/retrieval_qa/base.py +34 -27
  217. langchain/chains/retrieval_qa/prompt.py +1 -2
  218. langchain/chains/router/__init__.py +3 -3
  219. langchain/chains/router/base.py +24 -20
  220. langchain/chains/router/embedding_router.py +12 -8
  221. langchain/chains/router/llm_router.py +17 -16
  222. langchain/chains/router/multi_prompt.py +2 -2
  223. langchain/chains/router/multi_retrieval_qa.py +10 -5
  224. langchain/chains/sequential.py +30 -18
  225. langchain/chains/sql_database/prompt.py +14 -16
  226. langchain/chains/sql_database/query.py +6 -5
  227. langchain/chains/structured_output/__init__.py +1 -1
  228. langchain/chains/structured_output/base.py +75 -67
  229. langchain/chains/summarize/chain.py +11 -5
  230. langchain/chains/summarize/map_reduce_prompt.py +0 -1
  231. langchain/chains/summarize/stuff_prompt.py +0 -1
  232. langchain/chains/transform.py +5 -6
  233. langchain/chat_loaders/facebook_messenger.py +1 -1
  234. langchain/chat_loaders/langsmith.py +1 -1
  235. langchain/chat_loaders/utils.py +3 -3
  236. langchain/chat_models/__init__.py +20 -19
  237. langchain/chat_models/anthropic.py +1 -1
  238. langchain/chat_models/azureml_endpoint.py +1 -1
  239. langchain/chat_models/baidu_qianfan_endpoint.py +1 -1
  240. langchain/chat_models/base.py +160 -123
  241. langchain/chat_models/bedrock.py +1 -1
  242. langchain/chat_models/fake.py +1 -1
  243. langchain/chat_models/meta.py +1 -1
  244. langchain/chat_models/pai_eas_endpoint.py +1 -1
  245. langchain/chat_models/promptlayer_openai.py +1 -1
  246. langchain/chat_models/volcengine_maas.py +1 -1
  247. langchain/docstore/base.py +1 -1
  248. langchain/document_loaders/__init__.py +9 -9
  249. langchain/document_loaders/airbyte.py +3 -3
  250. langchain/document_loaders/assemblyai.py +1 -1
  251. langchain/document_loaders/azure_blob_storage_container.py +1 -1
  252. langchain/document_loaders/azure_blob_storage_file.py +1 -1
  253. langchain/document_loaders/baiducloud_bos_file.py +1 -1
  254. langchain/document_loaders/base.py +1 -1
  255. langchain/document_loaders/blob_loaders/__init__.py +1 -1
  256. langchain/document_loaders/blockchain.py +1 -1
  257. langchain/document_loaders/chatgpt.py +1 -1
  258. langchain/document_loaders/college_confidential.py +1 -1
  259. langchain/document_loaders/confluence.py +1 -1
  260. langchain/document_loaders/email.py +1 -1
  261. langchain/document_loaders/facebook_chat.py +1 -1
  262. langchain/document_loaders/markdown.py +1 -1
  263. langchain/document_loaders/notebook.py +1 -1
  264. langchain/document_loaders/org_mode.py +1 -1
  265. langchain/document_loaders/parsers/__init__.py +1 -1
  266. langchain/document_loaders/parsers/docai.py +1 -1
  267. langchain/document_loaders/parsers/generic.py +1 -1
  268. langchain/document_loaders/parsers/html/__init__.py +1 -1
  269. langchain/document_loaders/parsers/html/bs4.py +1 -1
  270. langchain/document_loaders/parsers/language/cobol.py +1 -1
  271. langchain/document_loaders/parsers/language/python.py +1 -1
  272. langchain/document_loaders/parsers/msword.py +1 -1
  273. langchain/document_loaders/parsers/pdf.py +5 -5
  274. langchain/document_loaders/parsers/registry.py +1 -1
  275. langchain/document_loaders/pdf.py +8 -8
  276. langchain/document_loaders/powerpoint.py +1 -1
  277. langchain/document_loaders/pyspark_dataframe.py +1 -1
  278. langchain/document_loaders/telegram.py +2 -2
  279. langchain/document_loaders/tencent_cos_directory.py +1 -1
  280. langchain/document_loaders/unstructured.py +5 -5
  281. langchain/document_loaders/url_playwright.py +1 -1
  282. langchain/document_loaders/whatsapp_chat.py +1 -1
  283. langchain/document_loaders/youtube.py +2 -2
  284. langchain/document_transformers/__init__.py +3 -3
  285. langchain/document_transformers/beautiful_soup_transformer.py +1 -1
  286. langchain/document_transformers/doctran_text_extract.py +1 -1
  287. langchain/document_transformers/doctran_text_qa.py +1 -1
  288. langchain/document_transformers/doctran_text_translate.py +1 -1
  289. langchain/document_transformers/embeddings_redundant_filter.py +3 -3
  290. langchain/document_transformers/google_translate.py +1 -1
  291. langchain/document_transformers/html2text.py +1 -1
  292. langchain/document_transformers/nuclia_text_transform.py +1 -1
  293. langchain/embeddings/__init__.py +5 -5
  294. langchain/embeddings/base.py +33 -24
  295. langchain/embeddings/cache.py +117 -26
  296. langchain/embeddings/fake.py +1 -1
  297. langchain/embeddings/huggingface.py +2 -2
  298. langchain/evaluation/__init__.py +22 -22
  299. langchain/evaluation/agents/trajectory_eval_chain.py +24 -24
  300. langchain/evaluation/agents/trajectory_eval_prompt.py +6 -9
  301. langchain/evaluation/comparison/__init__.py +1 -1
  302. langchain/evaluation/comparison/eval_chain.py +21 -14
  303. langchain/evaluation/comparison/prompt.py +1 -2
  304. langchain/evaluation/criteria/__init__.py +1 -1
  305. langchain/evaluation/criteria/eval_chain.py +21 -12
  306. langchain/evaluation/criteria/prompt.py +2 -3
  307. langchain/evaluation/embedding_distance/base.py +24 -21
  308. langchain/evaluation/loading.py +15 -11
  309. langchain/evaluation/parsing/base.py +4 -1
  310. langchain/evaluation/parsing/json_distance.py +5 -2
  311. langchain/evaluation/parsing/json_schema.py +12 -8
  312. langchain/evaluation/qa/__init__.py +1 -1
  313. langchain/evaluation/qa/eval_chain.py +13 -6
  314. langchain/evaluation/qa/eval_prompt.py +7 -8
  315. langchain/evaluation/qa/generate_chain.py +2 -1
  316. langchain/evaluation/qa/generate_prompt.py +2 -4
  317. langchain/evaluation/schema.py +38 -30
  318. langchain/evaluation/scoring/__init__.py +1 -1
  319. langchain/evaluation/scoring/eval_chain.py +23 -16
  320. langchain/evaluation/scoring/prompt.py +0 -1
  321. langchain/evaluation/string_distance/base.py +15 -10
  322. langchain/globals.py +12 -11
  323. langchain/graphs/__init__.py +6 -6
  324. langchain/graphs/graph_document.py +1 -1
  325. langchain/graphs/networkx_graph.py +2 -2
  326. langchain/hub.py +9 -11
  327. langchain/indexes/__init__.py +3 -3
  328. langchain/indexes/_sql_record_manager.py +63 -46
  329. langchain/indexes/prompts/entity_extraction.py +1 -2
  330. langchain/indexes/prompts/entity_summarization.py +1 -2
  331. langchain/indexes/prompts/knowledge_triplet_extraction.py +1 -3
  332. langchain/indexes/vectorstore.py +35 -19
  333. langchain/llms/__init__.py +13 -13
  334. langchain/llms/ai21.py +1 -1
  335. langchain/llms/azureml_endpoint.py +4 -4
  336. langchain/llms/base.py +15 -7
  337. langchain/llms/bedrock.py +1 -1
  338. langchain/llms/cloudflare_workersai.py +1 -1
  339. langchain/llms/gradient_ai.py +1 -1
  340. langchain/llms/loading.py +1 -1
  341. langchain/llms/openai.py +1 -1
  342. langchain/llms/sagemaker_endpoint.py +1 -1
  343. langchain/load/dump.py +1 -1
  344. langchain/load/load.py +1 -1
  345. langchain/load/serializable.py +3 -3
  346. langchain/memory/__init__.py +3 -3
  347. langchain/memory/buffer.py +11 -8
  348. langchain/memory/chat_memory.py +14 -8
  349. langchain/memory/chat_message_histories/__init__.py +1 -1
  350. langchain/memory/chat_message_histories/astradb.py +1 -1
  351. langchain/memory/chat_message_histories/cassandra.py +1 -1
  352. langchain/memory/chat_message_histories/cosmos_db.py +1 -1
  353. langchain/memory/chat_message_histories/dynamodb.py +1 -1
  354. langchain/memory/chat_message_histories/elasticsearch.py +1 -1
  355. langchain/memory/chat_message_histories/file.py +1 -1
  356. langchain/memory/chat_message_histories/firestore.py +1 -1
  357. langchain/memory/chat_message_histories/momento.py +1 -1
  358. langchain/memory/chat_message_histories/mongodb.py +1 -1
  359. langchain/memory/chat_message_histories/neo4j.py +1 -1
  360. langchain/memory/chat_message_histories/postgres.py +1 -1
  361. langchain/memory/chat_message_histories/redis.py +1 -1
  362. langchain/memory/chat_message_histories/rocksetdb.py +1 -1
  363. langchain/memory/chat_message_histories/singlestoredb.py +1 -1
  364. langchain/memory/chat_message_histories/streamlit.py +1 -1
  365. langchain/memory/chat_message_histories/upstash_redis.py +1 -1
  366. langchain/memory/chat_message_histories/xata.py +1 -1
  367. langchain/memory/chat_message_histories/zep.py +1 -1
  368. langchain/memory/combined.py +13 -12
  369. langchain/memory/entity.py +84 -61
  370. langchain/memory/prompt.py +10 -11
  371. langchain/memory/readonly.py +0 -2
  372. langchain/memory/simple.py +1 -3
  373. langchain/memory/summary.py +13 -11
  374. langchain/memory/summary_buffer.py +17 -8
  375. langchain/memory/utils.py +3 -2
  376. langchain/memory/vectorstore.py +13 -6
  377. langchain/memory/vectorstore_token_buffer_memory.py +5 -5
  378. langchain/model_laboratory.py +12 -11
  379. langchain/output_parsers/__init__.py +4 -4
  380. langchain/output_parsers/boolean.py +7 -4
  381. langchain/output_parsers/combining.py +10 -5
  382. langchain/output_parsers/datetime.py +32 -31
  383. langchain/output_parsers/enum.py +5 -3
  384. langchain/output_parsers/fix.py +52 -52
  385. langchain/output_parsers/format_instructions.py +6 -8
  386. langchain/output_parsers/json.py +2 -2
  387. langchain/output_parsers/list.py +2 -2
  388. langchain/output_parsers/loading.py +9 -9
  389. langchain/output_parsers/openai_functions.py +3 -3
  390. langchain/output_parsers/openai_tools.py +1 -1
  391. langchain/output_parsers/pandas_dataframe.py +43 -47
  392. langchain/output_parsers/prompts.py +1 -2
  393. langchain/output_parsers/rail_parser.py +1 -1
  394. langchain/output_parsers/regex.py +7 -8
  395. langchain/output_parsers/regex_dict.py +7 -10
  396. langchain/output_parsers/retry.py +77 -78
  397. langchain/output_parsers/structured.py +11 -6
  398. langchain/output_parsers/yaml.py +15 -11
  399. langchain/prompts/__init__.py +5 -3
  400. langchain/prompts/base.py +5 -5
  401. langchain/prompts/chat.py +10 -9
  402. langchain/prompts/example_selector/__init__.py +3 -1
  403. langchain/prompts/example_selector/semantic_similarity.py +2 -2
  404. langchain/prompts/few_shot.py +1 -1
  405. langchain/prompts/loading.py +3 -3
  406. langchain/prompts/prompt.py +1 -1
  407. langchain/retrievers/__init__.py +5 -5
  408. langchain/retrievers/bedrock.py +2 -2
  409. langchain/retrievers/bm25.py +1 -1
  410. langchain/retrievers/contextual_compression.py +15 -13
  411. langchain/retrievers/docarray.py +1 -1
  412. langchain/retrievers/document_compressors/__init__.py +7 -5
  413. langchain/retrievers/document_compressors/base.py +13 -7
  414. langchain/retrievers/document_compressors/chain_extract.py +4 -5
  415. langchain/retrievers/document_compressors/chain_extract_prompt.py +2 -3
  416. langchain/retrievers/document_compressors/chain_filter.py +11 -12
  417. langchain/retrievers/document_compressors/chain_filter_prompt.py +1 -2
  418. langchain/retrievers/document_compressors/cohere_rerank.py +17 -19
  419. langchain/retrievers/document_compressors/embeddings_filter.py +23 -23
  420. langchain/retrievers/document_compressors/flashrank_rerank.py +1 -1
  421. langchain/retrievers/document_compressors/listwise_rerank.py +11 -6
  422. langchain/retrievers/ensemble.py +28 -25
  423. langchain/retrievers/google_cloud_documentai_warehouse.py +1 -1
  424. langchain/retrievers/google_vertex_ai_search.py +2 -2
  425. langchain/retrievers/kendra.py +10 -10
  426. langchain/retrievers/llama_index.py +1 -1
  427. langchain/retrievers/merger_retriever.py +11 -11
  428. langchain/retrievers/milvus.py +1 -1
  429. langchain/retrievers/multi_query.py +32 -26
  430. langchain/retrievers/multi_vector.py +20 -8
  431. langchain/retrievers/parent_document_retriever.py +18 -9
  432. langchain/retrievers/re_phraser.py +6 -5
  433. langchain/retrievers/self_query/base.py +138 -119
  434. langchain/retrievers/time_weighted_retriever.py +18 -7
  435. langchain/retrievers/zilliz.py +1 -1
  436. langchain/runnables/hub.py +2 -1
  437. langchain/runnables/openai_functions.py +6 -2
  438. langchain/schema/__init__.py +23 -23
  439. langchain/schema/cache.py +1 -1
  440. langchain/schema/callbacks/base.py +7 -7
  441. langchain/schema/callbacks/manager.py +19 -19
  442. langchain/schema/callbacks/tracers/base.py +3 -2
  443. langchain/schema/callbacks/tracers/evaluation.py +1 -1
  444. langchain/schema/callbacks/tracers/langchain.py +1 -1
  445. langchain/schema/callbacks/tracers/langchain_v1.py +1 -1
  446. langchain/schema/callbacks/tracers/log_stream.py +1 -1
  447. langchain/schema/callbacks/tracers/schemas.py +8 -8
  448. langchain/schema/callbacks/tracers/stdout.py +3 -3
  449. langchain/schema/document.py +1 -1
  450. langchain/schema/language_model.py +2 -2
  451. langchain/schema/messages.py +12 -12
  452. langchain/schema/output.py +3 -3
  453. langchain/schema/output_parser.py +3 -3
  454. langchain/schema/runnable/__init__.py +3 -3
  455. langchain/schema/runnable/base.py +9 -9
  456. langchain/schema/runnable/config.py +5 -5
  457. langchain/schema/runnable/configurable.py +1 -1
  458. langchain/schema/runnable/history.py +1 -1
  459. langchain/schema/runnable/passthrough.py +1 -1
  460. langchain/schema/runnable/utils.py +16 -16
  461. langchain/schema/vectorstore.py +1 -1
  462. langchain/smith/__init__.py +1 -1
  463. langchain/smith/evaluation/__init__.py +2 -2
  464. langchain/smith/evaluation/config.py +10 -7
  465. langchain/smith/evaluation/name_generation.py +3 -3
  466. langchain/smith/evaluation/progress.py +11 -2
  467. langchain/smith/evaluation/runner_utils.py +181 -129
  468. langchain/smith/evaluation/string_run_evaluator.py +75 -68
  469. langchain/storage/__init__.py +2 -2
  470. langchain/storage/_lc_store.py +4 -2
  471. langchain/storage/encoder_backed.py +6 -2
  472. langchain/storage/file_system.py +19 -16
  473. langchain/storage/in_memory.py +1 -1
  474. langchain/storage/upstash_redis.py +1 -1
  475. langchain/text_splitter.py +15 -15
  476. langchain/tools/__init__.py +28 -26
  477. langchain/tools/ainetwork/app.py +1 -1
  478. langchain/tools/ainetwork/base.py +1 -1
  479. langchain/tools/ainetwork/owner.py +1 -1
  480. langchain/tools/ainetwork/rule.py +1 -1
  481. langchain/tools/ainetwork/transfer.py +1 -1
  482. langchain/tools/ainetwork/value.py +1 -1
  483. langchain/tools/amadeus/closest_airport.py +1 -1
  484. langchain/tools/amadeus/flight_search.py +1 -1
  485. langchain/tools/azure_cognitive_services/__init__.py +1 -1
  486. langchain/tools/base.py +4 -4
  487. langchain/tools/bearly/tool.py +1 -1
  488. langchain/tools/bing_search/__init__.py +1 -1
  489. langchain/tools/bing_search/tool.py +1 -1
  490. langchain/tools/dataforseo_api_search/__init__.py +1 -1
  491. langchain/tools/dataforseo_api_search/tool.py +1 -1
  492. langchain/tools/ddg_search/tool.py +1 -1
  493. langchain/tools/e2b_data_analysis/tool.py +2 -2
  494. langchain/tools/edenai/__init__.py +1 -1
  495. langchain/tools/file_management/__init__.py +1 -1
  496. langchain/tools/file_management/copy.py +1 -1
  497. langchain/tools/file_management/delete.py +1 -1
  498. langchain/tools/gmail/__init__.py +2 -2
  499. langchain/tools/gmail/get_message.py +1 -1
  500. langchain/tools/gmail/search.py +1 -1
  501. langchain/tools/gmail/send_message.py +1 -1
  502. langchain/tools/google_finance/__init__.py +1 -1
  503. langchain/tools/google_finance/tool.py +1 -1
  504. langchain/tools/google_scholar/__init__.py +1 -1
  505. langchain/tools/google_scholar/tool.py +1 -1
  506. langchain/tools/google_search/__init__.py +1 -1
  507. langchain/tools/google_search/tool.py +1 -1
  508. langchain/tools/google_serper/__init__.py +1 -1
  509. langchain/tools/google_serper/tool.py +1 -1
  510. langchain/tools/google_trends/__init__.py +1 -1
  511. langchain/tools/google_trends/tool.py +1 -1
  512. langchain/tools/jira/tool.py +20 -1
  513. langchain/tools/json/tool.py +25 -3
  514. langchain/tools/memorize/tool.py +1 -1
  515. langchain/tools/multion/__init__.py +1 -1
  516. langchain/tools/multion/update_session.py +1 -1
  517. langchain/tools/office365/__init__.py +2 -2
  518. langchain/tools/office365/events_search.py +1 -1
  519. langchain/tools/office365/messages_search.py +1 -1
  520. langchain/tools/office365/send_event.py +1 -1
  521. langchain/tools/office365/send_message.py +1 -1
  522. langchain/tools/openapi/utils/api_models.py +6 -6
  523. langchain/tools/playwright/__init__.py +5 -5
  524. langchain/tools/playwright/click.py +1 -1
  525. langchain/tools/playwright/extract_hyperlinks.py +1 -1
  526. langchain/tools/playwright/get_elements.py +1 -1
  527. langchain/tools/playwright/navigate.py +1 -1
  528. langchain/tools/plugin.py +2 -2
  529. langchain/tools/powerbi/tool.py +1 -1
  530. langchain/tools/python/__init__.py +2 -1
  531. langchain/tools/reddit_search/tool.py +1 -1
  532. langchain/tools/render.py +2 -2
  533. langchain/tools/requests/tool.py +2 -2
  534. langchain/tools/searchapi/tool.py +1 -1
  535. langchain/tools/searx_search/tool.py +1 -1
  536. langchain/tools/slack/get_message.py +1 -1
  537. langchain/tools/spark_sql/tool.py +1 -1
  538. langchain/tools/sql_database/tool.py +1 -1
  539. langchain/tools/tavily_search/__init__.py +1 -1
  540. langchain/tools/tavily_search/tool.py +1 -1
  541. langchain/tools/zapier/__init__.py +1 -1
  542. langchain/tools/zapier/tool.py +24 -2
  543. langchain/utilities/__init__.py +4 -4
  544. langchain/utilities/arcee.py +4 -4
  545. langchain/utilities/clickup.py +4 -4
  546. langchain/utilities/dalle_image_generator.py +1 -1
  547. langchain/utilities/dataforseo_api_search.py +1 -1
  548. langchain/utilities/opaqueprompts.py +1 -1
  549. langchain/utilities/reddit_search.py +1 -1
  550. langchain/utilities/sql_database.py +1 -1
  551. langchain/utilities/tavily_search.py +1 -1
  552. langchain/utilities/vertexai.py +2 -2
  553. langchain/utils/__init__.py +1 -1
  554. langchain/utils/aiter.py +1 -1
  555. langchain/utils/html.py +3 -3
  556. langchain/utils/input.py +1 -1
  557. langchain/utils/iter.py +1 -1
  558. langchain/utils/json_schema.py +1 -3
  559. langchain/utils/strings.py +1 -1
  560. langchain/utils/utils.py +6 -6
  561. langchain/vectorstores/__init__.py +5 -5
  562. langchain/vectorstores/alibabacloud_opensearch.py +1 -1
  563. langchain/vectorstores/azure_cosmos_db.py +1 -1
  564. langchain/vectorstores/clickhouse.py +1 -1
  565. langchain/vectorstores/elastic_vector_search.py +1 -1
  566. langchain/vectorstores/elasticsearch.py +2 -2
  567. langchain/vectorstores/myscale.py +1 -1
  568. langchain/vectorstores/neo4j_vector.py +1 -1
  569. langchain/vectorstores/pgembedding.py +1 -1
  570. langchain/vectorstores/qdrant.py +1 -1
  571. langchain/vectorstores/redis/__init__.py +1 -1
  572. langchain/vectorstores/redis/base.py +1 -1
  573. langchain/vectorstores/redis/filters.py +4 -4
  574. langchain/vectorstores/redis/schema.py +6 -6
  575. langchain/vectorstores/sklearn.py +2 -2
  576. langchain/vectorstores/starrocks.py +1 -1
  577. langchain/vectorstores/utils.py +1 -1
  578. {langchain-0.3.25.dist-info → langchain-0.3.27.dist-info}/METADATA +5 -5
  579. {langchain-0.3.25.dist-info → langchain-0.3.27.dist-info}/RECORD +582 -582
  580. {langchain-0.3.25.dist-info → langchain-0.3.27.dist-info}/WHEEL +1 -1
  581. {langchain-0.3.25.dist-info → langchain-0.3.27.dist-info}/entry_points.txt +0 -0
  582. {langchain-0.3.25.dist-info → langchain-0.3.27.dist-info}/licenses/LICENSE +0 -0
@@ -1,4 +1,3 @@
1
- # flake8: noqa
2
1
  from langchain_core.prompts.prompt import PromptTemplate
3
2
 
4
3
  _CREATE_DRAFT_ANSWER_TEMPLATE = """{question}\n\n"""
@@ -8,14 +7,14 @@ CREATE_DRAFT_ANSWER_PROMPT = PromptTemplate(
8
7
 
9
8
  _LIST_ASSERTIONS_TEMPLATE = """Here is a statement:
10
9
  {statement}
11
- Make a bullet point list of the assumptions you made when producing the above statement.\n\n"""
10
+ Make a bullet point list of the assumptions you made when producing the above statement.\n\n""" # noqa: E501
12
11
  LIST_ASSERTIONS_PROMPT = PromptTemplate(
13
12
  input_variables=["statement"], template=_LIST_ASSERTIONS_TEMPLATE
14
13
  )
15
14
 
16
15
  _CHECK_ASSERTIONS_TEMPLATE = """Here is a bullet point list of assertions:
17
16
  {assertions}
18
- For each assertion, determine whether it is true or false. If it is false, explain why.\n\n"""
17
+ For each assertion, determine whether it is true or false. If it is false, explain why.\n\n""" # noqa: E501
19
18
  CHECK_ASSERTIONS_PROMPT = PromptTemplate(
20
19
  input_variables=["assertions"], template=_CHECK_ASSERTIONS_TEMPLATE
21
20
  )
@@ -24,7 +23,7 @@ _REVISED_ANSWER_TEMPLATE = """{checked_assertions}
24
23
 
25
24
  Question: In light of the above assertions and checks, how would you answer the question '{question}'?
26
25
 
27
- Answer:"""
26
+ Answer:""" # noqa: E501
28
27
  REVISED_ANSWER_PROMPT = PromptTemplate(
29
28
  input_variables=["checked_assertions", "question"],
30
29
  template=_REVISED_ANSWER_TEMPLATE,
@@ -26,7 +26,7 @@ from langchain.chains.llm_math.prompt import PROMPT
26
26
  message=(
27
27
  "This class is deprecated and will be removed in langchain 1.0. "
28
28
  "See API reference for replacement: "
29
- "https://api.python.langchain.com/en/latest/chains/langchain.chains.llm_math.base.LLMMathChain.html" # noqa: E501
29
+ "https://api.python.langchain.com/en/latest/chains/langchain.chains.llm_math.base.LLMMathChain.html"
30
30
  ),
31
31
  removal="1.0",
32
32
  )
@@ -166,16 +166,18 @@ class LLMMathChain(Chain):
166
166
  def raise_deprecation(cls, values: dict) -> Any:
167
167
  try:
168
168
  import numexpr # noqa: F401
169
- except ImportError:
170
- raise ImportError(
169
+ except ImportError as e:
170
+ msg = (
171
171
  "LLMMathChain requires the numexpr package. "
172
172
  "Please install it with `pip install numexpr`."
173
173
  )
174
+ raise ImportError(msg) from e
174
175
  if "llm" in values:
175
176
  warnings.warn(
176
177
  "Directly instantiating an LLMMathChain with an llm is deprecated. "
177
178
  "Please instantiate with llm_chain argument or using the from_llm "
178
- "class method."
179
+ "class method.",
180
+ stacklevel=5,
179
181
  )
180
182
  if "llm_chain" not in values and values["llm"] is not None:
181
183
  prompt = values.get("prompt", PROMPT)
@@ -208,19 +210,22 @@ class LLMMathChain(Chain):
208
210
  expression.strip(),
209
211
  global_dict={}, # restrict access to globals
210
212
  local_dict=local_dict, # add common mathematical functions
211
- )
213
+ ),
212
214
  )
213
215
  except Exception as e:
214
- raise ValueError(
216
+ msg = (
215
217
  f'LLMMathChain._evaluate("{expression}") raised error: {e}.'
216
218
  " Please try again with a valid numerical expression"
217
219
  )
220
+ raise ValueError(msg) from e
218
221
 
219
222
  # Remove any leading and trailing brackets from the output
220
223
  return re.sub(r"^\[|\]$", "", output)
221
224
 
222
225
  def _process_llm_result(
223
- self, llm_output: str, run_manager: CallbackManagerForChainRun
226
+ self,
227
+ llm_output: str,
228
+ run_manager: CallbackManagerForChainRun,
224
229
  ) -> dict[str, str]:
225
230
  run_manager.on_text(llm_output, color="green", verbose=self.verbose)
226
231
  llm_output = llm_output.strip()
@@ -236,7 +241,8 @@ class LLMMathChain(Chain):
236
241
  elif "Answer:" in llm_output:
237
242
  answer = "Answer: " + llm_output.split("Answer:")[-1]
238
243
  else:
239
- raise ValueError(f"unknown format from LLM: {llm_output}")
244
+ msg = f"unknown format from LLM: {llm_output}"
245
+ raise ValueError(msg)
240
246
  return {self.output_key: answer}
241
247
 
242
248
  async def _aprocess_llm_result(
@@ -258,7 +264,8 @@ class LLMMathChain(Chain):
258
264
  elif "Answer:" in llm_output:
259
265
  answer = "Answer: " + llm_output.split("Answer:")[-1]
260
266
  else:
261
- raise ValueError(f"unknown format from LLM: {llm_output}")
267
+ msg = f"unknown format from LLM: {llm_output}"
268
+ raise ValueError(msg)
262
269
  return {self.output_key: answer}
263
270
 
264
271
  def _call(
@@ -1,4 +1,3 @@
1
- # flake8: noqa
2
1
  from langchain_core.prompts.prompt import PromptTemplate
3
2
 
4
3
  _PROMPT_TEMPLATE = """Translate a math problem into a expression that can be executed using Python's numexpr library. Use the output of running this code to answer the question.
@@ -36,7 +35,7 @@ Question: 37593^(1/5)
36
35
  Answer: 8.222831614237718
37
36
 
38
37
  Question: {question}
39
- """
38
+ """ # noqa: E501
40
39
 
41
40
  PROMPT = PromptTemplate(
42
41
  input_variables=["question"],
@@ -30,9 +30,10 @@ def _load_sequential_chain(
30
30
  check_assertions_prompt: PromptTemplate,
31
31
  revised_summary_prompt: PromptTemplate,
32
32
  are_all_true_prompt: PromptTemplate,
33
+ *,
33
34
  verbose: bool = False,
34
35
  ) -> SequentialChain:
35
- chain = SequentialChain(
36
+ return SequentialChain(
36
37
  chains=[
37
38
  LLMChain(
38
39
  llm=llm,
@@ -63,7 +64,6 @@ def _load_sequential_chain(
63
64
  output_variables=["all_true", "revised_summary"],
64
65
  verbose=verbose,
65
66
  )
66
- return chain
67
67
 
68
68
 
69
69
  @deprecated(
@@ -117,7 +117,8 @@ class LLMSummarizationCheckerChain(Chain):
117
117
  warnings.warn(
118
118
  "Directly instantiating an LLMSummarizationCheckerChain with an llm is "
119
119
  "deprecated. Please instantiate with"
120
- " sequential_chain argument or using the from_llm class method."
120
+ " sequential_chain argument or using the from_llm class method.",
121
+ stacklevel=5,
121
122
  )
122
123
  if "sequential_chain" not in values and values["llm"] is not None:
123
124
  values["sequential_chain"] = _load_sequential_chain(
@@ -159,7 +160,8 @@ class LLMSummarizationCheckerChain(Chain):
159
160
  chain_input = original_input
160
161
  while not all_true and count < self.max_checks:
161
162
  output = self.sequential_chain(
162
- {"summary": chain_input}, callbacks=_run_manager.get_child()
163
+ {"summary": chain_input},
164
+ callbacks=_run_manager.get_child(),
163
165
  )
164
166
  count += 1
165
167
 
@@ -172,7 +174,8 @@ class LLMSummarizationCheckerChain(Chain):
172
174
  chain_input = output["revised_summary"]
173
175
 
174
176
  if not output:
175
- raise ValueError("No output from chain")
177
+ msg = "No output from chain"
178
+ raise ValueError(msg)
176
179
 
177
180
  return {self.output_key: output["revised_summary"].strip()}
178
181
 
@@ -188,7 +191,7 @@ class LLMSummarizationCheckerChain(Chain):
188
191
  check_assertions_prompt: PromptTemplate = CHECK_ASSERTIONS_PROMPT,
189
192
  revised_summary_prompt: PromptTemplate = REVISED_SUMMARY_PROMPT,
190
193
  are_all_true_prompt: PromptTemplate = ARE_ALL_TRUE_PROMPT,
191
- verbose: bool = False,
194
+ verbose: bool = False, # noqa: FBT001,FBT002
192
195
  **kwargs: Any,
193
196
  ) -> LLMSummarizationCheckerChain:
194
197
  chain = _load_sequential_chain(
@@ -1,9 +1,10 @@
1
1
  def __getattr__(name: str = "") -> None:
2
2
  """Raise an error on import since is deprecated."""
3
- raise AttributeError(
3
+ msg = (
4
4
  "This module has been moved to langchain-experimental. "
5
5
  "For more details: https://github.com/langchain-ai/langchain/discussions/11352."
6
6
  "To access this code, install it with `pip install langchain-experimental`."
7
7
  "`from langchain_experimental.llm_symbolic_math.base "
8
8
  "import LLMSymbolicMathChain`"
9
9
  )
10
+ raise AttributeError(msg)