langchain 0.3.26__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 (580) 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 +6 -6
  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 +16 -8
  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 +46 -37
  72. langchain/agents/openai_functions_multi_agent/base.py +39 -26
  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 +6 -6
  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 +5 -5
  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/comet.py +1 -1
  128. langchain/callbacks/tracers/evaluation.py +1 -1
  129. langchain/callbacks/tracers/log_stream.py +1 -1
  130. langchain/callbacks/tracers/logging.py +1 -1
  131. langchain/callbacks/tracers/stdout.py +1 -1
  132. langchain/callbacks/trubrics_callback.py +1 -1
  133. langchain/callbacks/utils.py +4 -4
  134. langchain/callbacks/wandb_callback.py +1 -1
  135. langchain/callbacks/whylabs_callback.py +1 -1
  136. langchain/chains/api/base.py +36 -22
  137. langchain/chains/api/news_docs.py +1 -2
  138. langchain/chains/api/open_meteo_docs.py +1 -2
  139. langchain/chains/api/openapi/requests_chain.py +1 -1
  140. langchain/chains/api/openapi/response_chain.py +1 -1
  141. langchain/chains/api/podcast_docs.py +1 -2
  142. langchain/chains/api/prompt.py +1 -2
  143. langchain/chains/api/tmdb_docs.py +1 -2
  144. langchain/chains/base.py +88 -54
  145. langchain/chains/chat_vector_db/prompts.py +2 -3
  146. langchain/chains/combine_documents/__init__.py +1 -1
  147. langchain/chains/combine_documents/base.py +23 -10
  148. langchain/chains/combine_documents/map_reduce.py +38 -30
  149. langchain/chains/combine_documents/map_rerank.py +33 -20
  150. langchain/chains/combine_documents/reduce.py +47 -26
  151. langchain/chains/combine_documents/refine.py +26 -17
  152. langchain/chains/combine_documents/stuff.py +19 -12
  153. langchain/chains/constitutional_ai/base.py +4 -4
  154. langchain/chains/constitutional_ai/principles.py +22 -25
  155. langchain/chains/constitutional_ai/prompts.py +25 -28
  156. langchain/chains/conversation/base.py +5 -3
  157. langchain/chains/conversation/memory.py +5 -5
  158. langchain/chains/conversation/prompt.py +5 -5
  159. langchain/chains/conversational_retrieval/base.py +41 -20
  160. langchain/chains/conversational_retrieval/prompts.py +2 -3
  161. langchain/chains/elasticsearch_database/base.py +8 -9
  162. langchain/chains/elasticsearch_database/prompts.py +2 -3
  163. langchain/chains/ernie_functions/__init__.py +2 -2
  164. langchain/chains/example_generator.py +3 -1
  165. langchain/chains/flare/base.py +26 -12
  166. langchain/chains/graph_qa/cypher.py +2 -2
  167. langchain/chains/graph_qa/falkordb.py +1 -1
  168. langchain/chains/graph_qa/gremlin.py +1 -1
  169. langchain/chains/graph_qa/neptune_sparql.py +1 -1
  170. langchain/chains/graph_qa/prompts.py +2 -2
  171. langchain/chains/history_aware_retriever.py +2 -1
  172. langchain/chains/hyde/base.py +6 -5
  173. langchain/chains/hyde/prompts.py +5 -6
  174. langchain/chains/llm.py +77 -61
  175. langchain/chains/llm_bash/__init__.py +2 -1
  176. langchain/chains/llm_checker/base.py +7 -5
  177. langchain/chains/llm_checker/prompt.py +3 -4
  178. langchain/chains/llm_math/base.py +16 -9
  179. langchain/chains/llm_math/prompt.py +1 -2
  180. langchain/chains/llm_summarization_checker/base.py +9 -6
  181. langchain/chains/llm_symbolic_math/__init__.py +2 -1
  182. langchain/chains/loading.py +151 -95
  183. langchain/chains/mapreduce.py +4 -3
  184. langchain/chains/moderation.py +8 -9
  185. langchain/chains/natbot/base.py +8 -8
  186. langchain/chains/natbot/crawler.py +73 -76
  187. langchain/chains/natbot/prompt.py +2 -3
  188. langchain/chains/openai_functions/__init__.py +7 -7
  189. langchain/chains/openai_functions/base.py +13 -10
  190. langchain/chains/openai_functions/citation_fuzzy_match.py +12 -11
  191. langchain/chains/openai_functions/extraction.py +19 -19
  192. langchain/chains/openai_functions/openapi.py +35 -35
  193. langchain/chains/openai_functions/qa_with_structure.py +19 -12
  194. langchain/chains/openai_functions/tagging.py +2 -4
  195. langchain/chains/openai_tools/extraction.py +7 -8
  196. langchain/chains/qa_generation/base.py +4 -3
  197. langchain/chains/qa_generation/prompt.py +5 -5
  198. langchain/chains/qa_with_sources/base.py +14 -6
  199. langchain/chains/qa_with_sources/loading.py +16 -8
  200. langchain/chains/qa_with_sources/map_reduce_prompt.py +8 -9
  201. langchain/chains/qa_with_sources/refine_prompts.py +0 -1
  202. langchain/chains/qa_with_sources/retrieval.py +14 -5
  203. langchain/chains/qa_with_sources/stuff_prompt.py +6 -7
  204. langchain/chains/qa_with_sources/vector_db.py +17 -6
  205. langchain/chains/query_constructor/base.py +34 -33
  206. langchain/chains/query_constructor/ir.py +4 -4
  207. langchain/chains/query_constructor/parser.py +37 -32
  208. langchain/chains/query_constructor/prompt.py +5 -6
  209. langchain/chains/question_answering/chain.py +21 -10
  210. langchain/chains/question_answering/map_reduce_prompt.py +14 -14
  211. langchain/chains/question_answering/map_rerank_prompt.py +3 -3
  212. langchain/chains/question_answering/refine_prompts.py +2 -5
  213. langchain/chains/question_answering/stuff_prompt.py +5 -5
  214. langchain/chains/retrieval.py +1 -3
  215. langchain/chains/retrieval_qa/base.py +34 -27
  216. langchain/chains/retrieval_qa/prompt.py +1 -2
  217. langchain/chains/router/__init__.py +3 -3
  218. langchain/chains/router/base.py +24 -20
  219. langchain/chains/router/embedding_router.py +12 -8
  220. langchain/chains/router/llm_router.py +17 -16
  221. langchain/chains/router/multi_prompt.py +2 -2
  222. langchain/chains/router/multi_retrieval_qa.py +10 -5
  223. langchain/chains/sequential.py +30 -18
  224. langchain/chains/sql_database/prompt.py +14 -16
  225. langchain/chains/sql_database/query.py +6 -5
  226. langchain/chains/structured_output/__init__.py +1 -1
  227. langchain/chains/structured_output/base.py +75 -67
  228. langchain/chains/summarize/chain.py +11 -5
  229. langchain/chains/summarize/map_reduce_prompt.py +0 -1
  230. langchain/chains/summarize/stuff_prompt.py +0 -1
  231. langchain/chains/transform.py +5 -6
  232. langchain/chat_loaders/facebook_messenger.py +1 -1
  233. langchain/chat_loaders/langsmith.py +1 -1
  234. langchain/chat_loaders/utils.py +3 -3
  235. langchain/chat_models/__init__.py +20 -19
  236. langchain/chat_models/anthropic.py +1 -1
  237. langchain/chat_models/azureml_endpoint.py +1 -1
  238. langchain/chat_models/baidu_qianfan_endpoint.py +1 -1
  239. langchain/chat_models/base.py +160 -123
  240. langchain/chat_models/bedrock.py +1 -1
  241. langchain/chat_models/fake.py +1 -1
  242. langchain/chat_models/meta.py +1 -1
  243. langchain/chat_models/pai_eas_endpoint.py +1 -1
  244. langchain/chat_models/promptlayer_openai.py +1 -1
  245. langchain/chat_models/volcengine_maas.py +1 -1
  246. langchain/docstore/base.py +1 -1
  247. langchain/document_loaders/__init__.py +9 -9
  248. langchain/document_loaders/airbyte.py +3 -3
  249. langchain/document_loaders/assemblyai.py +1 -1
  250. langchain/document_loaders/azure_blob_storage_container.py +1 -1
  251. langchain/document_loaders/azure_blob_storage_file.py +1 -1
  252. langchain/document_loaders/baiducloud_bos_file.py +1 -1
  253. langchain/document_loaders/base.py +1 -1
  254. langchain/document_loaders/blob_loaders/__init__.py +1 -1
  255. langchain/document_loaders/blockchain.py +1 -1
  256. langchain/document_loaders/chatgpt.py +1 -1
  257. langchain/document_loaders/college_confidential.py +1 -1
  258. langchain/document_loaders/confluence.py +1 -1
  259. langchain/document_loaders/email.py +1 -1
  260. langchain/document_loaders/facebook_chat.py +1 -1
  261. langchain/document_loaders/markdown.py +1 -1
  262. langchain/document_loaders/notebook.py +1 -1
  263. langchain/document_loaders/org_mode.py +1 -1
  264. langchain/document_loaders/parsers/__init__.py +1 -1
  265. langchain/document_loaders/parsers/docai.py +1 -1
  266. langchain/document_loaders/parsers/generic.py +1 -1
  267. langchain/document_loaders/parsers/html/__init__.py +1 -1
  268. langchain/document_loaders/parsers/html/bs4.py +1 -1
  269. langchain/document_loaders/parsers/language/cobol.py +1 -1
  270. langchain/document_loaders/parsers/language/python.py +1 -1
  271. langchain/document_loaders/parsers/msword.py +1 -1
  272. langchain/document_loaders/parsers/pdf.py +5 -5
  273. langchain/document_loaders/parsers/registry.py +1 -1
  274. langchain/document_loaders/pdf.py +8 -8
  275. langchain/document_loaders/powerpoint.py +1 -1
  276. langchain/document_loaders/pyspark_dataframe.py +1 -1
  277. langchain/document_loaders/telegram.py +2 -2
  278. langchain/document_loaders/tencent_cos_directory.py +1 -1
  279. langchain/document_loaders/unstructured.py +5 -5
  280. langchain/document_loaders/url_playwright.py +1 -1
  281. langchain/document_loaders/whatsapp_chat.py +1 -1
  282. langchain/document_loaders/youtube.py +2 -2
  283. langchain/document_transformers/__init__.py +3 -3
  284. langchain/document_transformers/beautiful_soup_transformer.py +1 -1
  285. langchain/document_transformers/doctran_text_extract.py +1 -1
  286. langchain/document_transformers/doctran_text_qa.py +1 -1
  287. langchain/document_transformers/doctran_text_translate.py +1 -1
  288. langchain/document_transformers/embeddings_redundant_filter.py +3 -3
  289. langchain/document_transformers/google_translate.py +1 -1
  290. langchain/document_transformers/html2text.py +1 -1
  291. langchain/document_transformers/nuclia_text_transform.py +1 -1
  292. langchain/embeddings/__init__.py +5 -5
  293. langchain/embeddings/base.py +33 -24
  294. langchain/embeddings/cache.py +36 -31
  295. langchain/embeddings/fake.py +1 -1
  296. langchain/embeddings/huggingface.py +2 -2
  297. langchain/evaluation/__init__.py +22 -22
  298. langchain/evaluation/agents/trajectory_eval_chain.py +23 -23
  299. langchain/evaluation/agents/trajectory_eval_prompt.py +6 -9
  300. langchain/evaluation/comparison/__init__.py +1 -1
  301. langchain/evaluation/comparison/eval_chain.py +20 -13
  302. langchain/evaluation/comparison/prompt.py +1 -2
  303. langchain/evaluation/criteria/__init__.py +1 -1
  304. langchain/evaluation/criteria/eval_chain.py +20 -11
  305. langchain/evaluation/criteria/prompt.py +2 -3
  306. langchain/evaluation/embedding_distance/base.py +23 -20
  307. langchain/evaluation/loading.py +15 -11
  308. langchain/evaluation/parsing/base.py +4 -1
  309. langchain/evaluation/parsing/json_distance.py +5 -2
  310. langchain/evaluation/parsing/json_schema.py +12 -8
  311. langchain/evaluation/qa/__init__.py +1 -1
  312. langchain/evaluation/qa/eval_chain.py +12 -5
  313. langchain/evaluation/qa/eval_prompt.py +7 -8
  314. langchain/evaluation/qa/generate_chain.py +2 -1
  315. langchain/evaluation/qa/generate_prompt.py +2 -4
  316. langchain/evaluation/schema.py +38 -30
  317. langchain/evaluation/scoring/__init__.py +1 -1
  318. langchain/evaluation/scoring/eval_chain.py +22 -15
  319. langchain/evaluation/scoring/prompt.py +0 -1
  320. langchain/evaluation/string_distance/base.py +14 -9
  321. langchain/globals.py +12 -11
  322. langchain/graphs/__init__.py +6 -6
  323. langchain/graphs/graph_document.py +1 -1
  324. langchain/graphs/networkx_graph.py +2 -2
  325. langchain/hub.py +9 -11
  326. langchain/indexes/__init__.py +3 -3
  327. langchain/indexes/_sql_record_manager.py +63 -46
  328. langchain/indexes/prompts/entity_extraction.py +1 -2
  329. langchain/indexes/prompts/entity_summarization.py +1 -2
  330. langchain/indexes/prompts/knowledge_triplet_extraction.py +1 -3
  331. langchain/indexes/vectorstore.py +35 -19
  332. langchain/llms/__init__.py +13 -13
  333. langchain/llms/ai21.py +1 -1
  334. langchain/llms/azureml_endpoint.py +4 -4
  335. langchain/llms/base.py +15 -7
  336. langchain/llms/bedrock.py +1 -1
  337. langchain/llms/cloudflare_workersai.py +1 -1
  338. langchain/llms/gradient_ai.py +1 -1
  339. langchain/llms/loading.py +1 -1
  340. langchain/llms/openai.py +1 -1
  341. langchain/llms/sagemaker_endpoint.py +1 -1
  342. langchain/load/dump.py +1 -1
  343. langchain/load/load.py +1 -1
  344. langchain/load/serializable.py +3 -3
  345. langchain/memory/__init__.py +3 -3
  346. langchain/memory/buffer.py +9 -7
  347. langchain/memory/chat_memory.py +14 -8
  348. langchain/memory/chat_message_histories/__init__.py +1 -1
  349. langchain/memory/chat_message_histories/astradb.py +1 -1
  350. langchain/memory/chat_message_histories/cassandra.py +1 -1
  351. langchain/memory/chat_message_histories/cosmos_db.py +1 -1
  352. langchain/memory/chat_message_histories/dynamodb.py +1 -1
  353. langchain/memory/chat_message_histories/elasticsearch.py +1 -1
  354. langchain/memory/chat_message_histories/file.py +1 -1
  355. langchain/memory/chat_message_histories/firestore.py +1 -1
  356. langchain/memory/chat_message_histories/momento.py +1 -1
  357. langchain/memory/chat_message_histories/mongodb.py +1 -1
  358. langchain/memory/chat_message_histories/neo4j.py +1 -1
  359. langchain/memory/chat_message_histories/postgres.py +1 -1
  360. langchain/memory/chat_message_histories/redis.py +1 -1
  361. langchain/memory/chat_message_histories/rocksetdb.py +1 -1
  362. langchain/memory/chat_message_histories/singlestoredb.py +1 -1
  363. langchain/memory/chat_message_histories/streamlit.py +1 -1
  364. langchain/memory/chat_message_histories/upstash_redis.py +1 -1
  365. langchain/memory/chat_message_histories/xata.py +1 -1
  366. langchain/memory/chat_message_histories/zep.py +1 -1
  367. langchain/memory/combined.py +13 -12
  368. langchain/memory/entity.py +84 -61
  369. langchain/memory/prompt.py +10 -11
  370. langchain/memory/readonly.py +0 -2
  371. langchain/memory/simple.py +1 -3
  372. langchain/memory/summary.py +13 -11
  373. langchain/memory/summary_buffer.py +17 -8
  374. langchain/memory/utils.py +3 -2
  375. langchain/memory/vectorstore.py +12 -5
  376. langchain/memory/vectorstore_token_buffer_memory.py +5 -5
  377. langchain/model_laboratory.py +12 -11
  378. langchain/output_parsers/__init__.py +4 -4
  379. langchain/output_parsers/boolean.py +7 -4
  380. langchain/output_parsers/combining.py +10 -5
  381. langchain/output_parsers/datetime.py +32 -31
  382. langchain/output_parsers/enum.py +5 -3
  383. langchain/output_parsers/fix.py +52 -52
  384. langchain/output_parsers/format_instructions.py +6 -8
  385. langchain/output_parsers/json.py +2 -2
  386. langchain/output_parsers/list.py +2 -2
  387. langchain/output_parsers/loading.py +9 -9
  388. langchain/output_parsers/openai_functions.py +3 -3
  389. langchain/output_parsers/openai_tools.py +1 -1
  390. langchain/output_parsers/pandas_dataframe.py +43 -47
  391. langchain/output_parsers/prompts.py +1 -2
  392. langchain/output_parsers/rail_parser.py +1 -1
  393. langchain/output_parsers/regex.py +7 -8
  394. langchain/output_parsers/regex_dict.py +7 -10
  395. langchain/output_parsers/retry.py +77 -78
  396. langchain/output_parsers/structured.py +11 -6
  397. langchain/output_parsers/yaml.py +15 -11
  398. langchain/prompts/__init__.py +5 -3
  399. langchain/prompts/base.py +5 -5
  400. langchain/prompts/chat.py +8 -8
  401. langchain/prompts/example_selector/__init__.py +3 -1
  402. langchain/prompts/example_selector/semantic_similarity.py +2 -2
  403. langchain/prompts/few_shot.py +1 -1
  404. langchain/prompts/loading.py +3 -3
  405. langchain/prompts/prompt.py +1 -1
  406. langchain/retrievers/__init__.py +5 -5
  407. langchain/retrievers/bedrock.py +2 -2
  408. langchain/retrievers/bm25.py +1 -1
  409. langchain/retrievers/contextual_compression.py +14 -8
  410. langchain/retrievers/docarray.py +1 -1
  411. langchain/retrievers/document_compressors/__init__.py +5 -4
  412. langchain/retrievers/document_compressors/base.py +12 -6
  413. langchain/retrievers/document_compressors/chain_extract.py +2 -2
  414. langchain/retrievers/document_compressors/chain_extract_prompt.py +2 -3
  415. langchain/retrievers/document_compressors/chain_filter.py +9 -9
  416. langchain/retrievers/document_compressors/chain_filter_prompt.py +1 -2
  417. langchain/retrievers/document_compressors/cohere_rerank.py +15 -15
  418. langchain/retrievers/document_compressors/embeddings_filter.py +21 -17
  419. langchain/retrievers/document_compressors/flashrank_rerank.py +1 -1
  420. langchain/retrievers/document_compressors/listwise_rerank.py +7 -5
  421. langchain/retrievers/ensemble.py +28 -25
  422. langchain/retrievers/google_cloud_documentai_warehouse.py +1 -1
  423. langchain/retrievers/google_vertex_ai_search.py +2 -2
  424. langchain/retrievers/kendra.py +10 -10
  425. langchain/retrievers/llama_index.py +1 -1
  426. langchain/retrievers/merger_retriever.py +11 -11
  427. langchain/retrievers/milvus.py +1 -1
  428. langchain/retrievers/multi_query.py +32 -26
  429. langchain/retrievers/multi_vector.py +20 -8
  430. langchain/retrievers/parent_document_retriever.py +18 -9
  431. langchain/retrievers/re_phraser.py +6 -5
  432. langchain/retrievers/self_query/base.py +138 -127
  433. langchain/retrievers/time_weighted_retriever.py +18 -7
  434. langchain/retrievers/zilliz.py +1 -1
  435. langchain/runnables/openai_functions.py +6 -2
  436. langchain/schema/__init__.py +23 -23
  437. langchain/schema/cache.py +1 -1
  438. langchain/schema/callbacks/base.py +7 -7
  439. langchain/schema/callbacks/manager.py +19 -19
  440. langchain/schema/callbacks/tracers/base.py +1 -1
  441. langchain/schema/callbacks/tracers/evaluation.py +1 -1
  442. langchain/schema/callbacks/tracers/langchain.py +1 -1
  443. langchain/schema/callbacks/tracers/langchain_v1.py +1 -1
  444. langchain/schema/callbacks/tracers/log_stream.py +1 -1
  445. langchain/schema/callbacks/tracers/schemas.py +8 -8
  446. langchain/schema/callbacks/tracers/stdout.py +3 -3
  447. langchain/schema/document.py +1 -1
  448. langchain/schema/language_model.py +2 -2
  449. langchain/schema/messages.py +12 -12
  450. langchain/schema/output.py +3 -3
  451. langchain/schema/output_parser.py +3 -3
  452. langchain/schema/runnable/__init__.py +3 -3
  453. langchain/schema/runnable/base.py +9 -9
  454. langchain/schema/runnable/config.py +5 -5
  455. langchain/schema/runnable/configurable.py +1 -1
  456. langchain/schema/runnable/history.py +1 -1
  457. langchain/schema/runnable/passthrough.py +1 -1
  458. langchain/schema/runnable/utils.py +16 -16
  459. langchain/schema/vectorstore.py +1 -1
  460. langchain/smith/__init__.py +1 -1
  461. langchain/smith/evaluation/__init__.py +2 -2
  462. langchain/smith/evaluation/config.py +10 -7
  463. langchain/smith/evaluation/name_generation.py +3 -3
  464. langchain/smith/evaluation/progress.py +11 -2
  465. langchain/smith/evaluation/runner_utils.py +179 -127
  466. langchain/smith/evaluation/string_run_evaluator.py +75 -68
  467. langchain/storage/__init__.py +2 -2
  468. langchain/storage/_lc_store.py +4 -2
  469. langchain/storage/encoder_backed.py +6 -2
  470. langchain/storage/file_system.py +19 -16
  471. langchain/storage/in_memory.py +1 -1
  472. langchain/storage/upstash_redis.py +1 -1
  473. langchain/text_splitter.py +15 -15
  474. langchain/tools/__init__.py +28 -26
  475. langchain/tools/ainetwork/app.py +1 -1
  476. langchain/tools/ainetwork/base.py +1 -1
  477. langchain/tools/ainetwork/owner.py +1 -1
  478. langchain/tools/ainetwork/rule.py +1 -1
  479. langchain/tools/ainetwork/transfer.py +1 -1
  480. langchain/tools/ainetwork/value.py +1 -1
  481. langchain/tools/amadeus/closest_airport.py +1 -1
  482. langchain/tools/amadeus/flight_search.py +1 -1
  483. langchain/tools/azure_cognitive_services/__init__.py +1 -1
  484. langchain/tools/base.py +4 -4
  485. langchain/tools/bearly/tool.py +1 -1
  486. langchain/tools/bing_search/__init__.py +1 -1
  487. langchain/tools/bing_search/tool.py +1 -1
  488. langchain/tools/dataforseo_api_search/__init__.py +1 -1
  489. langchain/tools/dataforseo_api_search/tool.py +1 -1
  490. langchain/tools/ddg_search/tool.py +1 -1
  491. langchain/tools/e2b_data_analysis/tool.py +2 -2
  492. langchain/tools/edenai/__init__.py +1 -1
  493. langchain/tools/file_management/__init__.py +1 -1
  494. langchain/tools/file_management/copy.py +1 -1
  495. langchain/tools/file_management/delete.py +1 -1
  496. langchain/tools/gmail/__init__.py +2 -2
  497. langchain/tools/gmail/get_message.py +1 -1
  498. langchain/tools/gmail/search.py +1 -1
  499. langchain/tools/gmail/send_message.py +1 -1
  500. langchain/tools/google_finance/__init__.py +1 -1
  501. langchain/tools/google_finance/tool.py +1 -1
  502. langchain/tools/google_scholar/__init__.py +1 -1
  503. langchain/tools/google_scholar/tool.py +1 -1
  504. langchain/tools/google_search/__init__.py +1 -1
  505. langchain/tools/google_search/tool.py +1 -1
  506. langchain/tools/google_serper/__init__.py +1 -1
  507. langchain/tools/google_serper/tool.py +1 -1
  508. langchain/tools/google_trends/__init__.py +1 -1
  509. langchain/tools/google_trends/tool.py +1 -1
  510. langchain/tools/jira/tool.py +20 -1
  511. langchain/tools/json/tool.py +25 -3
  512. langchain/tools/memorize/tool.py +1 -1
  513. langchain/tools/multion/__init__.py +1 -1
  514. langchain/tools/multion/update_session.py +1 -1
  515. langchain/tools/office365/__init__.py +2 -2
  516. langchain/tools/office365/events_search.py +1 -1
  517. langchain/tools/office365/messages_search.py +1 -1
  518. langchain/tools/office365/send_event.py +1 -1
  519. langchain/tools/office365/send_message.py +1 -1
  520. langchain/tools/openapi/utils/api_models.py +6 -6
  521. langchain/tools/playwright/__init__.py +5 -5
  522. langchain/tools/playwright/click.py +1 -1
  523. langchain/tools/playwright/extract_hyperlinks.py +1 -1
  524. langchain/tools/playwright/get_elements.py +1 -1
  525. langchain/tools/playwright/navigate.py +1 -1
  526. langchain/tools/plugin.py +2 -2
  527. langchain/tools/powerbi/tool.py +1 -1
  528. langchain/tools/python/__init__.py +2 -1
  529. langchain/tools/reddit_search/tool.py +1 -1
  530. langchain/tools/render.py +2 -2
  531. langchain/tools/requests/tool.py +2 -2
  532. langchain/tools/searchapi/tool.py +1 -1
  533. langchain/tools/searx_search/tool.py +1 -1
  534. langchain/tools/slack/get_message.py +1 -1
  535. langchain/tools/spark_sql/tool.py +1 -1
  536. langchain/tools/sql_database/tool.py +1 -1
  537. langchain/tools/tavily_search/__init__.py +1 -1
  538. langchain/tools/tavily_search/tool.py +1 -1
  539. langchain/tools/zapier/__init__.py +1 -1
  540. langchain/tools/zapier/tool.py +24 -2
  541. langchain/utilities/__init__.py +4 -4
  542. langchain/utilities/arcee.py +4 -4
  543. langchain/utilities/clickup.py +4 -4
  544. langchain/utilities/dalle_image_generator.py +1 -1
  545. langchain/utilities/dataforseo_api_search.py +1 -1
  546. langchain/utilities/opaqueprompts.py +1 -1
  547. langchain/utilities/reddit_search.py +1 -1
  548. langchain/utilities/sql_database.py +1 -1
  549. langchain/utilities/tavily_search.py +1 -1
  550. langchain/utilities/vertexai.py +2 -2
  551. langchain/utils/__init__.py +1 -1
  552. langchain/utils/aiter.py +1 -1
  553. langchain/utils/html.py +3 -3
  554. langchain/utils/input.py +1 -1
  555. langchain/utils/iter.py +1 -1
  556. langchain/utils/json_schema.py +1 -3
  557. langchain/utils/strings.py +1 -1
  558. langchain/utils/utils.py +6 -6
  559. langchain/vectorstores/__init__.py +5 -5
  560. langchain/vectorstores/alibabacloud_opensearch.py +1 -1
  561. langchain/vectorstores/azure_cosmos_db.py +1 -1
  562. langchain/vectorstores/clickhouse.py +1 -1
  563. langchain/vectorstores/elastic_vector_search.py +1 -1
  564. langchain/vectorstores/elasticsearch.py +2 -2
  565. langchain/vectorstores/myscale.py +1 -1
  566. langchain/vectorstores/neo4j_vector.py +1 -1
  567. langchain/vectorstores/pgembedding.py +1 -1
  568. langchain/vectorstores/qdrant.py +1 -1
  569. langchain/vectorstores/redis/__init__.py +1 -1
  570. langchain/vectorstores/redis/base.py +1 -1
  571. langchain/vectorstores/redis/filters.py +4 -4
  572. langchain/vectorstores/redis/schema.py +6 -6
  573. langchain/vectorstores/sklearn.py +2 -2
  574. langchain/vectorstores/starrocks.py +1 -1
  575. langchain/vectorstores/utils.py +1 -1
  576. {langchain-0.3.26.dist-info → langchain-0.3.27.dist-info}/METADATA +4 -4
  577. {langchain-0.3.26.dist-info → langchain-0.3.27.dist-info}/RECORD +580 -580
  578. {langchain-0.3.26.dist-info → langchain-0.3.27.dist-info}/WHEEL +1 -1
  579. {langchain-0.3.26.dist-info → langchain-0.3.27.dist-info}/entry_points.txt +0 -0
  580. {langchain-0.3.26.dist-info → langchain-0.3.27.dist-info}/licenses/LICENSE +0 -0
