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
langchain/__init__.py CHANGED
@@ -1,4 +1,3 @@
1
- # ruff: noqa: E402
2
1
  """Main entrypoint into package."""
3
2
 
4
3
  import warnings
@@ -29,11 +28,13 @@ def _warn_on_import(name: str, replacement: Optional[str] = None) -> None:
29
28
  if replacement:
30
29
  warnings.warn(
31
30
  f"Importing {name} from langchain root module is no longer supported. "
32
- f"Please use {replacement} instead."
31
+ f"Please use {replacement} instead.",
32
+ stacklevel=3,
33
33
  )
34
34
  else:
35
35
  warnings.warn(
36
- f"Importing {name} from langchain root module is no longer supported."
36
+ f"Importing {name} from langchain root module is no longer supported.",
37
+ stacklevel=3,
37
38
  )
38
39
 
39
40
 
@@ -48,26 +49,26 @@ def __getattr__(name: str) -> Any:
48
49
  _warn_on_import(name, replacement="langchain.agents.MRKLChain")
49
50
 
50
51
  return MRKLChain
51
- elif name == "ReActChain":
52
+ if name == "ReActChain":
52
53
  from langchain.agents import ReActChain
53
54
 
54
55
  _warn_on_import(name, replacement="langchain.agents.ReActChain")
55
56
 
56
57
  return ReActChain
57
- elif name == "SelfAskWithSearchChain":
58
+ if name == "SelfAskWithSearchChain":
58
59
  from langchain.agents import SelfAskWithSearchChain
59
60
 
60
61
  _warn_on_import(name, replacement="langchain.agents.SelfAskWithSearchChain")
61
62
 
62
63
  return SelfAskWithSearchChain
63
- elif name == "ConversationChain":
64
+ if name == "ConversationChain":
64
65
  from langchain.chains import ConversationChain
65
66
 
66
67
  _warn_on_import(name, replacement="langchain.chains.ConversationChain")
67
68
 
68
69
  return ConversationChain
