langchain 0.0.130 → 0.0.132

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.
Files changed (831) hide show
  1. package/dist/agents/agent.cjs +23 -0
  2. package/dist/agents/agent.d.ts +28 -0
  3. package/dist/agents/agent.js +23 -0
  4. package/dist/agents/chat/index.cjs +28 -0
  5. package/dist/agents/chat/index.d.ts +33 -0
  6. package/dist/agents/chat/index.js +28 -0
  7. package/dist/agents/chat/outputParser.cjs +19 -0
  8. package/dist/agents/chat/outputParser.d.ts +19 -0
  9. package/dist/agents/chat/outputParser.js +19 -0
  10. package/dist/agents/chat_convo/index.cjs +25 -0
  11. package/dist/agents/chat_convo/index.d.ts +32 -0
  12. package/dist/agents/chat_convo/index.js +25 -0
  13. package/dist/agents/chat_convo/outputParser.cjs +42 -0
  14. package/dist/agents/chat_convo/outputParser.d.ts +42 -0
  15. package/dist/agents/chat_convo/outputParser.js +42 -0
  16. package/dist/agents/executor.cjs +9 -0
  17. package/dist/agents/executor.d.ts +12 -0
  18. package/dist/agents/executor.js +9 -0
  19. package/dist/agents/initialize.d.ts +5 -0
  20. package/dist/agents/mrkl/index.cjs +20 -0
  21. package/dist/agents/mrkl/index.d.ts +25 -0
  22. package/dist/agents/mrkl/index.js +20 -0
  23. package/dist/agents/mrkl/outputParser.cjs +15 -0
  24. package/dist/agents/mrkl/outputParser.d.ts +15 -0
  25. package/dist/agents/mrkl/outputParser.js +15 -0
  26. package/dist/agents/openai/index.cjs +46 -0
  27. package/dist/agents/openai/index.d.ts +40 -0
  28. package/dist/agents/openai/index.js +46 -0
  29. package/dist/agents/structured_chat/index.cjs +35 -0
  30. package/dist/agents/structured_chat/index.d.ts +41 -0
  31. package/dist/agents/structured_chat/index.js +35 -0
  32. package/dist/agents/structured_chat/outputParser.cjs +44 -0
  33. package/dist/agents/structured_chat/outputParser.d.ts +48 -0
  34. package/dist/agents/structured_chat/outputParser.js +44 -0
  35. package/dist/agents/toolkits/aws_sfn.cjs +5 -0
  36. package/dist/agents/toolkits/aws_sfn.d.ts +9 -0
  37. package/dist/agents/toolkits/aws_sfn.js +5 -0
  38. package/dist/agents/toolkits/base.cjs +5 -0
  39. package/dist/agents/toolkits/base.d.ts +5 -0
  40. package/dist/agents/toolkits/base.js +5 -0
  41. package/dist/agents/toolkits/conversational_retrieval/openai_functions.cjs +10 -0
  42. package/dist/agents/toolkits/conversational_retrieval/openai_functions.d.ts +10 -0
  43. package/dist/agents/toolkits/conversational_retrieval/openai_functions.js +10 -0
  44. package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.cjs +17 -0
  45. package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.d.ts +21 -0
  46. package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.js +17 -0
  47. package/dist/agents/toolkits/json/json.cjs +15 -0
  48. package/dist/agents/toolkits/json/json.d.ts +15 -0
  49. package/dist/agents/toolkits/json/json.js +15 -0
  50. package/dist/agents/toolkits/openapi/openapi.cjs +21 -0
  51. package/dist/agents/toolkits/openapi/openapi.d.ts +21 -0
  52. package/dist/agents/toolkits/openapi/openapi.js +21 -0
  53. package/dist/agents/toolkits/sql/sql.cjs +4 -0
  54. package/dist/agents/toolkits/sql/sql.d.ts +8 -0
  55. package/dist/agents/toolkits/sql/sql.js +4 -0
  56. package/dist/agents/toolkits/vectorstore/vectorstore.cjs +10 -0
  57. package/dist/agents/toolkits/vectorstore/vectorstore.d.ts +14 -0
  58. package/dist/agents/toolkits/vectorstore/vectorstore.js +10 -0
  59. package/dist/agents/toolkits/zapier/zapier.cjs +12 -0
  60. package/dist/agents/toolkits/zapier/zapier.d.ts +12 -0
  61. package/dist/agents/toolkits/zapier/zapier.js +12 -0
  62. package/dist/agents/types.cjs +5 -0
  63. package/dist/agents/types.d.ts +28 -0
  64. package/dist/agents/types.js +5 -0
  65. package/dist/cache/index.cjs +21 -0
  66. package/dist/cache/index.d.ts +21 -0
  67. package/dist/cache/index.js +21 -0
  68. package/dist/cache/ioredis.cjs +16 -0
  69. package/dist/cache/ioredis.d.ts +16 -0
  70. package/dist/cache/ioredis.js +16 -0
  71. package/dist/cache/redis.cjs +21 -0
  72. package/dist/cache/redis.d.ts +25 -0
  73. package/dist/cache/redis.js +21 -0
  74. package/dist/callbacks/base.cjs +29 -0
  75. package/dist/callbacks/base.d.ts +35 -0
  76. package/dist/callbacks/base.js +30 -1
  77. package/dist/callbacks/handlers/console.cjs +87 -0
  78. package/dist/callbacks/handlers/console.d.ts +87 -0
  79. package/dist/callbacks/handlers/console.js +87 -0
  80. package/dist/callbacks/handlers/initialize.cjs +12 -0
  81. package/dist/callbacks/handlers/initialize.d.ts +12 -0
  82. package/dist/callbacks/handlers/initialize.js +12 -0
  83. package/dist/callbacks/manager.cjs +9 -0
  84. package/dist/callbacks/manager.d.ts +9 -0
  85. package/dist/callbacks/manager.js +9 -0
  86. package/dist/callbacks/promises.cjs +9 -0
  87. package/dist/callbacks/promises.d.ts +4 -0
  88. package/dist/callbacks/promises.js +9 -0
  89. package/dist/chains/analyze_documents_chain.cjs +3 -0
  90. package/dist/chains/analyze_documents_chain.d.ts +5 -0
  91. package/dist/chains/analyze_documents_chain.js +3 -0
  92. package/dist/chains/api/api_chain.cjs +12 -0
  93. package/dist/chains/api/api_chain.d.ts +19 -0
  94. package/dist/chains/api/api_chain.js +12 -0
  95. package/dist/chains/base.cjs +6 -0
  96. package/dist/chains/base.d.ts +6 -0
  97. package/dist/chains/base.js +6 -0
  98. package/dist/chains/chat_vector_db_chain.cjs +8 -0
  99. package/dist/chains/chat_vector_db_chain.d.ts +11 -0
  100. package/dist/chains/chat_vector_db_chain.js +8 -0
  101. package/dist/chains/combine_docs_chain.cjs +9 -0
  102. package/dist/chains/combine_docs_chain.d.ts +13 -0
  103. package/dist/chains/combine_docs_chain.js +9 -0
  104. package/dist/chains/constitutional_ai/constitutional_chain.cjs +20 -0
  105. package/dist/chains/constitutional_ai/constitutional_chain.d.ts +21 -0
  106. package/dist/chains/constitutional_ai/constitutional_chain.js +20 -0
  107. package/dist/chains/constitutional_ai/constitutional_principle.cjs +4 -0
  108. package/dist/chains/constitutional_ai/constitutional_principle.d.ts +4 -0
  109. package/dist/chains/constitutional_ai/constitutional_principle.js +4 -0
  110. package/dist/chains/conversation.cjs +7 -0
  111. package/dist/chains/conversation.d.ts +5 -0
  112. package/dist/chains/conversation.js +7 -0
  113. package/dist/chains/conversational_retrieval_chain.cjs +24 -0
  114. package/dist/chains/conversational_retrieval_chain.d.ts +27 -1
  115. package/dist/chains/conversational_retrieval_chain.js +24 -0
  116. package/dist/chains/llm_chain.cjs +3 -0
  117. package/dist/chains/llm_chain.d.ts +4 -0
  118. package/dist/chains/llm_chain.js +3 -0
  119. package/dist/chains/openai_functions/extraction.cjs +21 -0
  120. package/dist/chains/openai_functions/extraction.d.ts +15 -0
  121. package/dist/chains/openai_functions/extraction.js +21 -0
  122. package/dist/chains/openai_functions/openapi.cjs +30 -0
  123. package/dist/chains/openai_functions/openapi.d.ts +3 -0
  124. package/dist/chains/openai_functions/openapi.js +30 -0
  125. package/dist/chains/openai_functions/structured_output.cjs +12 -0
  126. package/dist/chains/openai_functions/structured_output.d.ts +18 -0
  127. package/dist/chains/openai_functions/structured_output.js +12 -0
  128. package/dist/chains/openai_functions/tagging.cjs +24 -0
  129. package/dist/chains/openai_functions/tagging.d.ts +21 -0
  130. package/dist/chains/openai_functions/tagging.js +24 -0
  131. package/dist/chains/openai_moderation.cjs +8 -0
  132. package/dist/chains/openai_moderation.d.ts +9 -0
  133. package/dist/chains/openai_moderation.js +8 -0
  134. package/dist/chains/query_constructor/index.cjs +17 -0
  135. package/dist/chains/query_constructor/index.d.ts +20 -0
  136. package/dist/chains/query_constructor/index.js +17 -0
  137. package/dist/chains/query_constructor/ir.cjs +24 -0
  138. package/dist/chains/query_constructor/ir.d.ts +71 -0
  139. package/dist/chains/query_constructor/ir.js +24 -0
  140. package/dist/chains/query_constructor/parser.cjs +21 -0
  141. package/dist/chains/query_constructor/parser.d.ts +25 -0
  142. package/dist/chains/query_constructor/parser.js +21 -0
  143. package/dist/chains/question_answering/load.cjs +21 -0
  144. package/dist/chains/question_answering/load.d.ts +34 -0
  145. package/dist/chains/question_answering/load.js +21 -0
  146. package/dist/chains/retrieval_qa.cjs +15 -0
  147. package/dist/chains/retrieval_qa.d.ts +16 -0
  148. package/dist/chains/retrieval_qa.js +15 -0
  149. package/dist/chains/router/llm_router.cjs +16 -0
  150. package/dist/chains/router/llm_router.d.ts +24 -0
  151. package/dist/chains/router/llm_router.js +16 -0
  152. package/dist/chains/router/multi_prompt.cjs +19 -0
  153. package/dist/chains/router/multi_prompt.d.ts +19 -0
  154. package/dist/chains/router/multi_prompt.js +19 -0
  155. package/dist/chains/router/multi_retrieval_qa.cjs +22 -0
  156. package/dist/chains/router/multi_retrieval_qa.d.ts +27 -0
  157. package/dist/chains/router/multi_retrieval_qa.js +22 -0
  158. package/dist/chains/router/multi_route.cjs +13 -0
  159. package/dist/chains/router/multi_route.d.ts +26 -0
  160. package/dist/chains/router/multi_route.js +13 -0
  161. package/dist/chains/sequential_chain.cjs +6 -0
  162. package/dist/chains/sequential_chain.d.ts +8 -0
  163. package/dist/chains/sequential_chain.js +6 -0
  164. package/dist/chains/serde.d.ts +58 -0
  165. package/dist/chains/sql_db/sql_db_chain.cjs +16 -0
  166. package/dist/chains/sql_db/sql_db_chain.d.ts +19 -0
  167. package/dist/chains/sql_db/sql_db_chain.js +16 -0
  168. package/dist/chains/summarization/load.d.ts +4 -0
  169. package/dist/chains/transform.cjs +9 -0
  170. package/dist/chains/transform.d.ts +12 -0
  171. package/dist/chains/transform.js +9 -0
  172. package/dist/chains/vector_db_qa.cjs +18 -0
  173. package/dist/chains/vector_db_qa.d.ts +22 -0
  174. package/dist/chains/vector_db_qa.js +18 -0
  175. package/dist/chat_models/anthropic.cjs +27 -4
  176. package/dist/chat_models/anthropic.d.ts +15 -0
  177. package/dist/chat_models/anthropic.js +27 -4
  178. package/dist/chat_models/baiduwenxin.cjs +19 -13
  179. package/dist/chat_models/baiduwenxin.d.ts +19 -3
  180. package/dist/chat_models/baiduwenxin.js +19 -13
  181. package/dist/chat_models/base.cjs +61 -0
  182. package/dist/chat_models/base.d.ts +73 -0
  183. package/dist/chat_models/base.js +61 -0
  184. package/dist/chat_models/googlepalm.cjs +12 -0
  185. package/dist/chat_models/googlepalm.d.ts +8 -0
  186. package/dist/chat_models/googlepalm.js +12 -0
  187. package/dist/chat_models/googlevertexai.cjs +41 -0
  188. package/dist/chat_models/googlevertexai.d.ts +51 -0
  189. package/dist/chat_models/googlevertexai.js +41 -0
  190. package/dist/chat_models/ollama.cjs +14 -0
  191. package/dist/chat_models/ollama.d.ts +16 -0
  192. package/dist/chat_models/ollama.js +14 -0
  193. package/dist/chat_models/openai.cjs +19 -5
  194. package/dist/chat_models/openai.d.ts +7 -5
  195. package/dist/chat_models/openai.js +19 -5
  196. package/dist/document_loaders/base.cjs +10 -0
  197. package/dist/document_loaders/base.d.ts +17 -0
  198. package/dist/document_loaders/base.js +10 -0
  199. package/dist/document_loaders/fs/buffer.cjs +21 -0
  200. package/dist/document_loaders/fs/buffer.d.ts +28 -0
  201. package/dist/document_loaders/fs/buffer.js +21 -0
  202. package/dist/document_loaders/fs/csv.cjs +19 -0
  203. package/dist/document_loaders/fs/csv.d.ts +19 -0
  204. package/dist/document_loaders/fs/csv.js +19 -0
  205. package/dist/document_loaders/fs/directory.cjs +21 -0
  206. package/dist/document_loaders/fs/directory.d.ts +29 -0
  207. package/dist/document_loaders/fs/directory.js +21 -0
  208. package/dist/document_loaders/fs/docx.cjs +16 -0
  209. package/dist/document_loaders/fs/docx.d.ts +16 -0
  210. package/dist/document_loaders/fs/docx.js +16 -0
  211. package/dist/document_loaders/fs/epub.cjs +16 -0
  212. package/dist/document_loaders/fs/epub.d.ts +16 -0
  213. package/dist/document_loaders/fs/epub.js +16 -0
  214. package/dist/document_loaders/fs/json.cjs +40 -0
  215. package/dist/document_loaders/fs/json.d.ts +40 -0
  216. package/dist/document_loaders/fs/json.js +40 -0
  217. package/dist/document_loaders/fs/notion.cjs +6 -0
  218. package/dist/document_loaders/fs/notion.d.ts +6 -0
  219. package/dist/document_loaders/fs/notion.js +6 -0
  220. package/dist/document_loaders/fs/pdf.cjs +21 -0
  221. package/dist/document_loaders/fs/pdf.d.ts +21 -0
  222. package/dist/document_loaders/fs/pdf.js +21 -0
  223. package/dist/document_loaders/fs/srt.cjs +19 -0
  224. package/dist/document_loaders/fs/srt.d.ts +19 -0
  225. package/dist/document_loaders/fs/srt.js +19 -0
  226. package/dist/document_loaders/fs/text.cjs +34 -0
  227. package/dist/document_loaders/fs/text.d.ts +34 -0
  228. package/dist/document_loaders/fs/text.js +34 -0
  229. package/dist/document_loaders/fs/unstructured.cjs +14 -0
  230. package/dist/document_loaders/fs/unstructured.d.ts +26 -0
  231. package/dist/document_loaders/fs/unstructured.js +14 -0
  232. package/dist/document_loaders/web/apify_dataset.cjs +11 -0
  233. package/dist/document_loaders/web/apify_dataset.d.ts +15 -0
  234. package/dist/document_loaders/web/apify_dataset.js +11 -0
  235. package/dist/document_loaders/web/azure_blob_storage_container.cjs +13 -0
  236. package/dist/document_loaders/web/azure_blob_storage_container.d.ts +26 -0
  237. package/dist/document_loaders/web/azure_blob_storage_container.js +13 -0
  238. package/dist/document_loaders/web/azure_blob_storage_file.cjs +12 -0
  239. package/dist/document_loaders/web/azure_blob_storage_file.d.ts +21 -0
  240. package/dist/document_loaders/web/azure_blob_storage_file.js +12 -0
  241. package/dist/document_loaders/web/cheerio.cjs +21 -0
  242. package/dist/document_loaders/web/cheerio.d.ts +26 -0
  243. package/dist/document_loaders/web/cheerio.js +21 -0
  244. package/dist/document_loaders/web/college_confidential.cjs +11 -0
  245. package/dist/document_loaders/web/college_confidential.d.ts +11 -0
  246. package/dist/document_loaders/web/college_confidential.js +11 -0
  247. package/dist/document_loaders/web/confluence.cjs +23 -0
  248. package/dist/document_loaders/web/confluence.d.ts +33 -0
  249. package/dist/document_loaders/web/confluence.js +23 -0
  250. package/dist/document_loaders/web/figma.cjs +21 -0
  251. package/dist/document_loaders/web/figma.d.ts +32 -0
  252. package/dist/document_loaders/web/figma.js +21 -0
  253. package/dist/document_loaders/web/gitbook.cjs +33 -0
  254. package/dist/document_loaders/web/gitbook.d.ts +38 -0
  255. package/dist/document_loaders/web/gitbook.js +33 -0
  256. package/dist/document_loaders/web/github.cjs +50 -0
  257. package/dist/document_loaders/web/github.d.ts +53 -0
  258. package/dist/document_loaders/web/github.js +50 -0
  259. package/dist/document_loaders/web/hn.cjs +31 -0
  260. package/dist/document_loaders/web/hn.d.ts +31 -0
  261. package/dist/document_loaders/web/hn.js +31 -0
  262. package/dist/document_loaders/web/imsdb.cjs +14 -0
  263. package/dist/document_loaders/web/imsdb.d.ts +14 -0
  264. package/dist/document_loaders/web/imsdb.js +14 -0
  265. package/dist/document_loaders/web/notionapi.cjs +39 -0
  266. package/dist/document_loaders/web/notionapi.d.ts +43 -0
  267. package/dist/document_loaders/web/notionapi.js +39 -0
  268. package/dist/document_loaders/web/notiondb.cjs +19 -0
  269. package/dist/document_loaders/web/notiondb.d.ts +24 -0
  270. package/dist/document_loaders/web/notiondb.js +19 -0
  271. package/dist/document_loaders/web/playwright.cjs +22 -0
  272. package/dist/document_loaders/web/playwright.d.ts +27 -0
  273. package/dist/document_loaders/web/playwright.js +22 -0
  274. package/dist/document_loaders/web/puppeteer.cjs +20 -0
  275. package/dist/document_loaders/web/puppeteer.d.ts +25 -0
  276. package/dist/document_loaders/web/puppeteer.js +20 -0
  277. package/dist/document_loaders/web/s3.cjs +9 -0
  278. package/dist/document_loaders/web/s3.d.ts +21 -0
  279. package/dist/document_loaders/web/s3.js +9 -0
  280. package/dist/document_loaders/web/serpapi.cjs +4 -0
  281. package/dist/document_loaders/web/serpapi.d.ts +8 -0
  282. package/dist/document_loaders/web/serpapi.js +4 -0
  283. package/dist/document_loaders/web/sonix_audio.cjs +10 -0
  284. package/dist/document_loaders/web/sonix_audio.d.ts +10 -0
  285. package/dist/document_loaders/web/sonix_audio.js +10 -0
  286. package/dist/document_loaders/web/sort_xyz_blockchain.cjs +10 -0
  287. package/dist/document_loaders/web/sort_xyz_blockchain.d.ts +17 -0
  288. package/dist/document_loaders/web/sort_xyz_blockchain.js +10 -0
  289. package/dist/document_loaders/web/youtube.cjs +23 -0
  290. package/dist/document_loaders/web/youtube.d.ts +27 -0
  291. package/dist/document_loaders/web/youtube.js +23 -0
  292. package/dist/document_transformers/html_to_text.cjs +6 -0
  293. package/dist/document_transformers/html_to_text.d.ts +4 -0
  294. package/dist/document_transformers/html_to_text.js +6 -0
  295. package/dist/document_transformers/mozilla_readability.cjs +7 -0
  296. package/dist/document_transformers/mozilla_readability.d.ts +5 -0
  297. package/dist/document_transformers/mozilla_readability.js +7 -0
  298. package/dist/document_transformers/openai_functions.cjs +6 -0
  299. package/dist/document_transformers/openai_functions.d.ts +4 -0
  300. package/dist/document_transformers/openai_functions.js +6 -0
  301. package/dist/embeddings/base.cjs +4 -0
  302. package/dist/embeddings/base.d.ts +21 -0
  303. package/dist/embeddings/base.js +4 -0
  304. package/dist/embeddings/cache_backed.d.ts +4 -0
  305. package/dist/embeddings/cohere.d.ts +4 -0
  306. package/dist/embeddings/fake.cjs +33 -0
  307. package/dist/embeddings/fake.d.ts +37 -0
  308. package/dist/embeddings/fake.js +33 -0
  309. package/dist/embeddings/googlepalm.cjs +18 -0
  310. package/dist/embeddings/googlepalm.d.ts +22 -0
  311. package/dist/embeddings/googlepalm.js +18 -0
  312. package/dist/embeddings/googlevertexai.cjs +15 -0
  313. package/dist/embeddings/googlevertexai.d.ts +20 -0
  314. package/dist/embeddings/googlevertexai.js +15 -0
  315. package/dist/embeddings/hf.cjs +20 -0
  316. package/dist/embeddings/hf.d.ts +24 -0
  317. package/dist/embeddings/hf.js +20 -0
  318. package/dist/embeddings/openai.cjs +25 -0
  319. package/dist/embeddings/openai.d.ts +29 -0
  320. package/dist/embeddings/openai.js +25 -0
  321. package/dist/embeddings/tensorflow.cjs +27 -0
  322. package/dist/embeddings/tensorflow.d.ts +31 -0
  323. package/dist/embeddings/tensorflow.js +27 -0
  324. package/dist/evaluation/qa/eval_chain.cjs +3 -0
  325. package/dist/evaluation/qa/eval_chain.d.ts +1 -0
  326. package/dist/evaluation/qa/eval_chain.js +3 -0
  327. package/dist/experimental/autogpt/agent.cjs +21 -0
  328. package/dist/experimental/autogpt/agent.d.ts +24 -0
  329. package/dist/experimental/autogpt/agent.js +21 -0
  330. package/dist/experimental/autogpt/output_parser.cjs +24 -0
  331. package/dist/experimental/autogpt/output_parser.d.ts +24 -0
  332. package/dist/experimental/autogpt/output_parser.js +24 -0
  333. package/dist/experimental/autogpt/prompt.cjs +25 -0
  334. package/dist/experimental/autogpt/prompt.d.ts +28 -0
  335. package/dist/experimental/autogpt/prompt.js +25 -0
  336. package/dist/experimental/autogpt/prompt_generator.cjs +32 -0
  337. package/dist/experimental/autogpt/prompt_generator.d.ts +32 -0
  338. package/dist/experimental/autogpt/prompt_generator.js +32 -0
  339. package/dist/experimental/autogpt/schema.d.ts +11 -0
  340. package/dist/experimental/babyagi/agent.cjs +68 -0
  341. package/dist/experimental/babyagi/agent.d.ts +76 -0
  342. package/dist/experimental/babyagi/agent.js +68 -0
  343. package/dist/experimental/babyagi/task_creation.cjs +13 -0
  344. package/dist/experimental/babyagi/task_creation.d.ts +11 -0
  345. package/dist/experimental/babyagi/task_creation.js +13 -0
  346. package/dist/experimental/babyagi/task_execution.cjs +12 -0
  347. package/dist/experimental/babyagi/task_execution.d.ts +10 -0
  348. package/dist/experimental/babyagi/task_execution.js +12 -0
  349. package/dist/experimental/babyagi/task_prioritization.cjs +11 -0
  350. package/dist/experimental/babyagi/task_prioritization.d.ts +9 -0
  351. package/dist/experimental/babyagi/task_prioritization.js +11 -0
  352. package/dist/experimental/generative_agents/generative_agent.cjs +77 -0
  353. package/dist/experimental/generative_agents/generative_agent.d.ts +80 -0
  354. package/dist/experimental/generative_agents/generative_agent.js +77 -0
  355. package/dist/experimental/generative_agents/generative_agent_memory.cjs +116 -0
  356. package/dist/experimental/generative_agents/generative_agent_memory.d.ts +114 -0
  357. package/dist/experimental/generative_agents/generative_agent_memory.js +116 -0
  358. package/dist/experimental/multimodal_embeddings/googlevertexai.cjs +46 -0
  359. package/dist/experimental/multimodal_embeddings/googlevertexai.d.ts +58 -0
  360. package/dist/experimental/multimodal_embeddings/googlevertexai.js +46 -0
  361. package/dist/experimental/plan_and_execute/agent_executor.cjs +35 -0
  362. package/dist/experimental/plan_and_execute/agent_executor.d.ts +38 -0
  363. package/dist/experimental/plan_and_execute/agent_executor.js +35 -0
  364. package/dist/experimental/plan_and_execute/base.cjs +26 -0
  365. package/dist/experimental/plan_and_execute/base.d.ts +38 -0
  366. package/dist/experimental/plan_and_execute/base.js +26 -0
  367. package/dist/experimental/plan_and_execute/outputParser.cjs +18 -0
  368. package/dist/experimental/plan_and_execute/outputParser.d.ts +18 -0
  369. package/dist/experimental/plan_and_execute/outputParser.js +18 -0
  370. package/dist/llms/ai21.cjs +13 -0
  371. package/dist/llms/ai21.d.ts +19 -0
  372. package/dist/llms/ai21.js +13 -0
  373. package/dist/llms/aleph_alpha.cjs +10 -0
  374. package/dist/llms/aleph_alpha.d.ts +13 -0
  375. package/dist/llms/aleph_alpha.js +10 -0
  376. package/dist/llms/base.cjs +32 -0
  377. package/dist/llms/base.d.ts +32 -0
  378. package/dist/llms/base.js +32 -0
  379. package/dist/llms/bedrock.cjs +21 -0
  380. package/dist/llms/bedrock.d.ts +9 -0
  381. package/dist/llms/bedrock.js +21 -0
  382. package/dist/llms/cohere.cjs +7 -0
  383. package/dist/llms/cohere.d.ts +8 -0
  384. package/dist/llms/cohere.js +7 -0
  385. package/dist/llms/googlevertexai.cjs +23 -0
  386. package/dist/llms/googlevertexai.d.ts +38 -0
  387. package/dist/llms/googlevertexai.js +23 -0
  388. package/dist/llms/hf.cjs +4 -0
  389. package/dist/llms/hf.d.ts +8 -0
  390. package/dist/llms/hf.js +4 -0
  391. package/dist/llms/ollama.cjs +7 -0
  392. package/dist/llms/ollama.d.ts +5 -0
  393. package/dist/llms/ollama.js +7 -0
  394. package/dist/llms/openai-chat.cjs +35 -4
  395. package/dist/llms/openai-chat.d.ts +28 -4
  396. package/dist/llms/openai-chat.js +35 -4
  397. package/dist/llms/openai.cjs +26 -6
  398. package/dist/llms/openai.d.ts +11 -3
  399. package/dist/llms/openai.js +26 -6
  400. package/dist/llms/replicate.cjs +9 -0
  401. package/dist/llms/replicate.d.ts +12 -0
  402. package/dist/llms/replicate.js +9 -0
  403. package/dist/llms/sagemaker_endpoint.cjs +11 -0
  404. package/dist/llms/sagemaker_endpoint.d.ts +17 -0
  405. package/dist/llms/sagemaker_endpoint.js +11 -0
  406. package/dist/load/index.cjs +7 -1
  407. package/dist/load/index.js +7 -1
  408. package/dist/load/serializable.cjs +42 -3
  409. package/dist/load/serializable.d.ts +16 -0
  410. package/dist/load/serializable.js +40 -2
  411. package/dist/memory/base.cjs +11 -0
  412. package/dist/memory/base.d.ts +40 -0
  413. package/dist/memory/base.js +11 -0
  414. package/dist/memory/buffer_memory.cjs +19 -0
  415. package/dist/memory/buffer_memory.d.ts +22 -0
  416. package/dist/memory/buffer_memory.js +19 -0
  417. package/dist/memory/buffer_window_memory.cjs +15 -0
  418. package/dist/memory/buffer_window_memory.d.ts +18 -0
  419. package/dist/memory/buffer_window_memory.js +15 -0
  420. package/dist/memory/chat_memory.cjs +16 -0
  421. package/dist/memory/chat_memory.d.ts +19 -0
  422. package/dist/memory/chat_memory.js +16 -0
  423. package/dist/memory/combined_memory.cjs +28 -0
  424. package/dist/memory/combined_memory.d.ts +33 -0
  425. package/dist/memory/combined_memory.js +28 -0
  426. package/dist/memory/entity_memory.cjs +21 -0
  427. package/dist/memory/entity_memory.d.ts +24 -0
  428. package/dist/memory/entity_memory.js +21 -0
  429. package/dist/memory/motorhead_memory.cjs +25 -0
  430. package/dist/memory/motorhead_memory.d.ts +29 -0
  431. package/dist/memory/motorhead_memory.js +25 -0
  432. package/dist/memory/stores/entity/in_memory.cjs +29 -0
  433. package/dist/memory/stores/entity/in_memory.d.ts +29 -0
  434. package/dist/memory/stores/entity/in_memory.js +29 -0
  435. package/dist/memory/summary.cjs +31 -0
  436. package/dist/memory/summary.d.ts +39 -0
  437. package/dist/memory/summary.js +31 -0
  438. package/dist/memory/summary_buffer.cjs +33 -0
  439. package/dist/memory/summary_buffer.d.ts +37 -0
  440. package/dist/memory/summary_buffer.js +33 -0
  441. package/dist/memory/vector_store.cjs +22 -0
  442. package/dist/memory/vector_store.d.ts +26 -0
  443. package/dist/memory/vector_store.js +22 -0
  444. package/dist/memory/zep.cjs +22 -0
  445. package/dist/memory/zep.d.ts +27 -0
  446. package/dist/memory/zep.js +22 -0
  447. package/dist/output_parsers/combining.cjs +15 -0
  448. package/dist/output_parsers/combining.d.ts +19 -0
  449. package/dist/output_parsers/combining.js +15 -0
  450. package/dist/output_parsers/expression.cjs +12 -0
  451. package/dist/output_parsers/expression.d.ts +12 -0
  452. package/dist/output_parsers/expression.js +12 -0
  453. package/dist/output_parsers/expression_type_handlers/array_literal_expression_handler.cjs +18 -0
  454. package/dist/output_parsers/expression_type_handlers/array_literal_expression_handler.d.ts +18 -0
  455. package/dist/output_parsers/expression_type_handlers/array_literal_expression_handler.js +18 -0
  456. package/dist/output_parsers/expression_type_handlers/base.cjs +68 -0
  457. package/dist/output_parsers/expression_type_handlers/base.d.ts +79 -0
  458. package/dist/output_parsers/expression_type_handlers/base.js +68 -0
  459. package/dist/output_parsers/expression_type_handlers/boolean_literal_handler.cjs +18 -0
  460. package/dist/output_parsers/expression_type_handlers/boolean_literal_handler.d.ts +18 -0
  461. package/dist/output_parsers/expression_type_handlers/boolean_literal_handler.js +18 -0
  462. package/dist/output_parsers/expression_type_handlers/call_expression_handler.cjs +22 -0
  463. package/dist/output_parsers/expression_type_handlers/call_expression_handler.d.ts +22 -0
  464. package/dist/output_parsers/expression_type_handlers/call_expression_handler.js +22 -0
  465. package/dist/output_parsers/expression_type_handlers/factory.cjs +20 -0
  466. package/dist/output_parsers/expression_type_handlers/factory.d.ts +20 -0
  467. package/dist/output_parsers/expression_type_handlers/factory.js +20 -0
  468. package/dist/output_parsers/expression_type_handlers/identifier_handler.cjs +19 -0
  469. package/dist/output_parsers/expression_type_handlers/identifier_handler.d.ts +19 -0
  470. package/dist/output_parsers/expression_type_handlers/identifier_handler.js +19 -0
  471. package/dist/output_parsers/expression_type_handlers/member_expression_handler.cjs +17 -0
  472. package/dist/output_parsers/expression_type_handlers/member_expression_handler.d.ts +17 -0
  473. package/dist/output_parsers/expression_type_handlers/member_expression_handler.js +17 -0
  474. package/dist/output_parsers/expression_type_handlers/numeric_literal_handler.cjs +16 -0
  475. package/dist/output_parsers/expression_type_handlers/numeric_literal_handler.d.ts +16 -0
  476. package/dist/output_parsers/expression_type_handlers/numeric_literal_handler.js +16 -0
  477. package/dist/output_parsers/expression_type_handlers/object_literal_expression_handler.cjs +16 -0
  478. package/dist/output_parsers/expression_type_handlers/object_literal_expression_handler.d.ts +16 -0
  479. package/dist/output_parsers/expression_type_handlers/object_literal_expression_handler.js +16 -0
  480. package/dist/output_parsers/expression_type_handlers/property_assignment_handler.cjs +17 -0
  481. package/dist/output_parsers/expression_type_handlers/property_assignment_handler.d.ts +17 -0
  482. package/dist/output_parsers/expression_type_handlers/property_assignment_handler.js +17 -0
  483. package/dist/output_parsers/expression_type_handlers/string_literal_handler.cjs +16 -0
  484. package/dist/output_parsers/expression_type_handlers/string_literal_handler.d.ts +16 -0
  485. package/dist/output_parsers/expression_type_handlers/string_literal_handler.js +16 -0
  486. package/dist/output_parsers/expression_type_handlers/types.d.ts +50 -0
  487. package/dist/output_parsers/fix.cjs +28 -0
  488. package/dist/output_parsers/fix.d.ts +26 -0
  489. package/dist/output_parsers/fix.js +28 -0
  490. package/dist/output_parsers/list.cjs +27 -0
  491. package/dist/output_parsers/list.d.ts +25 -0
  492. package/dist/output_parsers/list.js +27 -0
  493. package/dist/output_parsers/noop.cjs +21 -0
  494. package/dist/output_parsers/noop.d.ts +19 -0
  495. package/dist/output_parsers/noop.js +21 -0
  496. package/dist/output_parsers/openai_functions.cjs +40 -0
  497. package/dist/output_parsers/openai_functions.d.ts +37 -0
  498. package/dist/output_parsers/openai_functions.js +40 -0
  499. package/dist/output_parsers/regex.cjs +15 -0
  500. package/dist/output_parsers/regex.d.ts +16 -0
  501. package/dist/output_parsers/regex.js +15 -0
  502. package/dist/output_parsers/router.cjs +15 -0
  503. package/dist/output_parsers/router.d.ts +19 -0
  504. package/dist/output_parsers/router.js +15 -0
  505. package/dist/output_parsers/structured.cjs +36 -0
  506. package/dist/output_parsers/structured.d.ts +38 -0
  507. package/dist/output_parsers/structured.js +36 -0
  508. package/dist/prompts/base.cjs +26 -0
  509. package/dist/prompts/base.d.ts +36 -0
  510. package/dist/prompts/base.js +26 -0
  511. package/dist/prompts/chat.cjs +69 -0
  512. package/dist/prompts/chat.d.ts +76 -0
  513. package/dist/prompts/chat.js +69 -0
  514. package/dist/prompts/few_shot.cjs +5 -0
  515. package/dist/prompts/few_shot.d.ts +5 -0
  516. package/dist/prompts/few_shot.js +5 -0
  517. package/dist/prompts/pipeline.cjs +29 -0
  518. package/dist/prompts/pipeline.d.ts +35 -0
  519. package/dist/prompts/pipeline.js +29 -0
  520. package/dist/prompts/prompt.cjs +13 -0
  521. package/dist/prompts/prompt.d.ts +11 -0
  522. package/dist/prompts/prompt.js +13 -0
  523. package/dist/prompts/selectors/LengthBasedExampleSelector.cjs +32 -0
  524. package/dist/prompts/selectors/LengthBasedExampleSelector.d.ts +33 -0
  525. package/dist/prompts/selectors/LengthBasedExampleSelector.js +32 -0
  526. package/dist/prompts/selectors/SemanticSimilarityExampleSelector.cjs +31 -0
  527. package/dist/prompts/selectors/SemanticSimilarityExampleSelector.d.ts +35 -0
  528. package/dist/prompts/selectors/SemanticSimilarityExampleSelector.js +31 -0
  529. package/dist/prompts/selectors/conditional.cjs +30 -0
  530. package/dist/prompts/selectors/conditional.d.ts +37 -0
  531. package/dist/prompts/selectors/conditional.js +30 -0
  532. package/dist/prompts/serde.d.ts +24 -0
  533. package/dist/prompts/template.d.ts +17 -0
  534. package/dist/retrievers/amazon_kendra.cjs +65 -0
  535. package/dist/retrievers/amazon_kendra.d.ts +67 -0
  536. package/dist/retrievers/amazon_kendra.js +65 -0
  537. package/dist/retrievers/contextual_compression.cjs +8 -0
  538. package/dist/retrievers/contextual_compression.d.ts +11 -0
  539. package/dist/retrievers/contextual_compression.js +8 -0
  540. package/dist/retrievers/databerry.cjs +8 -0
  541. package/dist/retrievers/databerry.d.ts +10 -0
  542. package/dist/retrievers/databerry.js +8 -0
  543. package/dist/retrievers/document_compressors/chain_extract.cjs +18 -0
  544. package/dist/retrievers/document_compressors/chain_extract.d.ts +22 -0
  545. package/dist/retrievers/document_compressors/chain_extract.js +18 -0
  546. package/dist/retrievers/document_compressors/index.d.ts +9 -0
  547. package/dist/retrievers/hyde.cjs +12 -0
  548. package/dist/retrievers/hyde.d.ts +18 -0
  549. package/dist/retrievers/hyde.js +12 -0
  550. package/dist/retrievers/metal.cjs +10 -0
  551. package/dist/retrievers/metal.d.ts +13 -0
  552. package/dist/retrievers/metal.js +10 -0
  553. package/dist/retrievers/parent_document.cjs +20 -1
  554. package/dist/retrievers/parent_document.d.ts +16 -0
  555. package/dist/retrievers/parent_document.js +20 -1
  556. package/dist/retrievers/remote/base.cjs +4 -0
  557. package/dist/retrievers/remote/base.d.ts +28 -0
  558. package/dist/retrievers/remote/base.js +4 -0
  559. package/dist/retrievers/remote/chatgpt-plugin.cjs +17 -0
  560. package/dist/retrievers/remote/chatgpt-plugin.d.ts +21 -0
  561. package/dist/retrievers/remote/chatgpt-plugin.js +17 -0
  562. package/dist/retrievers/remote/remote-retriever.cjs +20 -0
  563. package/dist/retrievers/remote/remote-retriever.d.ts +20 -0
  564. package/dist/retrievers/remote/remote-retriever.js +20 -0
  565. package/dist/retrievers/self_query/base.cjs +28 -0
  566. package/dist/retrievers/self_query/base.d.ts +45 -0
  567. package/dist/retrievers/self_query/base.js +28 -0
  568. package/dist/retrievers/self_query/chroma.cjs +6 -0
  569. package/dist/retrievers/self_query/chroma.d.ts +6 -0
  570. package/dist/retrievers/self_query/chroma.js +6 -0
  571. package/dist/retrievers/self_query/functional.cjs +40 -0
  572. package/dist/retrievers/self_query/functional.d.ts +49 -0
  573. package/dist/retrievers/self_query/functional.js +40 -0
  574. package/dist/retrievers/self_query/index.cjs +17 -0
  575. package/dist/retrievers/self_query/index.d.ts +19 -0
  576. package/dist/retrievers/self_query/index.js +17 -0
  577. package/dist/retrievers/self_query/pinecone.cjs +7 -0
  578. package/dist/retrievers/self_query/pinecone.d.ts +7 -0
  579. package/dist/retrievers/self_query/pinecone.js +7 -0
  580. package/dist/retrievers/self_query/supabase.cjs +91 -7
  581. package/dist/retrievers/self_query/supabase.d.ts +69 -2
  582. package/dist/retrievers/self_query/supabase.js +92 -8
  583. package/dist/retrievers/self_query/supabase_utils.cjs +255 -0
  584. package/dist/retrievers/self_query/supabase_utils.d.ts +102 -0
  585. package/dist/retrievers/self_query/supabase_utils.js +250 -0
  586. package/dist/retrievers/self_query/utils.cjs +36 -3
  587. package/dist/retrievers/self_query/utils.d.ts +20 -0
  588. package/dist/retrievers/self_query/utils.js +32 -2
  589. package/dist/retrievers/self_query/weaviate.cjs +45 -14
  590. package/dist/retrievers/self_query/weaviate.d.ts +42 -0
  591. package/dist/retrievers/self_query/weaviate.js +43 -12
  592. package/dist/retrievers/supabase.cjs +33 -0
  593. package/dist/retrievers/supabase.d.ts +31 -0
  594. package/dist/retrievers/supabase.js +33 -0
  595. package/dist/retrievers/time_weighted.cjs +11 -0
  596. package/dist/retrievers/time_weighted.d.ts +13 -0
  597. package/dist/retrievers/time_weighted.js +11 -0
  598. package/dist/retrievers/vespa.cjs +21 -0
  599. package/dist/retrievers/vespa.d.ts +19 -0
  600. package/dist/retrievers/vespa.js +21 -0
  601. package/dist/retrievers/zep.cjs +7 -0
  602. package/dist/retrievers/zep.d.ts +9 -0
  603. package/dist/retrievers/zep.js +7 -0
  604. package/dist/schema/document.cjs +7 -0
  605. package/dist/schema/document.d.ts +7 -0
  606. package/dist/schema/document.js +7 -0
  607. package/dist/schema/index.cjs +100 -0
  608. package/dist/schema/index.d.ts +80 -0
  609. package/dist/schema/index.js +100 -0
  610. package/dist/schema/output_parser.cjs +49 -0
  611. package/dist/schema/output_parser.d.ts +53 -0
  612. package/dist/schema/output_parser.js +49 -0
  613. package/dist/schema/query_constructor.cjs +5 -0
  614. package/dist/schema/query_constructor.d.ts +5 -0
  615. package/dist/schema/query_constructor.js +5 -0
  616. package/dist/schema/retriever.cjs +18 -0
  617. package/dist/schema/retriever.d.ts +18 -0
  618. package/dist/schema/retriever.js +18 -0
  619. package/dist/schema/runnable.cjs +25 -7
  620. package/dist/schema/runnable.d.ts +6 -0
  621. package/dist/schema/runnable.js +25 -7
  622. package/dist/schema/storage.d.ts +20 -0
  623. package/dist/storage/encoder_backed.cjs +27 -0
  624. package/dist/storage/encoder_backed.d.ts +27 -0
  625. package/dist/storage/encoder_backed.js +27 -0
  626. package/dist/storage/in_memory.cjs +25 -0
  627. package/dist/storage/in_memory.d.ts +25 -0
  628. package/dist/storage/in_memory.js +25 -0
  629. package/dist/storage/ioredis.cjs +25 -0
  630. package/dist/storage/ioredis.d.ts +25 -0
  631. package/dist/storage/ioredis.js +25 -0
  632. package/dist/stores/doc/gcs.cjs +28 -0
  633. package/dist/stores/doc/gcs.d.ts +33 -0
  634. package/dist/stores/doc/gcs.js +28 -0
  635. package/dist/stores/doc/in_memory.cjs +27 -0
  636. package/dist/stores/doc/in_memory.d.ts +27 -0
  637. package/dist/stores/doc/in_memory.js +27 -0
  638. package/dist/stores/file/in_memory.cjs +20 -0
  639. package/dist/stores/file/in_memory.d.ts +20 -0
  640. package/dist/stores/file/in_memory.js +20 -0
  641. package/dist/stores/file/node.cjs +15 -0
  642. package/dist/stores/file/node.d.ts +15 -0
  643. package/dist/stores/file/node.js +15 -0
  644. package/dist/stores/message/dynamodb.cjs +17 -0
  645. package/dist/stores/message/dynamodb.d.ts +23 -0
  646. package/dist/stores/message/dynamodb.js +17 -0
  647. package/dist/stores/message/firestore.cjs +19 -0
  648. package/dist/stores/message/firestore.d.ts +24 -0
  649. package/dist/stores/message/firestore.js +19 -0
  650. package/dist/stores/message/in_memory.cjs +19 -0
  651. package/dist/stores/message/in_memory.d.ts +19 -0
  652. package/dist/stores/message/in_memory.js +19 -0
  653. package/dist/stores/message/ioredis.cjs +17 -0
  654. package/dist/stores/message/ioredis.d.ts +22 -0
  655. package/dist/stores/message/ioredis.js +17 -0
  656. package/dist/stores/message/momento.cjs +18 -0
  657. package/dist/stores/message/momento.d.ts +18 -0
  658. package/dist/stores/message/momento.js +18 -0
  659. package/dist/stores/message/planetscale.cjs +26 -0
  660. package/dist/stores/message/planetscale.d.ts +30 -0
  661. package/dist/stores/message/planetscale.js +26 -0
  662. package/dist/stores/message/redis.cjs +24 -0
  663. package/dist/stores/message/redis.d.ts +27 -0
  664. package/dist/stores/message/redis.js +24 -0
  665. package/dist/stores/message/upstash_redis.cjs +17 -0
  666. package/dist/stores/message/upstash_redis.d.ts +21 -0
  667. package/dist/stores/message/upstash_redis.js +17 -0
  668. package/dist/stores/message/utils.cjs +21 -0
  669. package/dist/stores/message/utils.d.ts +21 -0
  670. package/dist/stores/message/utils.js +21 -0
  671. package/dist/stores/message/xata.cjs +25 -0
  672. package/dist/stores/message/xata.d.ts +29 -0
  673. package/dist/stores/message/xata.js +25 -0
  674. package/dist/text_splitter.cjs +9 -0
  675. package/dist/text_splitter.d.ts +3 -0
  676. package/dist/text_splitter.js +9 -0
  677. package/dist/tools/IFTTTWebhook.cjs +9 -0
  678. package/dist/tools/IFTTTWebhook.d.ts +7 -0
  679. package/dist/tools/IFTTTWebhook.js +9 -0
  680. package/dist/tools/aiplugin.cjs +15 -0
  681. package/dist/tools/aiplugin.d.ts +17 -0
  682. package/dist/tools/aiplugin.js +15 -0
  683. package/dist/tools/aws_lambda.cjs +9 -0
  684. package/dist/tools/aws_lambda.d.ts +7 -0
  685. package/dist/tools/aws_lambda.js +9 -0
  686. package/dist/tools/aws_sfn.cjs +28 -0
  687. package/dist/tools/aws_sfn.d.ts +22 -0
  688. package/dist/tools/aws_sfn.js +28 -0
  689. package/dist/tools/base.cjs +22 -0
  690. package/dist/tools/base.d.ts +25 -0
  691. package/dist/tools/base.js +22 -0
  692. package/dist/tools/bingserpapi.cjs +13 -0
  693. package/dist/tools/bingserpapi.d.ts +11 -0
  694. package/dist/tools/bingserpapi.js +13 -0
  695. package/dist/tools/brave_search.cjs +9 -0
  696. package/dist/tools/brave_search.d.ts +11 -0
  697. package/dist/tools/brave_search.js +9 -0
  698. package/dist/tools/calculator.cjs +7 -0
  699. package/dist/tools/calculator.d.ts +5 -0
  700. package/dist/tools/calculator.js +7 -0
  701. package/dist/tools/chain.cjs +9 -0
  702. package/dist/tools/chain.d.ts +12 -0
  703. package/dist/tools/chain.js +9 -0
  704. package/dist/tools/convert_to_openai.cjs +6 -0
  705. package/dist/tools/convert_to_openai.d.ts +6 -0
  706. package/dist/tools/convert_to_openai.js +6 -0
  707. package/dist/tools/dadjokeapi.cjs +9 -0
  708. package/dist/tools/dadjokeapi.d.ts +7 -0
  709. package/dist/tools/dadjokeapi.js +9 -0
  710. package/dist/tools/dataforseo_api_search.cjs +3 -0
  711. package/dist/tools/dataforseo_api_search.d.ts +10 -0
  712. package/dist/tools/dataforseo_api_search.js +3 -0
  713. package/dist/tools/dynamic.cjs +12 -0
  714. package/dist/tools/dynamic.d.ts +14 -0
  715. package/dist/tools/dynamic.js +12 -0
  716. package/dist/tools/fs.cjs +14 -0
  717. package/dist/tools/fs.d.ts +16 -0
  718. package/dist/tools/fs.js +14 -0
  719. package/dist/tools/google_custom_search.cjs +8 -0
  720. package/dist/tools/google_custom_search.d.ts +9 -0
  721. package/dist/tools/google_custom_search.js +8 -0
  722. package/dist/tools/json.cjs +29 -1
  723. package/dist/tools/json.d.ts +24 -0
  724. package/dist/tools/json.js +29 -1
  725. package/dist/tools/requests.cjs +19 -2
  726. package/dist/tools/requests.d.ts +17 -0
  727. package/dist/tools/requests.js +19 -2
  728. package/dist/tools/searxng_search.cjs +10 -0
  729. package/dist/tools/searxng_search.d.ts +11 -0
  730. package/dist/tools/searxng_search.js +10 -0
  731. package/dist/tools/serpapi.cjs +10 -0
  732. package/dist/tools/serpapi.d.ts +8 -0
  733. package/dist/tools/serpapi.js +10 -0
  734. package/dist/tools/serper.cjs +8 -0
  735. package/dist/tools/serper.d.ts +10 -0
  736. package/dist/tools/serper.js +8 -0
  737. package/dist/tools/sql.cjs +37 -0
  738. package/dist/tools/sql.d.ts +36 -0
  739. package/dist/tools/sql.js +37 -0
  740. package/dist/tools/vectorstore.cjs +14 -0
  741. package/dist/tools/vectorstore.d.ts +15 -0
  742. package/dist/tools/vectorstore.js +14 -0
  743. package/dist/tools/webbrowser.cjs +9 -0
  744. package/dist/tools/webbrowser.d.ts +13 -0
  745. package/dist/tools/webbrowser.js +9 -0
  746. package/dist/tools/wikipedia_query_run.cjs +19 -0
  747. package/dist/tools/wikipedia_query_run.d.ts +25 -0
  748. package/dist/tools/wikipedia_query_run.js +19 -0
  749. package/dist/tools/zapier.cjs +15 -0
  750. package/dist/tools/zapier.d.ts +13 -0
  751. package/dist/tools/zapier.js +15 -0
  752. package/dist/vectorstores/analyticdb.cjs +76 -0
  753. package/dist/vectorstores/analyticdb.d.ts +80 -0
  754. package/dist/vectorstores/analyticdb.js +76 -0
  755. package/dist/vectorstores/base.cjs +16 -0
  756. package/dist/vectorstores/base.d.ts +27 -0
  757. package/dist/vectorstores/base.js +16 -0
  758. package/dist/vectorstores/chroma.cjs +73 -0
  759. package/dist/vectorstores/chroma.d.ts +84 -0
  760. package/dist/vectorstores/chroma.js +73 -0
  761. package/dist/vectorstores/elasticsearch.cjs +74 -0
  762. package/dist/vectorstores/elasticsearch.d.ts +90 -0
  763. package/dist/vectorstores/elasticsearch.js +74 -0
  764. package/dist/vectorstores/faiss.cjs +65 -0
  765. package/dist/vectorstores/faiss.d.ts +69 -0
  766. package/dist/vectorstores/faiss.js +65 -0
  767. package/dist/vectorstores/hnswlib.cjs +71 -0
  768. package/dist/vectorstores/hnswlib.d.ts +80 -0
  769. package/dist/vectorstores/hnswlib.js +71 -0
  770. package/dist/vectorstores/lancedb.cjs +38 -0
  771. package/dist/vectorstores/lancedb.d.ts +42 -0
  772. package/dist/vectorstores/lancedb.js +38 -0
  773. package/dist/vectorstores/memory.cjs +56 -0
  774. package/dist/vectorstores/memory.d.ts +66 -0
  775. package/dist/vectorstores/memory.js +56 -0
  776. package/dist/vectorstores/milvus.cjs +91 -7
  777. package/dist/vectorstores/milvus.d.ts +80 -1
  778. package/dist/vectorstores/milvus.js +91 -7
  779. package/dist/vectorstores/mongo.cjs +45 -0
  780. package/dist/vectorstores/mongo.d.ts +49 -0
  781. package/dist/vectorstores/mongo.js +45 -0
  782. package/dist/vectorstores/mongodb_atlas.cjs +48 -0
  783. package/dist/vectorstores/mongodb_atlas.d.ts +59 -0
  784. package/dist/vectorstores/mongodb_atlas.js +48 -0
  785. package/dist/vectorstores/myscale.cjs +66 -0
  786. package/dist/vectorstores/myscale.d.ts +80 -0
  787. package/dist/vectorstores/myscale.js +66 -0
  788. package/dist/vectorstores/opensearch.cjs +60 -0
  789. package/dist/vectorstores/opensearch.d.ts +74 -0
  790. package/dist/vectorstores/opensearch.js +60 -0
  791. package/dist/vectorstores/pinecone.cjs +54 -0
  792. package/dist/vectorstores/pinecone.d.ts +58 -0
  793. package/dist/vectorstores/pinecone.js +54 -0
  794. package/dist/vectorstores/prisma.cjs +66 -0
  795. package/dist/vectorstores/prisma.d.ts +66 -0
  796. package/dist/vectorstores/prisma.js +66 -0
  797. package/dist/vectorstores/qdrant.cjs +60 -0
  798. package/dist/vectorstores/qdrant.d.ts +66 -0
  799. package/dist/vectorstores/qdrant.js +60 -0
  800. package/dist/vectorstores/redis.cjs +62 -0
  801. package/dist/vectorstores/redis.d.ts +88 -0
  802. package/dist/vectorstores/redis.js +62 -0
  803. package/dist/vectorstores/singlestore.cjs +46 -0
  804. package/dist/vectorstores/singlestore.d.ts +46 -0
  805. package/dist/vectorstores/singlestore.js +46 -0
  806. package/dist/vectorstores/supabase.cjs +50 -0
  807. package/dist/vectorstores/supabase.d.ts +54 -2
  808. package/dist/vectorstores/supabase.js +50 -0
  809. package/dist/vectorstores/tigris.cjs +49 -0
  810. package/dist/vectorstores/tigris.d.ts +53 -0
  811. package/dist/vectorstores/tigris.js +49 -0
  812. package/dist/vectorstores/typeorm.cjs +71 -0
  813. package/dist/vectorstores/typeorm.d.ts +76 -0
  814. package/dist/vectorstores/typeorm.js +71 -0
  815. package/dist/vectorstores/typesense.cjs +5 -0
  816. package/dist/vectorstores/typesense.d.ts +5 -0
  817. package/dist/vectorstores/typesense.js +5 -0
  818. package/dist/vectorstores/usearch.cjs +50 -0
  819. package/dist/vectorstores/usearch.d.ts +55 -0
  820. package/dist/vectorstores/usearch.js +50 -0
  821. package/dist/vectorstores/vectara.cjs +104 -0
  822. package/dist/vectorstores/vectara.d.ts +72 -0
  823. package/dist/vectorstores/vectara.js +104 -0
  824. package/dist/vectorstores/weaviate.cjs +61 -0
  825. package/dist/vectorstores/weaviate.d.ts +70 -0
  826. package/dist/vectorstores/weaviate.js +61 -0
  827. package/dist/vectorstores/xata.cjs +36 -0
  828. package/dist/vectorstores/xata.d.ts +43 -0
  829. package/dist/vectorstores/xata.js +36 -0
  830. package/dist/vectorstores/zep.d.ts +11 -0
  831. package/package.json +2 -2