@@ -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)
@@ -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
  ]
@@ -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)
@@ -47,8 +47,8 @@ def _check_in_allowed_domain(url: str, limit_to_domains: Sequence[str]) -> bool:
47
47
  scheme, domain = _extract_scheme_and_domain(url)
48
48
 
49
49
  for allowed_domain in limit_to_domains:
50
- allowed_scheme, allowed_domain = _extract_scheme_and_domain(allowed_domain)
51
- if scheme == allowed_scheme and domain == allowed_domain:
50
+ allowed_scheme, allowed_domain_ = _extract_scheme_and_domain(allowed_domain)
51
+ if scheme == allowed_scheme and domain == allowed_domain_:
52
52
  return True
53
53
  return False
54
54
 
@@ -61,7 +61,7 @@ try:
61
61
  message=(
62
62
  "This class is deprecated and will be removed in langchain 1.0. "
63
63
  "See API reference for replacement: "
64
- "https://api.python.langchain.com/en/latest/chains/langchain.chains.api.base.APIChain.html" # noqa: E501
64
+ "https://api.python.langchain.com/en/latest/chains/langchain.chains.api.base.APIChain.html"
65
65
  ),
66
66
  removal="1.0",
67
67
  )
@@ -201,10 +201,10 @@ try:
201
201
  output_key: str = "output" #: :meta private:
