langchain 0.4.0.dev0__py3-none-any.whl → 1.0.0a2__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 (1349) hide show
  1. langchain/__init__.py +7 -434
  2. langchain/_internal/_documents.py +35 -0
  3. langchain/_internal/_lazy_import.py +36 -0
  4. langchain/_internal/_prompts.py +165 -0
  5. langchain/_internal/_typing.py +70 -0
  6. langchain/_internal/_utils.py +7 -0
  7. langchain/agents/__init__.py +5 -179
  8. langchain/agents/_internal/__init__.py +1 -0
  9. langchain/agents/_internal/_typing.py +13 -0
  10. langchain/agents/interrupt.py +92 -0
  11. langchain/agents/react_agent.py +1175 -0
  12. langchain/agents/structured_output.py +403 -0
  13. langchain/agents/tool_node.py +1174 -0
  14. langchain/chat_models/__init__.py +2 -75
  15. langchain/chat_models/base.py +138 -208
  16. langchain/{docstore/document.py → documents/__init__.py} +3 -1
  17. langchain/embeddings/__init__.py +2 -218
  18. langchain/embeddings/base.py +6 -13
  19. langchain/embeddings/cache.py +16 -19
  20. langchain/globals.py +4 -166
  21. langchain/storage/__init__.py +0 -35
  22. langchain/storage/encoder_backed.py +9 -19
  23. langchain/tools/__init__.py +8 -201
  24. {langchain-0.4.0.dev0.dist-info → langchain-1.0.0a2.dist-info}/METADATA +20 -26
  25. langchain-1.0.0a2.dist-info/RECORD +33 -0
  26. langchain/_api/__init__.py +0 -28
  27. langchain/_api/deprecation.py +0 -32
  28. langchain/_api/interactive_env.py +0 -5
  29. langchain/_api/module_import.py +0 -153
  30. langchain/_api/path.py +0 -3
  31. langchain/adapters/openai.py +0 -63
  32. langchain/agents/agent.py +0 -1824
  33. langchain/agents/agent_iterator.py +0 -438
  34. langchain/agents/agent_toolkits/__init__.py +0 -167
  35. langchain/agents/agent_toolkits/ainetwork/__init__.py +0 -1
  36. langchain/agents/agent_toolkits/ainetwork/toolkit.py +0 -25
  37. langchain/agents/agent_toolkits/amadeus/toolkit.py +0 -23
  38. langchain/agents/agent_toolkits/azure_cognitive_services.py +0 -29
  39. langchain/agents/agent_toolkits/base.py +0 -3
  40. langchain/agents/agent_toolkits/clickup/__init__.py +0 -0
  41. langchain/agents/agent_toolkits/clickup/toolkit.py +0 -25
  42. langchain/agents/agent_toolkits/conversational_retrieval/__init__.py +0 -0
  43. langchain/agents/agent_toolkits/conversational_retrieval/openai_functions.py +0 -87
  44. langchain/agents/agent_toolkits/conversational_retrieval/tool.py +0 -3
  45. langchain/agents/agent_toolkits/csv/__init__.py +0 -28
  46. langchain/agents/agent_toolkits/file_management/__init__.py +0 -31
  47. langchain/agents/agent_toolkits/file_management/toolkit.py +0 -29
  48. langchain/agents/agent_toolkits/github/__init__.py +0 -1
  49. langchain/agents/agent_toolkits/github/toolkit.py +0 -69
  50. langchain/agents/agent_toolkits/gitlab/__init__.py +0 -1
  51. langchain/agents/agent_toolkits/gitlab/toolkit.py +0 -25
  52. langchain/agents/agent_toolkits/gmail/__init__.py +0 -1
  53. langchain/agents/agent_toolkits/gmail/toolkit.py +0 -23
  54. langchain/agents/agent_toolkits/jira/__init__.py +0 -1
  55. langchain/agents/agent_toolkits/jira/toolkit.py +0 -23
  56. langchain/agents/agent_toolkits/json/__init__.py +0 -1
  57. langchain/agents/agent_toolkits/json/base.py +0 -25
  58. langchain/agents/agent_toolkits/json/prompt.py +0 -24
  59. langchain/agents/agent_toolkits/json/toolkit.py +0 -23
  60. langchain/agents/agent_toolkits/multion/__init__.py +0 -1
  61. langchain/agents/agent_toolkits/multion/toolkit.py +0 -25
  62. langchain/agents/agent_toolkits/nasa/__init__.py +0 -1
  63. langchain/agents/agent_toolkits/nasa/toolkit.py +0 -23
  64. langchain/agents/agent_toolkits/nla/__init__.py +0 -0
  65. langchain/agents/agent_toolkits/nla/tool.py +0 -23
  66. langchain/agents/agent_toolkits/nla/toolkit.py +0 -23
  67. langchain/agents/agent_toolkits/office365/__init__.py +0 -1
  68. langchain/agents/agent_toolkits/office365/toolkit.py +0 -25
  69. langchain/agents/agent_toolkits/openapi/__init__.py +0 -1
  70. langchain/agents/agent_toolkits/openapi/base.py +0 -25
  71. langchain/agents/agent_toolkits/openapi/planner.py +0 -52
  72. langchain/agents/agent_toolkits/openapi/planner_prompt.py +0 -103
  73. langchain/agents/agent_toolkits/openapi/prompt.py +0 -29
  74. langchain/agents/agent_toolkits/openapi/spec.py +0 -30
  75. langchain/agents/agent_toolkits/openapi/toolkit.py +0 -30
  76. langchain/agents/agent_toolkits/pandas/__init__.py +0 -28
  77. langchain/agents/agent_toolkits/playwright/__init__.py +0 -29
  78. langchain/agents/agent_toolkits/playwright/toolkit.py +0 -27
  79. langchain/agents/agent_toolkits/powerbi/__init__.py +0 -1
  80. langchain/agents/agent_toolkits/powerbi/base.py +0 -25
  81. langchain/agents/agent_toolkits/powerbi/chat_base.py +0 -27
  82. langchain/agents/agent_toolkits/powerbi/prompt.py +0 -36
  83. langchain/agents/agent_toolkits/powerbi/toolkit.py +0 -25
  84. langchain/agents/agent_toolkits/python/__init__.py +0 -28
  85. langchain/agents/agent_toolkits/slack/__init__.py +0 -1
  86. langchain/agents/agent_toolkits/slack/toolkit.py +0 -23
  87. langchain/agents/agent_toolkits/spark/__init__.py +0 -28
  88. langchain/agents/agent_toolkits/spark_sql/__init__.py +0 -1
  89. langchain/agents/agent_toolkits/spark_sql/base.py +0 -25
  90. langchain/agents/agent_toolkits/spark_sql/prompt.py +0 -27
  91. langchain/agents/agent_toolkits/spark_sql/toolkit.py +0 -25
  92. langchain/agents/agent_toolkits/sql/__init__.py +0 -1
  93. langchain/agents/agent_toolkits/sql/base.py +0 -23
  94. langchain/agents/agent_toolkits/sql/prompt.py +0 -29
  95. langchain/agents/agent_toolkits/sql/toolkit.py +0 -25
  96. langchain/agents/agent_toolkits/steam/__init__.py +0 -1
  97. langchain/agents/agent_toolkits/steam/toolkit.py +0 -23
  98. langchain/agents/agent_toolkits/vectorstore/__init__.py +0 -1
  99. langchain/agents/agent_toolkits/vectorstore/base.py +0 -219
  100. langchain/agents/agent_toolkits/vectorstore/prompt.py +0 -11
  101. langchain/agents/agent_toolkits/vectorstore/toolkit.py +0 -97
  102. langchain/agents/agent_toolkits/xorbits/__init__.py +0 -28
  103. langchain/agents/agent_toolkits/zapier/__init__.py +0 -1
  104. langchain/agents/agent_toolkits/zapier/toolkit.py +0 -25
  105. langchain/agents/agent_types.py +0 -57
  106. langchain/agents/chat/__init__.py +0 -0
  107. langchain/agents/chat/base.py +0 -180
  108. langchain/agents/chat/output_parser.py +0 -74
  109. langchain/agents/chat/prompt.py +0 -29
  110. langchain/agents/conversational/__init__.py +0 -1
  111. langchain/agents/conversational/base.py +0 -178
  112. langchain/agents/conversational/output_parser.py +0 -51
  113. langchain/agents/conversational/prompt.py +0 -35
  114. langchain/agents/conversational_chat/__init__.py +0 -1
  115. langchain/agents/conversational_chat/base.py +0 -183
  116. langchain/agents/conversational_chat/output_parser.py +0 -57
  117. langchain/agents/conversational_chat/prompt.py +0 -56
  118. langchain/agents/format_scratchpad/__init__.py +0 -25
  119. langchain/agents/format_scratchpad/log.py +0 -25
  120. langchain/agents/format_scratchpad/log_to_messages.py +0 -26
  121. langchain/agents/format_scratchpad/openai_functions.py +0 -80
  122. langchain/agents/format_scratchpad/openai_tools.py +0 -5
  123. langchain/agents/format_scratchpad/tools.py +0 -65
  124. langchain/agents/format_scratchpad/xml.py +0 -52
  125. langchain/agents/initialize.py +0 -105
  126. langchain/agents/json_chat/__init__.py +0 -0
  127. langchain/agents/json_chat/base.py +0 -196
  128. langchain/agents/json_chat/prompt.py +0 -8
  129. langchain/agents/load_tools.py +0 -13
  130. langchain/agents/loading.py +0 -148
  131. langchain/agents/mrkl/__init__.py +0 -1
  132. langchain/agents/mrkl/base.py +0 -218
  133. langchain/agents/mrkl/output_parser.py +0 -103
  134. langchain/agents/mrkl/prompt.py +0 -15
  135. langchain/agents/openai_assistant/__init__.py +0 -3
  136. langchain/agents/openai_assistant/base.py +0 -818
  137. langchain/agents/openai_functions_agent/__init__.py +0 -0
  138. langchain/agents/openai_functions_agent/agent_token_buffer_memory.py +0 -103
  139. langchain/agents/openai_functions_agent/base.py +0 -382
  140. langchain/agents/openai_functions_multi_agent/__init__.py +0 -0
  141. langchain/agents/openai_functions_multi_agent/base.py +0 -337
  142. langchain/agents/openai_tools/__init__.py +0 -0
  143. langchain/agents/openai_tools/base.py +0 -109
  144. langchain/agents/output_parsers/__init__.py +0 -35
  145. langchain/agents/output_parsers/json.py +0 -64
  146. langchain/agents/output_parsers/openai_functions.py +0 -103
  147. langchain/agents/output_parsers/openai_tools.py +0 -77
  148. langchain/agents/output_parsers/react_json_single_input.py +0 -87
  149. langchain/agents/output_parsers/react_single_input.py +0 -102
  150. langchain/agents/output_parsers/self_ask.py +0 -53
  151. langchain/agents/output_parsers/tools.py +0 -121
  152. langchain/agents/output_parsers/xml.py +0 -126
  153. langchain/agents/react/__init__.py +0 -1
  154. langchain/agents/react/agent.py +0 -145
  155. langchain/agents/react/base.py +0 -189
  156. langchain/agents/react/output_parser.py +0 -35
  157. langchain/agents/react/textworld_prompt.py +0 -51
  158. langchain/agents/react/wiki_prompt.py +0 -70
  159. langchain/agents/schema.py +0 -37
  160. langchain/agents/self_ask_with_search/__init__.py +0 -4
  161. langchain/agents/self_ask_with_search/base.py +0 -219
  162. langchain/agents/self_ask_with_search/output_parser.py +0 -4
  163. langchain/agents/self_ask_with_search/prompt.py +0 -43
  164. langchain/agents/structured_chat/__init__.py +0 -0
  165. langchain/agents/structured_chat/base.py +0 -309
  166. langchain/agents/structured_chat/output_parser.py +0 -112
  167. langchain/agents/structured_chat/prompt.py +0 -34
  168. langchain/agents/tool_calling_agent/__init__.py +0 -0
  169. langchain/agents/tool_calling_agent/base.py +0 -111
  170. langchain/agents/tools.py +0 -50
  171. langchain/agents/types.py +0 -27
  172. langchain/agents/utils.py +0 -19
  173. langchain/agents/xml/__init__.py +0 -0
  174. langchain/agents/xml/base.py +0 -237
  175. langchain/agents/xml/prompt.py +0 -21
  176. langchain/base_language.py +0 -7
  177. langchain/cache.py +0 -72
  178. langchain/callbacks/__init__.py +0 -139
  179. langchain/callbacks/aim_callback.py +0 -33
  180. langchain/callbacks/argilla_callback.py +0 -25
  181. langchain/callbacks/arize_callback.py +0 -25
  182. langchain/callbacks/arthur_callback.py +0 -25
  183. langchain/callbacks/base.py +0 -29
  184. langchain/callbacks/clearml_callback.py +0 -25
  185. langchain/callbacks/comet_ml_callback.py +0 -25
  186. langchain/callbacks/confident_callback.py +0 -25
  187. langchain/callbacks/context_callback.py +0 -25
  188. langchain/callbacks/file.py +0 -3
  189. langchain/callbacks/flyte_callback.py +0 -25
  190. langchain/callbacks/human.py +0 -33
  191. langchain/callbacks/infino_callback.py +0 -25
  192. langchain/callbacks/labelstudio_callback.py +0 -33
  193. langchain/callbacks/llmonitor_callback.py +0 -27
  194. langchain/callbacks/manager.py +0 -89
  195. langchain/callbacks/mlflow_callback.py +0 -38
  196. langchain/callbacks/openai_info.py +0 -25
  197. langchain/callbacks/promptlayer_callback.py +0 -27
  198. langchain/callbacks/sagemaker_callback.py +0 -27
  199. langchain/callbacks/stdout.py +0 -3
  200. langchain/callbacks/streaming_aiter.py +0 -86
  201. langchain/callbacks/streaming_aiter_final_only.py +0 -100
  202. langchain/callbacks/streaming_stdout.py +0 -5
  203. langchain/callbacks/streaming_stdout_final_only.py +0 -96
  204. langchain/callbacks/streamlit/__init__.py +0 -86
  205. langchain/callbacks/streamlit/mutable_expander.py +0 -33
  206. langchain/callbacks/streamlit/streamlit_callback_handler.py +0 -49
  207. langchain/callbacks/tracers/__init__.py +0 -38
  208. langchain/callbacks/tracers/base.py +0 -6
  209. langchain/callbacks/tracers/comet.py +0 -30
  210. langchain/callbacks/tracers/evaluation.py +0 -8
  211. langchain/callbacks/tracers/langchain.py +0 -8
  212. langchain/callbacks/tracers/langchain_v1.py +0 -3
  213. langchain/callbacks/tracers/log_stream.py +0 -9
  214. langchain/callbacks/tracers/logging.py +0 -57
  215. langchain/callbacks/tracers/root_listeners.py +0 -3
  216. langchain/callbacks/tracers/run_collector.py +0 -3
  217. langchain/callbacks/tracers/schemas.py +0 -27
  218. langchain/callbacks/tracers/stdout.py +0 -6
  219. langchain/callbacks/tracers/wandb.py +0 -27
  220. langchain/callbacks/trubrics_callback.py +0 -25
  221. langchain/callbacks/utils.py +0 -48
  222. langchain/callbacks/wandb_callback.py +0 -25
  223. langchain/callbacks/whylabs_callback.py +0 -25
  224. langchain/chains/__init__.py +0 -96
  225. langchain/chains/api/__init__.py +0 -1
  226. langchain/chains/api/base.py +0 -398
  227. langchain/chains/api/news_docs.py +0 -31
  228. langchain/chains/api/open_meteo_docs.py +0 -32
  229. langchain/chains/api/openapi/__init__.py +0 -0
  230. langchain/chains/api/openapi/chain.py +0 -23
  231. langchain/chains/api/openapi/prompts.py +0 -27
  232. langchain/chains/api/openapi/requests_chain.py +0 -29
  233. langchain/chains/api/openapi/response_chain.py +0 -29
  234. langchain/chains/api/podcast_docs.py +0 -27
  235. langchain/chains/api/prompt.py +0 -35
  236. langchain/chains/api/tmdb_docs.py +0 -36
  237. langchain/chains/base.py +0 -806
  238. langchain/chains/chat_vector_db/__init__.py +0 -0
  239. langchain/chains/chat_vector_db/prompts.py +0 -19
  240. langchain/chains/combine_documents/__init__.py +0 -15
  241. langchain/chains/combine_documents/base.py +0 -293
  242. langchain/chains/combine_documents/map_reduce.py +0 -303
  243. langchain/chains/combine_documents/map_rerank.py +0 -249
  244. langchain/chains/combine_documents/reduce.py +0 -382
  245. langchain/chains/combine_documents/refine.py +0 -237
  246. langchain/chains/combine_documents/stuff.py +0 -292
  247. langchain/chains/constitutional_ai/__init__.py +0 -2
  248. langchain/chains/constitutional_ai/base.py +0 -328
  249. langchain/chains/constitutional_ai/models.py +0 -11
  250. langchain/chains/constitutional_ai/principles.py +0 -278
  251. langchain/chains/constitutional_ai/prompts.py +0 -120
  252. langchain/chains/conversation/__init__.py +0 -1
  253. langchain/chains/conversation/base.py +0 -146
  254. langchain/chains/conversation/memory.py +0 -45
  255. langchain/chains/conversation/prompt.py +0 -28
  256. langchain/chains/conversational_retrieval/__init__.py +0 -1
  257. langchain/chains/conversational_retrieval/base.py +0 -576
  258. langchain/chains/conversational_retrieval/prompts.py +0 -19
  259. langchain/chains/elasticsearch_database/__init__.py +0 -3
  260. langchain/chains/elasticsearch_database/base.py +0 -212
  261. langchain/chains/elasticsearch_database/prompts.py +0 -35
  262. langchain/chains/ernie_functions/__init__.py +0 -44
  263. langchain/chains/ernie_functions/base.py +0 -49
  264. langchain/chains/example_generator.py +0 -22
  265. langchain/chains/flare/__init__.py +0 -1
  266. langchain/chains/flare/base.py +0 -284
  267. langchain/chains/flare/prompts.py +0 -46
  268. langchain/chains/graph_qa/__init__.py +0 -0
  269. langchain/chains/graph_qa/arangodb.py +0 -23
  270. langchain/chains/graph_qa/base.py +0 -23
  271. langchain/chains/graph_qa/cypher.py +0 -39
  272. langchain/chains/graph_qa/cypher_utils.py +0 -27
  273. langchain/chains/graph_qa/falkordb.py +0 -29
  274. langchain/chains/graph_qa/gremlin.py +0 -36
  275. langchain/chains/graph_qa/hugegraph.py +0 -23
  276. langchain/chains/graph_qa/kuzu.py +0 -29
  277. langchain/chains/graph_qa/nebulagraph.py +0 -23
  278. langchain/chains/graph_qa/neptune_cypher.py +0 -39
  279. langchain/chains/graph_qa/neptune_sparql.py +0 -36
  280. langchain/chains/graph_qa/ontotext_graphdb.py +0 -25
  281. langchain/chains/graph_qa/prompts.py +0 -96
  282. langchain/chains/graph_qa/sparql.py +0 -23
  283. langchain/chains/history_aware_retriever.py +0 -68
  284. langchain/chains/hyde/__init__.py +0 -4
  285. langchain/chains/hyde/base.py +0 -124
  286. langchain/chains/hyde/prompts.py +0 -46
  287. langchain/chains/llm.py +0 -447
  288. langchain/chains/llm_bash/__init__.py +0 -10
  289. langchain/chains/llm_checker/__init__.py +0 -4
  290. langchain/chains/llm_checker/base.py +0 -205
  291. langchain/chains/llm_checker/prompt.py +0 -30
  292. langchain/chains/llm_math/__init__.py +0 -4
  293. langchain/chains/llm_math/base.py +0 -319
  294. langchain/chains/llm_math/prompt.py +0 -43
  295. langchain/chains/llm_requests.py +0 -23
  296. langchain/chains/llm_summarization_checker/__init__.py +0 -7
  297. langchain/chains/llm_summarization_checker/base.py +0 -217
  298. langchain/chains/llm_summarization_checker/prompts/are_all_true_prompt.txt +0 -38
  299. langchain/chains/llm_summarization_checker/prompts/check_facts.txt +0 -10
  300. langchain/chains/llm_summarization_checker/prompts/create_facts.txt +0 -10
  301. langchain/chains/llm_summarization_checker/prompts/revise_summary.txt +0 -17
  302. langchain/chains/llm_symbolic_math/__init__.py +0 -10
  303. langchain/chains/loading.py +0 -734
  304. langchain/chains/mapreduce.py +0 -121
  305. langchain/chains/moderation.py +0 -135
  306. langchain/chains/natbot/__init__.py +0 -4
  307. langchain/chains/natbot/base.py +0 -165
  308. langchain/chains/natbot/crawler.py +0 -472
  309. langchain/chains/natbot/prompt.py +0 -143
  310. langchain/chains/openai_functions/__init__.py +0 -44
  311. langchain/chains/openai_functions/base.py +0 -237
  312. langchain/chains/openai_functions/citation_fuzzy_match.py +0 -169
  313. langchain/chains/openai_functions/extraction.py +0 -197
  314. langchain/chains/openai_functions/openapi.py +0 -409
  315. langchain/chains/openai_functions/qa_with_structure.py +0 -142
  316. langchain/chains/openai_functions/tagging.py +0 -174
  317. langchain/chains/openai_functions/utils.py +0 -40
  318. langchain/chains/openai_tools/__init__.py +0 -3
  319. langchain/chains/openai_tools/extraction.py +0 -79
  320. langchain/chains/prompt_selector.py +0 -65
  321. langchain/chains/qa_generation/__init__.py +0 -0
  322. langchain/chains/qa_generation/base.py +0 -128
  323. langchain/chains/qa_generation/prompt.py +0 -50
  324. langchain/chains/qa_with_sources/__init__.py +0 -5
  325. langchain/chains/qa_with_sources/base.py +0 -266
  326. langchain/chains/qa_with_sources/loading.py +0 -209
  327. langchain/chains/qa_with_sources/map_reduce_prompt.py +0 -54
  328. langchain/chains/qa_with_sources/refine_prompts.py +0 -37
  329. langchain/chains/qa_with_sources/retrieval.py +0 -75
  330. langchain/chains/qa_with_sources/stuff_prompt.py +0 -43
  331. langchain/chains/qa_with_sources/vector_db.py +0 -88
  332. langchain/chains/query_constructor/__init__.py +0 -3
  333. langchain/chains/query_constructor/base.py +0 -378
  334. langchain/chains/query_constructor/ir.py +0 -23
  335. langchain/chains/query_constructor/parser.py +0 -272
  336. langchain/chains/query_constructor/prompt.py +0 -226
  337. langchain/chains/query_constructor/schema.py +0 -14
  338. langchain/chains/question_answering/__init__.py +0 -6
  339. langchain/chains/question_answering/chain.py +0 -279
  340. langchain/chains/question_answering/map_reduce_prompt.py +0 -80
  341. langchain/chains/question_answering/map_rerank_prompt.py +0 -66
  342. langchain/chains/question_answering/refine_prompts.py +0 -72
  343. langchain/chains/question_answering/stuff_prompt.py +0 -33
  344. langchain/chains/retrieval.py +0 -67
  345. langchain/chains/retrieval_qa/__init__.py +0 -1
  346. langchain/chains/retrieval_qa/base.py +0 -374
  347. langchain/chains/retrieval_qa/prompt.py +0 -11
  348. langchain/chains/router/__init__.py +0 -12
  349. langchain/chains/router/base.py +0 -154
  350. langchain/chains/router/embedding_router.py +0 -96
  351. langchain/chains/router/llm_router.py +0 -198
  352. langchain/chains/router/multi_prompt.py +0 -184
  353. langchain/chains/router/multi_prompt_prompt.py +0 -32
  354. langchain/chains/router/multi_retrieval_prompt.py +0 -30
  355. langchain/chains/router/multi_retrieval_qa.py +0 -127
  356. langchain/chains/sequential.py +0 -220
  357. langchain/chains/sql_database/__init__.py +0 -1
  358. langchain/chains/sql_database/prompt.py +0 -282
  359. langchain/chains/sql_database/query.py +0 -167
  360. langchain/chains/structured_output/__init__.py +0 -6
  361. langchain/chains/structured_output/base.py +0 -584
  362. langchain/chains/summarize/__init__.py +0 -6
  363. langchain/chains/summarize/chain.py +0 -174
  364. langchain/chains/summarize/map_reduce_prompt.py +0 -10
  365. langchain/chains/summarize/refine_prompts.py +0 -23
  366. langchain/chains/summarize/stuff_prompt.py +0 -10
  367. langchain/chains/transform.py +0 -88
  368. langchain/chat_loaders/__init__.py +0 -19
  369. langchain/chat_loaders/base.py +0 -3
  370. langchain/chat_loaders/facebook_messenger.py +0 -32
  371. langchain/chat_loaders/gmail.py +0 -23
  372. langchain/chat_loaders/imessage.py +0 -23
  373. langchain/chat_loaders/langsmith.py +0 -30
  374. langchain/chat_loaders/slack.py +0 -23
  375. langchain/chat_loaders/telegram.py +0 -23
  376. langchain/chat_loaders/utils.py +0 -36
  377. langchain/chat_loaders/whatsapp.py +0 -23
  378. langchain/chat_models/anthropic.py +0 -30
  379. langchain/chat_models/anyscale.py +0 -23
  380. langchain/chat_models/azure_openai.py +0 -23
  381. langchain/chat_models/azureml_endpoint.py +0 -30
  382. langchain/chat_models/baichuan.py +0 -23
  383. langchain/chat_models/baidu_qianfan_endpoint.py +0 -27
  384. langchain/chat_models/bedrock.py +0 -27
  385. langchain/chat_models/cohere.py +0 -23
  386. langchain/chat_models/databricks.py +0 -23
  387. langchain/chat_models/ernie.py +0 -23
  388. langchain/chat_models/everlyai.py +0 -23
  389. langchain/chat_models/fake.py +0 -30
  390. langchain/chat_models/fireworks.py +0 -23
  391. langchain/chat_models/gigachat.py +0 -23
  392. langchain/chat_models/google_palm.py +0 -30
  393. langchain/chat_models/human.py +0 -23
  394. langchain/chat_models/hunyuan.py +0 -23
  395. langchain/chat_models/javelin_ai_gateway.py +0 -30
  396. langchain/chat_models/jinachat.py +0 -23
  397. langchain/chat_models/konko.py +0 -23
  398. langchain/chat_models/litellm.py +0 -30
  399. langchain/chat_models/meta.py +0 -25
  400. langchain/chat_models/minimax.py +0 -23
  401. langchain/chat_models/mlflow.py +0 -23
  402. langchain/chat_models/mlflow_ai_gateway.py +0 -30
  403. langchain/chat_models/ollama.py +0 -23
  404. langchain/chat_models/openai.py +0 -23
  405. langchain/chat_models/pai_eas_endpoint.py +0 -25
  406. langchain/chat_models/promptlayer_openai.py +0 -25
  407. langchain/chat_models/tongyi.py +0 -23
  408. langchain/chat_models/vertexai.py +0 -23
  409. langchain/chat_models/volcengine_maas.py +0 -30
  410. langchain/chat_models/yandex.py +0 -23
  411. langchain/docstore/__init__.py +0 -48
  412. langchain/docstore/arbitrary_fn.py +0 -23
  413. langchain/docstore/base.py +0 -27
  414. langchain/docstore/in_memory.py +0 -23
  415. langchain/docstore/wikipedia.py +0 -23
  416. langchain/document_loaders/__init__.py +0 -553
  417. langchain/document_loaders/acreom.py +0 -23
  418. langchain/document_loaders/airbyte.py +0 -48
  419. langchain/document_loaders/airbyte_json.py +0 -23
  420. langchain/document_loaders/airtable.py +0 -23
  421. langchain/document_loaders/apify_dataset.py +0 -23
  422. langchain/document_loaders/arcgis_loader.py +0 -23
  423. langchain/document_loaders/arxiv.py +0 -23
  424. langchain/document_loaders/assemblyai.py +0 -28
  425. langchain/document_loaders/async_html.py +0 -23
  426. langchain/document_loaders/azlyrics.py +0 -23
  427. langchain/document_loaders/azure_ai_data.py +0 -23
  428. langchain/document_loaders/azure_blob_storage_container.py +0 -25
  429. langchain/document_loaders/azure_blob_storage_file.py +0 -25
  430. langchain/document_loaders/baiducloud_bos_directory.py +0 -29
  431. langchain/document_loaders/baiducloud_bos_file.py +0 -27
  432. langchain/document_loaders/base.py +0 -3
  433. langchain/document_loaders/base_o365.py +0 -23
  434. langchain/document_loaders/bibtex.py +0 -23
  435. langchain/document_loaders/bigquery.py +0 -23
  436. langchain/document_loaders/bilibili.py +0 -23
  437. langchain/document_loaders/blackboard.py +0 -23
  438. langchain/document_loaders/blob_loaders/__init__.py +0 -36
  439. langchain/document_loaders/blob_loaders/file_system.py +0 -23
  440. langchain/document_loaders/blob_loaders/schema.py +0 -26
  441. langchain/document_loaders/blob_loaders/youtube_audio.py +0 -23
  442. langchain/document_loaders/blockchain.py +0 -28
  443. langchain/document_loaders/brave_search.py +0 -23
  444. langchain/document_loaders/browserless.py +0 -23
  445. langchain/document_loaders/chatgpt.py +0 -28
  446. langchain/document_loaders/chromium.py +0 -23
  447. langchain/document_loaders/college_confidential.py +0 -25
  448. langchain/document_loaders/concurrent.py +0 -23
  449. langchain/document_loaders/confluence.py +0 -28
  450. langchain/document_loaders/conllu.py +0 -23
  451. langchain/document_loaders/couchbase.py +0 -23
  452. langchain/document_loaders/csv_loader.py +0 -27
  453. langchain/document_loaders/cube_semantic.py +0 -23
  454. langchain/document_loaders/datadog_logs.py +0 -23
  455. langchain/document_loaders/dataframe.py +0 -28
  456. langchain/document_loaders/diffbot.py +0 -23
  457. langchain/document_loaders/directory.py +0 -23
  458. langchain/document_loaders/discord.py +0 -23
  459. langchain/document_loaders/docugami.py +0 -23
  460. langchain/document_loaders/docusaurus.py +0 -23
  461. langchain/document_loaders/dropbox.py +0 -23
  462. langchain/document_loaders/duckdb_loader.py +0 -23
  463. langchain/document_loaders/email.py +0 -30
  464. langchain/document_loaders/epub.py +0 -23
  465. langchain/document_loaders/etherscan.py +0 -23
  466. langchain/document_loaders/evernote.py +0 -23
  467. langchain/document_loaders/excel.py +0 -23
  468. langchain/document_loaders/facebook_chat.py +0 -28
  469. langchain/document_loaders/fauna.py +0 -23
  470. langchain/document_loaders/figma.py +0 -23
  471. langchain/document_loaders/gcs_directory.py +0 -23
  472. langchain/document_loaders/gcs_file.py +0 -23
  473. langchain/document_loaders/generic.py +0 -23
  474. langchain/document_loaders/geodataframe.py +0 -23
  475. langchain/document_loaders/git.py +0 -23
  476. langchain/document_loaders/gitbook.py +0 -23
  477. langchain/document_loaders/github.py +0 -28
  478. langchain/document_loaders/google_speech_to_text.py +0 -23
  479. langchain/document_loaders/googledrive.py +0 -23
  480. langchain/document_loaders/gutenberg.py +0 -23
  481. langchain/document_loaders/helpers.py +0 -30
  482. langchain/document_loaders/hn.py +0 -23
  483. langchain/document_loaders/html.py +0 -23
  484. langchain/document_loaders/html_bs.py +0 -23
  485. langchain/document_loaders/hugging_face_dataset.py +0 -23
  486. langchain/document_loaders/ifixit.py +0 -23
  487. langchain/document_loaders/image.py +0 -23
  488. langchain/document_loaders/image_captions.py +0 -23
  489. langchain/document_loaders/imsdb.py +0 -23
  490. langchain/document_loaders/iugu.py +0 -23
  491. langchain/document_loaders/joplin.py +0 -23
  492. langchain/document_loaders/json_loader.py +0 -23
  493. langchain/document_loaders/lakefs.py +0 -33
  494. langchain/document_loaders/larksuite.py +0 -23
  495. langchain/document_loaders/markdown.py +0 -25
  496. langchain/document_loaders/mastodon.py +0 -23
  497. langchain/document_loaders/max_compute.py +0 -23
  498. langchain/document_loaders/mediawikidump.py +0 -23
  499. langchain/document_loaders/merge.py +0 -23
  500. langchain/document_loaders/mhtml.py +0 -23
  501. langchain/document_loaders/modern_treasury.py +0 -23
  502. langchain/document_loaders/mongodb.py +0 -23
  503. langchain/document_loaders/news.py +0 -23
  504. langchain/document_loaders/notebook.py +0 -33
  505. langchain/document_loaders/notion.py +0 -23
  506. langchain/document_loaders/notiondb.py +0 -23
  507. langchain/document_loaders/nuclia.py +0 -23
  508. langchain/document_loaders/obs_directory.py +0 -23
  509. langchain/document_loaders/obs_file.py +0 -23
  510. langchain/document_loaders/obsidian.py +0 -23
  511. langchain/document_loaders/odt.py +0 -23
  512. langchain/document_loaders/onedrive.py +0 -23
  513. langchain/document_loaders/onedrive_file.py +0 -23
  514. langchain/document_loaders/onenote.py +0 -23
  515. langchain/document_loaders/open_city_data.py +0 -23
  516. langchain/document_loaders/org_mode.py +0 -25
  517. langchain/document_loaders/parsers/__init__.py +0 -58
  518. langchain/document_loaders/parsers/audio.py +0 -33
  519. langchain/document_loaders/parsers/docai.py +0 -30
  520. langchain/document_loaders/parsers/generic.py +0 -25
  521. langchain/document_loaders/parsers/grobid.py +0 -30
  522. langchain/document_loaders/parsers/html/__init__.py +0 -25
  523. langchain/document_loaders/parsers/html/bs4.py +0 -25
  524. langchain/document_loaders/parsers/language/__init__.py +0 -29
  525. langchain/document_loaders/parsers/language/cobol.py +0 -27
  526. langchain/document_loaders/parsers/language/code_segmenter.py +0 -29
  527. langchain/document_loaders/parsers/language/javascript.py +0 -29
  528. langchain/document_loaders/parsers/language/language_parser.py +0 -29
  529. langchain/document_loaders/parsers/language/python.py +0 -27
  530. langchain/document_loaders/parsers/msword.py +0 -25
  531. langchain/document_loaders/parsers/pdf.py +0 -50
  532. langchain/document_loaders/parsers/registry.py +0 -25
  533. langchain/document_loaders/parsers/txt.py +0 -23
  534. langchain/document_loaders/pdf.py +0 -65
  535. langchain/document_loaders/polars_dataframe.py +0 -23
  536. langchain/document_loaders/powerpoint.py +0 -25
  537. langchain/document_loaders/psychic.py +0 -23
  538. langchain/document_loaders/pubmed.py +0 -23
  539. langchain/document_loaders/pyspark_dataframe.py +0 -26
  540. langchain/document_loaders/python.py +0 -22
  541. langchain/document_loaders/quip.py +0 -23
  542. langchain/document_loaders/readthedocs.py +0 -23
  543. langchain/document_loaders/recursive_url_loader.py +0 -23
  544. langchain/document_loaders/reddit.py +0 -23
  545. langchain/document_loaders/roam.py +0 -23
  546. langchain/document_loaders/rocksetdb.py +0 -23
  547. langchain/document_loaders/rspace.py +0 -23
  548. langchain/document_loaders/rss.py +0 -23
  549. langchain/document_loaders/rst.py +0 -23
  550. langchain/document_loaders/rtf.py +0 -23
  551. langchain/document_loaders/s3_directory.py +0 -23
  552. langchain/document_loaders/s3_file.py +0 -23
  553. langchain/document_loaders/sharepoint.py +0 -23
  554. langchain/document_loaders/sitemap.py +0 -23
  555. langchain/document_loaders/slack_directory.py +0 -23
  556. langchain/document_loaders/snowflake_loader.py +0 -23
  557. langchain/document_loaders/spreedly.py +0 -23
  558. langchain/document_loaders/srt.py +0 -23
  559. langchain/document_loaders/stripe.py +0 -23
  560. langchain/document_loaders/telegram.py +0 -38
  561. langchain/document_loaders/tencent_cos_directory.py +0 -25
  562. langchain/document_loaders/tencent_cos_file.py +0 -23
  563. langchain/document_loaders/tensorflow_datasets.py +0 -23
  564. langchain/document_loaders/text.py +0 -23
  565. langchain/document_loaders/tomarkdown.py +0 -23
  566. langchain/document_loaders/toml.py +0 -23
  567. langchain/document_loaders/trello.py +0 -23
  568. langchain/document_loaders/tsv.py +0 -23
  569. langchain/document_loaders/twitter.py +0 -23
  570. langchain/document_loaders/unstructured.py +0 -54
  571. langchain/document_loaders/url.py +0 -23
  572. langchain/document_loaders/url_playwright.py +0 -33
  573. langchain/document_loaders/url_selenium.py +0 -23
  574. langchain/document_loaders/weather.py +0 -23
  575. langchain/document_loaders/web_base.py +0 -23
  576. langchain/document_loaders/whatsapp_chat.py +0 -28
  577. langchain/document_loaders/wikipedia.py +0 -23
  578. langchain/document_loaders/word_document.py +0 -30
  579. langchain/document_loaders/xml.py +0 -23
  580. langchain/document_loaders/xorbits.py +0 -23
  581. langchain/document_loaders/youtube.py +0 -33
  582. langchain/document_transformers/__init__.py +0 -77
  583. langchain/document_transformers/beautiful_soup_transformer.py +0 -25
  584. langchain/document_transformers/doctran_text_extract.py +0 -25
  585. langchain/document_transformers/doctran_text_qa.py +0 -25
  586. langchain/document_transformers/doctran_text_translate.py +0 -25
  587. langchain/document_transformers/embeddings_redundant_filter.py +0 -50
  588. langchain/document_transformers/google_translate.py +0 -25
  589. langchain/document_transformers/html2text.py +0 -25
  590. langchain/document_transformers/long_context_reorder.py +0 -23
  591. langchain/document_transformers/nuclia_text_transform.py +0 -25
  592. langchain/document_transformers/openai_functions.py +0 -32
  593. langchain/document_transformers/xsl/html_chunks_with_headers.xslt +0 -199
  594. langchain/embeddings/aleph_alpha.py +0 -30
  595. langchain/embeddings/awa.py +0 -23
  596. langchain/embeddings/azure_openai.py +0 -23
  597. langchain/embeddings/baidu_qianfan_endpoint.py +0 -23
  598. langchain/embeddings/bedrock.py +0 -23
  599. langchain/embeddings/bookend.py +0 -23
  600. langchain/embeddings/clarifai.py +0 -23
  601. langchain/embeddings/cloudflare_workersai.py +0 -29
  602. langchain/embeddings/cohere.py +0 -23
  603. langchain/embeddings/dashscope.py +0 -23
  604. langchain/embeddings/databricks.py +0 -23
  605. langchain/embeddings/deepinfra.py +0 -23
  606. langchain/embeddings/edenai.py +0 -23
  607. langchain/embeddings/elasticsearch.py +0 -23
  608. langchain/embeddings/embaas.py +0 -23
  609. langchain/embeddings/ernie.py +0 -23
  610. langchain/embeddings/fake.py +0 -30
  611. langchain/embeddings/fastembed.py +0 -23
  612. langchain/embeddings/google_palm.py +0 -23
  613. langchain/embeddings/gpt4all.py +0 -23
  614. langchain/embeddings/gradient_ai.py +0 -23
  615. langchain/embeddings/huggingface.py +0 -36
  616. langchain/embeddings/huggingface_hub.py +0 -23
  617. langchain/embeddings/infinity.py +0 -30
  618. langchain/embeddings/javelin_ai_gateway.py +0 -23
  619. langchain/embeddings/jina.py +0 -23
  620. langchain/embeddings/johnsnowlabs.py +0 -23
  621. langchain/embeddings/llamacpp.py +0 -23
  622. langchain/embeddings/llm_rails.py +0 -23
  623. langchain/embeddings/localai.py +0 -23
  624. langchain/embeddings/minimax.py +0 -23
  625. langchain/embeddings/mlflow.py +0 -23
  626. langchain/embeddings/mlflow_gateway.py +0 -23
  627. langchain/embeddings/modelscope_hub.py +0 -23
  628. langchain/embeddings/mosaicml.py +0 -23
  629. langchain/embeddings/nlpcloud.py +0 -23
  630. langchain/embeddings/octoai_embeddings.py +0 -23
  631. langchain/embeddings/ollama.py +0 -23
  632. langchain/embeddings/openai.py +0 -23
  633. langchain/embeddings/sagemaker_endpoint.py +0 -30
  634. langchain/embeddings/self_hosted.py +0 -23
  635. langchain/embeddings/self_hosted_hugging_face.py +0 -30
  636. langchain/embeddings/sentence_transformer.py +0 -21
  637. langchain/embeddings/spacy_embeddings.py +0 -23
  638. langchain/embeddings/tensorflow_hub.py +0 -23
  639. langchain/embeddings/vertexai.py +0 -23
  640. langchain/embeddings/voyageai.py +0 -23
  641. langchain/embeddings/xinference.py +0 -23
  642. langchain/env.py +0 -17
  643. langchain/evaluation/__init__.py +0 -128
  644. langchain/evaluation/agents/__init__.py +0 -5
  645. langchain/evaluation/agents/trajectory_eval_chain.py +0 -416
  646. langchain/evaluation/agents/trajectory_eval_prompt.py +0 -146
  647. langchain/evaluation/comparison/__init__.py +0 -36
  648. langchain/evaluation/comparison/eval_chain.py +0 -462
  649. langchain/evaluation/comparison/prompt.py +0 -59
  650. langchain/evaluation/criteria/__init__.py +0 -56
  651. langchain/evaluation/criteria/eval_chain.py +0 -606
  652. langchain/evaluation/criteria/prompt.py +0 -37
  653. langchain/evaluation/embedding_distance/__init__.py +0 -13
  654. langchain/evaluation/embedding_distance/base.py +0 -613
  655. langchain/evaluation/exact_match/__init__.py +0 -0
  656. langchain/evaluation/exact_match/base.py +0 -110
  657. langchain/evaluation/loading.py +0 -207
  658. langchain/evaluation/parsing/__init__.py +0 -0
  659. langchain/evaluation/parsing/base.py +0 -175
  660. langchain/evaluation/parsing/json_distance.py +0 -108
  661. langchain/evaluation/parsing/json_schema.py +0 -97
  662. langchain/evaluation/qa/__init__.py +0 -10
  663. langchain/evaluation/qa/eval_chain.py +0 -372
  664. langchain/evaluation/qa/eval_prompt.py +0 -78
  665. langchain/evaluation/qa/generate_chain.py +0 -36
  666. langchain/evaluation/qa/generate_prompt.py +0 -21
  667. langchain/evaluation/regex_match/__init__.py +0 -0
  668. langchain/evaluation/regex_match/base.py +0 -94
  669. langchain/evaluation/schema.py +0 -491
  670. langchain/evaluation/scoring/__init__.py +0 -31
  671. langchain/evaluation/scoring/eval_chain.py +0 -476
  672. langchain/evaluation/scoring/prompt.py +0 -53
  673. langchain/evaluation/string_distance/__init__.py +0 -13
  674. langchain/evaluation/string_distance/base.py +0 -472
  675. langchain/example_generator.py +0 -5
  676. langchain/formatting.py +0 -5
  677. langchain/graphs/__init__.py +0 -57
  678. langchain/graphs/arangodb_graph.py +0 -28
  679. langchain/graphs/falkordb_graph.py +0 -23
  680. langchain/graphs/graph_document.py +0 -33
  681. langchain/graphs/graph_store.py +0 -23
  682. langchain/graphs/hugegraph.py +0 -23
  683. langchain/graphs/kuzu_graph.py +0 -23
  684. langchain/graphs/memgraph_graph.py +0 -23
  685. langchain/graphs/nebula_graph.py +0 -23
  686. langchain/graphs/neo4j_graph.py +0 -23
  687. langchain/graphs/neptune_graph.py +0 -23
  688. langchain/graphs/networkx_graph.py +0 -36
  689. langchain/graphs/rdf_graph.py +0 -23
  690. langchain/hub.py +0 -131
  691. langchain/indexes/__init__.py +0 -50
  692. langchain/indexes/_api.py +0 -5
  693. langchain/indexes/_sql_record_manager.py +0 -539
  694. langchain/indexes/graph.py +0 -28
  695. langchain/indexes/prompts/__init__.py +0 -13
  696. langchain/indexes/prompts/entity_extraction.py +0 -39
  697. langchain/indexes/prompts/entity_summarization.py +0 -24
  698. langchain/indexes/prompts/knowledge_triplet_extraction.py +0 -36
  699. langchain/indexes/vectorstore.py +0 -269
  700. langchain/input.py +0 -15
  701. langchain/llms/__init__.py +0 -734
  702. langchain/llms/ai21.py +0 -28
  703. langchain/llms/aleph_alpha.py +0 -23
  704. langchain/llms/amazon_api_gateway.py +0 -23
  705. langchain/llms/anthropic.py +0 -23
  706. langchain/llms/anyscale.py +0 -23
  707. langchain/llms/arcee.py +0 -23
  708. langchain/llms/aviary.py +0 -23
  709. langchain/llms/azureml_endpoint.py +0 -48
  710. langchain/llms/baidu_qianfan_endpoint.py +0 -23
  711. langchain/llms/bananadev.py +0 -23
  712. langchain/llms/base.py +0 -20
  713. langchain/llms/baseten.py +0 -23
  714. langchain/llms/beam.py +0 -23
  715. langchain/llms/bedrock.py +0 -28
  716. langchain/llms/bittensor.py +0 -23
  717. langchain/llms/cerebriumai.py +0 -23
  718. langchain/llms/chatglm.py +0 -23
  719. langchain/llms/clarifai.py +0 -23
  720. langchain/llms/cloudflare_workersai.py +0 -25
  721. langchain/llms/cohere.py +0 -23
  722. langchain/llms/ctransformers.py +0 -23
  723. langchain/llms/ctranslate2.py +0 -23
  724. langchain/llms/databricks.py +0 -23
  725. langchain/llms/deepinfra.py +0 -23
  726. langchain/llms/deepsparse.py +0 -23
  727. langchain/llms/edenai.py +0 -23
  728. langchain/llms/fake.py +0 -28
  729. langchain/llms/fireworks.py +0 -23
  730. langchain/llms/forefrontai.py +0 -23
  731. langchain/llms/gigachat.py +0 -23
  732. langchain/llms/google_palm.py +0 -23
  733. langchain/llms/gooseai.py +0 -23
  734. langchain/llms/gpt4all.py +0 -23
  735. langchain/llms/gradient_ai.py +0 -28
  736. langchain/llms/grammars/json.gbnf +0 -29
  737. langchain/llms/grammars/list.gbnf +0 -14
  738. langchain/llms/huggingface_endpoint.py +0 -23
  739. langchain/llms/huggingface_hub.py +0 -23
  740. langchain/llms/huggingface_pipeline.py +0 -23
  741. langchain/llms/huggingface_text_gen_inference.py +0 -23
  742. langchain/llms/human.py +0 -23
  743. langchain/llms/javelin_ai_gateway.py +0 -28
  744. langchain/llms/koboldai.py +0 -23
  745. langchain/llms/llamacpp.py +0 -23
  746. langchain/llms/loading.py +0 -27
  747. langchain/llms/manifest.py +0 -23
  748. langchain/llms/minimax.py +0 -23
  749. langchain/llms/mlflow.py +0 -23
  750. langchain/llms/mlflow_ai_gateway.py +0 -23
  751. langchain/llms/modal.py +0 -23
  752. langchain/llms/mosaicml.py +0 -23
  753. langchain/llms/nlpcloud.py +0 -23
  754. langchain/llms/octoai_endpoint.py +0 -23
  755. langchain/llms/ollama.py +0 -23
  756. langchain/llms/opaqueprompts.py +0 -23
  757. langchain/llms/openai.py +0 -32
  758. langchain/llms/openllm.py +0 -23
  759. langchain/llms/openlm.py +0 -23
  760. langchain/llms/pai_eas_endpoint.py +0 -23
  761. langchain/llms/petals.py +0 -23
  762. langchain/llms/pipelineai.py +0 -23
  763. langchain/llms/predibase.py +0 -23
  764. langchain/llms/predictionguard.py +0 -23
  765. langchain/llms/promptlayer_openai.py +0 -27
  766. langchain/llms/replicate.py +0 -23
  767. langchain/llms/rwkv.py +0 -23
  768. langchain/llms/sagemaker_endpoint.py +0 -28
  769. langchain/llms/self_hosted.py +0 -23
  770. langchain/llms/self_hosted_hugging_face.py +0 -23
  771. langchain/llms/stochasticai.py +0 -23
  772. langchain/llms/symblai_nebula.py +0 -23
  773. langchain/llms/textgen.py +0 -23
  774. langchain/llms/titan_takeoff.py +0 -23
  775. langchain/llms/titan_takeoff_pro.py +0 -23
  776. langchain/llms/together.py +0 -23
  777. langchain/llms/tongyi.py +0 -23
  778. langchain/llms/utils.py +0 -23
  779. langchain/llms/vertexai.py +0 -27
  780. langchain/llms/vllm.py +0 -27
  781. langchain/llms/volcengine_maas.py +0 -28
  782. langchain/llms/watsonxllm.py +0 -23
  783. langchain/llms/writer.py +0 -23
  784. langchain/llms/xinference.py +0 -23
  785. langchain/llms/yandex.py +0 -23
  786. langchain/load/__init__.py +0 -11
  787. langchain/load/dump.py +0 -3
  788. langchain/load/load.py +0 -3
  789. langchain/load/serializable.py +0 -19
  790. langchain/memory/__init__.py +0 -153
  791. langchain/memory/buffer.py +0 -178
  792. langchain/memory/buffer_window.py +0 -62
  793. langchain/memory/chat_memory.py +0 -104
  794. langchain/memory/chat_message_histories/__init__.py +0 -84
  795. langchain/memory/chat_message_histories/astradb.py +0 -25
  796. langchain/memory/chat_message_histories/cassandra.py +0 -25
  797. langchain/memory/chat_message_histories/cosmos_db.py +0 -25
  798. langchain/memory/chat_message_histories/dynamodb.py +0 -25
  799. langchain/memory/chat_message_histories/elasticsearch.py +0 -27
  800. langchain/memory/chat_message_histories/file.py +0 -25
  801. langchain/memory/chat_message_histories/firestore.py +0 -25
  802. langchain/memory/chat_message_histories/in_memory.py +0 -5
  803. langchain/memory/chat_message_histories/momento.py +0 -25
  804. langchain/memory/chat_message_histories/mongodb.py +0 -25
  805. langchain/memory/chat_message_histories/neo4j.py +0 -25
  806. langchain/memory/chat_message_histories/postgres.py +0 -25
  807. langchain/memory/chat_message_histories/redis.py +0 -25
  808. langchain/memory/chat_message_histories/rocksetdb.py +0 -25
  809. langchain/memory/chat_message_histories/singlestoredb.py +0 -27
  810. langchain/memory/chat_message_histories/sql.py +0 -33
  811. langchain/memory/chat_message_histories/streamlit.py +0 -25
  812. langchain/memory/chat_message_histories/upstash_redis.py +0 -27
  813. langchain/memory/chat_message_histories/xata.py +0 -25
  814. langchain/memory/chat_message_histories/zep.py +0 -25
  815. langchain/memory/combined.py +0 -85
  816. langchain/memory/entity.py +0 -611
  817. langchain/memory/kg.py +0 -23
  818. langchain/memory/motorhead_memory.py +0 -23
  819. langchain/memory/prompt.py +0 -164
  820. langchain/memory/readonly.py +0 -24
  821. langchain/memory/simple.py +0 -27
  822. langchain/memory/summary.py +0 -170
  823. langchain/memory/summary_buffer.py +0 -151
  824. langchain/memory/token_buffer.py +0 -74
  825. langchain/memory/utils.py +0 -21
  826. langchain/memory/vectorstore.py +0 -120
  827. langchain/memory/vectorstore_token_buffer_memory.py +0 -184
  828. langchain/memory/zep_memory.py +0 -23
  829. langchain/model_laboratory.py +0 -99
  830. langchain/output_parsers/__init__.py +0 -87
  831. langchain/output_parsers/boolean.py +0 -54
  832. langchain/output_parsers/combining.py +0 -59
  833. langchain/output_parsers/datetime.py +0 -58
  834. langchain/output_parsers/enum.py +0 -45
  835. langchain/output_parsers/ernie_functions.py +0 -45
  836. langchain/output_parsers/fix.py +0 -155
  837. langchain/output_parsers/format_instructions.py +0 -79
  838. langchain/output_parsers/json.py +0 -15
  839. langchain/output_parsers/list.py +0 -13
  840. langchain/output_parsers/loading.py +0 -22
  841. langchain/output_parsers/openai_functions.py +0 -13
  842. langchain/output_parsers/openai_tools.py +0 -7
  843. langchain/output_parsers/pandas_dataframe.py +0 -171
  844. langchain/output_parsers/prompts.py +0 -21
  845. langchain/output_parsers/pydantic.py +0 -3
  846. langchain/output_parsers/rail_parser.py +0 -25
  847. langchain/output_parsers/regex.py +0 -41
  848. langchain/output_parsers/regex_dict.py +0 -43
  849. langchain/output_parsers/retry.py +0 -316
  850. langchain/output_parsers/structured.py +0 -116
  851. langchain/output_parsers/xml.py +0 -3
  852. langchain/output_parsers/yaml.py +0 -77
  853. langchain/prompts/__init__.py +0 -102
  854. langchain/prompts/base.py +0 -21
  855. langchain/prompts/chat.py +0 -37
  856. langchain/prompts/example_selector/__init__.py +0 -42
  857. langchain/prompts/example_selector/base.py +0 -3
  858. langchain/prompts/example_selector/length_based.py +0 -5
  859. langchain/prompts/example_selector/ngram_overlap.py +0 -32
  860. langchain/prompts/example_selector/semantic_similarity.py +0 -11
  861. langchain/prompts/few_shot.py +0 -11
  862. langchain/prompts/few_shot_with_templates.py +0 -3
  863. langchain/prompts/loading.py +0 -23
  864. langchain/prompts/pipeline.py +0 -3
  865. langchain/prompts/prompt.py +0 -6
  866. langchain/pydantic_v1/__init__.py +0 -38
  867. langchain/pydantic_v1/dataclasses.py +0 -20
  868. langchain/pydantic_v1/main.py +0 -20
  869. langchain/python.py +0 -19
  870. langchain/requests.py +0 -35
  871. langchain/retrievers/__init__.py +0 -178
  872. langchain/retrievers/arcee.py +0 -23
  873. langchain/retrievers/arxiv.py +0 -23
  874. langchain/retrievers/azure_ai_search.py +0 -30
  875. langchain/retrievers/bedrock.py +0 -33
  876. langchain/retrievers/bm25.py +0 -28
  877. langchain/retrievers/chaindesk.py +0 -23
  878. langchain/retrievers/chatgpt_plugin_retriever.py +0 -23
  879. langchain/retrievers/cohere_rag_retriever.py +0 -23
  880. langchain/retrievers/contextual_compression.py +0 -81
  881. langchain/retrievers/databerry.py +0 -23
  882. langchain/retrievers/docarray.py +0 -28
  883. langchain/retrievers/document_compressors/__init__.py +0 -44
  884. langchain/retrievers/document_compressors/base.py +0 -82
  885. langchain/retrievers/document_compressors/chain_extract.py +0 -123
  886. langchain/retrievers/document_compressors/chain_extract_prompt.py +0 -10
  887. langchain/retrievers/document_compressors/chain_filter.py +0 -133
  888. langchain/retrievers/document_compressors/chain_filter_prompt.py +0 -8
  889. langchain/retrievers/document_compressors/cohere_rerank.py +0 -126
  890. langchain/retrievers/document_compressors/cross_encoder.py +0 -16
  891. langchain/retrievers/document_compressors/cross_encoder_rerank.py +0 -50
  892. langchain/retrievers/document_compressors/embeddings_filter.py +0 -140
  893. langchain/retrievers/document_compressors/flashrank_rerank.py +0 -27
  894. langchain/retrievers/document_compressors/listwise_rerank.py +0 -145
  895. langchain/retrievers/elastic_search_bm25.py +0 -23
  896. langchain/retrievers/embedchain.py +0 -23
  897. langchain/retrievers/ensemble.py +0 -336
  898. langchain/retrievers/google_cloud_documentai_warehouse.py +0 -25
  899. langchain/retrievers/google_vertex_ai_search.py +0 -33
  900. langchain/retrievers/kay.py +0 -23
  901. langchain/retrievers/kendra.py +0 -66
  902. langchain/retrievers/knn.py +0 -23
  903. langchain/retrievers/llama_index.py +0 -30
  904. langchain/retrievers/merger_retriever.py +0 -123
  905. langchain/retrievers/metal.py +0 -23
  906. langchain/retrievers/milvus.py +0 -28
  907. langchain/retrievers/multi_query.py +0 -233
  908. langchain/retrievers/multi_vector.py +0 -135
  909. langchain/retrievers/outline.py +0 -23
  910. langchain/retrievers/parent_document_retriever.py +0 -172
  911. langchain/retrievers/pinecone_hybrid_search.py +0 -23
  912. langchain/retrievers/pubmed.py +0 -23
  913. langchain/retrievers/pupmed.py +0 -23
  914. langchain/retrievers/re_phraser.py +0 -89
  915. langchain/retrievers/remote_retriever.py +0 -23
  916. langchain/retrievers/self_query/__init__.py +0 -0
  917. langchain/retrievers/self_query/astradb.py +0 -23
  918. langchain/retrievers/self_query/base.py +0 -416
  919. langchain/retrievers/self_query/chroma.py +0 -23
  920. langchain/retrievers/self_query/dashvector.py +0 -23
  921. langchain/retrievers/self_query/databricks_vector_search.py +0 -27
  922. langchain/retrievers/self_query/deeplake.py +0 -27
  923. langchain/retrievers/self_query/dingo.py +0 -23
  924. langchain/retrievers/self_query/elasticsearch.py +0 -25
  925. langchain/retrievers/self_query/milvus.py +0 -27
  926. langchain/retrievers/self_query/mongodb_atlas.py +0 -25
  927. langchain/retrievers/self_query/myscale.py +0 -23
  928. langchain/retrievers/self_query/opensearch.py +0 -23
  929. langchain/retrievers/self_query/pgvector.py +0 -23
  930. langchain/retrievers/self_query/pinecone.py +0 -23
  931. langchain/retrievers/self_query/qdrant.py +0 -23
  932. langchain/retrievers/self_query/redis.py +0 -23
  933. langchain/retrievers/self_query/supabase.py +0 -23
  934. langchain/retrievers/self_query/tencentvectordb.py +0 -27
  935. langchain/retrievers/self_query/timescalevector.py +0 -27
  936. langchain/retrievers/self_query/vectara.py +0 -27
  937. langchain/retrievers/self_query/weaviate.py +0 -23
  938. langchain/retrievers/svm.py +0 -23
  939. langchain/retrievers/tavily_search_api.py +0 -28
  940. langchain/retrievers/tfidf.py +0 -23
  941. langchain/retrievers/time_weighted_retriever.py +0 -196
  942. langchain/retrievers/vespa_retriever.py +0 -23
  943. langchain/retrievers/weaviate_hybrid_search.py +0 -23
  944. langchain/retrievers/web_research.py +0 -29
  945. langchain/retrievers/wikipedia.py +0 -23
  946. langchain/retrievers/you.py +0 -23
  947. langchain/retrievers/zep.py +0 -30
  948. langchain/retrievers/zilliz.py +0 -28
  949. langchain/runnables/__init__.py +0 -18
  950. langchain/runnables/hub.py +0 -44
  951. langchain/runnables/openai_functions.py +0 -57
  952. langchain/schema/__init__.py +0 -82
  953. langchain/schema/agent.py +0 -3
  954. langchain/schema/cache.py +0 -3
  955. langchain/schema/callbacks/__init__.py +0 -0
  956. langchain/schema/callbacks/base.py +0 -23
  957. langchain/schema/callbacks/manager.py +0 -55
  958. langchain/schema/callbacks/stdout.py +0 -3
  959. langchain/schema/callbacks/streaming_stdout.py +0 -3
  960. langchain/schema/callbacks/tracers/__init__.py +0 -0
  961. langchain/schema/callbacks/tracers/base.py +0 -4
  962. langchain/schema/callbacks/tracers/evaluation.py +0 -6
  963. langchain/schema/callbacks/tracers/langchain.py +0 -8
  964. langchain/schema/callbacks/tracers/langchain_v1.py +0 -3
  965. langchain/schema/callbacks/tracers/log_stream.py +0 -9
  966. langchain/schema/callbacks/tracers/root_listeners.py +0 -3
  967. langchain/schema/callbacks/tracers/run_collector.py +0 -3
  968. langchain/schema/callbacks/tracers/schemas.py +0 -27
  969. langchain/schema/callbacks/tracers/stdout.py +0 -13
  970. langchain/schema/chat.py +0 -3
  971. langchain/schema/chat_history.py +0 -3
  972. langchain/schema/document.py +0 -3
  973. langchain/schema/embeddings.py +0 -3
  974. langchain/schema/exceptions.py +0 -3
  975. langchain/schema/language_model.py +0 -15
  976. langchain/schema/memory.py +0 -3
  977. langchain/schema/messages.py +0 -51
  978. langchain/schema/output.py +0 -19
  979. langchain/schema/output_parser.py +0 -25
  980. langchain/schema/prompt.py +0 -3
  981. langchain/schema/prompt_template.py +0 -3
  982. langchain/schema/retriever.py +0 -3
  983. langchain/schema/runnable/__init__.py +0 -58
  984. langchain/schema/runnable/base.py +0 -38
  985. langchain/schema/runnable/branch.py +0 -3
  986. langchain/schema/runnable/config.py +0 -27
  987. langchain/schema/runnable/configurable.py +0 -15
  988. langchain/schema/runnable/fallbacks.py +0 -3
  989. langchain/schema/runnable/history.py +0 -11
  990. langchain/schema/runnable/passthrough.py +0 -8
  991. langchain/schema/runnable/retry.py +0 -3
  992. langchain/schema/runnable/router.py +0 -3
  993. langchain/schema/runnable/utils.py +0 -51
  994. langchain/schema/storage.py +0 -3
  995. langchain/schema/vectorstore.py +0 -3
  996. langchain/serpapi.py +0 -25
  997. langchain/smith/__init__.py +0 -103
  998. langchain/smith/evaluation/__init__.py +0 -68
  999. langchain/smith/evaluation/config.py +0 -365
  1000. langchain/smith/evaluation/name_generation.py +0 -727
  1001. langchain/smith/evaluation/progress.py +0 -146
  1002. langchain/smith/evaluation/runner_utils.py +0 -1689
  1003. langchain/smith/evaluation/string_run_evaluator.py +0 -467
  1004. langchain/sql_database.py +0 -25
  1005. langchain/storage/_lc_store.py +0 -91
  1006. langchain/storage/file_system.py +0 -176
  1007. langchain/storage/redis.py +0 -23
  1008. langchain/storage/upstash_redis.py +0 -27
  1009. langchain/tools/ainetwork/__init__.py +0 -0
  1010. langchain/tools/ainetwork/app.py +0 -30
  1011. langchain/tools/ainetwork/base.py +0 -27
  1012. langchain/tools/ainetwork/owner.py +0 -28
  1013. langchain/tools/ainetwork/rule.py +0 -28
  1014. langchain/tools/ainetwork/transfer.py +0 -28
  1015. langchain/tools/ainetwork/value.py +0 -28
  1016. langchain/tools/amadeus/__init__.py +0 -30
  1017. langchain/tools/amadeus/base.py +0 -23
  1018. langchain/tools/amadeus/closest_airport.py +0 -30
  1019. langchain/tools/amadeus/flight_search.py +0 -30
  1020. langchain/tools/arxiv/__init__.py +0 -1
  1021. langchain/tools/arxiv/tool.py +0 -28
  1022. langchain/tools/azure_cognitive_services/__init__.py +0 -41
  1023. langchain/tools/azure_cognitive_services/form_recognizer.py +0 -23
  1024. langchain/tools/azure_cognitive_services/image_analysis.py +0 -23
  1025. langchain/tools/azure_cognitive_services/speech2text.py +0 -23
  1026. langchain/tools/azure_cognitive_services/text2speech.py +0 -23
  1027. langchain/tools/azure_cognitive_services/text_analytics_health.py +0 -23
  1028. langchain/tools/base.py +0 -19
  1029. langchain/tools/bearly/__init__.py +0 -0
  1030. langchain/tools/bearly/tool.py +0 -33
  1031. langchain/tools/bing_search/__init__.py +0 -29
  1032. langchain/tools/bing_search/tool.py +0 -27
  1033. langchain/tools/brave_search/__init__.py +0 -0
  1034. langchain/tools/brave_search/tool.py +0 -23
  1035. langchain/tools/clickup/__init__.py +0 -0
  1036. langchain/tools/clickup/tool.py +0 -23
  1037. langchain/tools/convert_to_openai.py +0 -4
  1038. langchain/tools/dataforseo_api_search/__init__.py +0 -34
  1039. langchain/tools/dataforseo_api_search/tool.py +0 -32
  1040. langchain/tools/ddg_search/__init__.py +0 -25
  1041. langchain/tools/ddg_search/tool.py +0 -32
  1042. langchain/tools/e2b_data_analysis/__init__.py +0 -0
  1043. langchain/tools/e2b_data_analysis/tool.py +0 -33
  1044. langchain/tools/edenai/__init__.py +0 -50
  1045. langchain/tools/edenai/audio_speech_to_text.py +0 -23
  1046. langchain/tools/edenai/audio_text_to_speech.py +0 -23
  1047. langchain/tools/edenai/edenai_base_tool.py +0 -23
  1048. langchain/tools/edenai/image_explicitcontent.py +0 -23
  1049. langchain/tools/edenai/image_objectdetection.py +0 -23
  1050. langchain/tools/edenai/ocr_identityparser.py +0 -23
  1051. langchain/tools/edenai/ocr_invoiceparser.py +0 -23
  1052. langchain/tools/edenai/text_moderation.py +0 -23
  1053. langchain/tools/eleven_labs/__init__.py +0 -25
  1054. langchain/tools/eleven_labs/models.py +0 -23
  1055. langchain/tools/eleven_labs/text2speech.py +0 -23
  1056. langchain/tools/file_management/__init__.py +0 -47
  1057. langchain/tools/file_management/copy.py +0 -28
  1058. langchain/tools/file_management/delete.py +0 -28
  1059. langchain/tools/file_management/file_search.py +0 -28
  1060. langchain/tools/file_management/list_dir.py +0 -28
  1061. langchain/tools/file_management/move.py +0 -28
  1062. langchain/tools/file_management/read.py +0 -28
  1063. langchain/tools/file_management/write.py +0 -28
  1064. langchain/tools/github/__init__.py +0 -1
  1065. langchain/tools/github/tool.py +0 -23
  1066. langchain/tools/gitlab/__init__.py +0 -1
  1067. langchain/tools/gitlab/tool.py +0 -23
  1068. langchain/tools/gmail/__init__.py +0 -41
  1069. langchain/tools/gmail/base.py +0 -23
  1070. langchain/tools/gmail/create_draft.py +0 -28
  1071. langchain/tools/gmail/get_message.py +0 -28
  1072. langchain/tools/gmail/get_thread.py +0 -28
  1073. langchain/tools/gmail/search.py +0 -30
  1074. langchain/tools/gmail/send_message.py +0 -28
  1075. langchain/tools/golden_query/__init__.py +0 -25
  1076. langchain/tools/golden_query/tool.py +0 -23
  1077. langchain/tools/google_cloud/__init__.py +0 -25
  1078. langchain/tools/google_cloud/texttospeech.py +0 -23
  1079. langchain/tools/google_finance/__init__.py +0 -27
  1080. langchain/tools/google_finance/tool.py +0 -25
  1081. langchain/tools/google_jobs/__init__.py +0 -25
  1082. langchain/tools/google_jobs/tool.py +0 -23
  1083. langchain/tools/google_lens/__init__.py +0 -25
  1084. langchain/tools/google_lens/tool.py +0 -23
  1085. langchain/tools/google_places/__init__.py +0 -25
  1086. langchain/tools/google_places/tool.py +0 -28
  1087. langchain/tools/google_scholar/__init__.py +0 -27
  1088. langchain/tools/google_scholar/tool.py +0 -25
  1089. langchain/tools/google_search/__init__.py +0 -29
  1090. langchain/tools/google_search/tool.py +0 -27
  1091. langchain/tools/google_serper/__init__.py +0 -30
  1092. langchain/tools/google_serper/tool.py +0 -27
  1093. langchain/tools/google_trends/__init__.py +0 -27
  1094. langchain/tools/google_trends/tool.py +0 -25
  1095. langchain/tools/graphql/__init__.py +0 -1
  1096. langchain/tools/graphql/tool.py +0 -23
  1097. langchain/tools/human/__init__.py +0 -25
  1098. langchain/tools/human/tool.py +0 -23
  1099. langchain/tools/ifttt.py +0 -23
  1100. langchain/tools/interaction/__init__.py +0 -1
  1101. langchain/tools/interaction/tool.py +0 -23
  1102. langchain/tools/jira/__init__.py +0 -1
  1103. langchain/tools/jira/tool.py +0 -42
  1104. langchain/tools/json/__init__.py +0 -1
  1105. langchain/tools/json/tool.py +0 -52
  1106. langchain/tools/memorize/__init__.py +0 -25
  1107. langchain/tools/memorize/tool.py +0 -27
  1108. langchain/tools/merriam_webster/__init__.py +0 -1
  1109. langchain/tools/merriam_webster/tool.py +0 -23
  1110. langchain/tools/metaphor_search/__init__.py +0 -25
  1111. langchain/tools/metaphor_search/tool.py +0 -23
  1112. langchain/tools/multion/__init__.py +0 -33
  1113. langchain/tools/multion/close_session.py +0 -30
  1114. langchain/tools/multion/create_session.py +0 -30
  1115. langchain/tools/multion/update_session.py +0 -30
  1116. langchain/tools/nasa/__init__.py +0 -0
  1117. langchain/tools/nasa/tool.py +0 -23
  1118. langchain/tools/nuclia/__init__.py +0 -23
  1119. langchain/tools/nuclia/tool.py +0 -27
  1120. langchain/tools/office365/__init__.py +0 -41
  1121. langchain/tools/office365/base.py +0 -23
  1122. langchain/tools/office365/create_draft_message.py +0 -32
  1123. langchain/tools/office365/events_search.py +0 -28
  1124. langchain/tools/office365/messages_search.py +0 -28
  1125. langchain/tools/office365/send_event.py +0 -28
  1126. langchain/tools/office365/send_message.py +0 -28
  1127. langchain/tools/openapi/__init__.py +0 -0
  1128. langchain/tools/openapi/utils/__init__.py +0 -0
  1129. langchain/tools/openapi/utils/api_models.py +0 -54
  1130. langchain/tools/openapi/utils/openapi_utils.py +0 -30
  1131. langchain/tools/openweathermap/__init__.py +0 -25
  1132. langchain/tools/openweathermap/tool.py +0 -23
  1133. langchain/tools/playwright/__init__.py +0 -47
  1134. langchain/tools/playwright/base.py +0 -23
  1135. langchain/tools/playwright/click.py +0 -28
  1136. langchain/tools/playwright/current_page.py +0 -23
  1137. langchain/tools/playwright/extract_hyperlinks.py +0 -32
  1138. langchain/tools/playwright/extract_text.py +0 -23
  1139. langchain/tools/playwright/get_elements.py +0 -28
  1140. langchain/tools/playwright/navigate.py +0 -28
  1141. langchain/tools/playwright/navigate_back.py +0 -23
  1142. langchain/tools/plugin.py +0 -32
  1143. langchain/tools/powerbi/__init__.py +0 -1
  1144. langchain/tools/powerbi/tool.py +0 -33
  1145. langchain/tools/pubmed/__init__.py +0 -1
  1146. langchain/tools/pubmed/tool.py +0 -23
  1147. langchain/tools/python/__init__.py +0 -13
  1148. langchain/tools/reddit_search/__init__.py +0 -0
  1149. langchain/tools/reddit_search/tool.py +0 -27
  1150. langchain/tools/render.py +0 -23
  1151. langchain/tools/requests/__init__.py +0 -1
  1152. langchain/tools/requests/tool.py +0 -42
  1153. langchain/tools/retriever.py +0 -11
  1154. langchain/tools/scenexplain/__init__.py +0 -1
  1155. langchain/tools/scenexplain/tool.py +0 -28
  1156. langchain/tools/searchapi/__init__.py +0 -30
  1157. langchain/tools/searchapi/tool.py +0 -27
  1158. langchain/tools/searx_search/__init__.py +0 -0
  1159. langchain/tools/searx_search/tool.py +0 -27
  1160. langchain/tools/shell/__init__.py +0 -25
  1161. langchain/tools/shell/tool.py +0 -28
  1162. langchain/tools/slack/__init__.py +0 -38
  1163. langchain/tools/slack/base.py +0 -23
  1164. langchain/tools/slack/get_channel.py +0 -23
  1165. langchain/tools/slack/get_message.py +0 -28
  1166. langchain/tools/slack/schedule_message.py +0 -28
  1167. langchain/tools/slack/send_message.py +0 -28
  1168. langchain/tools/sleep/__init__.py +0 -1
  1169. langchain/tools/sleep/tool.py +0 -28
  1170. langchain/tools/spark_sql/__init__.py +0 -1
  1171. langchain/tools/spark_sql/tool.py +0 -39
  1172. langchain/tools/sql_database/__init__.py +0 -1
  1173. langchain/tools/sql_database/prompt.py +0 -24
  1174. langchain/tools/sql_database/tool.py +0 -39
  1175. langchain/tools/stackexchange/__init__.py +0 -1
  1176. langchain/tools/stackexchange/tool.py +0 -23
  1177. langchain/tools/steam/__init__.py +0 -1
  1178. langchain/tools/steam/tool.py +0 -23
  1179. langchain/tools/steamship_image_generation/__init__.py +0 -25
  1180. langchain/tools/steamship_image_generation/tool.py +0 -28
  1181. langchain/tools/tavily_search/__init__.py +0 -32
  1182. langchain/tools/tavily_search/tool.py +0 -33
  1183. langchain/tools/vectorstore/__init__.py +0 -1
  1184. langchain/tools/vectorstore/tool.py +0 -30
  1185. langchain/tools/wikipedia/__init__.py +0 -1
  1186. langchain/tools/wikipedia/tool.py +0 -23
  1187. langchain/tools/wolfram_alpha/__init__.py +0 -25
  1188. langchain/tools/wolfram_alpha/tool.py +0 -23
  1189. langchain/tools/yahoo_finance_news.py +0 -23
  1190. langchain/tools/youtube/__init__.py +0 -0
  1191. langchain/tools/youtube/search.py +0 -23
  1192. langchain/tools/zapier/__init__.py +0 -29
  1193. langchain/tools/zapier/tool.py +0 -49
  1194. langchain/utilities/__init__.py +0 -168
  1195. langchain/utilities/alpha_vantage.py +0 -23
  1196. langchain/utilities/anthropic.py +0 -30
  1197. langchain/utilities/apify.py +0 -23
  1198. langchain/utilities/arcee.py +0 -45
  1199. langchain/utilities/arxiv.py +0 -23
  1200. langchain/utilities/asyncio.py +0 -11
  1201. langchain/utilities/awslambda.py +0 -23
  1202. langchain/utilities/bibtex.py +0 -23
  1203. langchain/utilities/bing_search.py +0 -23
  1204. langchain/utilities/brave_search.py +0 -23
  1205. langchain/utilities/clickup.py +0 -45
  1206. langchain/utilities/dalle_image_generator.py +0 -25
  1207. langchain/utilities/dataforseo_api_search.py +0 -25
  1208. langchain/utilities/duckduckgo_search.py +0 -23
  1209. langchain/utilities/github.py +0 -23
  1210. langchain/utilities/gitlab.py +0 -23
  1211. langchain/utilities/golden_query.py +0 -23
  1212. langchain/utilities/google_finance.py +0 -23
  1213. langchain/utilities/google_jobs.py +0 -23
  1214. langchain/utilities/google_lens.py +0 -23
  1215. langchain/utilities/google_places_api.py +0 -23
  1216. langchain/utilities/google_scholar.py +0 -23
  1217. langchain/utilities/google_search.py +0 -23
  1218. langchain/utilities/google_serper.py +0 -23
  1219. langchain/utilities/google_trends.py +0 -23
  1220. langchain/utilities/graphql.py +0 -23
  1221. langchain/utilities/jira.py +0 -23
  1222. langchain/utilities/loading.py +0 -4
  1223. langchain/utilities/max_compute.py +0 -23
  1224. langchain/utilities/merriam_webster.py +0 -23
  1225. langchain/utilities/metaphor_search.py +0 -23
  1226. langchain/utilities/nasa.py +0 -23
  1227. langchain/utilities/opaqueprompts.py +0 -27
  1228. langchain/utilities/openapi.py +0 -28
  1229. langchain/utilities/openweathermap.py +0 -23
  1230. langchain/utilities/outline.py +0 -23
  1231. langchain/utilities/portkey.py +0 -23
  1232. langchain/utilities/powerbi.py +0 -23
  1233. langchain/utilities/pubmed.py +0 -23
  1234. langchain/utilities/python.py +0 -19
  1235. langchain/utilities/reddit_search.py +0 -25
  1236. langchain/utilities/redis.py +0 -33
  1237. langchain/utilities/requests.py +0 -27
  1238. langchain/utilities/scenexplain.py +0 -23
  1239. langchain/utilities/searchapi.py +0 -23
  1240. langchain/utilities/searx_search.py +0 -28
  1241. langchain/utilities/serpapi.py +0 -28
  1242. langchain/utilities/spark_sql.py +0 -23
  1243. langchain/utilities/sql_database.py +0 -28
  1244. langchain/utilities/stackexchange.py +0 -23
  1245. langchain/utilities/steam.py +0 -23
  1246. langchain/utilities/tavily_search.py +0 -25
  1247. langchain/utilities/tensorflow_datasets.py +0 -23
  1248. langchain/utilities/twilio.py +0 -23
  1249. langchain/utilities/vertexai.py +0 -36
  1250. langchain/utilities/wikipedia.py +0 -23
  1251. langchain/utilities/wolfram_alpha.py +0 -23
  1252. langchain/utilities/zapier.py +0 -23
  1253. langchain/utils/__init__.py +0 -77
  1254. langchain/utils/aiter.py +0 -3
  1255. langchain/utils/env.py +0 -3
  1256. langchain/utils/ernie_functions.py +0 -36
  1257. langchain/utils/formatting.py +0 -3
  1258. langchain/utils/html.py +0 -19
  1259. langchain/utils/input.py +0 -8
  1260. langchain/utils/iter.py +0 -3
  1261. langchain/utils/json_schema.py +0 -11
  1262. langchain/utils/loading.py +0 -3
  1263. langchain/utils/math.py +0 -32
  1264. langchain/utils/openai.py +0 -23
  1265. langchain/utils/openai_functions.py +0 -13
  1266. langchain/utils/pydantic.py +0 -3
  1267. langchain/utils/strings.py +0 -3
  1268. langchain/utils/utils.py +0 -21
  1269. langchain/vectorstores/__init__.py +0 -262
  1270. langchain/vectorstores/alibabacloud_opensearch.py +0 -30
  1271. langchain/vectorstores/analyticdb.py +0 -23
  1272. langchain/vectorstores/annoy.py +0 -23
  1273. langchain/vectorstores/astradb.py +0 -23
  1274. langchain/vectorstores/atlas.py +0 -23
  1275. langchain/vectorstores/awadb.py +0 -23
  1276. langchain/vectorstores/azure_cosmos_db.py +0 -28
  1277. langchain/vectorstores/azuresearch.py +0 -30
  1278. langchain/vectorstores/bageldb.py +0 -23
  1279. langchain/vectorstores/baiducloud_vector_search.py +0 -23
  1280. langchain/vectorstores/base.py +0 -3
  1281. langchain/vectorstores/cassandra.py +0 -23
  1282. langchain/vectorstores/chroma.py +0 -23
  1283. langchain/vectorstores/clarifai.py +0 -23
  1284. langchain/vectorstores/clickhouse.py +0 -27
  1285. langchain/vectorstores/dashvector.py +0 -23
  1286. langchain/vectorstores/databricks_vector_search.py +0 -23
  1287. langchain/vectorstores/deeplake.py +0 -23
  1288. langchain/vectorstores/dingo.py +0 -23
  1289. langchain/vectorstores/docarray/__init__.py +0 -30
  1290. langchain/vectorstores/docarray/base.py +0 -23
  1291. langchain/vectorstores/docarray/hnsw.py +0 -23
  1292. langchain/vectorstores/docarray/in_memory.py +0 -23
  1293. langchain/vectorstores/elastic_vector_search.py +0 -27
  1294. langchain/vectorstores/elasticsearch.py +0 -39
  1295. langchain/vectorstores/epsilla.py +0 -23
  1296. langchain/vectorstores/faiss.py +0 -23
  1297. langchain/vectorstores/hippo.py +0 -23
  1298. langchain/vectorstores/hologres.py +0 -23
  1299. langchain/vectorstores/lancedb.py +0 -23
  1300. langchain/vectorstores/llm_rails.py +0 -28
  1301. langchain/vectorstores/marqo.py +0 -23
  1302. langchain/vectorstores/matching_engine.py +0 -23
  1303. langchain/vectorstores/meilisearch.py +0 -23
  1304. langchain/vectorstores/milvus.py +0 -23
  1305. langchain/vectorstores/momento_vector_index.py +0 -23
  1306. langchain/vectorstores/mongodb_atlas.py +0 -23
  1307. langchain/vectorstores/myscale.py +0 -30
  1308. langchain/vectorstores/neo4j_vector.py +0 -28
  1309. langchain/vectorstores/nucliadb.py +0 -23
  1310. langchain/vectorstores/opensearch_vector_search.py +0 -23
  1311. langchain/vectorstores/pgembedding.py +0 -36
  1312. langchain/vectorstores/pgvecto_rs.py +0 -23
  1313. langchain/vectorstores/pgvector.py +0 -28
  1314. langchain/vectorstores/pinecone.py +0 -23
  1315. langchain/vectorstores/qdrant.py +0 -28
  1316. langchain/vectorstores/redis/__init__.py +0 -42
  1317. langchain/vectorstores/redis/base.py +0 -33
  1318. langchain/vectorstores/redis/filters.py +0 -48
  1319. langchain/vectorstores/redis/schema.py +0 -54
  1320. langchain/vectorstores/rocksetdb.py +0 -23
  1321. langchain/vectorstores/scann.py +0 -23
  1322. langchain/vectorstores/semadb.py +0 -23
  1323. langchain/vectorstores/singlestoredb.py +0 -23
  1324. langchain/vectorstores/sklearn.py +0 -42
  1325. langchain/vectorstores/sqlitevss.py +0 -23
  1326. langchain/vectorstores/starrocks.py +0 -28
  1327. langchain/vectorstores/supabase.py +0 -23
  1328. langchain/vectorstores/tair.py +0 -23
  1329. langchain/vectorstores/tencentvectordb.py +0 -33
  1330. langchain/vectorstores/tigris.py +0 -23
  1331. langchain/vectorstores/tiledb.py +0 -23
  1332. langchain/vectorstores/timescalevector.py +0 -23
  1333. langchain/vectorstores/typesense.py +0 -23
  1334. langchain/vectorstores/usearch.py +0 -23
  1335. langchain/vectorstores/utils.py +0 -33
  1336. langchain/vectorstores/vald.py +0 -23
  1337. langchain/vectorstores/vearch.py +0 -23
  1338. langchain/vectorstores/vectara.py +0 -28
  1339. langchain/vectorstores/vespa.py +0 -23
  1340. langchain/vectorstores/weaviate.py +0 -23
  1341. langchain/vectorstores/xata.py +0 -23
  1342. langchain/vectorstores/yellowbrick.py +0 -23
  1343. langchain/vectorstores/zep.py +0 -28
  1344. langchain/vectorstores/zilliz.py +0 -23
  1345. langchain-0.4.0.dev0.dist-info/RECORD +0 -1341
  1346. /langchain/{adapters → _internal}/__init__.py +0 -0
  1347. {langchain-0.4.0.dev0.dist-info → langchain-1.0.0a2.dist-info}/WHEEL +0 -0
  1348. {langchain-0.4.0.dev0.dist-info → langchain-1.0.0a2.dist-info}/entry_points.txt +0 -0
  1349. {langchain-0.4.0.dev0.dist-info → langchain-1.0.0a2.dist-info}/licenses/LICENSE +0 -0
