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
package/README.md ADDED
@@ -0,0 +1,33 @@
1
+ # 🦜️🔗 LangChain.js
2
+
3
+ ⚡ Building applications with LLMs through composability ⚡
4
+
5
+ **Production Support:** As you move your LangChains into production, we'd love to offer more comprehensive support.
6
+ Please fill out [this form](https://forms.gle/57d8AmXBYp8PP8tZA) and we'll set up a dedicated support Slack channel.
7
+
8
+ ## Quick Install
9
+
10
+ `yarn add langchain`
11
+
12
+ ```typescript
13
+ import { OpenAI } from 'langchain/llms';
14
+ ```
15
+
16
+ ## 🤔 What is this?
17
+
18
+ Large language models (LLMs) are emerging as a transformative technology, enabling
19
+ developers to build applications that they previously could not.
20
+ But using these LLMs in isolation is often not enough to
21
+ create a truly powerful app - the real power comes when you can combine them with other sources of computation or knowledge.
22
+
23
+ This library is aimed at assisting in the development of those types of applications.
24
+
25
+ ## Relationship with Python LangChain
26
+
27
+ This is built to integrate as seamlessly as possible with the [LangChain Python package](https://github.com/hwchase17/langchain). Specifically, this means all objects (prompts, LLMs, chains, etc) are designed in a way where they can be serialized and shared between languages.
28
+
29
+ The [LangChainHub](https://github.com/hwchase17/langchain-hub) is a central place for the serialized versions of these prompts, chains, and agents.
30
+
31
+ ## 📖 Documentation
32
+
33
+ For full documentation of prompts, chains, agents and more, please see [here](https://hwchase17.github.io/langchainjs/docs/overview).
package/agents.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './dist/agents'
package/agents.js ADDED
@@ -0,0 +1 @@
1
+ module.exports = require('./dist/agents')
package/chains.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './dist/chains'
package/chains.js ADDED
@@ -0,0 +1 @@
1
+ module.exports = require('./dist/chains')
@@ -0,0 +1,96 @@
1
+ import { ChainValues } from "../chains";
2
+ import { SerializedZeroShotAgent, AgentAction, AgentFinish, AgentStep, StoppingMethod, Tool } from "./index";
3
+ import { BaseLLM } from "../llms";
4
+ import { LLMChain } from "../chains/llm_chain";
5
+ import { BasePromptTemplate } from "../prompts";
6
+ export interface StaticAgent {
7
+ /**
8
+ * Create a prompt for this class
9
+ *
10
+ * @param tools - List of tools the agent will have access to, used to format the prompt.
11
+ * @param fields - Additional fields used to format the prompt.
12
+ *
13
+ * @returns A PromptTemplate assembled from the given tools and fields.
14
+ * */
15
+ createPrompt(tools: Tool[], fields?: Record<string, any>): BasePromptTemplate;
16
+ /** Construct an agent from an LLM and a list of tools */
17
+ fromLLMAndTools(llm: BaseLLM, tools: Tool[], args?: Record<string, any>): Agent;
18
+ validateTools(_: Tool[]): void;
19
+ }
20
+ export declare const staticImplements: <T>(_: T) => void;
21
+ type SerializedAgent = SerializedZeroShotAgent;
22
+ export interface AgentInput {
23
+ llmChain: LLMChain;
24
+ allowedTools?: string[];
25
+ }
26
+ /**
27
+ * Class responsible for calling a language model and deciding an action.
28
+ *
29
+ * @remarks This is driven by an LLMChain. The prompt in the LLMChain *must*
30
+ * include a variable called "agent_scratchpad" where the agent can put its
31
+ * intermediary work.
32
+ */
33
+ export declare abstract class Agent {
34
+ llmChain: LLMChain;
35
+ allowedTools?: string[];
36
+ returnValues: string[];
37
+ constructor(input: AgentInput);
38
+ /**
39
+ * Extract tool and tool input from LLM output.
40
+ */
41
+ abstract extractToolAndInput(input: string): {
42
+ tool: string;
43
+ input: string;
44
+ } | null;
45
+ /**
46
+ * Prefix to append the observation with.
47
+ */
48
+ abstract observationPrefix(): string;
49
+ /**
50
+ * Prefix to append the LLM call with.
51
+ */
52
+ abstract llmPrefix(): string;
53
+ /**
54
+ * Return the string type key uniquely identifying this class of agent.
55
+ */
56
+ abstract _agentType(): string;
57
+ /**
58
+ * Prepare the agent for a new call, if needed
59
+ */
60
+ prepareForNewCall(): void;
61
+ /**
62
+ * Validate that appropriate tools are passed in
63
+ */
64
+ static validateTools(_: Tool[]): void;
65
+ _stop(): string[];
66
+ /**
67
+ * Name of tool to use to terminate the chain.
68
+ */
69
+ finishToolName(): string;
70
+ /**
71
+ * Construct a scratchpad to let the agent continue its thought process
72
+ */
73
+ private constructScratchPad;
74
+ private _plan;
75
+ /**
76
+ * Decide what to do given some input.
77
+ *
78
+ * @param steps - Steps the LLM has taken so far, along with observations from each.
79
+ * @param inputs - User inputs.
80
+ *
81
+ * @returns Action specifying what tool to use.
82
+ */
83
+ plan(steps: AgentStep[], inputs: ChainValues): Promise<AgentAction | AgentFinish>;
84
+ /**
85
+ * Return response when agent has been stopped due to max iterations
86
+ */
87
+ returnStoppedResponse(earlyStoppingMethod: StoppingMethod, steps: AgentStep[], inputs: ChainValues): Promise<AgentFinish>;
88
+ /**
89
+ * Load an agent from a json-like object describing it.
90
+ */
91
+ static deserialize(data: SerializedAgent & {
92
+ llm?: BaseLLM;
93
+ tools?: Tool[];
94
+ }): Promise<Agent>;
95
+ }
96
+ export {};
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Agent = exports.staticImplements = void 0;
4
+ const index_1 = require("./index");
5
+ class ParseError extends Error {
6
+ constructor(msg, output) {
7
+ super(msg);
8
+ Object.defineProperty(this, "output", {
9
+ enumerable: true,
10
+ configurable: true,
11
+ writable: true,
12
+ value: void 0
13
+ });
14
+ this.output = output;
15
+ }
16
+ }
17
+ const staticImplements = (_) => { };
18
+ exports.staticImplements = staticImplements;
19
+ /**
20
+ * Class responsible for calling a language model and deciding an action.
21
+ *
22
+ * @remarks This is driven by an LLMChain. The prompt in the LLMChain *must*
23
+ * include a variable called "agent_scratchpad" where the agent can put its
24
+ * intermediary work.
25
+ */
26
+ class Agent {
27
+ constructor(input) {
28
+ Object.defineProperty(this, "llmChain", {
29
+ enumerable: true,
30
+ configurable: true,
31
+ writable: true,
32
+ value: void 0
33
+ });
34
+ Object.defineProperty(this, "allowedTools", {
35
+ enumerable: true,
36
+ configurable: true,
37
+ writable: true,
38
+ value: undefined
39
+ });
40
+ Object.defineProperty(this, "returnValues", {
41
+ enumerable: true,
42
+ configurable: true,
43
+ writable: true,
44
+ value: ["output"]
45
+ });
46
+ this.llmChain = input.llmChain;
47
+ this.allowedTools = input.allowedTools;
48
+ }
49
+ /**
50
+ * Prepare the agent for a new call, if needed
51
+ */
52
+ prepareForNewCall() { }
53
+ /**
54
+ * Validate that appropriate tools are passed in
55
+ */
56
+ // eslint-disable-next-line no-unused-vars
57
+ static validateTools(_) { }
58
+ _stop() {
59
+ return [`\n${this.observationPrefix()}`];
60
+ }
61
+ /**
62
+ * Name of tool to use to terminate the chain.
63
+ */
64
+ finishToolName() {
65
+ return "Final Answer";
66
+ }
67
+ /**
68
+ * Construct a scratchpad to let the agent continue its thought process
69
+ */
70
+ constructScratchPad(steps) {
71
+ return steps.reduce((thoughts, { action, observation }) => thoughts +
72
+ [
73
+ action.log,
74
+ `${this.observationPrefix()}${observation}`,
75
+ this.llmPrefix(),
76
+ ].join("\n"), "");
77
+ }
78
+ async _plan(steps, inputs, suffix) {
79
+ const thoughts = this.constructScratchPad(steps);
80
+ const newInputs = {
81
+ ...inputs,
82
+ agent_scratchpad: suffix ? `${thoughts}${suffix}` : thoughts,
83
+ stop: this._stop(),
84
+ };
85
+ const output = await this.llmChain.predict(newInputs);
86
+ const parsed = this.extractToolAndInput(output);
87
+ if (!parsed) {
88
+ throw new ParseError(`Invalid output: ${output}`, output);
89
+ }
90
+ const action = {
91
+ tool: parsed.tool,
92
+ toolInput: parsed.input,
93
+ log: output,
94
+ };
95
+ if (action.tool === this.finishToolName()) {
96
+ return { returnValues: { output: action.toolInput }, log: action.log };
97
+ }
98
+ return action;
99
+ }
100
+ /**
101
+ * Decide what to do given some input.
102
+ *
103
+ * @param steps - Steps the LLM has taken so far, along with observations from each.
104
+ * @param inputs - User inputs.
105
+ *
106
+ * @returns Action specifying what tool to use.
107
+ */
108
+ plan(steps, inputs) {
109
+ return this._plan(steps, inputs);
110
+ }
111
+ /**
112
+ * Return response when agent has been stopped due to max iterations
113
+ */
114
+ async returnStoppedResponse(earlyStoppingMethod, steps, inputs) {
115
+ if (earlyStoppingMethod === "force") {
116
+ return {
117
+ returnValues: { output: "Agent stopped due to max iterations." },
118
+ log: "",
119
+ };
120
+ }
121
+ if (earlyStoppingMethod === "generate") {
122
+ try {
123
+ const action = await this._plan(steps, inputs, "\n\nI now need to return a final answer based on the previous steps:");
124
+ if ("returnValues" in action) {
125
+ return action;
126
+ }
127
+ return { returnValues: { output: action.log }, log: action.log };
128
+ }
129
+ catch (err) {
130
+ if (!(err instanceof ParseError)) {
131
+ throw err;
132
+ }
133
+ return { returnValues: { output: err.output }, log: err.output };
134
+ }
135
+ }
136
+ throw new Error(`Invalid stopping method: ${earlyStoppingMethod}`);
137
+ }
138
+ /**
139
+ * Load an agent from a json-like object describing it.
140
+ */
141
+ static async deserialize(data) {
142
+ switch (data._type) {
143
+ case "zero-shot-react-description":
144
+ return index_1.ZeroShotAgent.deserialize(data);
145
+ default:
146
+ throw new Error("Unknown agent type");
147
+ }
148
+ }
149
+ }
150
+ exports.Agent = Agent;
151
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../agents/agent.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,10 @@ type AgentExecutorInput = {
8
8
  maxIterations?: number;
9
9
  earlyStoppingMethod?: StoppingMethod;
10
10
  };
11
+ /**
12
+ * A chain managing an agent using tools.
13
+ * @augments BaseChain
14
+ */
11
15
  export declare class AgentExecutor extends BaseChain {
12
16
  agent: Agent;
13
17
  tools: Tool[];
@@ -15,6 +19,7 @@ export declare class AgentExecutor extends BaseChain {
15
19
  maxIterations?: number;
16
20
  earlyStoppingMethod: StoppingMethod;
17
21
  constructor(input: AgentExecutorInput);
22
+ /** Create from agent and a list of tools. */
18
23
  static fromAgentAndTools(fields: {
19
24
  agent: Agent;
20
25
  tools: Tool[];
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AgentExecutor = void 0;
4
+ const chains_1 = require("../chains");
5
+ /**
6
+ * A chain managing an agent using tools.
7
+ * @augments BaseChain
8
+ */
9
+ class AgentExecutor extends chains_1.BaseChain {
10
+ constructor(input) {
11
+ var _a, _b, _c;
12
+ super();
13
+ Object.defineProperty(this, "agent", {
14
+ enumerable: true,
15
+ configurable: true,
16
+ writable: true,
17
+ value: void 0
18
+ });
19
+ Object.defineProperty(this, "tools", {
20
+ enumerable: true,
21
+ configurable: true,
22
+ writable: true,
23
+ value: void 0
24
+ });
25
+ Object.defineProperty(this, "returnIntermediateSteps", {
26
+ enumerable: true,
27
+ configurable: true,
28
+ writable: true,
29
+ value: false
30
+ });
31
+ Object.defineProperty(this, "maxIterations", {
32
+ enumerable: true,
33
+ configurable: true,
34
+ writable: true,
35
+ value: 15
36
+ });
37
+ Object.defineProperty(this, "earlyStoppingMethod", {
38
+ enumerable: true,
39
+ configurable: true,
40
+ writable: true,
41
+ value: "force"
42
+ });
43
+ this.agent = input.agent;
44
+ this.tools = input.tools;
45
+ this.returnIntermediateSteps =
46
+ (_a = input.returnIntermediateSteps) !== null && _a !== void 0 ? _a : this.returnIntermediateSteps;
47
+ this.maxIterations = (_b = input.maxIterations) !== null && _b !== void 0 ? _b : this.maxIterations;
48
+ this.earlyStoppingMethod =
49
+ (_c = input.earlyStoppingMethod) !== null && _c !== void 0 ? _c : this.earlyStoppingMethod;
50
+ }
51
+ /** Create from agent and a list of tools. */
52
+ static fromAgentAndTools(fields) {
53
+ return new AgentExecutor(fields);
54
+ }
55
+ shouldContinue(iterations) {
56
+ return this.maxIterations === undefined || iterations < this.maxIterations;
57
+ }
58
+ async _call(inputs) {
59
+ this.agent.prepareForNewCall();
60
+ const toolsByName = Object.fromEntries(this.tools.map((t) => [t.name.toLowerCase(), t]));
61
+ const steps = [];
62
+ let iterations = 0;
63
+ const getOutput = (finishStep) => {
64
+ const { returnValues } = finishStep;
65
+ if (this.returnIntermediateSteps) {
66
+ return { ...returnValues, intermediateSteps: steps };
67
+ }
68
+ return returnValues;
69
+ };
70
+ while (this.shouldContinue(iterations)) {
71
+ const action = await this.agent.plan(steps, inputs);
72
+ if ("returnValues" in action) {
73
+ return getOutput(action);
74
+ }
75
+ const tool = toolsByName[action.tool.toLowerCase()];
76
+ const observation = tool
77
+ ? await tool.call(action.toolInput)
78
+ : `${action.tool} is not a valid tool, try another one.`;
79
+ steps.push({ action, observation });
80
+ if (tool === null || tool === void 0 ? void 0 : tool.returnDirect) {
81
+ return getOutput({
82
+ returnValues: { [this.agent.returnValues[0]]: observation },
83
+ log: "",
84
+ });
85
+ }
86
+ iterations += 1;
87
+ }
88
+ const finish = await this.agent.returnStoppedResponse(this.earlyStoppingMethod, steps, inputs);
89
+ return getOutput(finish);
90
+ }
91
+ _chainType() {
92
+ return "agent_executor";
93
+ }
94
+ serialize() {
95
+ throw new Error("Cannot serialize an AgentExecutor");
96
+ }
97
+ }
98
+ exports.AgentExecutor = AgentExecutor;
99
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../agents/executor.ts"],"names":[],"mappings":"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"}
File without changes
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deserializeHelper = void 0;
4
+ const chains_1 = require("../chains");
5
+ const util_1 = require("../util");
6
+ const deserializeHelper = async (llm, tools, data, fromLLMAndTools, fromConstructor) => {
7
+ if (data.load_from_llm_and_tools) {
8
+ if (!llm) {
9
+ throw new Error("Loading from llm and tools, llm must be provided.");
10
+ }
11
+ if (!tools) {
12
+ throw new Error("Loading from llm and tools, tools must be provided.");
13
+ }
14
+ return fromLLMAndTools(llm, tools, data);
15
+ }
16
+ const serializedLLMChain = (0, util_1.resolveConfigFromFile)("llm_chain", data);
17
+ const llmChain = await chains_1.LLMChain.deserialize(serializedLLMChain);
18
+ return fromConstructor({ ...data, llmChain });
19
+ };
20
+ exports.deserializeHelper = deserializeHelper;
21
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../agents/helpers.ts"],"names":[],"mappings":";;;AAEA,sCAAyD;AACzD,kCAAgD;AAEzC,MAAM,iBAAiB,GAAG,KAAK,EAMpC,GAAwB,EACxB,KAAyB,EACzB,IAA+B,EAC/B,eAA4D,EAC5D,eAA+B,EACnB,EAAE;IACd,IAAI,IAAI,CAAC,uBAAuB,EAAE;QAChC,IAAI,CAAC,GAAG,EAAE;YACR,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;SACtE;QAED,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;SACxE;QAED,OAAO,eAAe,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;KAC1C;IAED,MAAM,kBAAkB,GAAG,IAAA,4BAAqB,EAG9C,WAAW,EAAE,IAAI,CAAC,CAAC;IACrB,MAAM,QAAQ,GAAG,MAAM,iBAAQ,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAChE,OAAO,eAAe,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AAChD,CAAC,CAAC;AA9BW,QAAA,iBAAiB,qBA8B5B"}
@@ -3,4 +3,5 @@ export { Agent, StaticAgent, staticImplements, AgentInput } from "./agent";
3
3
  export { AgentExecutor } from "./executor";
4
4
  export { ZeroShotAgent, SerializedZeroShotAgent } from "./mrkl";
5
5
  export { Tool } from "./tools";
6
+ export { initializeAgentExecutor } from "./initialize";
6
7
  export { loadAgent } from "./load";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loadAgent = exports.ZeroShotAgent = exports.AgentExecutor = exports.staticImplements = exports.Agent = void 0;
3
+ exports.loadAgent = exports.initializeAgentExecutor = exports.Tool = exports.ZeroShotAgent = exports.AgentExecutor = exports.staticImplements = exports.Agent = void 0;
4
4
  var agent_1 = require("./agent");
5
5
  Object.defineProperty(exports, "Agent", { enumerable: true, get: function () { return agent_1.Agent; } });
6
6
  Object.defineProperty(exports, "staticImplements", { enumerable: true, get: function () { return agent_1.staticImplements; } });
@@ -8,6 +8,10 @@ var executor_1 = require("./executor");
8
8
  Object.defineProperty(exports, "AgentExecutor", { enumerable: true, get: function () { return executor_1.AgentExecutor; } });
9
9
  var mrkl_1 = require("./mrkl");
10
10
  Object.defineProperty(exports, "ZeroShotAgent", { enumerable: true, get: function () { return mrkl_1.ZeroShotAgent; } });
11
+ var tools_1 = require("./tools");
12
+ Object.defineProperty(exports, "Tool", { enumerable: true, get: function () { return tools_1.Tool; } });
13
+ var initialize_1 = require("./initialize");
14
+ Object.defineProperty(exports, "initializeAgentExecutor", { enumerable: true, get: function () { return initialize_1.initializeAgentExecutor; } });
11
15
  var load_1 = require("./load");
12
16
  Object.defineProperty(exports, "loadAgent", { enumerable: true, get: function () { return load_1.loadAgent; } });
13
17
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../agents/index.ts"],"names":[],"mappings":";;;AAOA,iCAA2E;AAAlE,8FAAA,KAAK,OAAA;AAAe,yGAAA,gBAAgB,OAAA;AAC7C,uCAA2C;AAAlC,yGAAA,aAAa,OAAA;AACtB,+BAAgE;AAAvD,qGAAA,aAAa,OAAA;AACtB,iCAA+B;AAAtB,6FAAA,IAAI,OAAA;AACb,2CAAuD;AAA9C,qHAAA,uBAAuB,OAAA;AAEhC,+BAAmC;AAA1B,iGAAA,SAAS,OAAA"}
@@ -0,0 +1,4 @@
1
+ import { Tool } from "./tools";
2
+ import { BaseLLM } from "../llms";
3
+ import { AgentExecutor } from "./executor";
4
+ export declare const initializeAgentExecutor: (tools: Tool[], llm: BaseLLM, agentType?: string) => Promise<AgentExecutor>;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.initializeAgentExecutor = void 0;
4
+ const executor_1 = require("./executor");
5
+ const mrkl_1 = require("./mrkl");
6
+ const initializeAgentExecutor = async (tools, llm, agentType = "zero-shot-react-description") => {
7
+ switch (agentType) {
8
+ case "zero-shot-react-description":
9
+ return executor_1.AgentExecutor.fromAgentAndTools({
10
+ agent: mrkl_1.ZeroShotAgent.fromLLMAndTools(llm, tools),
11
+ tools,
12
+ returnIntermediateSteps: true,
13
+ });
14
+ default:
15
+ throw new Error("Unknown agent type");
16
+ }
17
+ };
18
+ exports.initializeAgentExecutor = initializeAgentExecutor;
19
+ //# sourceMappingURL=initialize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../agents/initialize.ts"],"names":[],"mappings":";;;AAEA,yCAA2C;AAC3C,iCAAuC;AAEhC,MAAM,uBAAuB,GAAG,KAAK,EAC1C,KAAa,EACb,GAAY,EACZ,SAAS,GAAG,6BAA6B,EACjB,EAAE;IAC1B,QAAQ,SAAS,EAAE;QACjB,KAAK,6BAA6B;YAChC,OAAO,wBAAa,CAAC,iBAAiB,CAAC;gBACrC,KAAK,EAAE,oBAAa,CAAC,eAAe,CAAC,GAAG,EAAE,KAAK,CAAC;gBAChD,KAAK;gBACL,uBAAuB,EAAE,IAAI;aAC9B,CAAC,CAAC;QACL;YACE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;KACzC;AACH,CAAC,CAAC;AAfW,QAAA,uBAAuB,2BAelC"}
File without changes
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadAgent = void 0;
4
+ const _1 = require(".");
5
+ const hub_1 = require("../util/hub");
6
+ const util_1 = require("../util");
7
+ const loadAgentFromFile = async (file, llmAndTools) => {
8
+ const serialized = (0, util_1.parseFileConfig)(file);
9
+ return _1.Agent.deserialize({ ...serialized, ...llmAndTools });
10
+ };
11
+ const loadAgent = async (uri, llmAndTools) => {
12
+ const hubResult = await (0, hub_1.loadFromHub)(uri, (u) => loadAgentFromFile(u, llmAndTools), "agents", new Set(["json", "yaml"]));
13
+ if (hubResult) {
14
+ return hubResult;
15
+ }
16
+ return loadAgentFromFile(uri, llmAndTools);
17
+ };
18
+ exports.loadAgent = loadAgent;
19
+ //# sourceMappingURL=load.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load.js","sourceRoot":"","sources":["../../agents/load.ts"],"names":[],"mappings":";;;AAAA,wBAAgC;AAEhC,qCAA0C;AAC1C,kCAA0C;AAE1C,MAAM,iBAAiB,GAAG,KAAK,EAC7B,IAAY,EACZ,WAA+C,EAC/C,EAAE;IACF,MAAM,UAAU,GAAG,IAAA,sBAAe,EAAC,IAAI,CAAC,CAAC;IACzC,OAAO,QAAK,CAAC,WAAW,CAAC,EAAE,GAAG,UAAU,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC;AAC9D,CAAC,CAAC;AAEK,MAAM,SAAS,GAAG,KAAK,EAC5B,GAAW,EACX,WAA+C,EAC/B,EAAE;IAClB,MAAM,SAAS,GAAG,MAAM,IAAA,iBAAW,EACjC,GAAG,EACH,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,WAAW,CAAC,EACxC,QAAQ,EACR,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAC1B,CAAC;IACF,IAAI,SAAS,EAAE;QACb,OAAO,SAAS,CAAC;KAClB;IAED,OAAO,iBAAiB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AAC7C,CAAC,CAAC;AAfW,QAAA,SAAS,aAepB"}
@@ -1,6 +1,6 @@
1
1
  import { BaseLLM } from "../../llms";
2
2
  import { Agent, Tool, AgentInput, SerializedAgentT } from "../index";
3
- import { PromptTemplate } from "../../prompt";
3
+ import { PromptTemplate } from "../../prompts";
4
4
  type SerializedFromLLMAndTools = {
5
5
  suffix?: string;
6
6
  prefix?: string;
@@ -8,17 +8,34 @@ type SerializedFromLLMAndTools = {
8
8
  };
9
9
  export type SerializedZeroShotAgent = SerializedAgentT<"zero-shot-react-description", SerializedFromLLMAndTools, AgentInput>;
10
10
  type CreatePromptArgs = {
11
+ /** String to put after the list of tools. */
11
12
  suffix?: string;
13
+ /** String to put before the list of tools. */
12
14
  prefix?: string;
15
+ /** List of input variables the final prompt will expect. */
13
16
  inputVariables?: string[];
14
17
  };
15
18
  type ZeroShotAgentInput = AgentInput;
19
+ /**
20
+ * Agent for the MRKL chain.
21
+ * @augments Agent
22
+ * @augments StaticAgent
23
+ */
16
24
  export declare class ZeroShotAgent extends Agent {
17
25
  constructor(input: ZeroShotAgentInput);
18
26
  _agentType(): "zero-shot-react-description";
19
27
  observationPrefix(): string;
20
28
  llmPrefix(): string;
21
29
  static validateTools(tools: Tool[]): void;
30
+ /**
31
+ * Create prompt in the style of the zero shot agent.
32
+ *
33
+ * @param tools - List of tools the agent will have access to, used to format the prompt.
34
+ * @param args - Arguments to create the prompt with.
35
+ * @param args.suffix - String to put after the list of tools.
36
+ * @param args.prefix - String to put before the list of tools.
37
+ * @param args.inputVariables - List of input variables the final prompt will expect.
38
+ */
22
39
  static createPrompt(tools: Tool[], args?: CreatePromptArgs): PromptTemplate;
23
40
  static fromLLMAndTools(llm: BaseLLM, tools: Tool[], args?: CreatePromptArgs): ZeroShotAgent;
24
41
  extractToolAndInput(text: string): {