69
- elif name == "LLMBashChain":
70
- raise ImportError(
70
+ if name == "LLMBashChain":
71
+ msg = (
71
72
  "This module has been moved to langchain-experimental. "
72
73
  "For more details: "
73
74
  "https://github.com/langchain-ai/langchain/discussions/11352."
@@ -75,154 +76,156 @@ def __getattr__(name: str) -> Any:
75
76
  "`from langchain_experimental.llm_bash.base "
76
77
  "import LLMBashChain`"
77
78
  )
79
+ raise ImportError(msg)
78
80
 
79
- elif name == "LLMChain":
81
+ if name == "LLMChain":
80
82
  from langchain.chains import LLMChain
81
83
 
82
84
  _warn_on_import(name, replacement="langchain.chains.LLMChain")
83
85
 
84
86
  return LLMChain
85
- elif name == "LLMCheckerChain":
87
+ if name == "LLMCheckerChain":
86
88
  from langchain.chains import LLMCheckerChain
87
89
 
88
90
  _warn_on_import(name, replacement="langchain.chains.LLMCheckerChain")
89
91
 
90
92
  return LLMCheckerChain
91
- elif name == "LLMMathChain":
93
+ if name == "LLMMathChain":
92
94
  from langchain.chains import LLMMathChain
93
95
 
94
96
  _warn_on_import(name, replacement="langchain.chains.LLMMathChain")
95
97
 
96
98
  return LLMMathChain
97
- elif name == "QAWithSourcesChain":
99
+ if name == "QAWithSourcesChain":
98
100
  from langchain.chains import QAWithSourcesChain
99
101
 
100
102
  _warn_on_import(name, replacement="langchain.chains.QAWithSourcesChain")
101
103
 
102
104
  return QAWithSourcesChain
103
- elif name == "VectorDBQA":
105
+ if name == "VectorDBQA":
104
106
  from langchain.chains import VectorDBQA
105
107
 
106
108
  _warn_on_import(name, replacement="langchain.chains.VectorDBQA")
107
109
 
108
110
  return VectorDBQA
109
- elif name == "VectorDBQAWithSourcesChain":
111
+ if name == "VectorDBQAWithSourcesChain":
110
112
  from langchain.chains import VectorDBQAWithSourcesChain
111
113
 
112
114
  _warn_on_import(name, replacement="langchain.chains.VectorDBQAWithSourcesChain")
113
115
 
114
116
  return VectorDBQAWithSourcesChain
115
- elif name == "InMemoryDocstore":
117
+ if name == "InMemoryDocstore":
116
118
  from langchain_community.docstore import InMemoryDocstore
117
119
 
118
120
  _warn_on_import(name, replacement="langchain.docstore.InMemoryDocstore")
119
121
 
120
122
  return InMemoryDocstore
121
- elif name == "Wikipedia":
123
+ if name == "Wikipedia":
122
124
  from langchain_community.docstore import Wikipedia
123
125
 
124
126
  _warn_on_import(name, replacement="langchain.docstore.Wikipedia")
125
127
 
126
128
  return Wikipedia
127
- elif name == "Anthropic":
129
+ if name == "Anthropic":
128
130
  from langchain_community.llms import Anthropic
129
131
 
130
132
  _warn_on_import(name, replacement="langchain_community.llms.Anthropic")
131
133
 
132
134
  return Anthropic
133
- elif name == "Banana":
135
+ if name == "Banana":
134
136
  from langchain_community.llms import Banana
135
137
 
136
138
  _warn_on_import(name, replacement="langchain_community.llms.Banana")
137
139
 
138
140
  return Banana
139
- elif name == "CerebriumAI":
141
+ if name == "CerebriumAI":
140
142
  from langchain_community.llms import CerebriumAI
141
143
 
142
144
  _warn_on_import(name, replacement="langchain_community.llms.CerebriumAI")
143
145
 
144
146
  return CerebriumAI
145
- elif name == "Cohere":
147
+ if name == "Cohere":
146
148
  from langchain_community.llms import Cohere
147
149
 
148
150
  _warn_on_import(name, replacement="langchain_community.llms.Cohere")
149
151
 
150
152
  return Cohere
151
- elif name == "ForefrontAI":
153
+ if name == "ForefrontAI":
152
154
  from langchain_community.llms import ForefrontAI
153
155
 
154
156
  _warn_on_import(name, replacement="langchain_community.llms.ForefrontAI")
155
157
 
156
158
  return ForefrontAI
157
- elif name == "GooseAI":
159
+ if name == "GooseAI":
158
160
  from langchain_community.llms import GooseAI
159
161
 
160
162
  _warn_on_import(name, replacement="langchain_community.llms.GooseAI")
161
163
 
162
164
  return GooseAI
163
- elif name == "HuggingFaceHub":
165
+ if name == "HuggingFaceHub":
164
166
  from langchain_community.llms import HuggingFaceHub
165
167
 
166
168
  _warn_on_import(name, replacement="langchain_community.llms.HuggingFaceHub")
167
169
 
168
170
  return HuggingFaceHub
169
- elif name == "HuggingFaceTextGenInference":
171
+ if name == "HuggingFaceTextGenInference":
170
172
  from langchain_community.llms import HuggingFaceTextGenInference
171
173
 
172
174
  _warn_on_import(
173
- name, replacement="langchain_community.llms.HuggingFaceTextGenInference"
175
+ name,
176
+ replacement="langchain_community.llms.HuggingFaceTextGenInference",
174
177
  )
175
178
 
176
179
  return HuggingFaceTextGenInference
177
- elif name == "LlamaCpp":
180
+ if name == "LlamaCpp":
178
181
  from langchain_community.llms import LlamaCpp
179
182
 
180
183
  _warn_on_import(name, replacement="langchain_community.llms.LlamaCpp")
181
184
 
182
185
  return LlamaCpp
183
- elif name == "Modal":
186
+ if name == "Modal":
184
187
  from langchain_community.llms import Modal
185
188
 
186
189
  _warn_on_import(name, replacement="langchain_community.llms.Modal")
187
190
 
188
191
  return Modal
189
- elif name == "OpenAI":
192
+ if name == "OpenAI":
190
193
  from langchain_community.llms import OpenAI
191
194
 
192
195
  _warn_on_import(name, replacement="langchain_community.llms.OpenAI")
193
196
 
194
197
  return OpenAI
195
- elif name == "Petals":
198
+ if name == "Petals":
196
199
  from langchain_community.llms import Petals
197
200
 
198
201
  _warn_on_import(name, replacement="langchain_community.llms.Petals")
199
202
 
200
203
  return Petals
201
- elif name == "PipelineAI":
204
+ if name == "PipelineAI":
202
205
  from langchain_community.llms import PipelineAI
203
206
 
204
207
  _warn_on_import(name, replacement="langchain_community.llms.PipelineAI")
205
208
 
206
209
  return PipelineAI
207
- elif name == "SagemakerEndpoint":
210
+ if name == "SagemakerEndpoint":
208
211
  from langchain_community.llms import SagemakerEndpoint
209
212
 
210
213
  _warn_on_import(name, replacement="langchain_community.llms.SagemakerEndpoint")
211
214
 
212
215
  return SagemakerEndpoint
213
- elif name == "StochasticAI":
216
+ if name == "StochasticAI":
214
217
  from langchain_community.llms import StochasticAI
215
218
 
216
219
  _warn_on_import(name, replacement="langchain_community.llms.StochasticAI")
217
220
 
218
221
  return StochasticAI
219
- elif name == "Writer":
222
+ if name == "Writer":
220
223
  from langchain_community.llms import Writer
221
224
 
222
225
  _warn_on_import(name, replacement="langchain_community.llms.Writer")
223
226
 
224
227
  return Writer
225
- elif name == "HuggingFacePipeline":
228
+ if name == "HuggingFacePipeline":
226
229
  from langchain_community.llms.huggingface_pipeline import HuggingFacePipeline
227
230
 
228
231
  _warn_on_import(
@@ -231,15 +234,16 @@ def __getattr__(name: str) -> Any:
231
234
  )
232
235
 
233
236
  return HuggingFacePipeline
234
- elif name == "FewShotPromptTemplate":
237
+ if name == "FewShotPromptTemplate":
235
238
  from langchain_core.prompts import FewShotPromptTemplate
236
239
 
237
240
  _warn_on_import(
238
- name, replacement="langchain_core.prompts.FewShotPromptTemplate"
241
+ name,
242
+ replacement="langchain_core.prompts.FewShotPromptTemplate",
239
243
  )
240
244
 
241
245
  return FewShotPromptTemplate
242
- elif name == "Prompt":
246
+ if name == "Prompt":
243
247
  from langchain_core.prompts import PromptTemplate
244
248
 
245
249
  _warn_on_import(name, replacement="langchain_core.prompts.PromptTemplate")
@@ -247,112 +251,122 @@ def __getattr__(name: str) -> Any:
247
251
  # it's renamed as prompt template anyways
248
252
  # this is just for backwards compat
249
253
  return PromptTemplate
250
- elif name == "PromptTemplate":
254
+ if name == "PromptTemplate":
251
255
  from langchain_core.prompts import PromptTemplate
252
256
 
253
257
  _warn_on_import(name, replacement="langchain_core.prompts.PromptTemplate")
254
258
 
255
259
  return PromptTemplate
256
- elif name == "BasePromptTemplate":
260
+ if name == "BasePromptTemplate":
257
261
  from langchain_core.prompts import BasePromptTemplate
258
262
 
259
263
  _warn_on_import(name, replacement="langchain_core.prompts.BasePromptTemplate")
260
264
 
261
265
  return BasePromptTemplate
262
- elif name == "ArxivAPIWrapper":
266
+ if name == "ArxivAPIWrapper":
263
267
  from langchain_community.utilities import ArxivAPIWrapper
264
268
 
265
269
  _warn_on_import(
266
- name, replacement="langchain_community.utilities.ArxivAPIWrapper"
270
+ name,
271
+ replacement="langchain_community.utilities.ArxivAPIWrapper",
267
272
  )
268
273
 
269
274
  return ArxivAPIWrapper
270
- elif name == "GoldenQueryAPIWrapper":
275
+ if name == "GoldenQueryAPIWrapper":
271
276
  from langchain_community.utilities import GoldenQueryAPIWrapper
272
277
 
273
278
  _warn_on_import(
274
- name, replacement="langchain_community.utilities.GoldenQueryAPIWrapper"
279
+ name,
280
+ replacement="langchain_community.utilities.GoldenQueryAPIWrapper",
275
281
  )
276
282
 
277
283
  return GoldenQueryAPIWrapper
278
- elif name == "GoogleSearchAPIWrapper":
284
+ if name == "GoogleSearchAPIWrapper":
279
285
  from langchain_community.utilities import GoogleSearchAPIWrapper
280
286
 
281
287
  _warn_on_import(
282
- name, replacement="langchain_community.utilities.GoogleSearchAPIWrapper"
288
+ name,
289
+ replacement="langchain_community.utilities.GoogleSearchAPIWrapper",
283
290
  )
284
291
 
285
292
  return GoogleSearchAPIWrapper
286
- elif name == "GoogleSerperAPIWrapper":
293
+ if name == "GoogleSerperAPIWrapper":
287
294
  from langchain_community.utilities import GoogleSerperAPIWrapper
288
295
 
289
296
  _warn_on_import(
290
- name, replacement="langchain_community.utilities.GoogleSerperAPIWrapper"
297
+ name,
298
+ replacement="langchain_community.utilities.GoogleSerperAPIWrapper",
291
299
  )
292
300
 
293
301
  return GoogleSerperAPIWrapper
294
- elif name == "PowerBIDataset":
302
+ if name == "PowerBIDataset":
295
303
  from langchain_community.utilities import PowerBIDataset
296
304
 
297
305
  _warn_on_import(
298
- name, replacement="langchain_community.utilities.PowerBIDataset"
306
+ name,
307
+ replacement="langchain_community.utilities.PowerBIDataset",
299
308
  )
300
309
 
301
310
  return PowerBIDataset
302
- elif name == "SearxSearchWrapper":
311
+ if name == "SearxSearchWrapper":
303
312
  from langchain_community.utilities import SearxSearchWrapper
304
313
 
305
314
  _warn_on_import(
306
- name, replacement="langchain_community.utilities.SearxSearchWrapper"
315
+ name,
316
+ replacement="langchain_community.utilities.SearxSearchWrapper",
307
317
  )
308
318
 
309
319
  return SearxSearchWrapper
310
- elif name == "WikipediaAPIWrapper":
320
+ if name == "WikipediaAPIWrapper":
311
321
  from langchain_community.utilities import WikipediaAPIWrapper
312
322
 
313
323
  _warn_on_import(
314
- name, replacement="langchain_community.utilities.WikipediaAPIWrapper"
324
+ name,
325
+ replacement="langchain_community.utilities.WikipediaAPIWrapper",
315
326
  )
316
327
 
317
328
  return WikipediaAPIWrapper
318
- elif name == "WolframAlphaAPIWrapper":
329
+ if name == "WolframAlphaAPIWrapper":
319
330
  from langchain_community.utilities import WolframAlphaAPIWrapper
320
331
 
321
332
  _warn_on_import(
322
- name, replacement="langchain_community.utilities.WolframAlphaAPIWrapper"
333
+ name,
334
+ replacement="langchain_community.utilities.WolframAlphaAPIWrapper",
323
335
  )
324
336
 
325
337
  return WolframAlphaAPIWrapper
326
- elif name == "SQLDatabase":
338
+ if name == "SQLDatabase":
327
339
  from langchain_community.utilities import SQLDatabase
328
340
 
329
341
  _warn_on_import(name, replacement="langchain_community.utilities.SQLDatabase")
330
342
 
331
343
  return SQLDatabase
332
- elif name == "FAISS":
344
+ if name == "FAISS":
333
345
  from langchain_community.vectorstores import FAISS
334
346
 
335
347
  _warn_on_import(name, replacement="langchain_community.vectorstores.FAISS")
336
348
 
337
349
  return FAISS
338
- elif name == "ElasticVectorSearch":
350
+ if name == "ElasticVectorSearch":
339
351
  from langchain_community.vectorstores import ElasticVectorSearch
340
352
 
341
353
  _warn_on_import(
342
- name, replacement="langchain_community.vectorstores.ElasticVectorSearch"
354
+ name,
355
+ replacement="langchain_community.vectorstores.ElasticVectorSearch",
343
356
  )
344
357
 
345
358
  return ElasticVectorSearch
346
359
  # For backwards compatibility
347
- elif name == "SerpAPIChain" or name == "SerpAPIWrapper":
360
+ if name in {"SerpAPIChain", "SerpAPIWrapper"}:
348
361
  from langchain_community.utilities import SerpAPIWrapper
349
362
 
350
363
  _warn_on_import(
351
- name, replacement="langchain_community.utilities.SerpAPIWrapper"
364
+ name,
365
+ replacement="langchain_community.utilities.SerpAPIWrapper",
352
366
  )
353
367
 
354
368
  return SerpAPIWrapper
355
- elif name == "verbose":
369
+ if name == "verbose":
356
370
  from langchain.globals import _verbose
357
371
 
358
372
  _warn_on_import(
@@ -363,7 +377,7 @@ def __getattr__(name: str) -> Any:
363
377
  )
364
378
 
365
379
  return _verbose
366
- elif name == "debug":
380
+ if name == "debug":
367
381
  from langchain.globals import _debug
368
382
 
369
383
  _warn_on_import(
@@ -374,7 +388,7 @@ def __getattr__(name: str) -> Any:
374
388
  )
375
389
 
376
390
  return _debug
377
- elif name == "llm_cache":
391
+ if name == "llm_cache":
378
392
  from langchain.globals import _llm_cache
379
393
 
380
394
  _warn_on_import(
@@ -385,55 +399,55 @@ def __getattr__(name: str) -> Any:
385
399
  )
386
400
 
387
401
  return _llm_cache
388
- else:
389
- raise AttributeError(f"Could not find: {name}")
402
+ msg = f"Could not find: {name}"
403
+ raise AttributeError(msg)
390
404
 
391
405
 
392
406
  __all__ = [
393
- "LLMChain",
394
- "LLMCheckerChain",
395
- "LLMMathChain",
396
- "ArxivAPIWrapper",
397
- "GoldenQueryAPIWrapper",
398
- "SelfAskWithSearchChain",
399
- "SerpAPIWrapper",
400
- "SerpAPIChain",
401
- "SearxSearchWrapper",
402
- "GoogleSearchAPIWrapper",
403
- "GoogleSerperAPIWrapper",
404
- "WolframAlphaAPIWrapper",
405
- "WikipediaAPIWrapper",
407
+ "FAISS",
406
408
  "Anthropic",
409
+ "ArxivAPIWrapper",
407
410
  "Banana",
411
+ "BasePromptTemplate",
408
412
  "CerebriumAI",
409
413
  "Cohere",
414
+ "ConversationChain",
415
+ "ElasticVectorSearch",
416
+ "FewShotPromptTemplate",
410
417
  "ForefrontAI",
418
+ "GoldenQueryAPIWrapper",
419
+ "GoogleSearchAPIWrapper",
420
+ "GoogleSerperAPIWrapper",
411
421
  "GooseAI",
422
+ "HuggingFaceHub",
423
+ "HuggingFacePipeline",
424
+ "HuggingFaceTextGenInference",
425
+ "InMemoryDocstore",
426
+ "LLMChain",
427
+ "LLMCheckerChain",
428
+ "LLMMathChain",
429
+ "LlamaCpp",
430
+ "MRKLChain",
412
431
  "Modal",
413
432
  "OpenAI",
414
433
  "Petals",
415
434
  "PipelineAI",
416
- "StochasticAI",
417
- "Writer",
418
- "BasePromptTemplate",
435
+ "PowerBIDataset",
419
436
  "Prompt",
420
- "FewShotPromptTemplate",
421
437
  "PromptTemplate",
438
+ "QAWithSourcesChain",
422
439
  "ReActChain",
423
- "Wikipedia",
424
- "HuggingFaceHub",
425
- "SagemakerEndpoint",
426
- "HuggingFacePipeline",
427
440
  "SQLDatabase",
428
- "PowerBIDataset",
429
- "FAISS",
430
- "MRKLChain",
441
+ "SagemakerEndpoint",
442
+ "SearxSearchWrapper",
443
+ "SelfAskWithSearchChain",
444
+ "SerpAPIChain",
445
+ "SerpAPIWrapper",
446
+ "StochasticAI",
431
447
  "VectorDBQA",
432
- "ElasticVectorSearch",
433
- "InMemoryDocstore",
434
- "ConversationChain",
435
448
  "VectorDBQAWithSourcesChain",
436
- "QAWithSourcesChain",
437
- "LlamaCpp",
438
- "HuggingFaceTextGenInference",
449
+ "Wikipedia",
450
+ "WikipediaAPIWrapper",
451
+ "WolframAlphaAPIWrapper",
452
+ "Writer",
439
453
  ]
@@ -19,10 +19,10 @@ from .deprecation import (
19
19
  from .module_import import create_importer
20
20
 
21
21
  __all__ = [
22
- "deprecated",
23
22
  "LangChainDeprecationWarning",
23
+ "create_importer",
24
+ "deprecated",
24
25
  "suppress_langchain_deprecation_warning",
25
26
  "surface_langchain_deprecation_warnings",
26
27
  "warn_deprecated",
27
- "create_importer",
28
28
  ]
@@ -15,9 +15,9 @@ AGENT_DEPRECATION_WARNING = (
15
15
  "details, refer to the "
16
16
  "`LangGraph documentation <https://langchain-ai.github.io/langgraph/>`_"
17
17
  " as well as guides for "
18
- "`Migrating from AgentExecutor <https://python.langchain.com/docs/how_to/migrate_agent/>`_" # noqa: E501
18
+ "`Migrating from AgentExecutor <https://python.langchain.com/docs/how_to/migrate_agent/>`_"
19
19
  " and LangGraph's "
20
- "`Pre-built ReAct agent <https://langchain-ai.github.io/langgraph/how-tos/create-react-agent/>`_." # noqa: E501
20
+ "`Pre-built ReAct agent <https://langchain-ai.github.io/langgraph/how-tos/create-react-agent/>`_."
21
21
  )
22
22
 
23
23
 
@@ -27,6 +27,6 @@ __all__ = [
27
27
  "LangChainPendingDeprecationWarning",
28
28
  "deprecated",
29
29
  "suppress_langchain_deprecation_warning",
30
- "warn_deprecated",
31
30
  "surface_langchain_deprecation_warnings",
31
+ "warn_deprecated",
32
32
  ]