@@ -1,249 +0,0 @@
1
- """Combining documents by mapping a chain over them first, then reranking results."""
2
-
3
- from __future__ import annotations
4
-
5
- from collections.abc import Sequence
6
- from typing import Any, Optional, Union, cast
7
-
8
- from langchain_core._api import deprecated
9
- from langchain_core.callbacks import Callbacks
10
- from langchain_core.documents import Document
11
- from langchain_core.runnables.config import RunnableConfig
12
- from langchain_core.utils.pydantic import create_model
13
- from pydantic import BaseModel, ConfigDict, model_validator
14
- from typing_extensions import Self, override
15
-
16
- from langchain.chains.combine_documents.base import BaseCombineDocumentsChain
17
- from langchain.chains.llm import LLMChain
18
- from langchain.output_parsers.regex import RegexParser
19
-
20
-
21
- @deprecated(
22
- since="0.3.1",
23
- removal="1.0",
24
- message=(
25
- "This class is deprecated. Please see the migration guide here for "
26
- "a recommended replacement: "
27
- "https://python.langchain.com/docs/versions/migrating_chains/map_rerank_docs_chain/"
28
- ),
29
- )
30
- class MapRerankDocumentsChain(BaseCombineDocumentsChain):
31
- """Combining documents by mapping a chain over them, then reranking results.
32
-
33
- This algorithm calls an LLMChain on each input document. The LLMChain is expected
34
- to have an OutputParser that parses the result into both an answer (``answer_key``)
35
- and a score (``rank_key``). The answer with the highest score is then returned.
36
-
37
- Example:
38
- .. code-block:: python
39
-
40
- from langchain.chains import MapRerankDocumentsChain, LLMChain
41
- from langchain_core.prompts import PromptTemplate
42
- from langchain_community.llms import OpenAI
43
- from langchain.output_parsers.regex import RegexParser
44
-
45
- document_variable_name = "context"
46
- llm = OpenAI()
47
- # The prompt here should take as an input variable the
48
- # `document_variable_name`
49
- # The actual prompt will need to be a lot more complex, this is just
50
- # an example.
51
- prompt_template = (
52
- "Use the following context to tell me the chemical formula "
53
- "for water. Output both your answer and a score of how confident "
54
- "you are. Context: {context}"
55
- )
56
- output_parser = RegexParser(
57
- regex=r"(.*?)\nScore: (.*)",
58
- output_keys=["answer", "score"],
59
- )
60
- prompt = PromptTemplate(
61
- template=prompt_template,
62
- input_variables=["context"],
63
- output_parser=output_parser,
64
- )
65
- llm_chain = LLMChain(llm=llm, prompt=prompt)
66
- chain = MapRerankDocumentsChain(
67
- llm_chain=llm_chain,
68
- document_variable_name=document_variable_name,
69
- rank_key="score",
70
- answer_key="answer",
71
- )
72
-
73
- """
74
-
75
- llm_chain: LLMChain
76
- """Chain to apply to each document individually."""
77
- document_variable_name: str
78
- """The variable name in the llm_chain to put the documents in.
79
- If only one variable in the llm_chain, this need not be provided."""
80
- rank_key: str
81
- """Key in output of llm_chain to rank on."""
82
- answer_key: str
83
- """Key in output of llm_chain to return as answer."""
84
- metadata_keys: Optional[list[str]] = None
85
- """Additional metadata from the chosen document to return."""
86
- return_intermediate_steps: bool = False
87
- """Return intermediate steps.
88
- Intermediate steps include the results of calling llm_chain on each document."""
89
-
90
- model_config = ConfigDict(
91
- arbitrary_types_allowed=True,
92
- extra="forbid",
93
- )
94
-
95
- @override
96
- def get_output_schema(
97
- self,
98
- config: Optional[RunnableConfig] = None,
99
- ) -> type[BaseModel]:
100
- schema: dict[str, Any] = {
101
- self.output_key: (str, None),
102
- }
103
- if self.return_intermediate_steps:
104
- schema["intermediate_steps"] = (list[str], None)
105
- if self.metadata_keys:
106
- schema.update(dict.fromkeys(self.metadata_keys, (Any, None)))
107
-
108
- return create_model("MapRerankOutput", **schema)
109
-
110
- @property
111
- def output_keys(self) -> list[str]:
112
- """Expect input key.
113
-
114
- :meta private:
115
- """
116
- _output_keys = super().output_keys
117
- if self.return_intermediate_steps:
118
- _output_keys = [*_output_keys, "intermediate_steps"]
119
- if self.metadata_keys is not None:
120
- _output_keys += self.metadata_keys
121
- return _output_keys
122
-
123
- @model_validator(mode="after")
124
- def validate_llm_output(self) -> Self:
125
- """Validate that the combine chain outputs a dictionary."""
126
- output_parser = self.llm_chain.prompt.output_parser
127
- if not isinstance(output_parser, RegexParser):
128
- msg = (
129
- "Output parser of llm_chain should be a RegexParser,"
130
- f" got {output_parser}"
131
- )
132
- raise ValueError(msg) # noqa: TRY004
133
- output_keys = output_parser.output_keys
134
- if self.rank_key not in output_keys:
135
- msg = (
136
- f"Got {self.rank_key} as key to rank on, but did not find "
137
- f"it in the llm_chain output keys ({output_keys})"
138
- )
139
- raise ValueError(msg)
140
- if self.answer_key not in output_keys:
141
- msg = (
142
- f"Got {self.answer_key} as key to return, but did not find "
143
- f"it in the llm_chain output keys ({output_keys})"
144
- )
145
- raise ValueError(msg)
146
- return self
147
-
148
- @model_validator(mode="before")
149
- @classmethod
150
- def get_default_document_variable_name(cls, values: dict) -> Any:
151
- """Get default document variable name, if not provided."""
152
- if "llm_chain" not in values:
153
- msg = "llm_chain must be provided"
154
- raise ValueError(msg)
155
-
156
- llm_chain_variables = values["llm_chain"].prompt.input_variables
157
- if "document_variable_name" not in values:
158
- if len(llm_chain_variables) == 1:
159
- values["document_variable_name"] = llm_chain_variables[0]
160
- else:
161
- msg = (
162
- "document_variable_name must be provided if there are "
163
- "multiple llm_chain input_variables"
164
- )
165
- raise ValueError(msg)
166
- elif values["document_variable_name"] not in llm_chain_variables:
167
- msg = (
168
- f"document_variable_name {values['document_variable_name']} was "
169
- f"not found in llm_chain input_variables: {llm_chain_variables}"
170
- )
171
- raise ValueError(msg)
172
- return values
173
-
174
- def combine_docs(
175
- self,
176
- docs: list[Document],
177
- callbacks: Callbacks = None,
178
- **kwargs: Any,
179
- ) -> tuple[str, dict]:
180
- """Combine documents in a map rerank manner.
181
-
182
- Combine by mapping first chain over all documents, then reranking the results.
183
-
184
- Args:
185
- docs: List of documents to combine
186
- callbacks: Callbacks to be passed through
187
- **kwargs: additional parameters to be passed to LLM calls (like other
188
- input variables besides the documents)
189
-
190
- Returns:
191
- The first element returned is the single string output. The second
192
- element returned is a dictionary of other keys to return.
193
- """
194
- results = self.llm_chain.apply_and_parse(
195
- # FYI - this is parallelized and so it is fast.
196
- [{self.document_variable_name: d.page_content, **kwargs} for d in docs],
197
- callbacks=callbacks,
198
- )
199
- return self._process_results(docs, results)
200
-
201
- async def acombine_docs(
202
- self,
203
- docs: list[Document],
204
- callbacks: Callbacks = None,
205
- **kwargs: Any,
206
- ) -> tuple[str, dict]:
207
- """Combine documents in a map rerank manner.
208
-
209
- Combine by mapping first chain over all documents, then reranking the results.
210
-
211
- Args:
212
- docs: List of documents to combine
213
- callbacks: Callbacks to be passed through
214
- **kwargs: additional parameters to be passed to LLM calls (like other
215
- input variables besides the documents)
216
-
217
- Returns:
218
- The first element returned is the single string output. The second
219
- element returned is a dictionary of other keys to return.
220
- """
221
- results = await self.llm_chain.aapply_and_parse(
222
- # FYI - this is parallelized and so it is fast.
223
- [{self.document_variable_name: d.page_content, **kwargs} for d in docs],
224
- callbacks=callbacks,
225
- )
226
- return self._process_results(docs, results)
227
-
228
- def _process_results(
229
- self,
230
- docs: list[Document],
231
- results: Sequence[Union[str, list[str], dict[str, str]]],
232
- ) -> tuple[str, dict]:
233
- typed_results = cast("list[dict]", results)
234
- sorted_res = sorted(
235
- zip(typed_results, docs),
236
- key=lambda x: -int(x[0][self.rank_key]),
237
- )
238
- output, document = sorted_res[0]
239
- extra_info = {}
240
- if self.metadata_keys is not None:
241
- for key in self.metadata_keys:
242
- extra_info[key] = document.metadata[key]
243
- if self.return_intermediate_steps:
244
- extra_info["intermediate_steps"] = results
245
- return output[self.answer_key], extra_info
246
-
247
- @property
248
- def _chain_type(self) -> str:
249
- return "map_rerank_documents_chain"
@@ -1,382 +0,0 @@
1
- """Combine many documents together by recursively reducing them."""
2
-
3
- from __future__ import annotations
4
-
5
- from typing import Any, Callable, Optional, Protocol
6
-
7
- from langchain_core._api import deprecated
8
- from langchain_core.callbacks import Callbacks
9
- from langchain_core.documents import Document
10
- from pydantic import ConfigDict
11
-
12
- from langchain.chains.combine_documents.base import BaseCombineDocumentsChain
13
-
14
-
15
- class CombineDocsProtocol(Protocol):
16
- """Interface for the combine_docs method."""
17
-
18
- def __call__(self, docs: list[Document], **kwargs: Any) -> str:
19
- """Interface for the combine_docs method."""
20
-
21
-
22
- class AsyncCombineDocsProtocol(Protocol):
23
- """Interface for the combine_docs method."""
24
-
25
- async def __call__(self, docs: list[Document], **kwargs: Any) -> str:
26
- """Async interface for the combine_docs method."""
27
-
28
-
29
- def split_list_of_docs(
30
- docs: list[Document],
31
- length_func: Callable,
32
- token_max: int,
33
- **kwargs: Any,
34
- ) -> list[list[Document]]:
35
- """Split Documents into subsets that each meet a cumulative length constraint.
36
-
37
- Args:
38
- docs: The full list of Documents.
39
- length_func: Function for computing the cumulative length of a set of Documents.
40
- token_max: The maximum cumulative length of any subset of Documents.
41
- **kwargs: Arbitrary additional keyword params to pass to each call of the
42
- length_func.
43
-
44
- Returns:
45
- A List[List[Document]].
46
- """
47
- new_result_doc_list = []
48
- _sub_result_docs = []
49
- for doc in docs:
50
- _sub_result_docs.append(doc)
51
- _num_tokens = length_func(_sub_result_docs, **kwargs)
52
- if _num_tokens > token_max:
53
- if len(_sub_result_docs) == 1:
54
- msg = (
55
- "A single document was longer than the context length,"
56
- " we cannot handle this."
57
- )
58
- raise ValueError(msg)
59
- new_result_doc_list.append(_sub_result_docs[:-1])
60
- _sub_result_docs = _sub_result_docs[-1:]
61
- new_result_doc_list.append(_sub_result_docs)
62
- return new_result_doc_list
63
-
64
-
65
- def collapse_docs(
66
- docs: list[Document],
67
- combine_document_func: CombineDocsProtocol,
68
- **kwargs: Any,
69
- ) -> Document:
70
- """Execute a collapse function on a set of documents and merge their metadatas.
71
-
72
- Args:
73
- docs: A list of Documents to combine.
74
- combine_document_func: A function that takes in a list of Documents and
75
- optionally addition keyword parameters and combines them into a single
76
- string.
77
- **kwargs: Arbitrary additional keyword params to pass to the
78
- combine_document_func.
79
-
80
- Returns:
81
- A single Document with the output of combine_document_func for the page content
82
- and the combined metadata's of all the input documents. All metadata values
83
- are strings, and where there are overlapping keys across documents the
84
- values are joined by ", ".
85
- """
86
- result = combine_document_func(docs, **kwargs)
87
- combined_metadata = {k: str(v) for k, v in docs[0].metadata.items()}
88
- for doc in docs[1:]:
89
- for k, v in doc.metadata.items():
90
- if k in combined_metadata:
91
- combined_metadata[k] += f", {v}"
92
- else:
93
- combined_metadata[k] = str(v)
94
- return Document(page_content=result, metadata=combined_metadata)
95
-
96
-
97
- async def acollapse_docs(
98
- docs: list[Document],
99
- combine_document_func: AsyncCombineDocsProtocol,
100
- **kwargs: Any,
101
- ) -> Document:
102
- """Execute a collapse function on a set of documents and merge their metadatas.
103
-
104
- Args:
105
- docs: A list of Documents to combine.
106
- combine_document_func: A function that takes in a list of Documents and
107
- optionally addition keyword parameters and combines them into a single
108
- string.
109
- **kwargs: Arbitrary additional keyword params to pass to the
110
- combine_document_func.
111
-
112
- Returns:
113
- A single Document with the output of combine_document_func for the page content
114
- and the combined metadata's of all the input documents. All metadata values
115
- are strings, and where there are overlapping keys across documents the
116
- values are joined by ", ".
117
- """
118
- result = await combine_document_func(docs, **kwargs)
119
- combined_metadata = {k: str(v) for k, v in docs[0].metadata.items()}
120
- for doc in docs[1:]:
121
- for k, v in doc.metadata.items():
122
- if k in combined_metadata:
123
- combined_metadata[k] += f", {v}"
124
- else:
125
- combined_metadata[k] = str(v)
126
- return Document(page_content=result, metadata=combined_metadata)
127
-
128
-
129
- @deprecated(
130
- since="0.3.1",
131
- removal="1.0",
132
- message=(
133
- "This class is deprecated. Please see the migration guide here for "
134
- "a recommended replacement: "
135
- "https://python.langchain.com/docs/versions/migrating_chains/map_reduce_chain/"
136
- ),
137
- )
138
- class ReduceDocumentsChain(BaseCombineDocumentsChain):
139
- """Combine documents by recursively reducing them.
140
-
141
- This involves
142
-
143
- - combine_documents_chain
144
-
145
- - collapse_documents_chain
146
-
147
- `combine_documents_chain` is ALWAYS provided. This is final chain that is called.
148
- We pass all previous results to this chain, and the output of this chain is
149
- returned as a final result.
150
-
151
- `collapse_documents_chain` is used if the documents passed in are too many to all
152
- be passed to `combine_documents_chain` in one go. In this case,
153
- `collapse_documents_chain` is called recursively on as big of groups of documents
154
- as are allowed.
155
-
156
- Example:
157
- .. code-block:: python
158
-
159
- from langchain.chains import (
160
- StuffDocumentsChain, LLMChain, ReduceDocumentsChain
161
- )
162
- from langchain_core.prompts import PromptTemplate
163
- from langchain_community.llms import OpenAI
164
-
165
- # This controls how each document will be formatted. Specifically,
166
- # it will be passed to `format_document` - see that function for more
167
- # details.
168
- document_prompt = PromptTemplate(
169
- input_variables=["page_content"],
170
- template="{page_content}"
171
- )
172
- document_variable_name = "context"
173
- llm = OpenAI()
174
- # The prompt here should take as an input variable the
175
- # `document_variable_name`
176
- prompt = PromptTemplate.from_template(
177
- "Summarize this content: {context}"
178
- )
179
- llm_chain = LLMChain(llm=llm, prompt=prompt)
180
- combine_documents_chain = StuffDocumentsChain(
181
- llm_chain=llm_chain,
182
- document_prompt=document_prompt,
183
- document_variable_name=document_variable_name
184
- )
185
- chain = ReduceDocumentsChain(
186
- combine_documents_chain=combine_documents_chain,
187
- )
188
- # If we wanted to, we could also pass in collapse_documents_chain
189
- # which is specifically aimed at collapsing documents BEFORE
190
- # the final call.
191
- prompt = PromptTemplate.from_template(
192
- "Collapse this content: {context}"
193
- )
194
- llm_chain = LLMChain(llm=llm, prompt=prompt)
195
- collapse_documents_chain = StuffDocumentsChain(
196
- llm_chain=llm_chain,
197
- document_prompt=document_prompt,
198
- document_variable_name=document_variable_name
199
- )
200
- chain = ReduceDocumentsChain(
201
- combine_documents_chain=combine_documents_chain,
202
- collapse_documents_chain=collapse_documents_chain,
203
- )
204
-
205
- """
206
-
207
- combine_documents_chain: BaseCombineDocumentsChain
208
- """Final chain to call to combine documents.
209
- This is typically a StuffDocumentsChain."""
210
- collapse_documents_chain: Optional[BaseCombineDocumentsChain] = None
211
- """Chain to use to collapse documents if needed until they can all fit.
212
- If None, will use the combine_documents_chain.
213
- This is typically a StuffDocumentsChain."""
214
- token_max: int = 3000
215
- """The maximum number of tokens to group documents into. For example, if
216
- set to 3000 then documents will be grouped into chunks of no greater than
217
- 3000 tokens before trying to combine them into a smaller chunk."""
218
- collapse_max_retries: Optional[int] = None
219
- """The maximum number of retries to collapse documents to fit token_max.
220
- If None, it will keep trying to collapse documents to fit token_max.
221
- Otherwise, after it reaches the max number, it will throw an error"""
222
-
223
- model_config = ConfigDict(
224
- arbitrary_types_allowed=True,
225
- extra="forbid",
226
- )
227
-
228
- @property
229
- def _collapse_chain(self) -> BaseCombineDocumentsChain:
230
- if self.collapse_documents_chain is not None:
231
- return self.collapse_documents_chain
232
- return self.combine_documents_chain
233
-
234
- def combine_docs(
235
- self,
236
- docs: list[Document],
237
- token_max: Optional[int] = None,
238
- callbacks: Callbacks = None,
239
- **kwargs: Any,
240
- ) -> tuple[str, dict]:
241
- """Combine multiple documents recursively.
242
-
243
- Args:
244
- docs: List of documents to combine, assumed that each one is less than
245
- `token_max`.
246
- token_max: Recursively creates groups of documents less than this number
247
- of tokens.
248
- callbacks: Callbacks to be passed through
249
- **kwargs: additional parameters to be passed to LLM calls (like other
250
- input variables besides the documents)
251
-
252
- Returns:
253
- The first element returned is the single string output. The second
254
- element returned is a dictionary of other keys to return.
255
- """
256
- result_docs, extra_return_dict = self._collapse(
257
- docs,
258
- token_max=token_max,
259
- callbacks=callbacks,
260
- **kwargs,
261
- )
262
- return self.combine_documents_chain.combine_docs(
263
- docs=result_docs,
264
- callbacks=callbacks,
265
- **kwargs,
266
- )
267
-
268
- async def acombine_docs(
269
- self,
270
- docs: list[Document],
271
- token_max: Optional[int] = None,
272
- callbacks: Callbacks = None,
273
- **kwargs: Any,
274
- ) -> tuple[str, dict]:
275
- """Async combine multiple documents recursively.
276
-
277
- Args:
278
- docs: List of documents to combine, assumed that each one is less than
279
- `token_max`.
280
- token_max: Recursively creates groups of documents less than this number
281
- of tokens.
282
- callbacks: Callbacks to be passed through
283
- **kwargs: additional parameters to be passed to LLM calls (like other
284
- input variables besides the documents)
285
-
286
- Returns:
287
- The first element returned is the single string output. The second
288
- element returned is a dictionary of other keys to return.
289
- """
290
- result_docs, extra_return_dict = await self._acollapse(
291
- docs,
292
- token_max=token_max,
293
- callbacks=callbacks,
294
- **kwargs,
295
- )
296
- return await self.combine_documents_chain.acombine_docs(
297
- docs=result_docs,
298
- callbacks=callbacks,
299
- **kwargs,
300
- )
301
-
302
- def _collapse(
303
- self,
304
- docs: list[Document],
305
- token_max: Optional[int] = None,
306
- callbacks: Callbacks = None,
307
- **kwargs: Any,
308
- ) -> tuple[list[Document], dict]:
309
- result_docs = docs
310
- length_func = self.combine_documents_chain.prompt_length
311
- num_tokens = length_func(result_docs, **kwargs)
312
-
313
- def _collapse_docs_func(docs: list[Document], **kwargs: Any) -> str:
314
- return self._collapse_chain.run(
315
- input_documents=docs,
316
- callbacks=callbacks,
317
- **kwargs,
318
- )
319
-
320
- _token_max = token_max or self.token_max
321
- retries: int = 0
322
- while num_tokens is not None and num_tokens > _token_max:
323
- new_result_doc_list = split_list_of_docs(
324
- result_docs,
325
- length_func,
326
- _token_max,
327
- **kwargs,
328
- )
329
- result_docs = [
330
- collapse_docs(docs_, _collapse_docs_func, **kwargs)
331
- for docs_ in new_result_doc_list
332
- ]
333
- num_tokens = length_func(result_docs, **kwargs)
334
- retries += 1
335
- if self.collapse_max_retries and retries == self.collapse_max_retries:
336
- msg = f"Exceed {self.collapse_max_retries} tries to \
337
- collapse document to {_token_max} tokens."
338
- raise ValueError(msg)
339
- return result_docs, {}
340
-
341
- async def _acollapse(
342
- self,
343
- docs: list[Document],
344
- token_max: Optional[int] = None,
345
- callbacks: Callbacks = None,
346
- **kwargs: Any,
347
- ) -> tuple[list[Document], dict]:
348
- result_docs = docs
349
- length_func = self.combine_documents_chain.prompt_length
350
- num_tokens = length_func(result_docs, **kwargs)
351
-
352
- async def _collapse_docs_func(docs: list[Document], **kwargs: Any) -> str:
353
- return await self._collapse_chain.arun(
354
- input_documents=docs,
355
- callbacks=callbacks,
356
- **kwargs,
357
- )
358
-
359
- _token_max = token_max or self.token_max
360
- retries: int = 0
361
- while num_tokens is not None and num_tokens > _token_max:
362
- new_result_doc_list = split_list_of_docs(
363
- result_docs,
364
- length_func,
365
- _token_max,
366
- **kwargs,
367
- )
368
- result_docs = [
369
- await acollapse_docs(docs_, _collapse_docs_func, **kwargs)
370
- for docs_ in new_result_doc_list
371
- ]
372
- num_tokens = length_func(result_docs, **kwargs)
373
- retries += 1
374
- if self.collapse_max_retries and retries == self.collapse_max_retries:
375
- msg = f"Exceed {self.collapse_max_retries} tries to \
376
- collapse document to {_token_max} tokens."
377
- raise ValueError(msg)
378
- return result_docs, {}
379
-
380
- @property
381
- def _chain_type(self) -> str:
382
- return "reduce_documents_chain"