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
@@ -87,23 +87,24 @@ def create_tool_calling_agent(
87
87
  messages will be passed in here.
88
88
  """
89
89
  missing_vars = {"agent_scratchpad"}.difference(
90
- prompt.input_variables + list(prompt.partial_variables)
90
+ prompt.input_variables + list(prompt.partial_variables),
91
91
  )
92
92
  if missing_vars:
93
- raise ValueError(f"Prompt missing required variables: {missing_vars}")
93
+ msg = f"Prompt missing required variables: {missing_vars}"
94
+ raise ValueError(msg)
94
95
 
95
96
  if not hasattr(llm, "bind_tools"):
97
+ msg = "This function requires a bind_tools() method be implemented on the LLM."
96
98
  raise ValueError(
97
- "This function requires a .bind_tools method be implemented on the LLM.",
99
+ msg,
98
100
  )
99
101
  llm_with_tools = llm.bind_tools(tools)
100
102
 
101
- agent = (
103
+ return (
102
104
  RunnablePassthrough.assign(
103
- agent_scratchpad=lambda x: message_formatter(x["intermediate_steps"])
105
+ agent_scratchpad=lambda x: message_formatter(x["intermediate_steps"]),
104
106
  )
105
107
  | prompt
106
108
  | llm_with_tools
107
109
  | ToolsAgentOutputParser()
108
110
  )
109
- return agent
langchain/agents/tools.py CHANGED
@@ -24,7 +24,7 @@ class InvalidTool(BaseTool):
24
24
  run_manager: Optional[CallbackManagerForToolRun] = None,
25
25
  ) -> str:
26
26
  """Use the tool."""
27
- available_tool_names_str = ", ".join([tool for tool in available_tool_names])
27
+ available_tool_names_str = ", ".join(list(available_tool_names))
28
28
  return (
29
29
  f"{requested_tool_name} is not a valid tool, "
30
30
  f"try one of [{available_tool_names_str}]."
@@ -37,7 +37,7 @@ class InvalidTool(BaseTool):
37
37
  run_manager: Optional[AsyncCallbackManagerForToolRun] = None,
38
38
  ) -> str:
39
39
  """Use the tool asynchronously."""
40
- available_tool_names_str = ", ".join([tool for tool in available_tool_names])
40
+ available_tool_names_str = ", ".join(list(available_tool_names))
41
41
  return (
42
42
  f"{requested_tool_name} is not a valid tool, "
43
43
  f"try one of [{available_tool_names_str}]."
langchain/agents/utils.py CHANGED
@@ -15,6 +15,5 @@ def validate_tools_single_input(class_name: str, tools: Sequence[BaseTool]) -> N
15
15
  """
16
16
  for tool in tools:
17
17
  if not tool.is_single_input:
18
- raise ValueError(
19
- f"{class_name} does not support multi-input tool {tool.name}."
20
- )
18
+ msg = f"{class_name} does not support multi-input tool {tool.name}."
19
+ raise ValueError(msg)
@@ -52,7 +52,7 @@ class XMLAgent(BaseSingleActionAgent):
52
52
  def get_default_prompt() -> ChatPromptTemplate:
53
53
  base_prompt = ChatPromptTemplate.from_template(agent_instructions)
54
54
  return base_prompt + AIMessagePromptTemplate.from_template(
55
- "{intermediate_steps}"
55
+ "{intermediate_steps}",
56
56
  )
57
57
 
58
58
  @staticmethod
@@ -205,10 +205,11 @@ def create_xml_agent(
205
205
  prompt = PromptTemplate.from_template(template)
206
206
  """ # noqa: E501
207
207
  missing_vars = {"tools", "agent_scratchpad"}.difference(
208
- prompt.input_variables + list(prompt.partial_variables)
208
+ prompt.input_variables + list(prompt.partial_variables),
209
209
  )
210
210
  if missing_vars:
211
- raise ValueError(f"Prompt missing required variables: {missing_vars}")
211
+ msg = f"Prompt missing required variables: {missing_vars}"
212
+ raise ValueError(msg)
212
213
 
213
214
  prompt = prompt.partial(
214
215
  tools=tools_renderer(list(tools)),
@@ -220,7 +221,7 @@ def create_xml_agent(
220
221
  else:
221
222
  llm_with_stop = llm
222
223
 
223
- agent = (
224
+ return (
224
225
  RunnablePassthrough.assign(
225
226
  agent_scratchpad=lambda x: format_xml(x["intermediate_steps"]),
226
227
  )
@@ -228,4 +229,3 @@ def create_xml_agent(
228
229
  | llm_with_stop
229
230
  | XMLAgentOutputParser()
230
231
  )
231
- return agent
@@ -1,4 +1,3 @@
1
- # flake8: noqa
2
1
  # TODO: deprecate
3
2
  agent_instructions = """You are a helpful assistant. Help the user answer any questions.
4
3
 
@@ -19,4 +18,4 @@ When you are done, respond with a final answer between <final_answer></final_ans
19
18
 
20
19
  Begin!
21
20
 
22
- Question: {question}"""
21
+ Question: {question}""" # noqa: E501
langchain/cache.py CHANGED
@@ -53,20 +53,20 @@ def __getattr__(name: str) -> Any:
53
53
 
54
54
 
55
55
  __all__ = [
56
- "FullLLMCache",
57
- "SQLAlchemyCache",
58
- "SQLiteCache",
59
- "UpstashRedisCache",
60
- "RedisCache",
61
- "RedisSemanticCache",
62
- "GPTCache",
63
- "MomentoCache",
64
- "InMemoryCache",
56
+ "AstraDBCache",
57
+ "AstraDBSemanticCache",
58
+ "AzureCosmosDBSemanticCache",
65
59
  "CassandraCache",
66
60
  "CassandraSemanticCache",
61
+ "FullLLMCache",
67
62
  "FullMd5LLMCache",
63
+ "GPTCache",
64
+ "InMemoryCache",
65
+ "MomentoCache",
66
+ "RedisCache",
67
+ "RedisSemanticCache",
68
+ "SQLAlchemyCache",
68
69
  "SQLAlchemyMd5Cache",
69
- "AstraDBCache",
70
- "AstraDBSemanticCache",
71
- "AzureCosmosDBSemanticCache",
70
+ "SQLiteCache",
71
+ "UpstashRedisCache",
72
72
  ]
@@ -107,33 +107,33 @@ __all__ = [
107
107
  "AimCallbackHandler",
108
108
  "ArgillaCallbackHandler",
109
109
  "ArizeCallbackHandler",
110
- "PromptLayerCallbackHandler",
111
110
  "ArthurCallbackHandler",
111
+ "AsyncIteratorCallbackHandler",
112
112
  "ClearMLCallbackHandler",
113
113
  "CometCallbackHandler",
114
114
  "ContextCallbackHandler",
115
115
  "FileCallbackHandler",
116
+ "FinalStreamingStdOutCallbackHandler",
117
+ "FlyteCallbackHandler",
116
118
  "HumanApprovalCallbackHandler",
117
119
  "InfinoCallbackHandler",
118
- "MlflowCallbackHandler",
120
+ "LLMThoughtLabeler",
119
121
  "LLMonitorCallbackHandler",
122
+ "LabelStudioCallbackHandler",
123
+ "LangChainTracer",
124
+ "MlflowCallbackHandler",
120
125
  "OpenAICallbackHandler",
126
+ "PromptLayerCallbackHandler",
127
+ "SageMakerCallbackHandler",
121
128
  "StdOutCallbackHandler",
122
- "AsyncIteratorCallbackHandler",
123
129
  "StreamingStdOutCallbackHandler",
124
- "FinalStreamingStdOutCallbackHandler",
125
- "LLMThoughtLabeler",
126
- "LangChainTracer",
127
130
  "StreamlitCallbackHandler",
131
+ "TrubricsCallbackHandler",
128
132
  "WandbCallbackHandler",
129
133
  "WhyLabsCallbackHandler",
134
+ "collect_runs",
130
135
  "get_openai_callback",
131
136
  "tracing_enabled",
132
137
  "tracing_v2_enabled",
133
- "collect_runs",
134
138
  "wandb_tracing_enabled",
135
- "FlyteCallbackHandler",
136
- "SageMakerCallbackHandler",
137
- "LabelStudioCallbackHandler",
138
- "TrubricsCallbackHandler",
139
139
  ]
@@ -27,7 +27,7 @@ def __getattr__(name: str) -> Any:
27
27
 
28
28
 
29
29
  __all__ = [
30
- "import_aim",
31
- "BaseMetadataCallbackHandler",
32
30
  "AimCallbackHandler",
31
+ "BaseMetadataCallbackHandler",
32
+ "import_aim",
33
33
  ]
@@ -9,7 +9,7 @@ if TYPE_CHECKING:
9
9
  # Used to consolidate logic for raising deprecation warnings and
10
10
  # handling optional imports.
11
11
  DEPRECATED_LOOKUP = {
12
- "ArgillaCallbackHandler": "langchain_community.callbacks.argilla_callback"
12
+ "ArgillaCallbackHandler": "langchain_community.callbacks.argilla_callback",
13
13
  }
14
14
 
15
15
  _import_attribute = create_importer(__file__, deprecated_lookups=DEPRECATED_LOOKUP)
@@ -9,7 +9,7 @@ if TYPE_CHECKING:
9
9
  # Used to consolidate logic for raising deprecation warnings and
10
10
  # handling optional imports.
11
11
  DEPRECATED_LOOKUP = {
12
- "ArizeCallbackHandler": "langchain_community.callbacks.arize_callback"
12
+ "ArizeCallbackHandler": "langchain_community.callbacks.arize_callback",
13
13
  }
14
14
 
15
15
  _import_attribute = create_importer(__file__, deprecated_lookups=DEPRECATED_LOOKUP)
@@ -9,7 +9,7 @@ if TYPE_CHECKING:
9
9
  # Used to consolidate logic for raising deprecation warnings and
10
10
  # handling optional imports.
11
11
  DEPRECATED_LOOKUP = {
12
- "ArthurCallbackHandler": "langchain_community.callbacks.arthur_callback"
12
+ "ArthurCallbackHandler": "langchain_community.callbacks.arthur_callback",
13
13
  }
14
14
 
15
15
  _import_attribute = create_importer(__file__, deprecated_lookups=DEPRECATED_LOOKUP)
@@ -16,14 +16,14 @@ from langchain_core.callbacks import (
16
16
  )
17
17
 
18
18
  __all__ = [
19
- "RetrieverManagerMixin",
20
- "LLMManagerMixin",
21
- "ChainManagerMixin",
22
- "ToolManagerMixin",
23
- "CallbackManagerMixin",
24
- "RunManagerMixin",
25
- "BaseCallbackHandler",
26
19
  "AsyncCallbackHandler",
20
+ "BaseCallbackHandler",
27
21
  "BaseCallbackManager",
22
+ "CallbackManagerMixin",
28
23
  "Callbacks",
24
+ "ChainManagerMixin",
25
+ "LLMManagerMixin",
26
+ "RetrieverManagerMixin",
27
+ "RunManagerMixin",
28
+ "ToolManagerMixin",
29
29
  ]
@@ -9,7 +9,7 @@ if TYPE_CHECKING:
9
9
  # Used to consolidate logic for raising deprecation warnings and
10
10
  # handling optional imports.
11
11
  DEPRECATED_LOOKUP = {
12
- "ClearMLCallbackHandler": "langchain_community.callbacks.clearml_callback"
12
+ "ClearMLCallbackHandler": "langchain_community.callbacks.clearml_callback",
13
13
  }
14
14
 
15
15
  _import_attribute = create_importer(__file__, deprecated_lookups=DEPRECATED_LOOKUP)
@@ -9,7 +9,7 @@ if TYPE_CHECKING:
9
9
  # Used to consolidate logic for raising deprecation warnings and
10
10
  # handling optional imports.
11
11
  DEPRECATED_LOOKUP = {
12
- "CometCallbackHandler": "langchain_community.callbacks.comet_ml_callback"
12
+ "CometCallbackHandler": "langchain_community.callbacks.comet_ml_callback",
13
13
  }
14
14
 
15
15
  _import_attribute = create_importer(__file__, deprecated_lookups=DEPRECATED_LOOKUP)
@@ -9,7 +9,7 @@ if TYPE_CHECKING:
9
9
  # Used to consolidate logic for raising deprecation warnings and
10
10
  # handling optional imports.
11
11
  DEPRECATED_LOOKUP = {
12
- "DeepEvalCallbackHandler": "langchain_community.callbacks.confident_callback"
12
+ "DeepEvalCallbackHandler": "langchain_community.callbacks.confident_callback",
13
13
  }
14
14
 
15
15
  _import_attribute = create_importer(__file__, deprecated_lookups=DEPRECATED_LOOKUP)
@@ -9,7 +9,7 @@ if TYPE_CHECKING:
9
9
  # Used to consolidate logic for raising deprecation warnings and
10
10
  # handling optional imports.
11
11
  DEPRECATED_LOOKUP = {
12
- "ContextCallbackHandler": "langchain_community.callbacks.context_callback"
12
+ "ContextCallbackHandler": "langchain_community.callbacks.context_callback",
13
13
  }
14
14
 
15
15
  _import_attribute = create_importer(__file__, deprecated_lookups=DEPRECATED_LOOKUP)
@@ -9,7 +9,7 @@ if TYPE_CHECKING:
9
9
  # Used to consolidate logic for raising deprecation warnings and
10
10
  # handling optional imports.
11
11
  DEPRECATED_LOOKUP = {
12
- "FlyteCallbackHandler": "langchain_community.callbacks.flyte_callback"
12
+ "FlyteCallbackHandler": "langchain_community.callbacks.flyte_callback",
13
13
  }
14
14
 
15
15
  _import_attribute = create_importer(__file__, deprecated_lookups=DEPRECATED_LOOKUP)
@@ -27,7 +27,7 @@ def __getattr__(name: str) -> Any:
27
27
 
28
28
 
29
29
  __all__ = [
30
- "HumanRejectedException",
31
- "HumanApprovalCallbackHandler",
32
30
  "AsyncHumanApprovalCallbackHandler",
31
+ "HumanApprovalCallbackHandler",
32
+ "HumanRejectedException",
33
33
  ]
@@ -9,7 +9,7 @@ if TYPE_CHECKING:
9
9
  # Used to consolidate logic for raising deprecation warnings and
10
10
  # handling optional imports.
11
11
  DEPRECATED_LOOKUP = {
12
- "InfinoCallbackHandler": "langchain_community.callbacks.infino_callback"
12
+ "InfinoCallbackHandler": "langchain_community.callbacks.infino_callback",
13
13
  }
14
14
 
15
15
  _import_attribute = create_importer(__file__, deprecated_lookups=DEPRECATED_LOOKUP)
@@ -27,7 +27,7 @@ def __getattr__(name: str) -> Any:
27
27
 
28
28
 
29
29
  __all__ = [
30
+ "LabelStudioCallbackHandler",
30
31
  "LabelStudioMode",
31
32
  "get_default_label_configs",
32
- "LabelStudioCallbackHandler",
33
33
  ]
@@ -11,7 +11,7 @@ if TYPE_CHECKING:
11
11
  # Used to consolidate logic for raising deprecation warnings and
12
12
  # handling optional imports.
13
13
  DEPRECATED_LOOKUP = {
14
- "LLMonitorCallbackHandler": "langchain_community.callbacks.llmonitor_callback"
14
+ "LLMonitorCallbackHandler": "langchain_community.callbacks.llmonitor_callback",
15
15
  }
16
16
 
17
17
  _import_attribute = create_importer(__file__, deprecated_lookups=DEPRECATED_LOOKUP)
@@ -2,6 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  from typing import TYPE_CHECKING, Any
4
4
 
5
+ from langchain_core.callbacks import Callbacks
5
6
  from langchain_core.callbacks.manager import (
6
7
  AsyncCallbackManager,
7
8
  AsyncCallbackManagerForChainGroup,
@@ -18,7 +19,6 @@ from langchain_core.callbacks.manager import (
18
19
  CallbackManagerForLLMRun,
19
20
  CallbackManagerForRetrieverRun,
20
21
  CallbackManagerForToolRun,
21
- Callbacks,
22
22
  ParentRunManager,
23
23
  RunManager,
24
24
  ahandle_event,
@@ -58,7 +58,7 @@ def __getattr__(name: str) -> Any:
58
58
 
59
59
 
60
60
  __all__ = [
61
- "ahandle_event",
61
+ "AsyncCallbackManager",
62
62
  "AsyncCallbackManagerForChainGroup",
63
63
  "AsyncCallbackManagerForChainRun",
64
64
  "AsyncCallbackManagerForLLMRun",
@@ -66,7 +66,6 @@ __all__ = [
66
66
  "AsyncCallbackManagerForToolRun",
67
67
  "AsyncParentRunManager",
68
68
  "AsyncRunManager",
69
- "atrace_as_chain_group",
70
69
  "BaseRunManager",
71
70
  "CallbackManager",
72
71
  "CallbackManagerForChainGroup",
@@ -75,13 +74,14 @@ __all__ = [
75
74
  "CallbackManagerForRetrieverRun",
76
75
  "CallbackManagerForToolRun",
77
76
  "Callbacks",
78
- "AsyncCallbackManager",
77
+ "ParentRunManager",
78
+ "RunManager",
79
+ "ahandle_event",
80
+ "atrace_as_chain_group",
79
81
  "collect_runs",
80
82
  "env_var_is_set",
81
83
  "get_openai_callback",
82
84
  "handle_event",
83
- "ParentRunManager",
84
- "RunManager",
85
85
  "trace_as_chain_group",
86
86
  "tracing_enabled",
87
87
  "tracing_v2_enabled",
@@ -31,8 +31,8 @@ def __getattr__(name: str) -> Any:
31
31
 
32
32
 
33
33
  __all__ = [
34
+ "MlflowCallbackHandler",
35
+ "MlflowLogger",
34
36
  "analyze_text",
35
37
  "construct_html_from_prompt_and_generation",
36
- "MlflowLogger",
37
- "MlflowCallbackHandler",
38
38
  ]
@@ -9,7 +9,7 @@ if TYPE_CHECKING:
9
9
  # Used to consolidate logic for raising deprecation warnings and
10
10
  # handling optional imports.
11
11
  DEPRECATED_LOOKUP = {
12
- "OpenAICallbackHandler": "langchain_community.callbacks.openai_info"
12
+ "OpenAICallbackHandler": "langchain_community.callbacks.openai_info",
13
13
  }
14
14
 
15
15
  _import_attribute = create_importer(__file__, deprecated_lookups=DEPRECATED_LOOKUP)
@@ -11,7 +11,7 @@ if TYPE_CHECKING:
11
11
  # Used to consolidate logic for raising deprecation warnings and
12
12
  # handling optional imports.
13
13
  DEPRECATED_LOOKUP = {
14
- "PromptLayerCallbackHandler": "langchain_community.callbacks.promptlayer_callback"
14
+ "PromptLayerCallbackHandler": "langchain_community.callbacks.promptlayer_callback",
15
15
  }
16
16
 
17
17
  _import_attribute = create_importer(__file__, deprecated_lookups=DEPRECATED_LOOKUP)
@@ -11,7 +11,7 @@ if TYPE_CHECKING:
11
11
  # Used to consolidate logic for raising deprecation warnings and
12
12
  # handling optional imports.
13
13
  DEPRECATED_LOOKUP = {
14
- "SageMakerCallbackHandler": "langchain_community.callbacks.sagemaker_callback"
14
+ "SageMakerCallbackHandler": "langchain_community.callbacks.sagemaker_callback",
15
15
  }
16
16
 
17
17
  _import_attribute = create_importer(__file__, deprecated_lookups=DEPRECATED_LOOKUP)
@@ -26,7 +26,10 @@ class AsyncIteratorCallbackHandler(AsyncCallbackHandler):
26
26
  self.done = asyncio.Event()
27
27
 
28
28
  async def on_llm_start(
29
- self, serialized: dict[str, Any], prompts: list[str], **kwargs: Any
29
+ self,
30
+ serialized: dict[str, Any],
31
+ prompts: list[str],
32
+ **kwargs: Any,
30
33
  ) -> None:
31
34
  # If two calls are made in a row, this resets the state
32
35
  self.done.clear()
@@ -24,8 +24,7 @@ class AsyncFinalIteratorCallbackHandler(AsyncIteratorCallbackHandler):
24
24
  def check_if_answer_reached(self) -> bool:
25
25
  if self.strip_tokens:
26
26
  return self.last_tokens_stripped == self.answer_prefix_tokens_stripped
27
- else:
28
- return self.last_tokens == self.answer_prefix_tokens
27
+ return self.last_tokens == self.answer_prefix_tokens
29
28
 
30
29
  def __init__(
31
30
  self,
@@ -62,7 +61,10 @@ class AsyncFinalIteratorCallbackHandler(AsyncIteratorCallbackHandler):
62
61
  self.answer_reached = False
63
62
 
64
63
  async def on_llm_start(
65
- self, serialized: dict[str, Any], prompts: list[str], **kwargs: Any
64
+ self,
65
+ serialized: dict[str, Any],
66
+ prompts: list[str],
67
+ **kwargs: Any,
66
68
  ) -> None:
67
69
  # If two calls are made in a row, this resets the state
68
70
  self.done.clear()
@@ -25,8 +25,7 @@ class FinalStreamingStdOutCallbackHandler(StreamingStdOutCallbackHandler):
25
25
  def check_if_answer_reached(self) -> bool:
26
26
  if self.strip_tokens:
27
27
  return self.last_tokens_stripped == self.answer_prefix_tokens_stripped
28
- else:
29
- return self.last_tokens == self.answer_prefix_tokens
28
+ return self.last_tokens == self.answer_prefix_tokens
30
29
 
31
30
  def __init__(
32
31
  self,
@@ -63,7 +62,10 @@ class FinalStreamingStdOutCallbackHandler(StreamingStdOutCallbackHandler):
63
62
  self.answer_reached = False
64
63
 
65
64
  def on_llm_start(
66
- self, serialized: dict[str, Any], prompts: list[str], **kwargs: Any
65
+ self,
66
+ serialized: dict[str, Any],
67
+ prompts: list[str],
68
+ **kwargs: Any,
67
69
  ) -> None:
68
70
  """Run when LLM starts running."""
69
71
  self.answer_reached = False
@@ -70,11 +70,12 @@ def StreamlitCallbackHandler(
70
70
  from langchain_community.callbacks.streamlit.streamlit_callback_handler import ( # noqa: E501
71
71
  StreamlitCallbackHandler as _InternalStreamlitCallbackHandler,
72
72
  )
73
- except ImportError:
74
- raise ImportError(
73
+ except ImportError as e:
74
+ msg = (
75
75
  "To use the StreamlitCallbackHandler, please install "
76
76
  "langchain-community with `pip install langchain-community`."
77
77
  )
78
+ raise ImportError(msg) from e
78
79
 
79
80
  return _InternalStreamlitCallbackHandler(
80
81
  parent_container,
@@ -27,7 +27,7 @@ def __getattr__(name: str) -> Any:
27
27
 
28
28
 
29
29
  __all__ = [
30
- "ChildType",
31
30
  "ChildRecord",
31
+ "ChildType",
32
32
  "MutableExpander",
33
33
  ]
@@ -41,9 +41,9 @@ def __getattr__(name: str) -> Any:
41
41
 
42
42
 
43
43
  __all__ = [
44
- "LLMThoughtState",
45
- "ToolRecord",
46
- "LLMThoughtLabeler",
47
44
  "LLMThought",
45
+ "LLMThoughtLabeler",
46
+ "LLMThoughtState",
48
47
  "StreamlitCallbackHandler",
48
+ "ToolRecord",
49
49
  ]
@@ -31,8 +31,8 @@ def __getattr__(name: str) -> Any:
31
31
  __all__ = [
32
32
  "ConsoleCallbackHandler",
33
33
  "FunctionCallbackHandler",
34
- "LoggingCallbackHandler",
35
34
  "LangChainTracer",
36
35
  "LangChainTracerV1",
36
+ "LoggingCallbackHandler",
37
37
  "WandbTracer",
38
38
  ]
@@ -1,5 +1,6 @@
1
1
  """Base interfaces for tracing runs."""
2
2
 
3
- from langchain_core.tracers.base import BaseTracer, TracerException
3
+ from langchain_core.exceptions import TracerException
4
+ from langchain_core.tracers.base import BaseTracer
4
5
 
5
6
  __all__ = ["BaseTracer", "TracerException"]
@@ -25,6 +25,6 @@ def __getattr__(name: str) -> Any:
25
25
 
26
26
 
27
27
  __all__ = [
28
- "import_comet_llm_api",
29
28
  "CometTracer",
29
+ "import_comet_llm_api",
30
30
  ]
@@ -5,4 +5,4 @@ from langchain_core.tracers.evaluation import (
5
5
  wait_for_all_evaluators,
6
6
  )
7
7
 
8
- __all__ = ["wait_for_all_evaluators", "EvaluatorCallbackHandler"]
8
+ __all__ = ["EvaluatorCallbackHandler", "wait_for_all_evaluators"]
@@ -6,4 +6,4 @@ from langchain_core.tracers.log_stream import (
6
6
  RunState,
7
7
  )
8
8
 
9
- __all__ = ["LogEntry", "RunState", "RunLog", "RunLogPatch", "LogStreamCallbackHandler"]
9
+ __all__ = ["LogEntry", "LogStreamCallbackHandler", "RunLog", "RunLogPatch", "RunState"]
@@ -42,5 +42,5 @@ class LoggingCallbackHandler(FunctionCallbackHandler):
42
42
  crumbs_str = ""
43
43
  self.function_callback(
44
44
  f"{get_colored_text('[text]', color='blue')}"
45
- f" {get_bolded_text(f'{crumbs_str}New text:')}\n{text}"
45
+ f" {get_bolded_text(f'{crumbs_str}New text:')}\n{text}",
46
46
  )
@@ -3,4 +3,4 @@ from langchain_core.tracers.stdout import (
3
3
  FunctionCallbackHandler,
4
4
  )
5
5
 
6
- __all__ = ["FunctionCallbackHandler", "ConsoleCallbackHandler"]
6
+ __all__ = ["ConsoleCallbackHandler", "FunctionCallbackHandler"]
@@ -9,7 +9,7 @@ if TYPE_CHECKING:
9
9
  # Used to consolidate logic for raising deprecation warnings and
10
10
  # handling optional imports.
11
11
  DEPRECATED_LOOKUP = {
12
- "TrubricsCallbackHandler": "langchain_community.callbacks.trubrics_callback"
12
+ "TrubricsCallbackHandler": "langchain_community.callbacks.trubrics_callback",
13
13
  }
14
14
 
15
15
  _import_attribute = create_importer(__file__, deprecated_lookups=DEPRECATED_LOOKUP)
@@ -37,12 +37,12 @@ def __getattr__(name: str) -> Any:
37
37
 
38
38
 
39
39
  __all__ = [
40
- "import_spacy",
41
- "import_pandas",
42
- "import_textstat",
40
+ "BaseMetadataCallbackHandler",
43
41
  "_flatten_dict",
44
42
  "flatten_dict",
45
43
  "hash_string",
44
+ "import_pandas",
45
+ "import_spacy",
46
+ "import_textstat",
46
47
  "load_json",
47
- "BaseMetadataCallbackHandler",
48
48
  ]
@@ -9,7 +9,7 @@ if TYPE_CHECKING:
9
9
  # Used to consolidate logic for raising deprecation warnings and
10
10
  # handling optional imports.
11
11
  DEPRECATED_LOOKUP = {
12
- "WandbCallbackHandler": "langchain_community.callbacks.wandb_callback"
12
+ "WandbCallbackHandler": "langchain_community.callbacks.wandb_callback",
13
13
  }
14
14
 
15
15
  _import_attribute = create_importer(__file__, deprecated_lookups=DEPRECATED_LOOKUP)
@@ -9,7 +9,7 @@ if TYPE_CHECKING:
9
9
  # Used to consolidate logic for raising deprecation warnings and
10
10
  # handling optional imports.
11
11
  DEPRECATED_LOOKUP = {
12
- "WhyLabsCallbackHandler": "langchain_community.callbacks.whylabs_callback"
12
+ "WhyLabsCallbackHandler": "langchain_community.callbacks.whylabs_callback",
13
13
  }
14
14
 
15
15
  _import_attribute = create_importer(__file__, deprecated_lookups=DEPRECATED_LOOKUP)