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
@@ -1,33 +1,33 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.OpenAI = void 0;
13
4
  const exponential_backoff_1 = require("exponential-backoff");
5
+ const util_1 = require("../util");
14
6
  const _1 = require(".");
15
7
  let Configuration = null;
16
8
  let OpenAIApi = null;
17
9
  try {
18
- // eslint-disable-next-line global-require
10
+ // eslint-disable-next-line global-require,import/no-extraneous-dependencies
19
11
  ({ Configuration, OpenAIApi } = require("openai"));
20
12
  }
21
13
  catch (_a) {
22
14
  // ignore error
23
15
  }
24
- const chunkArray = (arr, chunkSize) => arr.reduce((chunks, elem, index) => {
25
- const chunkIndex = Math.floor(index / chunkSize);
26
- const chunk = chunks[chunkIndex] || [];
27
- // eslint-disable-next-line no-param-reassign
28
- chunks[chunkIndex] = chunk.concat([elem]);
29
- return chunks;
30
- }, []);
16
+ /**
17
+ * Wrapper around OpenAI large language models.
18
+ *
19
+ * To use you should have the `openai` package installed, with the
20
+ * `OPENAI_API_KEY` environment variable set.
21
+ *
22
+ * @remarks
23
+ * Any parameters that are valid to be passed to {@link
24
+ * https://platform.openai.com/docs/api-reference/completions/create |
25
+ * `openai.createCompletion`} can be passed through {@link modelKwargs}, even
26
+ * if not explicitly available on this class.
27
+ *
28
+ * @augments BaseLLM
29
+ * @augments OpenAIInput
30
+ */
31
31
  class OpenAI extends _1.BaseLLM {
32
32
  constructor(fields) {
33
33
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
@@ -117,7 +117,7 @@ class OpenAI extends _1.BaseLLM {
117
117
  value: void 0
118
118
  });
119
119
  if (Configuration === null || OpenAIApi === null) {
120
- throw new Error("Please install openai as a dependency with, e.g. `npm install -S openai`");
120
+ throw new Error("Please install openai as a dependency with, e.g. `npm i openai`");
121
121
  }
122
122
  this.modelName = (_a = fields === null || fields === void 0 ? void 0 : fields.modelName) !== null && _a !== void 0 ? _a : this.modelName;
123
123
  this.modelKwargs = (_b = fields === null || fields === void 0 ? void 0 : fields.modelKwargs) !== null && _b !== void 0 ? _b : {};
@@ -137,54 +137,92 @@ class OpenAI extends _1.BaseLLM {
137
137
  });
138
138
  this.client = new OpenAIApi(clientConfig);
139
139
  }
140
+ /**
141
+ * Get the parameters used to invoke the model
142
+ */
140
143
  invocationParams() {
141
- return Object.assign({ model: this.modelName, temperature: this.temperature, max_tokens: this.maxTokens, top_p: this.topP, frequency_penalty: this.frequencyPenalty, presence_penalty: this.presencePenalty, n: this.n, best_of: this.bestOf, logit_bias: this.logitBias, stop: this.stop }, this.modelKwargs);
144
+ return {
145
+ model: this.modelName,
146
+ temperature: this.temperature,
147
+ max_tokens: this.maxTokens,
148
+ top_p: this.topP,
149
+ frequency_penalty: this.frequencyPenalty,
150
+ presence_penalty: this.presencePenalty,
151
+ n: this.n,
152
+ best_of: this.bestOf,
153
+ logit_bias: this.logitBias,
154
+ stop: this.stop,
155
+ ...this.modelKwargs,
156
+ };
142
157
  }
158
+ /**
159
+ * Get the identifyin parameters for the model
160
+ */
143
161
  identifyingParams() {
144
- return Object.assign({ model_name: this.modelName }, this.invocationParams());
162
+ return {
163
+ model_name: this.modelName,
164
+ ...this.invocationParams(),
165
+ };
145
166
  }