202
202
  limit_to_domains: Optional[Sequence[str]] = Field(default_factory=list) # type: ignore[arg-type]
203
203
  """Use to limit the domains that can be accessed by the API chain.
204
-
204
+
205
205
  * For example, to limit to just the domain `https://www.example.com`, set
206
206
  `limit_to_domains=["https://www.example.com"]`.
207
-
207
+
208
208
  * The default value is an empty tuple, which means that no domains are
209
209
  allowed by default. By design this will raise an error on instantiation.
210
210
  * Use a None if you want to allow all domains by default -- this is not
@@ -235,9 +235,8 @@ try:
235
235
  input_vars = self.api_request_chain.prompt.input_variables
236
236
  expected_vars = {"question", "api_docs"}
237
237
  if set(input_vars) != expected_vars:
238
- raise ValueError(
239
- f"Input variables should be {expected_vars}, got {input_vars}"
240
- )
238
+ msg = f"Input variables should be {expected_vars}, got {input_vars}"
239
+ raise ValueError(msg)
241
240
  return self
242
241
 
243
242
  @model_validator(mode="before")
@@ -247,18 +246,20 @@ try:
247
246
  # This check must be a pre=True check, so that a default of None
248
247
  # won't be set to limit_to_domains if it's not provided.
249
248
  if "limit_to_domains" not in values:
250
- raise ValueError(
249
+ msg = (
251
250
  "You must specify a list of domains to limit access using "
252
251
  "`limit_to_domains`"
253
252
  )
253
+ raise ValueError(msg)
254
254
  if (
255
255
  not values["limit_to_domains"]
256
256
  and values["limit_to_domains"] is not None
257
257
  ):
258
- raise ValueError(
258
+ msg = (
259
259
  "Please provide a list of domains to limit access using "
260
260
  "`limit_to_domains`."
261
261
  )
262
+ raise ValueError(msg)
262
263
  return values
263
264
 
264
265
  @model_validator(mode="after")
@@ -267,9 +268,8 @@ try:
267
268
  input_vars = self.api_answer_chain.prompt.input_variables
268
269
  expected_vars = {"question", "api_docs", "api_url", "api_response"}
269
270
  if set(input_vars) != expected_vars:
270
- raise ValueError(
271
- f"Input variables should be {expected_vars}, got {input_vars}"
272
- )
271
+ msg = f"Input variables should be {expected_vars}, got {input_vars}"
272
+ raise ValueError(msg)
273
273
  return self
274
274
 
275
275
  def _call(
@@ -287,14 +287,19 @@ try:
287
287
  _run_manager.on_text(api_url, color="green", end="\n", verbose=self.verbose)
288
288
  api_url = api_url.strip()
289
289
  if self.limit_to_domains and not _check_in_allowed_domain(
290
- api_url, self.limit_to_domains
290
+ api_url,
291
+ self.limit_to_domains,
291
292
  ):
292
- raise ValueError(
293
+ msg = (
293
294
  f"{api_url} is not in the allowed domains: {self.limit_to_domains}"
294
295
  )
296
+ raise ValueError(msg)
295
297
  api_response = self.requests_wrapper.get(api_url)
296
298
  _run_manager.on_text(
297
- str(api_response), color="yellow", end="\n", verbose=self.verbose
299
+ str(api_response),
300
+ color="yellow",
301
+ end="\n",
302
+ verbose=self.verbose,
298
303
  )
299
304
  answer = self.api_answer_chain.predict(
300
305
  question=question,
@@ -320,18 +325,26 @@ try:
320
325
  callbacks=_run_manager.get_child(),
321
326
  )
322
327
  await _run_manager.on_text(
323
- api_url, color="green", end="\n", verbose=self.verbose
328
+ api_url,
329
+ color="green",
330
+ end="\n",
331
+ verbose=self.verbose,
324
332
  )
325
333
  api_url = api_url.strip()
326
334
  if self.limit_to_domains and not _check_in_allowed_domain(
327
- api_url, self.limit_to_domains
335
+ api_url,
336
+ self.limit_to_domains,
328
337
  ):
329
- raise ValueError(
338
+ msg = (
330
339
  f"{api_url} is not in the allowed domains: {self.limit_to_domains}"
331
340
  )
341
+ raise ValueError(msg)
332
342
  api_response = await self.requests_wrapper.aget(api_url)
333
343
  await _run_manager.on_text(
334
- str(api_response), color="yellow", end="\n", verbose=self.verbose
344
+ str(api_response),
345
+ color="yellow",
346
+ end="\n",
347
+ verbose=self.verbose,
335
348
  )
336
349
  answer = await self.api_answer_chain.apredict(
337
350
  question=question,
@@ -350,7 +363,7 @@ try:
350
363
  headers: Optional[dict] = None,
351
364
  api_url_prompt: BasePromptTemplate = API_URL_PROMPT,
352
365
  api_response_prompt: BasePromptTemplate = API_RESPONSE_PROMPT,
353
- limit_to_domains: Optional[Sequence[str]] = tuple(),
366
+ limit_to_domains: Optional[Sequence[str]] = (),
354
367
  **kwargs: Any,
355
368
  ) -> APIChain:
356
369
  """Load chain from just an LLM and the api docs."""
@@ -374,7 +387,8 @@ except ImportError:
374
387
 
375
388
  class APIChain: # type: ignore[no-redef]
376
389
  def __init__(self, *args: Any, **kwargs: Any) -> None:
377
- raise ImportError(
390
+ msg = (
378
391
  "To use the APIChain, you must install the langchain_community package."
379
392
  "pip install langchain_community"
380
393
  )
394
+ raise ImportError(msg)
@@ -1,4 +1,3 @@
1
- # flake8: noqa
2
1
  NEWS_DOCS = """API documentation:
3
2
  Endpoint: https://newsapi.org
4
3
  Top headlines /v2/top-headlines
@@ -29,4 +28,4 @@ Response object
29
28
  content | string | The unformatted content of the article, where available. This is truncated to 200 chars.
30
29
 
31
30
  Use page size: 2
32
- """
31
+ """ # noqa: E501
@@ -1,4 +1,3 @@
1
- # flake8: noqa
2
1
  OPEN_METEO_DOCS = """BASE URL: https://api.open-meteo.com/
3
2
 
4
3
  API Documentation
@@ -30,4 +29,4 @@ showers Preceding hour sum mm (inch) Showers from convective precipitation in mi
30
29
  weathercode Instant WMO code Weather condition as a numeric code. Follow WMO weather interpretation codes. See table below for details.
31
30
  snow_depth Instant meters Snow depth on the ground
32
31
  freezinglevel_height Instant meters Altitude above sea level of the 0°C level
33
- visibility Instant meters Viewing distance in meters. Influenced by low clouds, humidity and aerosols. Maximum visibility is approximately 24 km."""
32
+ visibility Instant meters Viewing distance in meters. Influenced by low clouds, humidity and aerosols. Maximum visibility is approximately 24 km.""" # noqa: E501