@@ -1,6 +1,11 @@
1
1
  import * as uuid from "uuid";
2
2
  import { VectorStore } from "./base.js";
3
3
  import { Document } from "../document.js";
4
+ /**
5
+ * The main class that extends the `VectorStore` class. It provides
6
+ * methods for interacting with the Chroma database, such as adding
7
+ * documents, deleting documents, and searching for similar vectors.
8
+ */
4
9
  export class Chroma extends VectorStore {
5
10
  _vectorstoreType() {
6
11
  return "chroma";
@@ -54,10 +59,23 @@ export class Chroma extends VectorStore {
54
59
  }
55
60
  this.filter = args.filter;
56
61
  }
62
+ /**
63
+ * Adds documents to the Chroma database. The documents are first
64
+ * converted to vectors using the `embeddings` instance, and then added to
65
+ * the database.
66
+ * @param documents An array of `Document` instances to be added to the database.
67
+ * @param options Optional. An object containing an array of `ids` for the documents.
68
+ * @returns A promise that resolves when the documents have been added to the database.
69
+ */
57
70
  async addDocuments(documents, options) {
58
71
  const texts = documents.map(({ pageContent }) => pageContent);
59
72
  return this.addVectors(await this.embeddings.embedDocuments(texts), documents, options);
60
73
  }
74
+ /**
75
+ * Ensures that a collection exists in the Chroma database. If the
76
+ * collection does not exist, it is created.
77
+ * @returns A promise that resolves with the `Collection` instance.
78
+ */
61
79
  async ensureCollection() {
62
80
  if (!this.collection) {
63
81
  if (!this.index) {
@@ -75,6 +93,14 @@ export class Chroma extends VectorStore {
75
93
  }
76
94
  return this.collection;
77
95
  }
96
+ /**
97
+ * Adds vectors to the Chroma database. The vectors are associated with
98
+ * the provided documents.
99
+ * @param vectors An array of vectors to be added to the database.
100
+ * @param documents An array of `Document` instances associated with the vectors.
101
+ * @param options Optional. An object containing an array of `ids` for the vectors.
102
+ * @returns A promise that resolves with an array of document IDs when the vectors have been added to the database.
103
+ */
78
104
  async addVectors(vectors, documents, options) {
79
105
  if (vectors.length === 0) {
80
106
  return [];
@@ -116,6 +142,12 @@ export class Chroma extends VectorStore {
116
142
  });
117
143
  return documentIds;
118
144
  }
145
+ /**
146
+ * Deletes documents from the Chroma database. The documents to be deleted
147
+ * can be specified by providing an array of `ids` or a `filter` object.
148
+ * @param params An object containing either an array of `ids` of the documents to be deleted or a `filter` object to specify the documents to be deleted.
149
+ * @returns A promise that resolves when the specified documents have been deleted from the database.
150
+ */
119
151
  async delete(params) {
120
152
  const collection = await this.ensureCollection();
121
153
  if (Array.isArray(params.ids)) {
@@ -130,6 +162,15 @@ export class Chroma extends VectorStore {
130
162
  throw new Error(`You must provide one of "ids or "filter".`);
131
163
  }
132
164
  }
165
+ /**
166
+ * Searches for vectors in the Chroma database that are similar to the
167
+ * provided query vector. The search can be filtered using the provided
168
+ * `filter` object or the `filter` property of the `Chroma` instance.
169
+ * @param query The query vector.
170
+ * @param k The number of similar vectors to return.
171
+ * @param filter Optional. A `filter` object to filter the search results.
172
+ * @returns A promise that resolves with an array of tuples, each containing a `Document` instance and a similarity score.
173
+ */
133
174
  async similaritySearchVectorWithScore(query, k, filter) {
134
175
  if (filter && this.filter) {
135
176
  throw new Error("cannot provide both `filter` and `this.filter`");
@@ -178,6 +219,16 @@ export class Chroma extends VectorStore {
178
219
  }
179
220
  return results;
180
221
  }
222
+ /**
223
+ * Creates a new `Chroma` instance from an array of text strings. The text
224
+ * strings are converted to `Document` instances and added to the Chroma
225
+ * database.
226
+ * @param texts An array of text strings.
227
+ * @param metadatas An array of metadata objects or a single metadata object. If an array is provided, it must have the same length as the `texts` array.
228
+ * @param embeddings An `Embeddings` instance used to generate embeddings for the documents.
229
+ * @param dbConfig A `ChromaLibArgs` object containing the configuration for the Chroma database.
230
+ * @returns A promise that resolves with a new `Chroma` instance.
231
+ */
181
232
  static async fromTexts(texts, metadatas, embeddings, dbConfig) {
182
233
  const docs = [];
183
234
  for (let i = 0; i < texts.length; i += 1) {
@@ -190,16 +241,35 @@ export class Chroma extends VectorStore {
190
241
  }
191
242
  return this.fromDocuments(docs, embeddings, dbConfig);
192
243
  }
244
+ /**
245
+ * Creates a new `Chroma` instance from an array of `Document` instances.
246
+ * The documents are added to the Chroma database.
247
+ * @param docs An array of `Document` instances.
248
+ * @param embeddings An `Embeddings` instance used to generate embeddings for the documents.
249
+ * @param dbConfig A `ChromaLibArgs` object containing the configuration for the Chroma database.
250
+ * @returns A promise that resolves with a new `Chroma` instance.
251
+ */
193
252
  static async fromDocuments(docs, embeddings, dbConfig) {
194
253
  const instance = new this(embeddings, dbConfig);
195
254
  await instance.addDocuments(docs);
196
255
  return instance;
197
256
  }
257
+ /**
258
+ * Creates a new `Chroma` instance from an existing collection in the
259
+ * Chroma database.
260
+ * @param embeddings An `Embeddings` instance used to generate embeddings for the documents.
261
+ * @param dbConfig A `ChromaLibArgs` object containing the configuration for the Chroma database.
262
+ * @returns A promise that resolves with a new `Chroma` instance.
263
+ */
198
264
  static async fromExistingCollection(embeddings, dbConfig) {
199
265
  const instance = new this(embeddings, dbConfig);
200
266
  await instance.ensureCollection();
201
267
  return instance;
202
268
  }
269
+ /**
270
+ * Imports the `ChromaClient` from the `chromadb` module.
271
+ * @returns A promise that resolves with an object containing the `ChromaClient` constructor.
272
+ */
203
273
  static async imports() {
204
274
  try {
205
275
  const { ChromaClient } = await import("chromadb");
@@ -210,6 +280,9 @@ export class Chroma extends VectorStore {
210
280
  }
211
281
  }
212
282
  }
283
+ /**
284
+ * Generates a unique collection name if none is provided.
285
+ */
213
286
  function ensureCollectionName(collectionName) {
214
287
  if (!collectionName) {
215
288
  return `langchain-${uuid.v4()}`;
@@ -27,6 +27,12 @@ exports.ElasticVectorSearch = void 0;
27
27
  const uuid = __importStar(require("uuid"));
28
28
  const document_js_1 = require("../document.cjs");
29
29
  const base_js_1 = require("./base.cjs");
30
+ /**
31
+ * Class for interacting with an Elasticsearch database. It extends the
32
+ * VectorStore base class and provides methods for adding documents and
33
+ * vectors to the Elasticsearch database, performing similarity searches,
34
+ * deleting documents, and more.
35
+ */
30
36
  class ElasticVectorSearch extends base_js_1.VectorStore {
31
37
  _vectorstoreType() {
32
38
  return "elasticsearch";
@@ -83,10 +89,27 @@ class ElasticVectorSearch extends base_js_1.VectorStore {
83
89
  this.client = args.client;
84
90
  this.indexName = args.indexName ?? "documents";
85
91
  }
92
+ /**
93
+ * Method to add documents to the Elasticsearch database. It first
94
+ * converts the documents to vectors using the embeddings, then adds the
95
+ * vectors to the database.
96
+ * @param documents The documents to add to the database.
97
+ * @param options Optional parameter that can contain the IDs for the documents.
98
+ * @returns A promise that resolves with the IDs of the added documents.
99
+ */
86
100
  async addDocuments(documents, options) {
87
101
  const texts = documents.map(({ pageContent }) => pageContent);
88
102
  return this.addVectors(await this.embeddings.embedDocuments(texts), documents, options);
89
103
  }
104
+ /**
105
+ * Method to add vectors to the Elasticsearch database. It ensures the
106
+ * index exists, then adds the vectors and their corresponding documents
107
+ * to the database.
108
+ * @param vectors The vectors to add to the database.
109
+ * @param documents The documents corresponding to the vectors.
110
+ * @param options Optional parameter that can contain the IDs for the documents.
111
+ * @returns A promise that resolves with the IDs of the added documents.
112
+ */
90
113
  async addVectors(vectors, documents, options) {
91
114
  await this.ensureIndexExists(vectors[0].length, this.engine, this.similarity, this.efConstruction, this.m);
92
115
  const documentIds = options?.ids ?? Array.from({ length: vectors.length }, () => uuid.v4());
@@ -106,9 +129,19 @@ class ElasticVectorSearch extends base_js_1.VectorStore {
106
129
  await this.client.bulk({ refresh: true, operations });
107
130
  return documentIds;
108
131
  }
132
+ /**
133
+ * Method to perform a similarity search in the Elasticsearch database
134
+ * using a vector. It returns the k most similar documents along with
135
+ * their similarity scores.
136
+ * @param query The query vector.
137
+ * @param k The number of most similar documents to return.
138
+ * @param filter Optional filter to apply to the search.
139
+ * @returns A promise that resolves with an array of tuples, where each tuple contains a Document and its similarity score.
140
+ */
109
141
  async similaritySearchVectorWithScore(query, k, filter) {
110
142
  const result = await this.client.search({
111
143
  index: this.indexName,
144
+ size: k,
112
145
  knn: {
113
146
  field: "embedding",
114
147
  query_vector: query,
@@ -126,6 +159,11 @@ class ElasticVectorSearch extends base_js_1.VectorStore {
126
159
  hit._score,
127
160
  ]);
128
161
  }
162
+ /**
163
+ * Method to delete documents from the Elasticsearch database.
164
+ * @param params Object containing the IDs of the documents to delete.
165
+ * @returns A promise that resolves when the deletion is complete.
166
+ */
129
167
  async delete(params) {
130
168
  const operations = params.ids.map((id) => ({
131
169
  delete: {
@@ -135,6 +173,17 @@ class ElasticVectorSearch extends base_js_1.VectorStore {
135
173
  }));
136
174
  await this.client.bulk({ refresh: true, operations });
137
175
  }
176
+ /**
177
+ * Static method to create an ElasticVectorSearch instance from texts. It
178
+ * creates Document instances from the texts and their corresponding
179
+ * metadata, then calls the fromDocuments method to create the
180
+ * ElasticVectorSearch instance.
181
+ * @param texts The texts to create the ElasticVectorSearch instance from.
182
+ * @param metadatas The metadata corresponding to the texts.
183
+ * @param embeddings The embeddings to use for the documents.
184
+ * @param args The arguments to create the Elasticsearch client.
185
+ * @returns A promise that resolves with the created ElasticVectorSearch instance.
186
+ */
138
187
  static fromTexts(texts, metadatas, embeddings, args) {
139
188
  const documents = texts.map((text, idx) => {
140
189
  const metadata = Array.isArray(metadatas) ? metadatas[idx] : metadatas;
@@ -142,11 +191,28 @@ class ElasticVectorSearch extends base_js_1.VectorStore {
142
191
  });
143
192
  return ElasticVectorSearch.fromDocuments(documents, embeddings, args);
144
193
  }
194
+ /**
195
+ * Static method to create an ElasticVectorSearch instance from Document
196
+ * instances. It adds the documents to the Elasticsearch database, then
197
+ * returns the ElasticVectorSearch instance.
198
+ * @param docs The Document instances to create the ElasticVectorSearch instance from.
199
+ * @param embeddings The embeddings to use for the documents.
200
+ * @param dbConfig The configuration for the Elasticsearch database.
201
+ * @returns A promise that resolves with the created ElasticVectorSearch instance.
202
+ */
145
203
  static async fromDocuments(docs, embeddings, dbConfig) {
146
204
  const store = new ElasticVectorSearch(embeddings, dbConfig);
147
205
  await store.addDocuments(docs).then(() => store);
148
206
  return store;
149
207
  }
208
+ /**
209
+ * Static method to create an ElasticVectorSearch instance from an
210
+ * existing index in the Elasticsearch database. It checks if the index
211
+ * exists, then returns the ElasticVectorSearch instance if it does.
212
+ * @param embeddings The embeddings to use for the documents.
213
+ * @param dbConfig The configuration for the Elasticsearch database.
214
+ * @returns A promise that resolves with the created ElasticVectorSearch instance if the index exists, otherwise it throws an error.
215
+ */
150
216
  static async fromExistingIndex(embeddings, dbConfig) {
151
217
  const store = new ElasticVectorSearch(embeddings, dbConfig);
152
218
  const exists = await store.doesIndexExist();
@@ -199,9 +265,17 @@ class ElasticVectorSearch extends base_js_1.VectorStore {
199
265
  }
200
266
  return result;
201
267
  }
268
+ /**
269
+ * Method to check if an index exists in the Elasticsearch database.
270
+ * @returns A promise that resolves with a boolean indicating whether the index exists.
271
+ */
202
272
  async doesIndexExist() {
203
273
  return await this.client.indices.exists({ index: this.indexName });
204
274
  }
275
+ /**
276
+ * Method to delete an index from the Elasticsearch database if it exists.
277
+ * @returns A promise that resolves when the deletion is complete.
278
+ */
205
279
  async deleteIfExists() {
206
280
  const indexExists = await this.doesIndexExist();
207
281
  if (!indexExists)
@@ -2,8 +2,18 @@ import { Client } from "@elastic/elasticsearch";
2
2
  import { Embeddings } from "../embeddings/base.js";
3
3
  import { Document } from "../document.js";
4
4
  import { VectorStore } from "./base.js";
5
+ /**
6
+ * Type representing the k-nearest neighbors (k-NN) engine used in
7
+ * Elasticsearch.
8
+ */
5
9
  type ElasticKnnEngine = "hnsw";
10
+ /**
11
+ * Type representing the similarity measure used in Elasticsearch.
12
+ */
6
13
  type ElasticSimilarity = "l2_norm" | "dot_product" | "cosine";
14
+ /**
15
+ * Interface defining the options for vector search in Elasticsearch.
16
+ */
7
17
  interface VectorSearchOptions {
8
18
  readonly engine?: ElasticKnnEngine;
9
19
  readonly similarity?: ElasticSimilarity;
@@ -11,12 +21,25 @@ interface VectorSearchOptions {
11
21
  readonly efConstruction?: number;
12
22
  readonly candidates?: number;
13
23
  }
24
+ /**
25
+ * Interface defining the arguments required to create an Elasticsearch
26
+ * client.
27
+ */
14
28
  export interface ElasticClientArgs {
15
29
  readonly client: Client;
16
30
  readonly indexName?: string;
17
31
  readonly vectorSearchOptions?: VectorSearchOptions;
18
32
  }
33
+ /**
34
+ * Type representing a filter object in Elasticsearch.
35
+ */
19
36
  type ElasticFilter = object;
37
+ /**
38
+ * Class for interacting with an Elasticsearch database. It extends the
39
+ * VectorStore base class and provides methods for adding documents and
40
+ * vectors to the Elasticsearch database, performing similarity searches,
41
+ * deleting documents, and more.
42
+ */
20
43
  export declare class ElasticVectorSearch extends VectorStore {
21
44
  FilterType: ElasticFilter;
22
45
  private readonly client;
@@ -28,22 +51,89 @@ export declare class ElasticVectorSearch extends VectorStore {
28
51
  private readonly candidates;
29
52
  _vectorstoreType(): string;
30
53
  constructor(embeddings: Embeddings, args: ElasticClientArgs);
54
+ /**
55
+ * Method to add documents to the Elasticsearch database. It first
56
+ * converts the documents to vectors using the embeddings, then adds the
57
+ * vectors to the database.
58
+ * @param documents The documents to add to the database.
59
+ * @param options Optional parameter that can contain the IDs for the documents.
60
+ * @returns A promise that resolves with the IDs of the added documents.
61
+ */
31
62
  addDocuments(documents: Document[], options?: {
32
63
  ids?: string[];
33
64
  }): Promise<string[]>;
65
+ /**
66
+ * Method to add vectors to the Elasticsearch database. It ensures the
67
+ * index exists, then adds the vectors and their corresponding documents
68
+ * to the database.
69
+ * @param vectors The vectors to add to the database.
70
+ * @param documents The documents corresponding to the vectors.
71
+ * @param options Optional parameter that can contain the IDs for the documents.
72
+ * @returns A promise that resolves with the IDs of the added documents.
73
+ */
34
74
  addVectors(vectors: number[][], documents: Document[], options?: {
35
75
  ids?: string[];
36
76
  }): Promise<string[]>;
77
+ /**
78
+ * Method to perform a similarity search in the Elasticsearch database
79
+ * using a vector. It returns the k most similar documents along with
80
+ * their similarity scores.
81
+ * @param query The query vector.
82
+ * @param k The number of most similar documents to return.
83
+ * @param filter Optional filter to apply to the search.
84
+ * @returns A promise that resolves with an array of tuples, where each tuple contains a Document and its similarity score.
85
+ */
37
86
  similaritySearchVectorWithScore(query: number[], k: number, filter?: ElasticFilter | undefined): Promise<[Document, number][]>;
87
+ /**
88
+ * Method to delete documents from the Elasticsearch database.
89
+ * @param params Object containing the IDs of the documents to delete.
90
+ * @returns A promise that resolves when the deletion is complete.
91
+ */
38
92
  delete(params: {
39
93
  ids: string[];
40
94
  }): Promise<void>;
95
+ /**
96
+ * Static method to create an ElasticVectorSearch instance from texts. It
97
+ * creates Document instances from the texts and their corresponding
98
+ * metadata, then calls the fromDocuments method to create the
99
+ * ElasticVectorSearch instance.
100
+ * @param texts The texts to create the ElasticVectorSearch instance from.
101
+ * @param metadatas The metadata corresponding to the texts.
102
+ * @param embeddings The embeddings to use for the documents.
103
+ * @param args The arguments to create the Elasticsearch client.
104
+ * @returns A promise that resolves with the created ElasticVectorSearch instance.
105
+ */
41
106
  static fromTexts(texts: string[], metadatas: object[] | object, embeddings: Embeddings, args: ElasticClientArgs): Promise<ElasticVectorSearch>;
107
+ /**
108
+ * Static method to create an ElasticVectorSearch instance from Document
109
+ * instances. It adds the documents to the Elasticsearch database, then
110
+ * returns the ElasticVectorSearch instance.
111
+ * @param docs The Document instances to create the ElasticVectorSearch instance from.
112
+ * @param embeddings The embeddings to use for the documents.
113
+ * @param dbConfig The configuration for the Elasticsearch database.
114
+ * @returns A promise that resolves with the created ElasticVectorSearch instance.
115
+ */
42
116
  static fromDocuments(docs: Document[], embeddings: Embeddings, dbConfig: ElasticClientArgs): Promise<ElasticVectorSearch>;
117
+ /**
118
+ * Static method to create an ElasticVectorSearch instance from an
119
+ * existing index in the Elasticsearch database. It checks if the index
120
+ * exists, then returns the ElasticVectorSearch instance if it does.
121
+ * @param embeddings The embeddings to use for the documents.
122
+ * @param dbConfig The configuration for the Elasticsearch database.
123
+ * @returns A promise that resolves with the created ElasticVectorSearch instance if the index exists, otherwise it throws an error.
124
+ */
43
125
  static fromExistingIndex(embeddings: Embeddings, dbConfig: ElasticClientArgs): Promise<ElasticVectorSearch>;
44
126
  private ensureIndexExists;
45
127
  private buildMetadataTerms;
128
+ /**
129
+ * Method to check if an index exists in the Elasticsearch database.
130
+ * @returns A promise that resolves with a boolean indicating whether the index exists.
131
+ */
46
132
  doesIndexExist(): Promise<boolean>;
133
+ /**
134
+ * Method to delete an index from the Elasticsearch database if it exists.
135
+ * @returns A promise that resolves when the deletion is complete.
136
+ */
47
137
  deleteIfExists(): Promise<void>;
48
138
  }
49
139
  export {};
@@ -1,6 +1,12 @@
1
1
  import * as uuid from "uuid";
2
2
  import { Document } from "../document.js";
3
3
  import { VectorStore } from "./base.js";
4
+ /**
5
+ * Class for interacting with an Elasticsearch database. It extends the
6
+ * VectorStore base class and provides methods for adding documents and
7
+ * vectors to the Elasticsearch database, performing similarity searches,
8
+ * deleting documents, and more.
9
+ */
4
10
  export class ElasticVectorSearch extends VectorStore {
5
11
  _vectorstoreType() {
6
12
  return "elasticsearch";
@@ -57,10 +63,27 @@ export class ElasticVectorSearch extends VectorStore {
57
63
  this.client = args.client;
58
64
  this.indexName = args.indexName ?? "documents";
59
65
  }
66
+ /**
67
+ * Method to add documents to the Elasticsearch database. It first
68
+ * converts the documents to vectors using the embeddings, then adds the
69
+ * vectors to the database.
70
+ * @param documents The documents to add to the database.
71
+ * @param options Optional parameter that can contain the IDs for the documents.
72
+ * @returns A promise that resolves with the IDs of the added documents.
73
+ */
60
74
  async addDocuments(documents, options) {
61
75
  const texts = documents.map(({ pageContent }) => pageContent);
62
76
  return this.addVectors(await this.embeddings.embedDocuments(texts), documents, options);
63
77
  }
78
+ /**
79
+ * Method to add vectors to the Elasticsearch database. It ensures the
80
+ * index exists, then adds the vectors and their corresponding documents
81
+ * to the database.
82
+ * @param vectors The vectors to add to the database.
83
+ * @param documents The documents corresponding to the vectors.
84
+ * @param options Optional parameter that can contain the IDs for the documents.
85
+ * @returns A promise that resolves with the IDs of the added documents.
86
+ */
64
87
  async addVectors(vectors, documents, options) {
65
88
  await this.ensureIndexExists(vectors[0].length, this.engine, this.similarity, this.efConstruction, this.m);
66
89
  const documentIds = options?.ids ?? Array.from({ length: vectors.length }, () => uuid.v4());
@@ -80,9 +103,19 @@ export class ElasticVectorSearch extends VectorStore {
80
103
  await this.client.bulk({ refresh: true, operations });
81
104
  return documentIds;
82
105
  }
106
+ /**
107
+ * Method to perform a similarity search in the Elasticsearch database
108
+ * using a vector. It returns the k most similar documents along with
109
+ * their similarity scores.
110
+ * @param query The query vector.
111
+ * @param k The number of most similar documents to return.
112
+ * @param filter Optional filter to apply to the search.
113
+ * @returns A promise that resolves with an array of tuples, where each tuple contains a Document and its similarity score.
114
+ */
83
115
  async similaritySearchVectorWithScore(query, k, filter) {
84
116
  const result = await this.client.search({
85
117
  index: this.indexName,
118
+ size: k,
86
119
  knn: {
87
120
  field: "embedding",
88
121
  query_vector: query,
@@ -100,6 +133,11 @@ export class ElasticVectorSearch extends VectorStore {
100
133
  hit._score,
101
134
  ]);
102
135
  }
136
+ /**
137
+ * Method to delete documents from the Elasticsearch database.
138
+ * @param params Object containing the IDs of the documents to delete.
139
+ * @returns A promise that resolves when the deletion is complete.
140
+ */
103
141
  async delete(params) {
104
142
  const operations = params.ids.map((id) => ({
105
143
  delete: {
@@ -109,6 +147,17 @@ export class ElasticVectorSearch extends VectorStore {
109
147
  }));
110
148
  await this.client.bulk({ refresh: true, operations });
111
149
  }
150
+ /**
151
+ * Static method to create an ElasticVectorSearch instance from texts. It
152
+ * creates Document instances from the texts and their corresponding
153
+ * metadata, then calls the fromDocuments method to create the
154
+ * ElasticVectorSearch instance.
155
+ * @param texts The texts to create the ElasticVectorSearch instance from.
156
+ * @param metadatas The metadata corresponding to the texts.
157
+ * @param embeddings The embeddings to use for the documents.
158
+ * @param args The arguments to create the Elasticsearch client.
159
+ * @returns A promise that resolves with the created ElasticVectorSearch instance.
160
+ */
112
161
  static fromTexts(texts, metadatas, embeddings, args) {
113
162
  const documents = texts.map((text, idx) => {
114
163
  const metadata = Array.isArray(metadatas) ? metadatas[idx] : metadatas;
@@ -116,11 +165,28 @@ export class ElasticVectorSearch extends VectorStore {
116
165
  });
117
166
  return ElasticVectorSearch.fromDocuments(documents, embeddings, args);
118
167
  }
168
+ /**
169
+ * Static method to create an ElasticVectorSearch instance from Document
170
+ * instances. It adds the documents to the Elasticsearch database, then
171
+ * returns the ElasticVectorSearch instance.
172
+ * @param docs The Document instances to create the ElasticVectorSearch instance from.
173
+ * @param embeddings The embeddings to use for the documents.
174
+ * @param dbConfig The configuration for the Elasticsearch database.
175
+ * @returns A promise that resolves with the created ElasticVectorSearch instance.
176
+ */
119
177
  static async fromDocuments(docs, embeddings, dbConfig) {
120
178
  const store = new ElasticVectorSearch(embeddings, dbConfig);
121
179
  await store.addDocuments(docs).then(() => store);
122
180
  return store;
123
181
  }
182
+ /**
183
+ * Static method to create an ElasticVectorSearch instance from an
184
+ * existing index in the Elasticsearch database. It checks if the index
185
+ * exists, then returns the ElasticVectorSearch instance if it does.
186
+ * @param embeddings The embeddings to use for the documents.
187
+ * @param dbConfig The configuration for the Elasticsearch database.
188
+ * @returns A promise that resolves with the created ElasticVectorSearch instance if the index exists, otherwise it throws an error.
189
+ */
124
190
  static async fromExistingIndex(embeddings, dbConfig) {
125
191
  const store = new ElasticVectorSearch(embeddings, dbConfig);
126
192
  const exists = await store.doesIndexExist();
@@ -173,9 +239,17 @@ export class ElasticVectorSearch extends VectorStore {
173
239
  }
174
240
  return result;
175
241
  }
242
+ /**
243
+ * Method to check if an index exists in the Elasticsearch database.
244
+ * @returns A promise that resolves with a boolean indicating whether the index exists.
245
+ */
176
246
  async doesIndexExist() {
177
247
  return await this.client.indices.exists({ index: this.indexName });
178
248
  }
249
+ /**
250
+ * Method to delete an index from the Elasticsearch database if it exists.
251
+ * @returns A promise that resolves when the deletion is complete.
252
+ */
179
253
  async deleteIfExists() {
180
254
  const indexExists = await this.doesIndexExist();
181
255
  if (!indexExists)
@@ -28,6 +28,11 @@ const uuid = __importStar(require("uuid"));
28
28
  const base_js_1 = require("./base.cjs");
29
29
  const document_js_1 = require("../document.cjs");
30
30
  const in_memory_js_1 = require("../stores/doc/in_memory.cjs");
31
+ /**
32
+ * A class that wraps the FAISS (Facebook AI Similarity Search) vector
33
+ * database for efficient similarity search and clustering of dense
34
+ * vectors.
35
+ */
31
36
  class FaissStore extends base_js_1.SaveableVectorStore {
32
37
  _vectorstoreType() {
33
38
  return "faiss";
@@ -70,6 +75,11 @@ class FaissStore extends base_js_1.SaveableVectorStore {
70
75
  this.embeddings = embeddings;
71
76
  this.docstore = args?.docstore ?? new in_memory_js_1.SynchronousInMemoryDocstore();
72
77
  }
78
+ /**
79
+ * Adds an array of Document objects to the store.
80
+ * @param documents An array of Document objects.
81
+ * @returns A Promise that resolves when the documents have been added.
82
+ */
73
83
  async addDocuments(documents) {
74
84
  const texts = documents.map(({ pageContent }) => pageContent);
75
85
  return this.addVectors(await this.embeddings.embedDocuments(texts), documents);
@@ -83,6 +93,13 @@ class FaissStore extends base_js_1.SaveableVectorStore {
83
93
  set index(index) {
84
94
  this._index = index;
85
95
  }
96
+ /**
97
+ * Adds an array of vectors and their corresponding Document objects to
98
+ * the store.
99
+ * @param vectors An array of vectors.
100
+ * @param documents An array of Document objects corresponding to the vectors.
101
+ * @returns A Promise that resolves with an array of document IDs when the vectors and documents have been added.
102
+ */
86
103
  async addVectors(vectors, documents) {
87
104
  if (vectors.length === 0) {
88
105
  return [];
@@ -111,6 +128,13 @@ class FaissStore extends base_js_1.SaveableVectorStore {
111
128
  }
112
129
  return documentIds;
113
130
  }
131
+ /**
132
+ * Performs a similarity search in the vector store using a query vector
133
+ * and returns the top k results along with their scores.
134
+ * @param query A query vector.
135
+ * @param k The number of top results to return.
136
+ * @returns A Promise that resolves with an array of tuples, each containing a Document and its corresponding score.
137
+ */
114
138
  async similaritySearchVectorWithScore(query, k) {
115
139
  const d = this.index.getDimension();
116
140
  if (query.length !== d) {
@@ -128,6 +152,11 @@ class FaissStore extends base_js_1.SaveableVectorStore {
128
152
  return [this.docstore.search(uuid), result.distances[index]];
129
153
  });
130
154
  }
155
+ /**
156
+ * Saves the current state of the FaissStore to a specified directory.
157
+ * @param directory The directory to save the state to.
158
+ * @returns A Promise that resolves when the state has been saved.
159
+ */
131
160
  async save(directory) {
132
161
  const fs = await import("node:fs/promises");
133
162
  const path = await import("node:path");
@@ -140,6 +169,11 @@ class FaissStore extends base_js_1.SaveableVectorStore {
140
169
  ])),
141
170
  ]);
142
171
  }
172
+ /**
173
+ * Merges the current FaissStore with another FaissStore.
174
+ * @param targetIndex The FaissStore to merge with.
175
+ * @returns A Promise that resolves with an array of document IDs when the merge is complete.
176
+ */
143
177
  async mergeFrom(targetIndex) {
144
178
  const targetIndexDimensions = targetIndex.index.getDimension();
145
179
  if (!this._index) {
@@ -166,6 +200,12 @@ class FaissStore extends base_js_1.SaveableVectorStore {
166
200
  this.index.mergeFrom(targetIndex.index);
167
201
  return documentIds;
168
202
  }
203
+ /**
204
+ * Loads a FaissStore from a specified directory.
205
+ * @param directory The directory to load the FaissStore from.
206
+ * @param embeddings An Embeddings object.
207
+ * @returns A Promise that resolves with a new FaissStore instance.
208
+ */
169
209
  static async load(directory, embeddings) {
170
210
  const fs = await import("node:fs/promises");
171
211
  const path = await import("node:path");
@@ -243,6 +283,15 @@ class FaissStore extends base_js_1.SaveableVectorStore {
243
283
  mapping: store.mapping,
244
284
  });
245
285
  }
286
+ /**
287
+ * Creates a new FaissStore from an array of texts, their corresponding
288
+ * metadata, and an Embeddings object.
289
+ * @param texts An array of texts.
290
+ * @param metadatas An array of metadata corresponding to the texts, or a single metadata object to be used for all texts.
291
+ * @param embeddings An Embeddings object.
292
+ * @param dbConfig An optional configuration object for the document store.
293
+ * @returns A Promise that resolves with a new FaissStore instance.
294
+ */
246
295
  static async fromTexts(texts, metadatas, embeddings, dbConfig) {
247
296
  const docs = [];
248
297
  for (let i = 0; i < texts.length; i += 1) {
@@ -255,6 +304,14 @@ class FaissStore extends base_js_1.SaveableVectorStore {
255
304
  }
256
305
  return this.fromDocuments(docs, embeddings, dbConfig);
257
306
  }
307
+ /**
308
+ * Creates a new FaissStore from an array of Document objects and an
309
+ * Embeddings object.
310
+ * @param docs An array of Document objects.
311
+ * @param embeddings An Embeddings object.
312
+ * @param dbConfig An optional configuration object for the document store.
313
+ * @returns A Promise that resolves with a new FaissStore instance.
314
+ */
258
315
  static async fromDocuments(docs, embeddings, dbConfig) {
259
316
  const args = {
260
317
  docstore: dbConfig?.docstore,
@@ -263,6 +320,14 @@ class FaissStore extends base_js_1.SaveableVectorStore {
263
320
  await instance.addDocuments(docs);
264
321
  return instance;
265
322
  }
323
+ /**
324
+ * Creates a new FaissStore from an existing FaissStore and an Embeddings
325
+ * object.
326
+ * @param targetIndex An existing FaissStore.
327
+ * @param embeddings An Embeddings object.
328
+ * @param dbConfig An optional configuration object for the document store.
329
+ * @returns A Promise that resolves with a new FaissStore instance.
330
+ */
266
331
  static async fromIndex(targetIndex, embeddings, dbConfig) {
267
332
  const args = {
268
333
  docstore: dbConfig?.docstore,