146
- _generate(prompts, stop) {
167
+ /**
168
+ * Call out to OpenAI's endpoint with k unique prompts
169
+ *
170
+ * @param prompts - The prompts to pass into the model.
171
+ * @param [stop] - Optional list of stop words to use when generating.
172
+ *
173
+ * @returns The full LLM output.
174
+ *
175
+ * @example
176
+ * ```ts
177
+ * import { OpenAI } from "langchain/llms";
178
+ * const openai = new OpenAI();
179
+ * const response = await openai.generate(["Tell me a joke."]);
180
+ * ```
181
+ */
182
+ async _generate(prompts, stop) {
147
183
  var _a, _b, _c, _d;
148
- return __awaiter(this, void 0, void 0, function* () {
149
- const subPrompts = chunkArray(prompts, this.batchSize);
150
- const choices = [];
151
- const tokenUsage = {};
152
- if (this.stop && stop) {
153
- throw new Error("Stop found in input and default params");
184
+ const subPrompts = (0, util_1.chunkArray)(prompts, this.batchSize);
185
+ const choices = [];
186
+ const tokenUsage = {};
187
+ if (this.stop && stop) {
188
+ throw new Error("Stop found in input and default params");
189
+ }
190
+ const params = this.invocationParams();
191
+ params.stop = stop !== null && stop !== void 0 ? stop : params.stop;
192
+ for (let i = 0; i < subPrompts.length; i += 1) {
193
+ const { data } = await this.completionWithRetry({
194
+ ...params,
195
+ prompt: subPrompts[i],
196
+ });
197
+ choices.push(...data.choices);
198
+ const { completion_tokens: completionTokens, prompt_tokens: promptTokens, total_tokens: totalTokens, } = (_a = data.usage) !== null && _a !== void 0 ? _a : {};
199
+ if (completionTokens) {
200
+ tokenUsage.completionTokens =
201
+ ((_b = tokenUsage.completionTokens) !== null && _b !== void 0 ? _b : 0) + completionTokens;
154
202
  }
155
- const params = this.invocationParams();
156
- params.stop = stop !== null && stop !== void 0 ? stop : params.stop;
157
- for (let i = 0; i < subPrompts.length; i += 1) {
158
- const { data } = yield this.completionWithRetry(Object.assign(Object.assign({}, params), { prompt: subPrompts[i] }));
159
- choices.push(...data.choices);
160
- const { completion_tokens: completionTokens, prompt_tokens: promptTokens, total_tokens: totalTokens, } = (_a = data.usage) !== null && _a !== void 0 ? _a : {};
161
- if (completionTokens) {
162
- tokenUsage.completionTokens =
163
- ((_b = tokenUsage.completionTokens) !== null && _b !== void 0 ? _b : 0) + completionTokens;
164
- }
165
- if (promptTokens) {
166
- tokenUsage.promptTokens = ((_c = tokenUsage.promptTokens) !== null && _c !== void 0 ? _c : 0) + promptTokens;
167
- }
168
- if (totalTokens) {
169
- tokenUsage.totalTokens = ((_d = tokenUsage.totalTokens) !== null && _d !== void 0 ? _d : 0) + totalTokens;
170
- }
203
+ if (promptTokens) {
204
+ tokenUsage.promptTokens = ((_c = tokenUsage.promptTokens) !== null && _c !== void 0 ? _c : 0) + promptTokens;
171
205
  }
172
- const generations = chunkArray(choices, this.n).map((promptChoices) => promptChoices.map((choice) => {
173
- var _a;
174
- return ({
175
- text: (_a = choice.text) !== null && _a !== void 0 ? _a : "",
176
- generationInfo: {
177
- finishReason: choice.finish_reason,
178
- logprobs: choice.logprobs,
179
- },
180
- });
181
- }));
182
- return {
183
- generations,
184
- llmOutput: { tokenUsage },
185
- };
186
- });
206
+ if (totalTokens) {
207
+ tokenUsage.totalTokens = ((_d = tokenUsage.totalTokens) !== null && _d !== void 0 ? _d : 0) + totalTokens;
208
+ }
209
+ }
210
+ const generations = (0, util_1.chunkArray)(choices, this.n).map((promptChoices) => promptChoices.map((choice) => {
211
+ var _a;
212
+ return ({
213
+ text: (_a = choice.text) !== null && _a !== void 0 ? _a : "",
214
+ generationInfo: {
215
+ finishReason: choice.finish_reason,
216
+ logprobs: choice.logprobs,
217
+ },
218
+ });
219
+ }));
220
+ return {
221
+ generations,
222
+ llmOutput: { tokenUsage },
223
+ };
187
224
  }
225
+ /** @ignore */
188
226
  completionWithRetry(request) {
189
227
  const makeCompletionRequest = () => this.client.createCompletion(request);
190
228
  return (0, exponential_backoff_1.backOff)(makeCompletionRequest, {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../llms/openai.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const globals_1 = require("@jest/globals");
4
+ const cohere_1 = require("../cohere");
5
+ (0, globals_1.test)("Test Cohere", async () => {
6
+ const model = new cohere_1.Cohere({ maxTokens: 20 });
7
+ const res = await model.call("1 + 1 =");
8
+ console.log(res);
9
+ }, 50000);
10
+ //# sourceMappingURL=cohere.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cohere.test.js","sourceRoot":"","sources":["../../../llms/tests/cohere.test.ts"],"names":[],"mappings":";;AAAA,2CAAqC;AACrC,sCAAmC;AAEnC,IAAA,cAAI,EAAC,aAAa,EAAE,KAAK,IAAI,EAAE;IAC7B,MAAM,KAAK,GAAG,IAAI,eAAM,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnB,CAAC,EAAE,KAAK,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const globals_1 = require("@jest/globals");
4
+ const openai_1 = require("../openai");
5
+ (0, globals_1.test)("Test OpenAI", async () => {
6
+ const model = new openai_1.OpenAI({ maxTokens: 5 });
7
+ const res = await model.call("Print hello world");
8
+ console.log({ res });
9
+ });
10
+ //# sourceMappingURL=openai.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.test.js","sourceRoot":"","sources":["../../../llms/tests/openai.test.ts"],"names":[],"mappings":";;AAAA,2CAAqC;AACrC,sCAAmC;AAEnC,IAAA,cAAI,EAAC,aAAa,EAAE,KAAK,IAAI,EAAE;IAC7B,MAAM,KAAK,GAAG,IAAI,eAAM,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export type InputValues = Record<string, any>;
2
+ export type OutputValues = Record<string, any>;
3
+ export type MemoryVariables = Record<string, any>;
4
+ export declare abstract class BaseMemory {
5
+ abstract loadMemoryVariables(values: InputValues): Promise<MemoryVariables>;
6
+ abstract saveContext(inputValues: InputValues, OutputValues: Promise<OutputValues>): Promise<void>;
7
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseMemory = void 0;
4
+ class BaseMemory {
5
+ }
6
+ exports.BaseMemory = BaseMemory;
7
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../memory/base.ts"],"names":[],"mappings":";;;AAOA,MAAsB,UAAU;CAO/B;AAPD,gCAOC"}
@@ -0,0 +1,15 @@
1
+ import { BaseMemory, InputValues, MemoryVariables, OutputValues } from "./base";
2
+ export interface BufferMemoryInput {
3
+ humanPrefix: string;
4
+ aiPrefix: string;
5
+ memoryKey: string;
6
+ }
7
+ export declare class BufferMemory extends BaseMemory implements BufferMemoryInput {
8
+ humanPrefix: string;
9
+ aiPrefix: string;
10
+ memoryKey: string;
11
+ buffer: string;
12
+ constructor(fields?: Partial<BufferMemoryInput>);
13
+ loadMemoryVariables(_values: InputValues): Promise<MemoryVariables>;
14
+ saveContext(inputValues: InputValues, outputValues: Promise<OutputValues>): Promise<void>;
15
+ }
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BufferMemory = void 0;
4
+ const base_1 = require("./base");
5
+ const getInputValue = (inputValues) => {
6
+ const keys = Object.keys(inputValues);
7
+ if (keys.length === 1) {
8
+ return inputValues[keys[0]];
9
+ }
10
+ throw new Error("input values have multiple keys, memory only supported when one key currently");
11
+ };
12
+ class BufferMemory extends base_1.BaseMemory {
13
+ constructor(fields) {
14
+ var _a, _b, _c;
15
+ super();
16
+ Object.defineProperty(this, "humanPrefix", {
17
+ enumerable: true,
18
+ configurable: true,
19
+ writable: true,
20
+ value: "Human"
21
+ });
22
+ Object.defineProperty(this, "aiPrefix", {
23
+ enumerable: true,
24
+ configurable: true,
25
+ writable: true,
26
+ value: "AI"
27
+ });
28
+ Object.defineProperty(this, "memoryKey", {
29
+ enumerable: true,
30
+ configurable: true,
31
+ writable: true,
32
+ value: "history"
33
+ });
34
+ Object.defineProperty(this, "buffer", {
35
+ enumerable: true,
36
+ configurable: true,
37
+ writable: true,
38
+ value: ""
39
+ });
40
+ this.humanPrefix = (_a = fields === null || fields === void 0 ? void 0 : fields.humanPrefix) !== null && _a !== void 0 ? _a : this.humanPrefix;
41
+ this.aiPrefix = (_b = fields === null || fields === void 0 ? void 0 : fields.aiPrefix) !== null && _b !== void 0 ? _b : this.aiPrefix;
42
+ this.memoryKey = (_c = fields === null || fields === void 0 ? void 0 : fields.memoryKey) !== null && _c !== void 0 ? _c : this.memoryKey;
43
+ }
44
+ async loadMemoryVariables(_values) {
45
+ const result = { [this.memoryKey]: this.buffer };
46
+ return result;
47
+ }
48
+ async saveContext(inputValues, outputValues) {
49
+ const values = await outputValues;
50
+ const human = `${this.humanPrefix}: ${getInputValue(inputValues)}`;
51
+ const ai = `${this.aiPrefix}: ${getInputValue(values)}`;
52
+ const newlines = [human, ai];
53
+ this.buffer += `\n${newlines.join("\n")}`;
54
+ }
55
+ }
56
+ exports.BufferMemory = BufferMemory;
57
+ //# sourceMappingURL=buffer_memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buffer_memory.js","sourceRoot":"","sources":["../../memory/buffer_memory.ts"],"names":[],"mappings":";;;AAAA,iCAAgF;AAQhF,MAAM,aAAa,GAAG,CAAC,WAAwB,EAAE,EAAE;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACrB,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KAC7B;IACD,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAa,YAAa,SAAQ,iBAAU;IAS1C,YAAY,MAAmC;;QAC7C,KAAK,EAAE,CAAC;QATV;;;;mBAAc,OAAO;WAAC;QAEtB;;;;mBAAW,IAAI;WAAC;QAEhB;;;;mBAAY,SAAS;WAAC;QAEtB;;;;mBAAS,EAAE;WAAC;QAIV,IAAI,CAAC,WAAW,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,mCAAI,IAAI,CAAC,WAAW,CAAC;QAC3D,IAAI,CAAC,QAAQ,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,mCAAI,IAAI,CAAC,QAAQ,CAAC;QAClD,IAAI,CAAC,SAAS,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,mCAAI,IAAI,CAAC,SAAS,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,OAAoB;QAC5C,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QACjD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,WAAW,CACf,WAAwB,EACxB,YAAmC;QAEnC,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;QAClC,MAAM,KAAK,GAAG,GAAG,IAAI,CAAC,WAAW,KAAK,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;QACnE,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,QAAQ,KAAK,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC5C,CAAC;CACF;AA/BD,oCA+BC"}
@@ -0,0 +1,2 @@
1
+ export { BufferMemory } from "./buffer_memory";
2
+ export { BaseMemory } from "./base";
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseMemory = exports.BufferMemory = void 0;
4
+ var buffer_memory_1 = require("./buffer_memory");
5
+ Object.defineProperty(exports, "BufferMemory", { enumerable: true, get: function () { return buffer_memory_1.BufferMemory; } });
6
+ var base_1 = require("./base");
7
+ Object.defineProperty(exports, "BaseMemory", { enumerable: true, get: function () { return base_1.BaseMemory; } });
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../memory/index.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,+BAAoC;AAA3B,kGAAA,UAAU,OAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const globals_1 = require("@jest/globals");
4
+ const buffer_memory_1 = require("../buffer_memory");
5
+ (0, globals_1.test)("Test buffer memory", async () => {
6
+ const memory = new buffer_memory_1.BufferMemory();
7
+ const result1 = await memory.loadMemoryVariables({});
8
+ (0, globals_1.expect)(result1).toStrictEqual({ history: "" });
9
+ const result = new Promise((resolve, _reject) => {
10
+ resolve({ bar: "foo" });
11
+ });
12
+ await memory.saveContext({ foo: "bar" }, result);
13
+ const expectedString = "\nHuman: bar\nAI: foo";
14
+ const result2 = await memory.loadMemoryVariables({});
15
+ (0, globals_1.expect)(result2).toStrictEqual({ history: expectedString });
16
+ });
17
+ //# sourceMappingURL=buffer_memory.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buffer_memory.test.js","sourceRoot":"","sources":["../../../memory/tests/buffer_memory.test.ts"],"names":[],"mappings":";;AAAA,2CAA6C;AAC7C,oDAAgD;AAGhD,IAAA,cAAI,EAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;IACpC,MAAM,MAAM,GAAG,IAAI,4BAAY,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACrD,IAAA,gBAAM,EAAC,OAAO,CAAC,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IAE/C,MAAM,MAAM,GAAG,IAAI,OAAO,CAAe,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;QAC5D,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IACH,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,cAAc,GAAG,uBAAuB,CAAC;IAC/C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACrD,IAAA,gBAAM,EAAC,OAAO,CAAC,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;AAC7D,CAAC,CAAC,CAAC"}
@@ -0,0 +1,58 @@
1
+ import { BaseOutputParser } from "./parser";
2
+ import { PromptTemplate, FewShotPromptTemplate } from "./index";
3
+ declare const templateClasses: (typeof PromptTemplate | typeof FewShotPromptTemplate)[];
4
+ export type SerializedBasePromptTemplate = ReturnType<InstanceType<(typeof templateClasses)[number]>["serialize"]>;
5
+ export type InputValues = Record<string, any>;
6
+ /**
7
+ * Input common to all prompt templates.
8
+ */
9
+ export interface BasePromptTemplateInput {
10
+ /**
11
+ * A list of variable names the prompt template expects
12
+ */
13
+ inputVariables: string[];
14
+ /**
15
+ * How to parse the output of calling an LLM on this formatted prompt
16
+ */
17
+ outputParser?: BaseOutputParser;
18
+ }
19
+ /**
20
+ * Base class for prompt templates. Exposes a format method that returns a
21
+ * string prompt given a set of input values.
22
+ * @augments BasePromptTemplateInput
23
+ */
24
+ export declare abstract class BasePromptTemplate implements BasePromptTemplateInput {
25
+ inputVariables: string[];
26
+ outputParser?: BaseOutputParser;
27
+ constructor(input: BasePromptTemplateInput);
28
+ /**
29
+ * Format the prompt given the input values.
30
+ *
31
+ * @param inputValues - A dictionary of arguments to be passed to the prompt template.
32
+ * @returns A formatted prompt string.
33
+ *
34
+ * @example
35
+ * ```ts
36
+ * prompt.format({ foo: "bar" });
37
+ * ```
38
+ */
39
+ abstract format(values: InputValues): string;
40
+ /**
41
+ * Return the string type key uniquely identifying this class of prompt template.
42
+ */
43
+ abstract _getPromptType(): string;
44
+ /**
45
+ * Return a json-like object representing this prompt template.
46
+ */
47
+ abstract serialize(): SerializedBasePromptTemplate;
48
+ /**
49
+ * Load a prompt template from a json-like object describing it.
50
+ *
51
+ * @remarks
52
+ * Deserializing needs to be async because templates (e.g. {@link FewShotPromptTemplate}) can
53
+ * reference remote resources that we read asynchronously with a web
54
+ * request.
55
+ */
56
+ static deserialize(data: SerializedBasePromptTemplate): Promise<BasePromptTemplate>;
57
+ }
58
+ export {};
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BasePromptTemplate = void 0;
4
+ const index_1 = require("./index");
5
+ const templateClasses = [index_1.PromptTemplate, index_1.FewShotPromptTemplate];
6
+ /**
7
+ * Base class for prompt templates. Exposes a format method that returns a
8
+ * string prompt given a set of input values.
9
+ * @augments BasePromptTemplateInput
10
+ */
11
+ class BasePromptTemplate {
12
+ constructor(input) {
13
+ Object.defineProperty(this, "inputVariables", {
14
+ enumerable: true,
15
+ configurable: true,
16
+ writable: true,
17
+ value: void 0
18
+ });
19
+ Object.defineProperty(this, "outputParser", {
20
+ enumerable: true,
21
+ configurable: true,
22
+ writable: true,
23
+ value: void 0
24
+ });
25
+ const { inputVariables } = input;
26
+ if (inputVariables.includes("stop")) {
27
+ throw new Error("Cannot have an input variable named 'stop', as it is used internally, please rename.");
28
+ }
29
+ Object.assign(this, input);
30
+ }
31
+ /**
32
+ * Load a prompt template from a json-like object describing it.
33
+ *
34
+ * @remarks
35
+ * Deserializing needs to be async because templates (e.g. {@link FewShotPromptTemplate}) can
36
+ * reference remote resources that we read asynchronously with a web
37
+ * request.
38
+ */
39
+ static async deserialize(data) {
40
+ switch (data._type) {
41
+ case "prompt":
42
+ return index_1.PromptTemplate.deserialize(data);
43
+ case undefined:
44
+ return index_1.PromptTemplate.deserialize({ ...data, _type: "prompt" });
45
+ case "few_shot":
46
+ return index_1.FewShotPromptTemplate.deserialize(data);
47
+ default:
48
+ throw new Error(`Invalid prompt type in config: ${data._type}`);
49
+ }
50
+ }
51
+ }
52
+ exports.BasePromptTemplate = BasePromptTemplate;
53
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../prompts/base.ts"],"names":[],"mappings":";;;AACA,mCAAgE;AAEhE,MAAM,eAAe,GAAG,CAAC,sBAAc,EAAE,6BAAqB,CAAC,CAAC;AAwBhE;;;;GAIG;AACH,MAAsB,kBAAkB;IAKtC,YAAY,KAA8B;QAJ1C;;;;;WAAyB;QAEzB;;;;;WAAgC;QAG9B,MAAM,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;QACjC,IAAI,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YACnC,MAAM,IAAI,KAAK,CACb,sFAAsF,CACvF,CAAC;SACH;QACD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAyBD;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,CAAC,WAAW,CACtB,IAAkC;QAElC,QAAQ,IAAI,CAAC,KAAK,EAAE;YAClB,KAAK,QAAQ;gBACX,OAAO,sBAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC1C,KAAK,SAAS;gBACZ,OAAO,sBAAc,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAClE,KAAK,UAAU;gBACb,OAAO,6BAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACjD;gBACE,MAAM,IAAI,KAAK,CACb,kCACG,IAAqC,CAAC,KACzC,EAAE,CACH,CAAC;SACL;IACH,CAAC;CACF;AAhED,gDAgEC"}
@@ -19,15 +19,50 @@ export type SerializedFewShotTemplate = {
19
19
  template_format: TemplateFormat;
20
20
  };
21
21
  export interface FewShotPromptTemplateInput extends BasePromptTemplateInput {
22
+ /**
23
+ * Examples to format into the prompt. Exactly one of this or
24
+ * {@link exampleSelector} must be
25
+ * provided.
26
+ */
22
27
  examples?: Example[];
23
- examplePrompt: PromptTemplate;
28
+ /**
29
+ * An {@link ExampleSelector} Examples to format into the prompt. Exactly one of this or
30
+ * {@link examples} must be
31
+ * provided.
32
+ */
24
33
  exampleSelector?: ExampleSelector;
34
+ /**
35
+ * An {@link PromptTemplate} used to format a single example.
36
+ */
37
+ examplePrompt: PromptTemplate;
38
+ /**
39
+ * String separator used to join the prefix, the examples, and suffix.
40
+ */
25
41
  exampleSeparator: string;
42
+ /**
43
+ * A prompt template string to put before the examples.
44
+ *
45
+ * @defaultValue `""`
46
+ */
26
47
  prefix: string;
48
+ /**
49
+ * A prompt template string to put after the examples.
50
+ */
27
51
  suffix: string;
52
+ /**
53
+ * The format of the prompt template. Options are: 'f-string', 'jinja-2'
54
+ */
28
55
  templateFormat: TemplateFormat;
56
+ /**
57
+ * Whether or not to try validating the template on initialization.
58
+ */
29
59
  validateTemplate?: boolean;
30
60
  }
61
+ /**
62
+ * Prompt template that contains few-shot examples.
63
+ * @augments BasePromptTemplate
64
+ * @augments FewShotPromptTemplateInput
65
+ */
31
66
  export declare class FewShotPromptTemplate extends BasePromptTemplate implements FewShotPromptTemplateInput {
32
67
  examples?: InputValues[];
33
68
  exampleSelector?: ExampleSelector;
@@ -1,13 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.FewShotPromptTemplate = void 0;
13
4
  const index_1 = require("./index");
@@ -15,6 +6,11 @@ const template_1 = require("./template");
15
6
  const util_1 = require("../util");
16
7
  const prompt_1 = require("./prompt");
17
8
  const parser_1 = require("./parser");
9
+ /**
10
+ * Prompt template that contains few-shot examples.
11
+ * @augments BasePromptTemplate
12
+ * @augments FewShotPromptTemplateInput
13
+ */
18
14
  class FewShotPromptTemplate extends index_1.BasePromptTemplate {
19
15
  constructor(input) {
20
16
  super(input);
@@ -112,30 +108,28 @@ class FewShotPromptTemplate extends index_1.BasePromptTemplate {
112
108
  examples: this.examples,
113
109
  };
114
110
  }
115
- static deserialize(data) {
116
- return __awaiter(this, void 0, void 0, function* () {
117
- const serializedPrompt = (0, util_1.resolveConfigFromFile)("example_prompt", data);
118
- const examplePrompt = yield prompt_1.PromptTemplate.deserialize(serializedPrompt);
119
- let examples;
120
- if (typeof data.examples === "string") {
121
- examples = (0, util_1.parseFileConfig)(data.examples, [".json", ".yml", ".yaml"]);
122
- }
123
- else if (Array.isArray(data.examples)) {
124
- examples = data.examples;
125
- }
126
- else {
127
- throw new Error("Invalid examples format. Only list or string are supported.");
128
- }
129
- return new FewShotPromptTemplate({
130
- inputVariables: data.input_variables,
131
- outputParser: data.output_parser && parser_1.BaseOutputParser.deserialize(data.output_parser),
132
- examplePrompt,
133
- examples,
134
- exampleSeparator: data.example_separator,
135
- prefix: (0, util_1.resolveTemplateFromFile)("prefix", data),
136
- suffix: (0, util_1.resolveTemplateFromFile)("suffix", data),
137
- templateFormat: data.template_format,
138
- });
111
+ static async deserialize(data) {
112
+ const serializedPrompt = (0, util_1.resolveConfigFromFile)("example_prompt", data);
113
+ const examplePrompt = await prompt_1.PromptTemplate.deserialize(serializedPrompt);
114
+ let examples;
115
+ if (typeof data.examples === "string") {
116
+ examples = (0, util_1.parseFileConfig)(data.examples, [".json", ".yml", ".yaml"]);
117
+ }
118
+ else if (Array.isArray(data.examples)) {
119
+ examples = data.examples;
120
+ }
121
+ else {
122
+ throw new Error("Invalid examples format. Only list or string are supported.");
123
+ }
124
+ return new FewShotPromptTemplate({
125
+ inputVariables: data.input_variables,
126
+ outputParser: data.output_parser && parser_1.BaseOutputParser.deserialize(data.output_parser),
127
+ examplePrompt,
128
+ examples,
129
+ exampleSeparator: data.example_separator,
130
+ prefix: (0, util_1.resolveTemplateFromFile)("prefix", data),
131
+ suffix: (0, util_1.resolveTemplateFromFile)("suffix", data),
132
+ templateFormat: data.template_format,
139
133
  });
140
134
  }
141
135
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"few_shot.js","sourceRoot":"","sources":["../../prompts/few_shot.ts"],"names":[],"mappings":"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"}