langchain 0.0.4 → 0.0.6

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 (387) hide show
  1. package/README.md +33 -0
  2. package/agents.d.ts +1 -0
  3. package/agents.js +1 -0
  4. package/chains.d.ts +1 -0
  5. package/chains.js +1 -0
  6. package/dist/agents/agent.d.ts +96 -0
  7. package/dist/agents/agent.js +151 -0
  8. package/dist/agents/agent.js.map +1 -0
  9. package/dist/{esm/agents → agents}/executor.d.ts +5 -0
  10. package/dist/agents/executor.js +99 -0
  11. package/dist/agents/executor.js.map +1 -0
  12. package/dist/{cjs/agents → agents}/helpers.d.ts +0 -0
  13. package/dist/agents/helpers.js +21 -0
  14. package/dist/agents/helpers.js.map +1 -0
  15. package/dist/{cjs/agents → agents}/index.d.ts +1 -0
  16. package/dist/{cjs/agents → agents}/index.js +5 -1
  17. package/dist/agents/index.js.map +1 -0
  18. package/dist/agents/initialize.d.ts +4 -0
  19. package/dist/agents/initialize.js +19 -0
  20. package/dist/agents/initialize.js.map +1 -0
  21. package/dist/{cjs/agents → agents}/load.d.ts +0 -0
  22. package/dist/agents/load.js +19 -0
  23. package/dist/agents/load.js.map +1 -0
  24. package/dist/{esm/agents → agents}/mrkl/index.d.ts +18 -1
  25. package/dist/{cjs/agents → agents}/mrkl/index.js +26 -34
  26. package/dist/agents/mrkl/index.js.map +1 -0
  27. package/dist/{cjs/agents → agents}/mrkl/prompt.d.ts +0 -0
  28. package/dist/{cjs/agents → agents}/mrkl/prompt.js +0 -1
  29. package/dist/agents/mrkl/prompt.js.map +1 -0
  30. package/dist/{cjs/agents → agents}/tests/agent.test.d.ts +0 -0
  31. package/dist/agents/tests/agent.test.js +35 -0
  32. package/dist/agents/tests/agent.test.js.map +1 -0
  33. package/dist/{cjs/chains/tests/llm_chain.test.d.ts → agents/tests/calculator.test.d.ts} +0 -0
  34. package/dist/agents/tests/calculator.test.js +30 -0
  35. package/dist/agents/tests/calculator.test.js.map +1 -0
  36. package/dist/agents/tools/base.d.ts +6 -0
  37. package/dist/agents/tools/base.js +15 -0
  38. package/dist/agents/tools/base.js.map +1 -0
  39. package/dist/agents/tools/calculator.d.ts +6 -0
  40. package/dist/agents/tools/calculator.js +33 -0
  41. package/dist/agents/tools/calculator.js.map +1 -0
  42. package/dist/agents/tools/index.d.ts +3 -0
  43. package/dist/agents/tools/index.js +10 -0
  44. package/dist/agents/tools/index.js.map +1 -0
  45. package/dist/{cjs/agents → agents}/tools/llm-math.d.ts +0 -0
  46. package/dist/{cjs/agents → agents}/tools/llm-math.js +0 -0
  47. package/dist/{cjs/agents → agents}/tools/llm-math.js.map +1 -1
  48. package/dist/agents/tools/serpapi.d.ts +18 -0
  49. package/dist/agents/tools/serpapi.js +93 -0
  50. package/dist/agents/tools/serpapi.js.map +1 -0
  51. package/dist/{cjs/agents → agents}/types.d.ts +0 -0
  52. package/dist/{cjs/agents → agents}/types.js +0 -0
  53. package/dist/{cjs/agents → agents}/types.js.map +1 -1
  54. package/dist/{cjs/cache.d.ts → cache.d.ts} +0 -0
  55. package/dist/{cjs/cache.js → cache.js} +0 -0
  56. package/dist/cache.js.map +1 -0
  57. package/dist/chains/base.d.ts +42 -0
  58. package/dist/chains/base.js +67 -0
  59. package/dist/chains/base.js.map +1 -0
  60. package/dist/chains/chat_vector_db_chain.d.ts +41 -0
  61. package/dist/chains/chat_vector_db_chain.js +146 -0
  62. package/dist/chains/chat_vector_db_chain.js.map +1 -0
  63. package/dist/chains/combine_docs_chain.d.ts +35 -0
  64. package/dist/chains/combine_docs_chain.js +75 -0
  65. package/dist/chains/combine_docs_chain.js.map +1 -0
  66. package/dist/chains/conversation.d.ts +12 -0
  67. package/dist/chains/conversation.js +29 -0
  68. package/dist/chains/conversation.js.map +1 -0
  69. package/dist/chains/index.d.ts +7 -0
  70. package/dist/chains/index.js +19 -0
  71. package/dist/chains/index.js.map +1 -0
  72. package/dist/{cjs/chains → chains}/llm_chain.d.ts +36 -1
  73. package/dist/chains/llm_chain.js +115 -0
  74. package/dist/chains/llm_chain.js.map +1 -0
  75. package/dist/chains/load.d.ts +21 -0
  76. package/dist/chains/load.js +37 -0
  77. package/dist/chains/load.js.map +1 -0
  78. package/dist/chains/question_answering/load.d.ts +3 -0
  79. package/dist/chains/question_answering/load.js +13 -0
  80. package/dist/chains/question_answering/load.js.map +1 -0
  81. package/dist/chains/question_answering/stuff_prompts.d.ts +2 -0
  82. package/dist/chains/question_answering/stuff_prompts.js +10 -0
  83. package/dist/chains/question_answering/stuff_prompts.js.map +1 -0
  84. package/dist/{cjs/prompt → chains/question_answering}/tests/load.test.d.ts +0 -0
  85. package/dist/chains/question_answering/tests/load.test.js +18 -0
  86. package/dist/chains/question_answering/tests/load.test.js.map +1 -0
  87. package/dist/{cjs/llms/tests/openai.test.d.ts → chains/tests/chat_vector_db_qa_chain.test.d.ts} +0 -0
  88. package/dist/chains/tests/chat_vector_db_qa_chain.test.js +35 -0
  89. package/dist/chains/tests/chat_vector_db_qa_chain.test.js.map +1 -0
  90. package/dist/{cjs/prompt/tests/template.test.d.ts → chains/tests/combine_docs_chain.test.d.ts} +0 -0
  91. package/dist/chains/tests/combine_docs_chain.test.js +39 -0
  92. package/dist/chains/tests/combine_docs_chain.test.js.map +1 -0
  93. package/dist/{esm/chains → chains}/tests/llm_chain.test.d.ts +0 -0
  94. package/dist/chains/tests/llm_chain.test.js +29 -0
  95. package/dist/chains/tests/llm_chain.test.js.map +1 -0
  96. package/dist/{esm/agents/tests/agent.test.d.ts → chains/tests/vector_db_qa_chain.test.d.ts} +0 -0
  97. package/dist/chains/tests/vector_db_qa_chain.test.js +46 -0
  98. package/dist/chains/tests/vector_db_qa_chain.test.js.map +1 -0
  99. package/dist/chains/vector_db_qa.d.ts +36 -0
  100. package/dist/chains/vector_db_qa.js +85 -0
  101. package/dist/chains/vector_db_qa.js.map +1 -0
  102. package/dist/document.d.ts +13 -0
  103. package/dist/document.js +28 -0
  104. package/dist/document.js.map +1 -0
  105. package/dist/embeddings/base.d.ts +4 -0
  106. package/dist/embeddings/base.js +7 -0
  107. package/dist/embeddings/base.js.map +1 -0
  108. package/dist/embeddings/index.d.ts +1 -0
  109. package/dist/embeddings/index.js +6 -0
  110. package/dist/embeddings/index.js.map +1 -0
  111. package/dist/embeddings/openai.d.ts +20 -0
  112. package/dist/embeddings/openai.js +86 -0
  113. package/dist/embeddings/openai.js.map +1 -0
  114. package/dist/{esm/llms → embeddings}/tests/openai.test.d.ts +0 -0
  115. package/dist/embeddings/tests/openai.test.js +17 -0
  116. package/dist/embeddings/tests/openai.test.js.map +1 -0
  117. package/dist/{cjs/index.d.ts → index.d.ts} +1 -1
  118. package/dist/{cjs/index.js → index.js} +4 -4
  119. package/dist/index.js.map +1 -0
  120. package/dist/llms/base.d.ts +64 -0
  121. package/dist/llms/base.js +164 -0
  122. package/dist/llms/base.js.map +1 -0
  123. package/dist/llms/cohere.d.ts +24 -0
  124. package/dist/llms/cohere.js +55 -0
  125. package/dist/llms/cohere.js.map +1 -0
  126. package/dist/{esm/llms → llms}/index.d.ts +20 -0
  127. package/dist/{cjs/llms → llms}/index.js +3 -1
  128. package/dist/llms/index.js.map +1 -0
  129. package/dist/llms/load.d.ts +11 -0
  130. package/dist/llms/load.js +17 -0
  131. package/dist/llms/load.js.map +1 -0
  132. package/dist/llms/openai.d.ts +125 -0
  133. package/dist/{cjs/llms → llms}/openai.js +96 -58
  134. package/dist/llms/openai.js.map +1 -0
  135. package/dist/{esm/prompt/tests/load.test.d.ts → llms/tests/cohere.test.d.ts} +0 -0
  136. package/dist/llms/tests/cohere.test.js +10 -0
  137. package/dist/llms/tests/cohere.test.js.map +1 -0
  138. package/dist/{esm/prompt/tests/template.test.d.ts → llms/tests/openai.test.d.ts} +0 -0
  139. package/dist/llms/tests/openai.test.js +10 -0
  140. package/dist/llms/tests/openai.test.js.map +1 -0
  141. package/dist/memory/base.d.ts +7 -0
  142. package/dist/memory/base.js +7 -0
  143. package/dist/memory/base.js.map +1 -0
  144. package/dist/memory/buffer_memory.d.ts +15 -0
  145. package/dist/memory/buffer_memory.js +57 -0
  146. package/dist/memory/buffer_memory.js.map +1 -0
  147. package/dist/memory/index.d.ts +2 -0
  148. package/dist/memory/index.js +8 -0
  149. package/dist/memory/index.js.map +1 -0
  150. package/dist/memory/tests/buffer_memory.test.d.ts +1 -0
  151. package/dist/memory/tests/buffer_memory.test.js +17 -0
  152. package/dist/memory/tests/buffer_memory.test.js.map +1 -0
  153. package/dist/prompts/base.d.ts +58 -0
  154. package/dist/prompts/base.js +53 -0
  155. package/dist/prompts/base.js.map +1 -0
  156. package/dist/{esm/prompt → prompts}/few_shot.d.ts +36 -1
  157. package/dist/{cjs/prompt → prompts}/few_shot.js +27 -33
  158. package/dist/prompts/few_shot.js.map +1 -0
  159. package/dist/{cjs/prompt → prompts}/index.d.ts +1 -0
  160. package/dist/{cjs/prompt → prompts}/index.js +3 -1
  161. package/dist/prompts/index.js.map +1 -0
  162. package/dist/prompts/load.d.ts +19 -0
  163. package/dist/prompts/load.js +33 -0
  164. package/dist/prompts/load.js.map +1 -0
  165. package/dist/{cjs/prompt → prompts}/parser.d.ts +30 -0
  166. package/dist/{cjs/prompt → prompts}/parser.js +21 -0
  167. package/dist/prompts/parser.js.map +1 -0
  168. package/dist/prompts/prompt.d.ts +76 -0
  169. package/dist/{cjs/prompt → prompts}/prompt.js +38 -18
  170. package/dist/prompts/prompt.js.map +1 -0
  171. package/dist/{cjs/prompt → prompts}/template.d.ts +0 -0
  172. package/dist/{cjs/prompt → prompts}/template.js +0 -0
  173. package/dist/prompts/template.js.map +1 -0
  174. package/dist/prompts/tests/load.test.d.ts +1 -0
  175. package/dist/prompts/tests/load.test.js +21 -0
  176. package/dist/prompts/tests/load.test.js.map +1 -0
  177. package/dist/prompts/tests/template.test.d.ts +1 -0
  178. package/dist/{cjs/prompt → prompts}/tests/template.test.js +0 -0
  179. package/dist/prompts/tests/template.test.js.map +1 -0
  180. package/dist/text_splitter.d.ts +32 -0
  181. package/dist/text_splitter.js +167 -0
  182. package/dist/text_splitter.js.map +1 -0
  183. package/dist/util/hub.d.ts +2 -0
  184. package/dist/{cjs/util → util}/hub.js +5 -14
  185. package/dist/util/hub.js.map +1 -0
  186. package/dist/{esm/util → util}/index.d.ts +1 -0
  187. package/dist/{cjs/util → util}/index.js +13 -25
  188. package/dist/util/index.js.map +1 -0
  189. package/dist/vectorstores/base.d.ts +18 -0
  190. package/dist/vectorstores/base.js +38 -0
  191. package/dist/vectorstores/base.js.map +1 -0
  192. package/dist/vectorstores/hnswlib.d.ts +19 -0
  193. package/dist/vectorstores/hnswlib.js +129 -0
  194. package/dist/vectorstores/hnswlib.js.map +1 -0
  195. package/dist/vectorstores/index.d.ts +1 -0
  196. package/dist/vectorstores/index.js +6 -0
  197. package/dist/vectorstores/index.js.map +1 -0
  198. package/dist/vectorstores/tests/hnswlib.test.d.ts +1 -0
  199. package/dist/vectorstores/tests/hnswlib.test.js +44 -0
  200. package/dist/vectorstores/tests/hnswlib.test.js.map +1 -0
  201. package/document.d.ts +1 -0
  202. package/document.js +1 -0
  203. package/embeddings.d.ts +1 -0
  204. package/embeddings.js +1 -0
  205. package/llms.d.ts +1 -0
  206. package/llms.js +1 -0
  207. package/memory.d.ts +1 -0
  208. package/memory.js +1 -0
  209. package/package.json +53 -44
  210. package/prompts.d.ts +1 -0
  211. package/prompts.js +1 -0
  212. package/text_splitter.d.ts +1 -0
  213. package/text_splitter.js +1 -0
  214. package/tools.d.ts +1 -0
  215. package/tools.js +1 -0
  216. package/vectorstores.d.ts +1 -0
  217. package/vectorstores.js +1 -0
  218. package/dist/cjs/agents/agent.d.ts +0 -42
  219. package/dist/cjs/agents/agent.js +0 -129
  220. package/dist/cjs/agents/agent.js.map +0 -1
  221. package/dist/cjs/agents/executor.d.ts +0 -27
  222. package/dist/cjs/agents/executor.js +0 -105
  223. package/dist/cjs/agents/executor.js.map +0 -1
  224. package/dist/cjs/agents/helpers.js +0 -30
  225. package/dist/cjs/agents/helpers.js.map +0 -1
  226. package/dist/cjs/agents/index.js.map +0 -1
  227. package/dist/cjs/agents/load.js +0 -28
  228. package/dist/cjs/agents/load.js.map +0 -1
  229. package/dist/cjs/agents/mrkl/index.d.ts +0 -33
  230. package/dist/cjs/agents/mrkl/index.js.map +0 -1
  231. package/dist/cjs/agents/mrkl/prompt.js.map +0 -1
  232. package/dist/cjs/agents/tests/agent.test.js +0 -31
  233. package/dist/cjs/agents/tests/agent.test.js.map +0 -1
  234. package/dist/cjs/agents/tools/index.d.ts +0 -7
  235. package/dist/cjs/agents/tools/index.js +0 -6
  236. package/dist/cjs/agents/tools/index.js.map +0 -1
  237. package/dist/cjs/agents/tools/serpapi.d.ts +0 -3
  238. package/dist/cjs/agents/tools/serpapi.js +0 -50
  239. package/dist/cjs/agents/tools/serpapi.js.map +0 -1
  240. package/dist/cjs/cache.js.map +0 -1
  241. package/dist/cjs/chains/base.d.ts +0 -12
  242. package/dist/cjs/chains/base.js +0 -23
  243. package/dist/cjs/chains/base.js.map +0 -1
  244. package/dist/cjs/chains/index.d.ts +0 -3
  245. package/dist/cjs/chains/index.js +0 -10
  246. package/dist/cjs/chains/index.js.map +0 -1
  247. package/dist/cjs/chains/llm_chain.js +0 -83
  248. package/dist/cjs/chains/llm_chain.js.map +0 -1
  249. package/dist/cjs/chains/llm_math_chain.d.ts +0 -0
  250. package/dist/cjs/chains/llm_math_chain.js +0 -129
  251. package/dist/cjs/chains/llm_math_chain.js.map +0 -1
  252. package/dist/cjs/chains/load.d.ts +0 -2
  253. package/dist/cjs/chains/load.js +0 -29
  254. package/dist/cjs/chains/load.js.map +0 -1
  255. package/dist/cjs/chains/tests/llm_chain.test.js +0 -32
  256. package/dist/cjs/chains/tests/llm_chain.test.js.map +0 -1
  257. package/dist/cjs/index.js.map +0 -1
  258. package/dist/cjs/llms/base.d.ts +0 -23
  259. package/dist/cjs/llms/base.js +0 -159
  260. package/dist/cjs/llms/base.js.map +0 -1
  261. package/dist/cjs/llms/index.d.ts +0 -18
  262. package/dist/cjs/llms/index.js.map +0 -1
  263. package/dist/cjs/llms/load.d.ts +0 -3
  264. package/dist/cjs/llms/load.js +0 -9
  265. package/dist/cjs/llms/load.js.map +0 -1
  266. package/dist/cjs/llms/openai.d.ts +0 -63
  267. package/dist/cjs/llms/openai.js.map +0 -1
  268. package/dist/cjs/llms/tests/openai.test.js +0 -19
  269. package/dist/cjs/llms/tests/openai.test.js.map +0 -1
  270. package/dist/cjs/prompt/base.d.ts +0 -19
  271. package/dist/cjs/prompt/base.js +0 -54
  272. package/dist/cjs/prompt/base.js.map +0 -1
  273. package/dist/cjs/prompt/few_shot.d.ts +0 -47
  274. package/dist/cjs/prompt/few_shot.js.map +0 -1
  275. package/dist/cjs/prompt/index.js.map +0 -1
  276. package/dist/cjs/prompt/load.d.ts +0 -2
  277. package/dist/cjs/prompt/load.js +0 -25
  278. package/dist/cjs/prompt/load.js.map +0 -1
  279. package/dist/cjs/prompt/parser.js.map +0 -1
  280. package/dist/cjs/prompt/prompt.d.ts +0 -28
  281. package/dist/cjs/prompt/prompt.js.map +0 -1
  282. package/dist/cjs/prompt/template.js.map +0 -1
  283. package/dist/cjs/prompt/tests/load.test.js +0 -30
  284. package/dist/cjs/prompt/tests/load.test.js.map +0 -1
  285. package/dist/cjs/prompt/tests/template.test.js.map +0 -1
  286. package/dist/cjs/util/hub.d.ts +0 -1
  287. package/dist/cjs/util/hub.js.map +0 -1
  288. package/dist/cjs/util/index.d.ts +0 -12
  289. package/dist/cjs/util/index.js.map +0 -1
  290. package/dist/esm/agents/agent.d.ts +0 -42
  291. package/dist/esm/agents/agent.js +0 -124
  292. package/dist/esm/agents/agent.js.map +0 -1
  293. package/dist/esm/agents/executor.js +0 -101
  294. package/dist/esm/agents/executor.js.map +0 -1
  295. package/dist/esm/agents/helpers.d.ts +0 -3
  296. package/dist/esm/agents/helpers.js +0 -26
  297. package/dist/esm/agents/helpers.js.map +0 -1
  298. package/dist/esm/agents/index.d.ts +0 -6
  299. package/dist/esm/agents/index.js +0 -5
  300. package/dist/esm/agents/index.js.map +0 -1
  301. package/dist/esm/agents/load.d.ts +0 -6
  302. package/dist/esm/agents/load.js +0 -24
  303. package/dist/esm/agents/load.js.map +0 -1
  304. package/dist/esm/agents/mrkl/index.js +0 -106
  305. package/dist/esm/agents/mrkl/index.js.map +0 -1
  306. package/dist/esm/agents/mrkl/prompt.d.ts +0 -3
  307. package/dist/esm/agents/mrkl/prompt.js +0 -17
  308. package/dist/esm/agents/mrkl/prompt.js.map +0 -1
  309. package/dist/esm/agents/tests/agent.test.js +0 -29
  310. package/dist/esm/agents/tests/agent.test.js.map +0 -1
  311. package/dist/esm/agents/tools/index.d.ts +0 -7
  312. package/dist/esm/agents/tools/index.js +0 -2
  313. package/dist/esm/agents/tools/index.js.map +0 -1
  314. package/dist/esm/agents/tools/llm-math.d.ts +0 -0
  315. package/dist/esm/agents/tools/llm-math.js +0 -2
  316. package/dist/esm/agents/tools/llm-math.js.map +0 -1
  317. package/dist/esm/agents/tools/serpapi.d.ts +0 -3
  318. package/dist/esm/agents/tools/serpapi.js +0 -46
  319. package/dist/esm/agents/tools/serpapi.js.map +0 -1
  320. package/dist/esm/agents/types.d.ts +0 -25
  321. package/dist/esm/agents/types.js +0 -2
  322. package/dist/esm/agents/types.js.map +0 -1
  323. package/dist/esm/cache.d.ts +0 -11
  324. package/dist/esm/cache.js +0 -22
  325. package/dist/esm/cache.js.map +0 -1
  326. package/dist/esm/chains/base.d.ts +0 -12
  327. package/dist/esm/chains/base.js +0 -19
  328. package/dist/esm/chains/base.js.map +0 -1
  329. package/dist/esm/chains/index.d.ts +0 -3
  330. package/dist/esm/chains/index.js +0 -4
  331. package/dist/esm/chains/index.js.map +0 -1
  332. package/dist/esm/chains/llm_chain.d.ts +0 -30
  333. package/dist/esm/chains/llm_chain.js +0 -79
  334. package/dist/esm/chains/llm_chain.js.map +0 -1
  335. package/dist/esm/chains/llm_math_chain.d.ts +0 -0
  336. package/dist/esm/chains/llm_math_chain.js +0 -129
  337. package/dist/esm/chains/llm_math_chain.js.map +0 -1
  338. package/dist/esm/chains/load.d.ts +0 -2
  339. package/dist/esm/chains/load.js +0 -25
  340. package/dist/esm/chains/load.js.map +0 -1
  341. package/dist/esm/chains/tests/llm_chain.test.js +0 -30
  342. package/dist/esm/chains/tests/llm_chain.test.js.map +0 -1
  343. package/dist/esm/index.d.ts +0 -3
  344. package/dist/esm/index.js +0 -4
  345. package/dist/esm/index.js.map +0 -1
  346. package/dist/esm/llms/base.d.ts +0 -23
  347. package/dist/esm/llms/base.js +0 -154
  348. package/dist/esm/llms/base.js.map +0 -1
  349. package/dist/esm/llms/index.js +0 -4
  350. package/dist/esm/llms/index.js.map +0 -1
  351. package/dist/esm/llms/load.d.ts +0 -3
  352. package/dist/esm/llms/load.js +0 -5
  353. package/dist/esm/llms/load.js.map +0 -1
  354. package/dist/esm/llms/openai.d.ts +0 -63
  355. package/dist/esm/llms/openai.js +0 -198
  356. package/dist/esm/llms/openai.js.map +0 -1
  357. package/dist/esm/llms/tests/openai.test.js +0 -17
  358. package/dist/esm/llms/tests/openai.test.js.map +0 -1
  359. package/dist/esm/prompt/base.d.ts +0 -19
  360. package/dist/esm/prompt/base.js +0 -50
  361. package/dist/esm/prompt/base.js.map +0 -1
  362. package/dist/esm/prompt/few_shot.js +0 -139
  363. package/dist/esm/prompt/few_shot.js.map +0 -1
  364. package/dist/esm/prompt/index.d.ts +0 -3
  365. package/dist/esm/prompt/index.js +0 -4
  366. package/dist/esm/prompt/index.js.map +0 -1
  367. package/dist/esm/prompt/load.d.ts +0 -2
  368. package/dist/esm/prompt/load.js +0 -21
  369. package/dist/esm/prompt/load.js.map +0 -1
  370. package/dist/esm/prompt/parser.d.ts +0 -40
  371. package/dist/esm/prompt/parser.js +0 -86
  372. package/dist/esm/prompt/parser.js.map +0 -1
  373. package/dist/esm/prompt/prompt.d.ts +0 -28
  374. package/dist/esm/prompt/prompt.js +0 -87
  375. package/dist/esm/prompt/prompt.js.map +0 -1
  376. package/dist/esm/prompt/template.d.ts +0 -16
  377. package/dist/esm/prompt/template.js +0 -80
  378. package/dist/esm/prompt/template.js.map +0 -1
  379. package/dist/esm/prompt/tests/load.test.js +0 -25
  380. package/dist/esm/prompt/tests/load.test.js.map +0 -1
  381. package/dist/esm/prompt/tests/template.test.js +0 -25
  382. package/dist/esm/prompt/tests/template.test.js.map +0 -1
  383. package/dist/esm/util/hub.d.ts +0 -1
  384. package/dist/esm/util/hub.js +0 -43
  385. package/dist/esm/util/hub.js.map +0 -1
  386. package/dist/esm/util/index.js +0 -74
  387. package/dist/esm/util/index.js.map +0 -1
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChatVectorDBQAChain = void 0;
4
+ const index_1 = require("./index");
5
+ const prompts_1 = require("../prompts");
6
+ const util_1 = require("../util");
7
+ const question_generator_template = `Given the following conversation and a follow up question, rephrase the follow up question to be a standalone question.
8
+
9
+ Chat History:
10
+ {chat_history}
11
+ Follow Up Input: {question}
12
+ Standalone question:`;
13
+ const question_generator_prompt = prompts_1.PromptTemplate.fromTemplate(question_generator_template);
14
+ const qa_template = `Use the following pieces of context to answer the question at the end. If you don't know the answer, just say that you don't know, don't try to make up an answer.
15
+
16
+ {context}
17
+
18
+ Question: {question}
19
+ Helpful Answer:`;
20
+ const qa_prompt = prompts_1.PromptTemplate.fromTemplate(qa_template);
21
+ class ChatVectorDBQAChain extends index_1.BaseChain {
22
+ constructor(fields) {
23
+ var _a, _b, _c;
24
+ super();
25
+ Object.defineProperty(this, "k", {
26
+ enumerable: true,
27
+ configurable: true,
28
+ writable: true,
29
+ value: 4
30
+ });
31
+ Object.defineProperty(this, "inputKey", {
32
+ enumerable: true,
33
+ configurable: true,
34
+ writable: true,
35
+ value: "question"
36
+ });
37
+ Object.defineProperty(this, "chatHistoryKey", {
38
+ enumerable: true,
39
+ configurable: true,
40
+ writable: true,
41
+ value: "chat_history"
42
+ });
43
+ Object.defineProperty(this, "outputKey", {
44
+ enumerable: true,
45
+ configurable: true,
46
+ writable: true,
47
+ value: "result"
48
+ });
49
+ Object.defineProperty(this, "vectorstore", {
50
+ enumerable: true,
51
+ configurable: true,
52
+ writable: true,
53
+ value: void 0
54
+ });
55
+ Object.defineProperty(this, "combineDocumentsChain", {
56
+ enumerable: true,
57
+ configurable: true,
58
+ writable: true,
59
+ value: void 0
60
+ });
61
+ Object.defineProperty(this, "questionGeneratorChain", {
62
+ enumerable: true,
63
+ configurable: true,
64
+ writable: true,
65
+ value: void 0
66
+ });
67
+ this.vectorstore = fields.vectorstore;
68
+ this.combineDocumentsChain = fields.combineDocumentsChain;
69
+ this.questionGeneratorChain = fields.questionGeneratorChain;
70
+ this.inputKey = (_a = fields.inputKey) !== null && _a !== void 0 ? _a : this.inputKey;
71
+ this.outputKey = (_b = fields.outputKey) !== null && _b !== void 0 ? _b : this.outputKey;
72
+ this.k = (_c = fields.k) !== null && _c !== void 0 ? _c : this.k;
73
+ }
74
+ async _call(values) {
75
+ if (!(this.inputKey in values)) {
76
+ throw new Error(`Question key ${this.inputKey} not found.`);
77
+ }
78
+ if (!(this.chatHistoryKey in values)) {
79
+ throw new Error(`chat history key ${this.inputKey} not found.`);
80
+ }
81
+ const question = values[this.inputKey];
82
+ const chatHistory = values[this.chatHistoryKey];
83
+ let newQuestion = question;
84
+ if (chatHistory.length > 0) {
85
+ const result = await this.questionGeneratorChain.call({
86
+ question,
87
+ chat_history: chatHistory,
88
+ });
89
+ const keys = Object.keys(result);
90
+ if (keys.length === 1) {
91
+ newQuestion = result[keys[0]];
92
+ }
93
+ else {
94
+ throw new Error("Return from llm chain has multiple values, only single values supported.");
95
+ }
96
+ }
97
+ const docs = await this.vectorstore.similaritySearch(newQuestion, this.k);
98
+ const inputs = {
99
+ question,
100
+ input_documents: docs,
101
+ chat_history: chatHistory,
102
+ };
103
+ const result = await this.combineDocumentsChain.call(inputs);
104
+ return result;
105
+ }
106
+ _chainType() {
107
+ return "chat-vector-db";
108
+ }
109
+ static async deserialize(data, values) {
110
+ if (!("vectorstore" in values)) {
111
+ throw new Error(`Need to pass in a vectorstore to deserialize VectorDBQAChain`);
112
+ }
113
+ const { vectorstore } = values;
114
+ const serializedCombineDocumentsChain = (0, util_1.resolveConfigFromFile)("combine_documents_chain", data);
115
+ const serializedQuestionGeneratorChain = (0, util_1.resolveConfigFromFile)("question_generator", data);
116
+ return new ChatVectorDBQAChain({
117
+ combineDocumentsChain: await index_1.StuffDocumentsChain.deserialize(serializedCombineDocumentsChain),
118
+ questionGeneratorChain: await index_1.LLMChain.deserialize(serializedQuestionGeneratorChain),
119
+ k: data.k,
120
+ vectorstore,
121
+ });
122
+ }
123
+ serialize() {
124
+ return {
125
+ _type: this._chainType(),
126
+ combine_documents_chain: this.combineDocumentsChain.serialize(),
127
+ question_generator: this.questionGeneratorChain.serialize(),
128
+ k: this.k,
129
+ };
130
+ }
131
+ static fromLLM(llm, vectorstore) {
132
+ const qaChain = (0, index_1.loadQAChain)(llm, qa_prompt);
133
+ const questionGeneratorChain = new index_1.LLMChain({
134
+ prompt: question_generator_prompt,
135
+ llm,
136
+ });
137
+ const instance = new this({
138
+ vectorstore,
139
+ combineDocumentsChain: qaChain,
140
+ questionGeneratorChain,
141
+ });
142
+ return instance;
143
+ }
144
+ }
145
+ exports.ChatVectorDBQAChain = ChatVectorDBQAChain;
146
+ //# sourceMappingURL=chat_vector_db_chain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chat_vector_db_chain.js","sourceRoot":"","sources":["../../chains/chat_vector_db_chain.ts"],"names":[],"mappings":";;;AAAA,mCAQiB;AAEjB,wCAA4C;AAK5C,kCAAgD;AAIhD,MAAM,2BAA2B,GAAG;;;;;qBAKf,CAAC;AACtB,MAAM,yBAAyB,GAAG,wBAAc,CAAC,YAAY,CAC3D,2BAA2B,CAC5B,CAAC;AAEF,MAAM,WAAW,GAAG;;;;;gBAKJ,CAAC;AACjB,MAAM,SAAS,GAAG,wBAAc,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;AAmB3D,MAAa,mBACX,SAAQ,iBAAS;IAiBjB,YAAY,MAOX;;QACC,KAAK,EAAE,CAAC;QAtBV;;;;mBAAI,CAAC;WAAC;QAEN;;;;mBAAW,UAAU;WAAC;QAEtB;;;;mBAAiB,cAAc;WAAC;QAEhC;;;;mBAAY,QAAQ;WAAC;QAErB;;;;;WAAyB;QAEzB;;;;;WAA2C;QAE3C;;;;;WAAiC;QAW/B,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC;QAC1D,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,sBAAsB,CAAC;QAC5D,IAAI,CAAC,QAAQ,GAAG,MAAA,MAAM,CAAC,QAAQ,mCAAI,IAAI,CAAC,QAAQ,CAAC;QACjD,IAAI,CAAC,SAAS,GAAG,MAAA,MAAM,CAAC,SAAS,mCAAI,IAAI,CAAC,SAAS,CAAC;QACpD,IAAI,CAAC,CAAC,GAAG,MAAA,MAAM,CAAC,CAAC,mCAAI,IAAI,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAmB;QAC7B,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,QAAQ,aAAa,CAAC,CAAC;SAC7D;QACD,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,IAAI,MAAM,CAAC,EAAE;YACpC,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,CAAC,QAAQ,aAAa,CAAC,CAAC;SACjE;QACD,MAAM,QAAQ,GAAW,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAW,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACxD,IAAI,WAAW,GAAG,QAAQ,CAAC;QAC3B,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;gBACpD,QAAQ;gBACR,YAAY,EAAE,WAAW;aAC1B,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrB,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;aAC/B;iBAAM;gBACL,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAC;aACH;SACF;QACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1E,MAAM,MAAM,GAAG;YACb,QAAQ;YACR,eAAe,EAAE,IAAI;YACrB,YAAY,EAAE,WAAW;SAC1B,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7D,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,UAAU;QACR,OAAO,gBAAyB,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,WAAW,CACtB,IAAmC,EACnC,MAAkB;QAElB,IAAI,CAAC,CAAC,aAAa,IAAI,MAAM,CAAC,EAAE;YAC9B,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAC;SACH;QACD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;QAC/B,MAAM,+BAA+B,GAAG,IAAA,4BAAqB,EAG3D,yBAAyB,EAAE,IAAI,CAAC,CAAC;QACnC,MAAM,gCAAgC,GAAG,IAAA,4BAAqB,EAG5D,oBAAoB,EAAE,IAAI,CAAC,CAAC;QAE9B,OAAO,IAAI,mBAAmB,CAAC;YAC7B,qBAAqB,EAAE,MAAM,2BAAmB,CAAC,WAAW,CAC1D,+BAA+B,CAChC;YACD,sBAAsB,EAAE,MAAM,gBAAQ,CAAC,WAAW,CAChD,gCAAgC,CACjC;YACD,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,WAAW;SACZ,CAAC,CAAC;IACL,CAAC;IAED,SAAS;QACP,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE;YACxB,uBAAuB,EAAE,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE;YAC/D,kBAAkB,EAAE,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE;YAC3D,CAAC,EAAE,IAAI,CAAC,CAAC;SACV,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,GAAY,EAAE,WAAwB;QACnD,MAAM,OAAO,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC5C,MAAM,sBAAsB,GAAG,IAAI,gBAAQ,CAAC;YAC1C,MAAM,EAAE,yBAAyB;YACjC,GAAG;SACJ,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC;YACxB,WAAW;YACX,qBAAqB,EAAE,OAAO;YAC9B,sBAAsB;SACvB,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AA9HD,kDA8HC"}
@@ -0,0 +1,35 @@
1
+ import { BaseChain, ChainValues, LLMChain, SerializedLLMChain } from "./index";
2
+ export interface StuffDocumentsChainInput {
3
+ /** LLM Wrapper to use after formatting documents */
4
+ llmChain: LLMChain;
5
+ inputKey: string;
6
+ outputKey: string;
7
+ /** Variable name in the LLM chain to put the documents in */
8
+ documentVariableName: string;
9
+ }
10
+ export type SerializedStuffDocumentsChain = {
11
+ _type: "stuff_documents_chain";
12
+ llm_chain?: SerializedLLMChain;
13
+ llm_chain_path?: string;
14
+ };
15
+ /**
16
+ * Chain that combines documents by stuffing into context.
17
+ * @augments BaseChain
18
+ * @augments StuffDocumentsChainInput
19
+ */
20
+ export declare class StuffDocumentsChain extends BaseChain implements StuffDocumentsChainInput {
21
+ llmChain: LLMChain;
22
+ inputKey: string;
23
+ outputKey: string;
24
+ documentVariableName: string;
25
+ constructor(fields: {
26
+ llmChain: LLMChain;
27
+ inputKey?: string;
28
+ outputKey?: string;
29
+ documentVariableName?: string;
30
+ });
31
+ _call(values: ChainValues): Promise<ChainValues>;
32
+ _chainType(): "stuff_documents_chain";
33
+ static deserialize(data: SerializedStuffDocumentsChain): Promise<StuffDocumentsChain>;
34
+ serialize(): SerializedStuffDocumentsChain;
35
+ }
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StuffDocumentsChain = void 0;
4
+ const index_1 = require("./index");
5
+ const util_1 = require("../util");
6
+ /**
7
+ * Chain that combines documents by stuffing into context.
8
+ * @augments BaseChain
9
+ * @augments StuffDocumentsChainInput
10
+ */
11
+ class StuffDocumentsChain extends index_1.BaseChain {
12
+ constructor(fields) {
13
+ var _a, _b, _c;
14
+ super();
15
+ Object.defineProperty(this, "llmChain", {
16
+ enumerable: true,
17
+ configurable: true,
18
+ writable: true,
19
+ value: void 0
20
+ });
21
+ Object.defineProperty(this, "inputKey", {
22
+ enumerable: true,
23
+ configurable: true,
24
+ writable: true,
25
+ value: "input_documents"
26
+ });
27
+ Object.defineProperty(this, "outputKey", {
28
+ enumerable: true,
29
+ configurable: true,
30
+ writable: true,
31
+ value: "output_text"
32
+ });
33
+ Object.defineProperty(this, "documentVariableName", {
34
+ enumerable: true,
35
+ configurable: true,
36
+ writable: true,
37
+ value: "context"
38
+ });
39
+ this.llmChain = fields.llmChain;
40
+ this.documentVariableName =
41
+ (_a = fields.documentVariableName) !== null && _a !== void 0 ? _a : this.documentVariableName;
42
+ this.inputKey = (_b = fields.inputKey) !== null && _b !== void 0 ? _b : this.inputKey;
43
+ this.outputKey = (_c = fields.outputKey) !== null && _c !== void 0 ? _c : this.outputKey;
44
+ }
45
+ async _call(values) {
46
+ if (!(this.inputKey in values)) {
47
+ throw new Error(`Document key ${this.inputKey} not found.`);
48
+ }
49
+ const { [this.inputKey]: docs, ...rest } = values;
50
+ const texts = docs.map(({ pageContent }) => pageContent);
51
+ const text = texts.join("\n\n");
52
+ const result = await this.llmChain.call({
53
+ ...rest,
54
+ [this.documentVariableName]: text,
55
+ });
56
+ return result;
57
+ }
58
+ _chainType() {
59
+ return "stuff_documents_chain";
60
+ }
61
+ static async deserialize(data) {
62
+ const SerializedLLMChain = (0, util_1.resolveConfigFromFile)("llm_chain", data);
63
+ return new StuffDocumentsChain({
64
+ llmChain: await index_1.LLMChain.deserialize(SerializedLLMChain),
65
+ });
66
+ }
67
+ serialize() {
68
+ return {
69
+ _type: this._chainType(),
70
+ llm_chain: this.llmChain.serialize(),
71
+ };
72
+ }
73
+ }
74
+ exports.StuffDocumentsChain = StuffDocumentsChain;
75
+ //# sourceMappingURL=combine_docs_chain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combine_docs_chain.js","sourceRoot":"","sources":["../../chains/combine_docs_chain.ts"],"names":[],"mappings":";;;AAAA,mCAA+E;AAI/E,kCAAgD;AAiBhD;;;;GAIG;AACH,MAAa,mBACX,SAAQ,iBAAS;IAWjB,YAAY,MAKX;;QACC,KAAK,EAAE,CAAC;QAdV;;;;;WAAmB;QAEnB;;;;mBAAW,iBAAiB;WAAC;QAE7B;;;;mBAAY,aAAa;WAAC;QAE1B;;;;mBAAuB,SAAS;WAAC;QAS/B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,oBAAoB;YACvB,MAAA,MAAM,CAAC,oBAAoB,mCAAI,IAAI,CAAC,oBAAoB,CAAC;QAC3D,IAAI,CAAC,QAAQ,GAAG,MAAA,MAAM,CAAC,QAAQ,mCAAI,IAAI,CAAC,QAAQ,CAAC;QACjD,IAAI,CAAC,SAAS,GAAG,MAAA,MAAM,CAAC,SAAS,mCAAI,IAAI,CAAC,SAAS,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAmB;QAC7B,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,EAAE;YAC9B,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,QAAQ,aAAa,CAAC,CAAC;SAC7D;QACD,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QAClD,MAAM,KAAK,GAAI,IAAmB,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACtC,GAAG,IAAI;YACP,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,IAAI;SAClC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,UAAU;QACR,OAAO,uBAAgC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAmC;QAC1D,MAAM,kBAAkB,GAAG,IAAA,4BAAqB,EAG9C,WAAW,EAAE,IAAI,CAAC,CAAC;QAErB,OAAO,IAAI,mBAAmB,CAAC;YAC7B,QAAQ,EAAE,MAAM,gBAAQ,CAAC,WAAW,CAAC,kBAAkB,CAAC;SACzD,CAAC,CAAC;IACL,CAAC;IAED,SAAS;QACP,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE;YACxB,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;SACrC,CAAC;IACJ,CAAC;CACF;AA7DD,kDA6DC"}
@@ -0,0 +1,12 @@
1
+ import { LLMChain } from "./llm_chain";
2
+ import { BaseLLM } from "../llms";
3
+ import { BasePromptTemplate } from "../prompts";
4
+ import { BaseMemory } from "../memory";
5
+ export declare class ConversationChain extends LLMChain {
6
+ constructor(fields: {
7
+ llm: BaseLLM;
8
+ prompt?: BasePromptTemplate;
9
+ outputKey?: string;
10
+ memory?: BaseMemory;
11
+ });
12
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConversationChain = void 0;
4
+ const llm_chain_1 = require("./llm_chain");
5
+ const prompts_1 = require("../prompts");
6
+ const memory_1 = require("../memory");
7
+ const defaultTemplate = `The following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. If the AI does not know the answer to a question, it truthfully says it does not know.
8
+
9
+ Current conversation:
10
+ {history}
11
+ Human: {input}
12
+ AI:`;
13
+ const defaultPrompt = new prompts_1.PromptTemplate({
14
+ template: defaultTemplate,
15
+ inputVariables: ["history", "input"],
16
+ });
17
+ class ConversationChain extends llm_chain_1.LLMChain {
18
+ constructor(fields) {
19
+ var _a, _b, _c;
20
+ super({
21
+ prompt: (_a = fields.prompt) !== null && _a !== void 0 ? _a : defaultPrompt,
22
+ llm: fields.llm,
23
+ outputKey: (_b = fields.outputKey) !== null && _b !== void 0 ? _b : "response",
24
+ });
25
+ this.memory = (_c = fields.memory) !== null && _c !== void 0 ? _c : new memory_1.BufferMemory();
26
+ }
27
+ }
28
+ exports.ConversationChain = ConversationChain;
29
+ //# sourceMappingURL=conversation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../chains/conversation.ts"],"names":[],"mappings":";;;AAAA,2CAAuC;AAEvC,wCAAgE;AAEhE,sCAAqD;AAErD,MAAM,eAAe,GAAG;;;;;IAKpB,CAAC;AAEL,MAAM,aAAa,GAAG,IAAI,wBAAc,CAAC;IACvC,QAAQ,EAAE,eAAe;IACzB,cAAc,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;CACrC,CAAC,CAAC;AAEH,MAAa,iBAAkB,SAAQ,oBAAQ;IAC7C,YAAY,MAKX;;QACC,KAAK,CAAC;YACJ,MAAM,EAAE,MAAA,MAAM,CAAC,MAAM,mCAAI,aAAa;YACtC,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,SAAS,EAAE,MAAA,MAAM,CAAC,SAAS,mCAAI,UAAU;SAC1C,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,MAAA,MAAM,CAAC,MAAM,mCAAI,IAAI,qBAAY,EAAE,CAAC;IACpD,CAAC;CACF;AAdD,8CAcC"}
@@ -0,0 +1,7 @@
1
+ export { BaseChain, ChainValues } from "./base";
2
+ export { SerializedLLMChain, LLMChain, ConversationChain } from "./llm_chain";
3
+ export { SerializedStuffDocumentsChain, StuffDocumentsChain, } from "./combine_docs_chain";
4
+ export { ChatVectorDBQAChain, SerializedChatVectorDBQAChain, } from "./chat_vector_db_chain";
5
+ export { VectorDBQAChain, SerializedVectorDBQAChain } from "./vector_db_qa";
6
+ export { loadChain } from "./load";
7
+ export { loadQAChain } from "./question_answering/load";
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadQAChain = exports.loadChain = exports.VectorDBQAChain = exports.ChatVectorDBQAChain = exports.StuffDocumentsChain = exports.ConversationChain = exports.LLMChain = exports.BaseChain = void 0;
4
+ var base_1 = require("./base");
5
+ Object.defineProperty(exports, "BaseChain", { enumerable: true, get: function () { return base_1.BaseChain; } });
6
+ var llm_chain_1 = require("./llm_chain");
7
+ Object.defineProperty(exports, "LLMChain", { enumerable: true, get: function () { return llm_chain_1.LLMChain; } });
8
+ Object.defineProperty(exports, "ConversationChain", { enumerable: true, get: function () { return llm_chain_1.ConversationChain; } });
9
+ var combine_docs_chain_1 = require("./combine_docs_chain");
10
+ Object.defineProperty(exports, "StuffDocumentsChain", { enumerable: true, get: function () { return combine_docs_chain_1.StuffDocumentsChain; } });
11
+ var chat_vector_db_chain_1 = require("./chat_vector_db_chain");
12
+ Object.defineProperty(exports, "ChatVectorDBQAChain", { enumerable: true, get: function () { return chat_vector_db_chain_1.ChatVectorDBQAChain; } });
13
+ var vector_db_qa_1 = require("./vector_db_qa");
14
+ Object.defineProperty(exports, "VectorDBQAChain", { enumerable: true, get: function () { return vector_db_qa_1.VectorDBQAChain; } });
15
+ var load_1 = require("./load");
16
+ Object.defineProperty(exports, "loadChain", { enumerable: true, get: function () { return load_1.loadChain; } });
17
+ var load_2 = require("./question_answering/load");
18
+ Object.defineProperty(exports, "loadQAChain", { enumerable: true, get: function () { return load_2.loadQAChain; } });
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../chains/index.ts"],"names":[],"mappings":";;;AAAA,+BAAgD;AAAvC,iGAAA,SAAS,OAAA;AAClB,yCAA8E;AAAjD,qGAAA,QAAQ,OAAA;AAAE,8GAAA,iBAAiB,OAAA;AACxD,2DAG8B;AAD5B,yHAAA,mBAAmB,OAAA;AAErB,+DAGgC;AAF9B,2HAAA,mBAAmB,OAAA;AAGrB,+CAA4E;AAAnE,+GAAA,eAAe,OAAA;AACxB,+BAAmC;AAA1B,iGAAA,SAAS,OAAA;AAClB,kDAAwD;AAA/C,mGAAA,WAAW,OAAA"}
@@ -1,9 +1,13 @@
1
1
  import { BaseChain, ChainValues } from "./index";
2
2
  import { BaseLLM, SerializedLLM } from "../llms";
3
- import { BasePromptTemplate, SerializedBasePromptTemplate } from "../prompt";
3
+ import { BaseMemory } from "../memory";
4
+ import { BasePromptTemplate, SerializedBasePromptTemplate } from "../prompts";
4
5
  export interface LLMChainInput {
6
+ /** Prompt object to use */
5
7
  prompt: BasePromptTemplate;
8
+ /** LLM Wrapper to use */
6
9
  llm: BaseLLM;
10
+ /** @ignore */
7
11
  outputKey: string;
8
12
  }
9
13
  export type SerializedLLMChain = {
@@ -13,6 +17,18 @@ export type SerializedLLMChain = {
13
17
  prompt?: SerializedBasePromptTemplate;
14
18
  prompt_path?: string;
15
19
  };
20
+ /**
21
+ * Chain to run queries against LLMs.
22
+ * @augments BaseChain
23
+ * @augments LLMChainInput
24
+ *
25
+ * @example
26
+ * ```ts
27
+ * import { LLMChain, OpenAI, PromptTemplate } from "langchain";
28
+ * const prompt = PromptTemplate.fromTemplate("Tell me a {adjective} joke");
29
+ * const llm = LLMChain({ llm: new OpenAI(), prompt });
30
+ * ```
31
+ */
16
32
  export declare class LLMChain extends BaseChain implements LLMChainInput {
17
33
  prompt: BasePromptTemplate;
18
34
  llm: BaseLLM;
@@ -23,8 +39,27 @@ export declare class LLMChain extends BaseChain implements LLMChainInput {
23
39
  outputKey?: string;
24
40
  });
25
41
  _call(values: ChainValues): Promise<ChainValues>;
42
+ /**
43
+ * Format prompt with values and pass to LLM
44
+ *
45
+ * @param values - keys to pass to prompt template
46
+ * @returns Completion from LLM.
47
+ *
48
+ * @example
49
+ * ```ts
50
+ * llm.predict({ adjective: "funny" })
51
+ * ```
52
+ */
26
53
  predict(values: ChainValues): Promise<string>;
27
54
  _chainType(): "llm_chain";
28
55
  static deserialize(data: SerializedLLMChain): Promise<LLMChain>;
29
56
  serialize(): SerializedLLMChain;
30
57
  }
58
+ export declare class ConversationChain extends LLMChain {
59
+ constructor(fields: {
60
+ llm: BaseLLM;
61
+ prompt?: BasePromptTemplate;
62
+ outputKey?: string;
63
+ memory?: BaseMemory;
64
+ });
65
+ }
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ConversationChain = exports.LLMChain = void 0;
4
+ const index_1 = require("./index");
5
+ const llms_1 = require("../llms");
6
+ const memory_1 = require("../memory");
7
+ const prompts_1 = require("../prompts");
8
+ const util_1 = require("../util");
9
+ /**
10
+ * Chain to run queries against LLMs.
11
+ * @augments BaseChain
12
+ * @augments LLMChainInput
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * import { LLMChain, OpenAI, PromptTemplate } from "langchain";
17
+ * const prompt = PromptTemplate.fromTemplate("Tell me a {adjective} joke");
18
+ * const llm = LLMChain({ llm: new OpenAI(), prompt });
19
+ * ```
20
+ */
21
+ class LLMChain extends index_1.BaseChain {
22
+ constructor(fields) {
23
+ var _a;
24
+ super();
25
+ Object.defineProperty(this, "prompt", {
26
+ enumerable: true,
27
+ configurable: true,
28
+ writable: true,
29
+ value: void 0
30
+ });
31
+ Object.defineProperty(this, "llm", {
32
+ enumerable: true,
33
+ configurable: true,
34
+ writable: true,
35
+ value: void 0
36
+ });
37
+ Object.defineProperty(this, "outputKey", {
38
+ enumerable: true,
39
+ configurable: true,
40
+ writable: true,
41
+ value: "text"
42
+ });
43
+ this.prompt = fields.prompt;
44
+ this.llm = fields.llm;
45
+ this.outputKey = (_a = fields.outputKey) !== null && _a !== void 0 ? _a : this.outputKey;
46
+ }
47
+ async _call(values) {
48
+ let stop;
49
+ if ("stop" in values && Array.isArray(values.stop)) {
50
+ stop = values.stop;
51
+ }
52
+ const formattedString = this.prompt.format(values);
53
+ const llmResult = await this.llm.call(formattedString, stop);
54
+ const result = { [this.outputKey]: llmResult };
55
+ return result;
56
+ }
57
+ /**
58
+ * Format prompt with values and pass to LLM
59
+ *
60
+ * @param values - keys to pass to prompt template
61
+ * @returns Completion from LLM.
62
+ *
63
+ * @example
64
+ * ```ts
65
+ * llm.predict({ adjective: "funny" })
66
+ * ```
67
+ */
68
+ async predict(values) {
69
+ const output = await this.call(values);
70
+ return output[this.outputKey];
71
+ }
72
+ _chainType() {
73
+ return "llm_chain";
74
+ }
75
+ static async deserialize(data) {
76
+ const serializedLLM = (0, util_1.resolveConfigFromFile)("llm", data);
77
+ const serializedPrompt = (0, util_1.resolveConfigFromFile)("prompt", data);
78
+ return new LLMChain({
79
+ llm: await llms_1.BaseLLM.deserialize(serializedLLM),
80
+ prompt: await prompts_1.BasePromptTemplate.deserialize(serializedPrompt),
81
+ });
82
+ }
83
+ serialize() {
84
+ return {
85
+ _type: this._chainType(),
86
+ llm: this.llm.serialize(),
87
+ prompt: this.prompt.serialize(),
88
+ };
89
+ }
90
+ }
91
+ exports.LLMChain = LLMChain;
92
+ // eslint-disable-next-line max-len
93
+ const defaultTemplate = `The following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. If the AI does not know the answer to a question, it truthfully says it does not know.
94
+
95
+ Current conversation:
96
+ {history}
97
+ Human: {input}
98
+ AI:`;
99
+ const defaultPrompt = new prompts_1.PromptTemplate({
100
+ template: defaultTemplate,
101
+ inputVariables: ["history", "input"],
102
+ });
103
+ class ConversationChain extends LLMChain {
104
+ constructor(fields) {
105
+ var _a, _b, _c;
106
+ super({
107
+ prompt: (_a = fields.prompt) !== null && _a !== void 0 ? _a : defaultPrompt,
108
+ llm: fields.llm,
109
+ outputKey: (_b = fields.outputKey) !== null && _b !== void 0 ? _b : "response",
110
+ });
111
+ this.memory = (_c = fields.memory) !== null && _c !== void 0 ? _c : new memory_1.BufferMemory();
112
+ }
113
+ }
114
+ exports.ConversationChain = ConversationChain;
115
+ //# sourceMappingURL=llm_chain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm_chain.js","sourceRoot":"","sources":["../../chains/llm_chain.ts"],"names":[],"mappings":";;;AAAA,mCAAiD;AAEjD,kCAAiD;AAEjD,sCAAqD;AACrD,wCAIoB;AAEpB,kCAAgD;AAoBhD;;;;;;;;;;;GAWG;AACH,MAAa,QAAS,SAAQ,iBAAS;IAOrC,YAAY,MAIX;;QACC,KAAK,EAAE,CAAC;QAXV;;;;;WAA2B;QAE3B;;;;;WAAa;QAEb;;;;mBAAY,MAAM;WAAC;QAQjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,MAAA,MAAM,CAAC,SAAS,mCAAI,IAAI,CAAC,SAAS,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAAmB;QAC7B,IAAI,IAAI,CAAC;QACT,IAAI,MAAM,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;YAClD,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;SACpB;QACD,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,CAAC;QAC/C,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,OAAO,CAAC,MAAmB;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAED,UAAU;QACR,OAAO,WAAoB,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAwB;QAC/C,MAAM,aAAa,GAAG,IAAA,4BAAqB,EACzC,KAAK,EACL,IAAI,CACL,CAAC;QACF,MAAM,gBAAgB,GAAG,IAAA,4BAAqB,EAG5C,QAAQ,EAAE,IAAI,CAAC,CAAC;QAElB,OAAO,IAAI,QAAQ,CAAC;YAClB,GAAG,EAAE,MAAM,cAAO,CAAC,WAAW,CAAC,aAAa,CAAC;YAC7C,MAAM,EAAE,MAAM,4BAAkB,CAAC,WAAW,CAAC,gBAAgB,CAAC;SAC/D,CAAC,CAAC;IACL,CAAC;IAED,SAAS;QACP,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE;YACxB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;YACzB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;SAChC,CAAC;IACJ,CAAC;CACF;AAxED,4BAwEC;AAED,mCAAmC;AACnC,MAAM,eAAe,GAAG;;;;;IAKpB,CAAC;AAEL,MAAM,aAAa,GAAG,IAAI,wBAAc,CAAC;IACvC,QAAQ,EAAE,eAAe;IACzB,cAAc,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;CACrC,CAAC,CAAC;AAEH,MAAa,iBAAkB,SAAQ,QAAQ;IAC7C,YAAY,MAKX;;QACC,KAAK,CAAC;YACJ,MAAM,EAAE,MAAA,MAAM,CAAC,MAAM,mCAAI,aAAa;YACtC,GAAG,EAAE,MAAM,CAAC,GAAG;YACf,SAAS,EAAE,MAAA,MAAM,CAAC,SAAS,mCAAI,UAAU;SAC1C,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,MAAA,MAAM,CAAC,MAAM,mCAAI,IAAI,qBAAY,EAAE,CAAC;IACpD,CAAC;CACF;AAdD,8CAcC"}
@@ -0,0 +1,21 @@
1
+ import { BaseChain } from ".";
2
+ export type LoadValues = Record<string, any>;
3
+ /**
4
+ * Load a chain from {@link https://github.com/hwchase17/langchain-hub | LangchainHub} or local filesystem.
5
+ *
6
+ * @example
7
+ * Loading from LangchainHub:
8
+ * ```ts
9
+ * import { loadChain } from "langchain/chains";
10
+ * const chain = await loadChain("lc://chains/hello-world/chain.json");
11
+ * const res = await chain.call({ topic: "my favorite color" });
12
+ * ```
13
+ *
14
+ * @example
15
+ * Loading from local filesystem:
16
+ * ```ts
17
+ * import { loadChain } from "langchain/chains";
18
+ * const chain = await loadChain("/path/to/chain.json");
19
+ * ```
20
+ */
21
+ export declare const loadChain: (uri: string, values?: LoadValues) => Promise<BaseChain>;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadChain = void 0;
4
+ const _1 = require(".");
5
+ const hub_1 = require("../util/hub");
6
+ const util_1 = require("../util");
7
+ const loadChainFromFile = async (file, values = {}) => {
8
+ const serialized = (0, util_1.parseFileConfig)(file);
9
+ return _1.BaseChain.deserialize(serialized, values);
10
+ };
11
+ /**
12
+ * Load a chain from {@link https://github.com/hwchase17/langchain-hub | LangchainHub} or local filesystem.
13
+ *
14
+ * @example
15
+ * Loading from LangchainHub:
16
+ * ```ts
17
+ * import { loadChain } from "langchain/chains";
18
+ * const chain = await loadChain("lc://chains/hello-world/chain.json");
19
+ * const res = await chain.call({ topic: "my favorite color" });
20
+ * ```
21
+ *
22
+ * @example
23
+ * Loading from local filesystem:
24
+ * ```ts
25
+ * import { loadChain } from "langchain/chains";
26
+ * const chain = await loadChain("/path/to/chain.json");
27
+ * ```
28
+ */
29
+ const loadChain = async (uri, values = {}) => {
30
+ const hubResult = await (0, hub_1.loadFromHub)(uri, (uri) => loadChainFromFile(uri, values), "chains", new Set(["json", "yaml"]), values);
31
+ if (hubResult) {
32
+ return hubResult;
33
+ }
34
+ return loadChainFromFile(uri, values);
35
+ };
36
+ exports.loadChain = loadChain;
37
+ //# sourceMappingURL=load.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load.js","sourceRoot":"","sources":["../../chains/load.ts"],"names":[],"mappings":";;;AAAA,wBAA8B;AAC9B,qCAA0C;AAC1C,kCAA0C;AAK1C,MAAM,iBAAiB,GAAG,KAAK,EAAE,IAAY,EAAE,SAAqB,EAAE,EAAE,EAAE;IACxE,MAAM,UAAU,GAAG,IAAA,sBAAe,EAAC,IAAI,CAAC,CAAC;IACzC,OAAO,YAAS,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACI,MAAM,SAAS,GAAG,KAAK,EAC5B,GAAW,EACX,SAAqB,EAAE,EACH,EAAE;IACtB,MAAM,SAAS,GAAG,MAAM,IAAA,iBAAW,EACjC,GAAG,EACH,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,EACvC,QAAQ,EACR,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACzB,MAAM,CACP,CAAC;IACF,IAAI,SAAS,EAAE;QACb,OAAO,SAAS,CAAC;KAClB;IAED,OAAO,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC,CAAC;AAhBW,QAAA,SAAS,aAgBpB"}
@@ -0,0 +1,3 @@
1
+ import { BaseLLM } from "../../llms";
2
+ import { StuffDocumentsChain } from "../combine_docs_chain";
3
+ export declare const loadQAChain: (llm: BaseLLM, prompt?: import("../..").PromptTemplate) => StuffDocumentsChain;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadQAChain = void 0;
4
+ const llm_chain_1 = require("../llm_chain");
5
+ const combine_docs_chain_1 = require("../combine_docs_chain");
6
+ const stuff_prompts_1 = require("./stuff_prompts");
7
+ const loadQAChain = (llm, prompt = stuff_prompts_1.DEFAULT_QA_PROMPT) => {
8
+ const llmChain = new llm_chain_1.LLMChain({ prompt, llm });
9
+ const chain = new combine_docs_chain_1.StuffDocumentsChain({ llmChain });
10
+ return chain;
11
+ };
12
+ exports.loadQAChain = loadQAChain;
13
+ //# sourceMappingURL=load.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load.js","sourceRoot":"","sources":["../../../chains/question_answering/load.ts"],"names":[],"mappings":";;;AACA,4CAAwC;AACxC,8DAA4D;AAC5D,mDAAoD;AAE7C,MAAM,WAAW,GAAG,CAAC,GAAY,EAAE,MAAM,GAAG,iCAAiB,EAAE,EAAE;IACtE,MAAM,QAAQ,GAAG,IAAI,oBAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/C,MAAM,KAAK,GAAG,IAAI,wCAAmB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IACpD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAJW,QAAA,WAAW,eAItB"}
@@ -0,0 +1,2 @@
1
+ import { PromptTemplate } from "../../prompts";
2
+ export declare const DEFAULT_QA_PROMPT: PromptTemplate;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_QA_PROMPT = void 0;
4
+ /* eslint-disable */
5
+ const prompts_1 = require("../../prompts");
6
+ exports.DEFAULT_QA_PROMPT = new prompts_1.PromptTemplate({
7
+ template: "Use the following pieces of context to answer the question at the end. If you don't know the answer, just say that you don't know, don't try to make up an answer.\n\n{context}\n\nQuestion: {question}\nHelpful Answer:",
8
+ inputVariables: ["context", "question"],
9
+ });
10
+ //# sourceMappingURL=stuff_prompts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stuff_prompts.js","sourceRoot":"","sources":["../../../chains/question_answering/stuff_prompts.ts"],"names":[],"mappings":";;;AAAA,oBAAoB;AACpB,2CAA+C;AAElC,QAAA,iBAAiB,GAAG,IAAI,wBAAc,CAAC;IAClD,QAAQ,EACN,0NAA0N;IAC5N,cAAc,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;CACxC,CAAC,CAAC"}