langchain 0.0.4 → 0.0.5

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 (333) hide show
  1. package/dist/cjs/agents/agent.d.ts +54 -0
  2. package/dist/cjs/agents/agent.js +81 -59
  3. package/dist/cjs/agents/agent.js.map +1 -1
  4. package/dist/cjs/agents/executor.d.ts +5 -0
  5. package/dist/cjs/agents/executor.js +36 -42
  6. package/dist/cjs/agents/executor.js.map +1 -1
  7. package/dist/cjs/agents/helpers.js +4 -13
  8. package/dist/cjs/agents/helpers.js.map +1 -1
  9. package/dist/cjs/agents/index.d.ts +1 -0
  10. package/dist/cjs/agents/index.js +5 -1
  11. package/dist/cjs/agents/index.js.map +1 -1
  12. package/dist/cjs/agents/initialize.d.ts +4 -0
  13. package/dist/cjs/agents/initialize.js +21 -0
  14. package/dist/cjs/agents/initialize.js.map +1 -0
  15. package/dist/cjs/agents/load.js +6 -15
  16. package/dist/cjs/agents/load.js.map +1 -1
  17. package/dist/cjs/agents/mrkl/index.d.ts +17 -0
  18. package/dist/cjs/agents/mrkl/index.js +21 -29
  19. package/dist/cjs/agents/mrkl/index.js.map +1 -1
  20. package/dist/cjs/agents/mrkl/prompt.js +0 -1
  21. package/dist/cjs/agents/mrkl/prompt.js.map +1 -1
  22. package/dist/cjs/agents/tests/agent.test.js +19 -15
  23. package/dist/cjs/agents/tests/agent.test.js.map +1 -1
  24. package/dist/cjs/agents/tests/calculator.test.d.ts +1 -0
  25. package/dist/cjs/agents/tests/calculator.test.js +30 -0
  26. package/dist/cjs/agents/tests/calculator.test.js.map +1 -0
  27. package/dist/cjs/agents/tools/base.d.ts +6 -0
  28. package/dist/cjs/agents/tools/base.js +15 -0
  29. package/dist/cjs/agents/tools/base.js.map +1 -0
  30. package/dist/cjs/agents/tools/calculator.d.ts +6 -0
  31. package/dist/cjs/agents/tools/calculator.js +33 -0
  32. package/dist/cjs/agents/tools/calculator.js.map +1 -0
  33. package/dist/cjs/agents/tools/index.d.ts +2 -6
  34. package/dist/cjs/agents/tools/index.js +5 -1
  35. package/dist/cjs/agents/tools/index.js.map +1 -1
  36. package/dist/cjs/agents/tools/serpapi.d.ts +18 -3
  37. package/dist/cjs/agents/tools/serpapi.js +88 -45
  38. package/dist/cjs/agents/tools/serpapi.js.map +1 -1
  39. package/dist/cjs/chains/base.d.ts +34 -4
  40. package/dist/cjs/chains/base.js +41 -3
  41. package/dist/cjs/chains/base.js.map +1 -1
  42. package/dist/cjs/chains/chat_vector_db_chain.d.ts +41 -0
  43. package/dist/cjs/chains/chat_vector_db_chain.js +132 -0
  44. package/dist/cjs/chains/chat_vector_db_chain.js.map +1 -0
  45. package/dist/cjs/chains/combine_docs_chain.d.ts +35 -0
  46. package/dist/cjs/chains/combine_docs_chain.js +75 -0
  47. package/dist/cjs/chains/combine_docs_chain.js.map +1 -0
  48. package/dist/cjs/chains/conversation.d.ts +12 -0
  49. package/dist/cjs/chains/conversation.js +29 -0
  50. package/dist/cjs/chains/conversation.js.map +1 -0
  51. package/dist/cjs/chains/index.d.ts +5 -1
  52. package/dist/cjs/chains/index.js +10 -1
  53. package/dist/cjs/chains/index.js.map +1 -1
  54. package/dist/cjs/chains/llm_chain.d.ts +35 -0
  55. package/dist/cjs/chains/llm_chain.js +66 -34
  56. package/dist/cjs/chains/llm_chain.js.map +1 -1
  57. package/dist/cjs/chains/load.d.ts +20 -1
  58. package/dist/cjs/chains/load.js +25 -17
  59. package/dist/cjs/chains/load.js.map +1 -1
  60. package/dist/cjs/chains/question_answering/load.d.ts +3 -0
  61. package/dist/cjs/chains/question_answering/load.js +13 -0
  62. package/dist/cjs/chains/question_answering/load.js.map +1 -0
  63. package/dist/cjs/chains/question_answering/stuff_prompts.d.ts +2 -0
  64. package/dist/cjs/chains/question_answering/stuff_prompts.js +10 -0
  65. package/dist/cjs/chains/question_answering/stuff_prompts.js.map +1 -0
  66. package/dist/cjs/chains/question_answering/tests/load.test.d.ts +1 -0
  67. package/dist/cjs/chains/question_answering/tests/load.test.js +14 -0
  68. package/dist/cjs/chains/question_answering/tests/load.test.js.map +1 -0
  69. package/dist/cjs/chains/tests/chat_vector_db_qa_chain.test.d.ts +1 -0
  70. package/dist/cjs/chains/tests/chat_vector_db_qa_chain.test.js +35 -0
  71. package/dist/cjs/chains/tests/chat_vector_db_qa_chain.test.js.map +1 -0
  72. package/dist/cjs/chains/tests/combine_docs_chain.test.d.ts +1 -0
  73. package/dist/cjs/chains/tests/combine_docs_chain.test.js +28 -0
  74. package/dist/cjs/chains/tests/combine_docs_chain.test.js.map +1 -0
  75. package/dist/cjs/chains/tests/llm_chain.test.js +13 -16
  76. package/dist/cjs/chains/tests/llm_chain.test.js.map +1 -1
  77. package/dist/cjs/chains/tests/vector_db_qa_chain.test.d.ts +1 -0
  78. package/dist/cjs/chains/tests/vector_db_qa_chain.test.js +46 -0
  79. package/dist/cjs/chains/tests/vector_db_qa_chain.test.js.map +1 -0
  80. package/dist/cjs/chains/vector_db_qa.d.ts +36 -0
  81. package/dist/cjs/chains/vector_db_qa.js +85 -0
  82. package/dist/cjs/chains/vector_db_qa.js.map +1 -0
  83. package/dist/cjs/document.d.ts +13 -0
  84. package/dist/cjs/document.js +28 -0
  85. package/dist/cjs/document.js.map +1 -0
  86. package/dist/cjs/embeddings/base.d.ts +4 -0
  87. package/dist/cjs/embeddings/base.js +7 -0
  88. package/dist/cjs/embeddings/base.js.map +1 -0
  89. package/dist/cjs/embeddings/index.d.ts +1 -0
  90. package/dist/cjs/embeddings/index.js +6 -0
  91. package/dist/cjs/embeddings/index.js.map +1 -0
  92. package/dist/cjs/embeddings/openai.d.ts +20 -0
  93. package/dist/cjs/embeddings/openai.js +86 -0
  94. package/dist/cjs/embeddings/openai.js.map +1 -0
  95. package/dist/cjs/embeddings/tests/openai.test.d.ts +1 -0
  96. package/dist/cjs/embeddings/tests/openai.test.js +17 -0
  97. package/dist/cjs/embeddings/tests/openai.test.js.map +1 -0
  98. package/dist/cjs/llms/base.d.ts +41 -0
  99. package/dist/cjs/llms/base.js +97 -92
  100. package/dist/cjs/llms/base.js.map +1 -1
  101. package/dist/cjs/llms/index.d.ts +19 -0
  102. package/dist/cjs/llms/load.d.ts +10 -2
  103. package/dist/cjs/llms/load.js +12 -4
  104. package/dist/cjs/llms/load.js.map +1 -1
  105. package/dist/cjs/llms/openai.d.ts +69 -7
  106. package/dist/cjs/llms/openai.js +96 -58
  107. package/dist/cjs/llms/openai.js.map +1 -1
  108. package/dist/cjs/llms/tests/openai.test.js +3 -12
  109. package/dist/cjs/llms/tests/openai.test.js.map +1 -1
  110. package/dist/cjs/memory/base.d.ts +7 -0
  111. package/dist/cjs/memory/base.js +7 -0
  112. package/dist/cjs/memory/base.js.map +1 -0
  113. package/dist/cjs/memory/buffer_memory.d.ts +15 -0
  114. package/dist/cjs/memory/buffer_memory.js +57 -0
  115. package/dist/cjs/memory/buffer_memory.js.map +1 -0
  116. package/dist/cjs/memory/index.d.ts +2 -0
  117. package/dist/cjs/memory/index.js +8 -0
  118. package/dist/cjs/memory/index.js.map +1 -0
  119. package/dist/cjs/memory/tests/buffer_memory.test.d.ts +1 -0
  120. package/dist/cjs/memory/tests/buffer_memory.test.js +17 -0
  121. package/dist/cjs/memory/tests/buffer_memory.test.js.map +1 -0
  122. package/dist/cjs/prompt/base.d.ts +39 -0
  123. package/dist/cjs/prompt/base.js +24 -25
  124. package/dist/cjs/prompt/base.js.map +1 -1
  125. package/dist/cjs/prompt/few_shot.d.ts +36 -1
  126. package/dist/cjs/prompt/few_shot.js +27 -33
  127. package/dist/cjs/prompt/few_shot.js.map +1 -1
  128. package/dist/cjs/prompt/index.d.ts +1 -0
  129. package/dist/cjs/prompt/index.js +3 -1
  130. package/dist/cjs/prompt/index.js.map +1 -1
  131. package/dist/cjs/prompt/load.d.ts +17 -0
  132. package/dist/cjs/prompt/load.js +21 -13
  133. package/dist/cjs/prompt/load.js.map +1 -1
  134. package/dist/cjs/prompt/parser.d.ts +30 -0
  135. package/dist/cjs/prompt/parser.js +21 -0
  136. package/dist/cjs/prompt/parser.js.map +1 -1
  137. package/dist/cjs/prompt/prompt.d.ts +48 -0
  138. package/dist/cjs/prompt/prompt.js +38 -18
  139. package/dist/cjs/prompt/prompt.js.map +1 -1
  140. package/dist/cjs/prompt/template.js.map +1 -1
  141. package/dist/cjs/prompt/tests/load.test.js +6 -15
  142. package/dist/cjs/prompt/tests/load.test.js.map +1 -1
  143. package/dist/cjs/text_splitter.d.ts +32 -0
  144. package/dist/cjs/text_splitter.js +165 -0
  145. package/dist/cjs/text_splitter.js.map +1 -0
  146. package/dist/cjs/text_splitter.test.d.ts +1 -0
  147. package/dist/cjs/text_splitter.test.js +87 -0
  148. package/dist/cjs/text_splitter.test.js.map +1 -0
  149. package/dist/cjs/util/hub.d.ts +2 -1
  150. package/dist/cjs/util/hub.js +5 -14
  151. package/dist/cjs/util/hub.js.map +1 -1
  152. package/dist/cjs/util/index.d.ts +1 -0
  153. package/dist/cjs/util/index.js +13 -25
  154. package/dist/cjs/util/index.js.map +1 -1
  155. package/dist/cjs/vectorstores/base.d.ts +18 -0
  156. package/dist/cjs/vectorstores/base.js +38 -0
  157. package/dist/cjs/vectorstores/base.js.map +1 -0
  158. package/dist/cjs/vectorstores/hnswlib.d.ts +19 -0
  159. package/dist/cjs/vectorstores/hnswlib.js +126 -0
  160. package/dist/cjs/vectorstores/hnswlib.js.map +1 -0
  161. package/dist/cjs/vectorstores/index.d.ts +1 -0
  162. package/dist/cjs/vectorstores/index.js +6 -0
  163. package/dist/cjs/vectorstores/index.js.map +1 -0
  164. package/dist/cjs/vectorstores/tests/hnswlib.test.d.ts +1 -0
  165. package/dist/cjs/vectorstores/tests/hnswlib.test.js +44 -0
  166. package/dist/cjs/vectorstores/tests/hnswlib.test.js.map +1 -0
  167. package/dist/esm/agents/agent.d.ts +54 -0
  168. package/dist/esm/agents/agent.js +81 -59
  169. package/dist/esm/agents/agent.js.map +1 -1
  170. package/dist/esm/agents/executor.d.ts +5 -0
  171. package/dist/esm/agents/executor.js +36 -42
  172. package/dist/esm/agents/executor.js.map +1 -1
  173. package/dist/esm/agents/helpers.js +4 -13
  174. package/dist/esm/agents/helpers.js.map +1 -1
  175. package/dist/esm/agents/index.d.ts +1 -0
  176. package/dist/esm/agents/index.js +2 -0
  177. package/dist/esm/agents/index.js.map +1 -1
  178. package/dist/esm/agents/initialize.d.ts +4 -0
  179. package/dist/esm/agents/initialize.js +17 -0
  180. package/dist/esm/agents/initialize.js.map +1 -0
  181. package/dist/esm/agents/load.js +6 -15
  182. package/dist/esm/agents/load.js.map +1 -1
  183. package/dist/esm/agents/mrkl/index.d.ts +17 -0
  184. package/dist/esm/agents/mrkl/index.js +21 -29
  185. package/dist/esm/agents/mrkl/index.js.map +1 -1
  186. package/dist/esm/agents/mrkl/prompt.js +0 -1
  187. package/dist/esm/agents/mrkl/prompt.js.map +1 -1
  188. package/dist/esm/agents/tests/agent.test.js +19 -15
  189. package/dist/esm/agents/tests/agent.test.js.map +1 -1
  190. package/dist/esm/agents/tests/calculator.test.d.ts +1 -0
  191. package/dist/esm/agents/tests/calculator.test.js +28 -0
  192. package/dist/esm/agents/tests/calculator.test.js.map +1 -0
  193. package/dist/esm/agents/tools/base.d.ts +6 -0
  194. package/dist/esm/agents/tools/base.js +11 -0
  195. package/dist/esm/agents/tools/base.js.map +1 -0
  196. package/dist/esm/agents/tools/calculator.d.ts +6 -0
  197. package/dist/esm/agents/tools/calculator.js +29 -0
  198. package/dist/esm/agents/tools/calculator.js.map +1 -0
  199. package/dist/esm/agents/tools/index.d.ts +2 -6
  200. package/dist/esm/agents/tools/index.js +2 -0
  201. package/dist/esm/agents/tools/index.js.map +1 -1
  202. package/dist/esm/agents/tools/serpapi.d.ts +18 -3
  203. package/dist/esm/agents/tools/serpapi.js +88 -45
  204. package/dist/esm/agents/tools/serpapi.js.map +1 -1
  205. package/dist/esm/chains/base.d.ts +34 -4
  206. package/dist/esm/chains/base.js +42 -4
  207. package/dist/esm/chains/base.js.map +1 -1
  208. package/dist/esm/chains/chat_vector_db_chain.d.ts +41 -0
  209. package/dist/esm/chains/chat_vector_db_chain.js +128 -0
  210. package/dist/esm/chains/chat_vector_db_chain.js.map +1 -0
  211. package/dist/esm/chains/combine_docs_chain.d.ts +35 -0
  212. package/dist/esm/chains/combine_docs_chain.js +71 -0
  213. package/dist/esm/chains/combine_docs_chain.js.map +1 -0
  214. package/dist/esm/chains/conversation.d.ts +12 -0
  215. package/dist/esm/chains/conversation.js +25 -0
  216. package/dist/esm/chains/conversation.js.map +1 -0
  217. package/dist/esm/chains/index.d.ts +5 -1
  218. package/dist/esm/chains/index.js +5 -1
  219. package/dist/esm/chains/index.js.map +1 -1
  220. package/dist/esm/chains/llm_chain.d.ts +35 -0
  221. package/dist/esm/chains/llm_chain.js +65 -34
  222. package/dist/esm/chains/llm_chain.js.map +1 -1
  223. package/dist/esm/chains/load.d.ts +20 -1
  224. package/dist/esm/chains/load.js +25 -17
  225. package/dist/esm/chains/load.js.map +1 -1
  226. package/dist/esm/chains/question_answering/load.d.ts +3 -0
  227. package/dist/esm/chains/question_answering/load.js +9 -0
  228. package/dist/esm/chains/question_answering/load.js.map +1 -0
  229. package/dist/esm/chains/question_answering/stuff_prompts.d.ts +2 -0
  230. package/dist/esm/chains/question_answering/stuff_prompts.js +7 -0
  231. package/dist/esm/chains/question_answering/stuff_prompts.js.map +1 -0
  232. package/dist/esm/chains/question_answering/tests/load.test.d.ts +1 -0
  233. package/dist/esm/chains/question_answering/tests/load.test.js +12 -0
  234. package/dist/esm/chains/question_answering/tests/load.test.js.map +1 -0
  235. package/dist/esm/chains/tests/chat_vector_db_qa_chain.test.d.ts +1 -0
  236. package/dist/esm/chains/tests/chat_vector_db_qa_chain.test.js +33 -0
  237. package/dist/esm/chains/tests/chat_vector_db_qa_chain.test.js.map +1 -0
  238. package/dist/esm/chains/tests/combine_docs_chain.test.d.ts +1 -0
  239. package/dist/esm/chains/tests/combine_docs_chain.test.js +26 -0
  240. package/dist/esm/chains/tests/combine_docs_chain.test.js.map +1 -0
  241. package/dist/esm/chains/tests/llm_chain.test.js +14 -17
  242. package/dist/esm/chains/tests/llm_chain.test.js.map +1 -1
  243. package/dist/esm/chains/tests/vector_db_qa_chain.test.d.ts +1 -0
  244. package/dist/esm/chains/tests/vector_db_qa_chain.test.js +44 -0
  245. package/dist/esm/chains/tests/vector_db_qa_chain.test.js.map +1 -0
  246. package/dist/esm/chains/vector_db_qa.d.ts +36 -0
  247. package/dist/esm/chains/vector_db_qa.js +81 -0
  248. package/dist/esm/chains/vector_db_qa.js.map +1 -0
  249. package/dist/esm/document.d.ts +13 -0
  250. package/dist/esm/document.js +24 -0
  251. package/dist/esm/document.js.map +1 -0
  252. package/dist/esm/embeddings/base.d.ts +4 -0
  253. package/dist/esm/embeddings/base.js +3 -0
  254. package/dist/esm/embeddings/base.js.map +1 -0
  255. package/dist/esm/embeddings/index.d.ts +1 -0
  256. package/dist/esm/embeddings/index.js +2 -0
  257. package/dist/esm/embeddings/index.js.map +1 -0
  258. package/dist/esm/embeddings/openai.d.ts +20 -0
  259. package/dist/esm/embeddings/openai.js +82 -0
  260. package/dist/esm/embeddings/openai.js.map +1 -0
  261. package/dist/esm/embeddings/tests/openai.test.d.ts +1 -0
  262. package/dist/esm/embeddings/tests/openai.test.js +15 -0
  263. package/dist/esm/embeddings/tests/openai.test.js.map +1 -0
  264. package/dist/esm/llms/base.d.ts +41 -0
  265. package/dist/esm/llms/base.js +97 -92
  266. package/dist/esm/llms/base.js.map +1 -1
  267. package/dist/esm/llms/index.d.ts +19 -0
  268. package/dist/esm/llms/load.d.ts +10 -2
  269. package/dist/esm/llms/load.js +10 -2
  270. package/dist/esm/llms/load.js.map +1 -1
  271. package/dist/esm/llms/openai.d.ts +69 -7
  272. package/dist/esm/llms/openai.js +96 -58
  273. package/dist/esm/llms/openai.js.map +1 -1
  274. package/dist/esm/llms/tests/openai.test.js +3 -12
  275. package/dist/esm/llms/tests/openai.test.js.map +1 -1
  276. package/dist/esm/memory/base.d.ts +7 -0
  277. package/dist/esm/memory/base.js +3 -0
  278. package/dist/esm/memory/base.js.map +1 -0
  279. package/dist/esm/memory/buffer_memory.d.ts +15 -0
  280. package/dist/esm/memory/buffer_memory.js +53 -0
  281. package/dist/esm/memory/buffer_memory.js.map +1 -0
  282. package/dist/esm/memory/index.d.ts +2 -0
  283. package/dist/esm/memory/index.js +3 -0
  284. package/dist/esm/memory/index.js.map +1 -0
  285. package/dist/esm/memory/tests/buffer_memory.test.d.ts +1 -0
  286. package/dist/esm/memory/tests/buffer_memory.test.js +15 -0
  287. package/dist/esm/memory/tests/buffer_memory.test.js.map +1 -0
  288. package/dist/esm/prompt/base.d.ts +39 -0
  289. package/dist/esm/prompt/base.js +24 -25
  290. package/dist/esm/prompt/base.js.map +1 -1
  291. package/dist/esm/prompt/few_shot.d.ts +36 -1
  292. package/dist/esm/prompt/few_shot.js +27 -33
  293. package/dist/esm/prompt/few_shot.js.map +1 -1
  294. package/dist/esm/prompt/index.d.ts +1 -0
  295. package/dist/esm/prompt/index.js +1 -0
  296. package/dist/esm/prompt/index.js.map +1 -1
  297. package/dist/esm/prompt/load.d.ts +17 -0
  298. package/dist/esm/prompt/load.js +21 -13
  299. package/dist/esm/prompt/load.js.map +1 -1
  300. package/dist/esm/prompt/parser.d.ts +30 -0
  301. package/dist/esm/prompt/parser.js +21 -0
  302. package/dist/esm/prompt/parser.js.map +1 -1
  303. package/dist/esm/prompt/prompt.d.ts +48 -0
  304. package/dist/esm/prompt/prompt.js +38 -18
  305. package/dist/esm/prompt/prompt.js.map +1 -1
  306. package/dist/esm/prompt/template.js.map +1 -1
  307. package/dist/esm/prompt/tests/load.test.js +6 -15
  308. package/dist/esm/prompt/tests/load.test.js.map +1 -1
  309. package/dist/esm/text_splitter.d.ts +32 -0
  310. package/dist/esm/text_splitter.js +160 -0
  311. package/dist/esm/text_splitter.js.map +1 -0
  312. package/dist/esm/text_splitter.test.d.ts +1 -0
  313. package/dist/esm/text_splitter.test.js +85 -0
  314. package/dist/esm/text_splitter.test.js.map +1 -0
  315. package/dist/esm/util/hub.d.ts +2 -1
  316. package/dist/esm/util/hub.js +5 -14
  317. package/dist/esm/util/hub.js.map +1 -1
  318. package/dist/esm/util/index.d.ts +1 -0
  319. package/dist/esm/util/index.js +11 -24
  320. package/dist/esm/util/index.js.map +1 -1
  321. package/dist/esm/vectorstores/base.d.ts +18 -0
  322. package/dist/esm/vectorstores/base.js +33 -0
  323. package/dist/esm/vectorstores/base.js.map +1 -0
  324. package/dist/esm/vectorstores/hnswlib.d.ts +19 -0
  325. package/dist/esm/vectorstores/hnswlib.js +119 -0
  326. package/dist/esm/vectorstores/hnswlib.js.map +1 -0
  327. package/dist/esm/vectorstores/index.d.ts +1 -0
  328. package/dist/esm/vectorstores/index.js +2 -0
  329. package/dist/esm/vectorstores/index.js.map +1 -0
  330. package/dist/esm/vectorstores/tests/hnswlib.test.d.ts +1 -0
  331. package/dist/esm/vectorstores/tests/hnswlib.test.js +39 -0
  332. package/dist/esm/vectorstores/tests/hnswlib.test.js.map +1 -0
  333. package/package.json +65 -38
@@ -1,30 +1,30 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { backOff } from "exponential-backoff";
2
+ import { chunkArray } from "../util";
11
3
  import { BaseLLM } from ".";
12
4
  let Configuration = null;
13
5
  let OpenAIApi = null;
14
6
  try {
15
- // eslint-disable-next-line global-require
7
+ // eslint-disable-next-line global-require,import/no-extraneous-dependencies
16
8
  ({ Configuration, OpenAIApi } = require("openai"));
17
9
  }
18
10
  catch (_a) {
19
11
  // ignore error
20
12
  }
21
- const chunkArray = (arr, chunkSize) => arr.reduce((chunks, elem, index) => {
22
- const chunkIndex = Math.floor(index / chunkSize);
23
- const chunk = chunks[chunkIndex] || [];
24
- // eslint-disable-next-line no-param-reassign
25
- chunks[chunkIndex] = chunk.concat([elem]);
26
- return chunks;
27
- }, []);
13
+ /**
14
+ * Wrapper around OpenAI large language models.
15
+ *
16
+ * To use you should have the `openai` package installed, with the
17
+ * `OPENAI_API_KEY` environment variable set.
18
+ *
19
+ * @remarks
20
+ * Any parameters that are valid to be passed to {@link
21
+ * https://platform.openai.com/docs/api-reference/completions/create |
22
+ * `openai.createCompletion`} can be passed through {@link modelKwargs}, even
23
+ * if not explicitly available on this class.
24
+ *
25
+ * @augments BaseLLM
26
+ * @augments OpenAIInput
27
+ */
28
28
  export class OpenAI extends BaseLLM {
29
29
  constructor(fields) {
30
30
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
@@ -114,7 +114,7 @@ export class OpenAI extends BaseLLM {
114
114
  value: void 0
115
115
  });
116
116
  if (Configuration === null || OpenAIApi === null) {
117
- throw new Error("Please install openai as a dependency with, e.g. `npm install -S openai`");
117
+ throw new Error("Please install openai as a dependency with, e.g. `npm i openai`");
118
118
  }
119
119
  this.modelName = (_a = fields === null || fields === void 0 ? void 0 : fields.modelName) !== null && _a !== void 0 ? _a : this.modelName;
120
120
  this.modelKwargs = (_b = fields === null || fields === void 0 ? void 0 : fields.modelKwargs) !== null && _b !== void 0 ? _b : {};
@@ -134,54 +134,92 @@ export class OpenAI extends BaseLLM {
134
134
  });
135
135
  this.client = new OpenAIApi(clientConfig);
136
136
  }
137
+ /**
138
+ * Get the parameters used to invoke the model
139
+ */
137
140
  invocationParams() {
138
- 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);
141
+ return {
142
+ model: this.modelName,
143
+ temperature: this.temperature,
144
+ max_tokens: this.maxTokens,
145
+ top_p: this.topP,
146
+ frequency_penalty: this.frequencyPenalty,
147
+ presence_penalty: this.presencePenalty,
148
+ n: this.n,
149
+ best_of: this.bestOf,
150
+ logit_bias: this.logitBias,
151
+ stop: this.stop,
152
+ ...this.modelKwargs,
153
+ };
139
154
  }
155
+ /**
156
+ * Get the identifyin parameters for the model
157
+ */
140
158
  identifyingParams() {
141
- return Object.assign({ model_name: this.modelName }, this.invocationParams());
159
+ return {
160
+ model_name: this.modelName,
161
+ ...this.invocationParams(),
162
+ };
142
163
  }
143
- _generate(prompts, stop) {
164
+ /**
165
+ * Call out to OpenAI's endpoint with k unique prompts
166
+ *
167
+ * @param prompts - The prompts to pass into the model.
168
+ * @param [stop] - Optional list of stop words to use when generating.
169
+ *
170
+ * @returns The full LLM output.
171
+ *
172
+ * @example
173
+ * ```ts
174
+ * import { OpenAI } from "langchain/llms";
175
+ * const openai = new OpenAI();
176
+ * const response = await openai.generate(["Tell me a joke."]);
177
+ * ```
178
+ */
179
+ async _generate(prompts, stop) {
144
180
  var _a, _b, _c, _d;
145
- return __awaiter(this, void 0, void 0, function* () {
146
- const subPrompts = chunkArray(prompts, this.batchSize);
147
- const choices = [];
148
- const tokenUsage = {};
149
- if (this.stop && stop) {
150
- throw new Error("Stop found in input and default params");
181
+ const subPrompts = chunkArray(prompts, this.batchSize);
182
+ const choices = [];
183
+ const tokenUsage = {};
184
+ if (this.stop && stop) {
185
+ throw new Error("Stop found in input and default params");
186
+ }
187
+ const params = this.invocationParams();
188
+ params.stop = stop !== null && stop !== void 0 ? stop : params.stop;
189
+ for (let i = 0; i < subPrompts.length; i += 1) {
190
+ const { data } = await this.completionWithRetry({
191
+ ...params,
192
+ prompt: subPrompts[i],
193
+ });
194
+ choices.push(...data.choices);
195
+ const { completion_tokens: completionTokens, prompt_tokens: promptTokens, total_tokens: totalTokens, } = (_a = data.usage) !== null && _a !== void 0 ? _a : {};
196
+ if (completionTokens) {
197
+ tokenUsage.completionTokens =
198
+ ((_b = tokenUsage.completionTokens) !== null && _b !== void 0 ? _b : 0) + completionTokens;
151
199
  }
152
- const params = this.invocationParams();
153
- params.stop = stop !== null && stop !== void 0 ? stop : params.stop;
154
- for (let i = 0; i < subPrompts.length; i += 1) {
155
- const { data } = yield this.completionWithRetry(Object.assign(Object.assign({}, params), { prompt: subPrompts[i] }));
156
- choices.push(...data.choices);
157
- const { completion_tokens: completionTokens, prompt_tokens: promptTokens, total_tokens: totalTokens, } = (_a = data.usage) !== null && _a !== void 0 ? _a : {};
158
- if (completionTokens) {
159
- tokenUsage.completionTokens =
160
- ((_b = tokenUsage.completionTokens) !== null && _b !== void 0 ? _b : 0) + completionTokens;
161
- }
162
- if (promptTokens) {
163
- tokenUsage.promptTokens = ((_c = tokenUsage.promptTokens) !== null && _c !== void 0 ? _c : 0) + promptTokens;
164
- }
165
- if (totalTokens) {
166
- tokenUsage.totalTokens = ((_d = tokenUsage.totalTokens) !== null && _d !== void 0 ? _d : 0) + totalTokens;
167
- }
200
+ if (promptTokens) {
201
+ tokenUsage.promptTokens = ((_c = tokenUsage.promptTokens) !== null && _c !== void 0 ? _c : 0) + promptTokens;
168
202
  }
169
- const generations = chunkArray(choices, this.n).map((promptChoices) => promptChoices.map((choice) => {
170
- var _a;
171
- return ({
172
- text: (_a = choice.text) !== null && _a !== void 0 ? _a : "",
173
- generationInfo: {
174
- finishReason: choice.finish_reason,
175
- logprobs: choice.logprobs,
176
- },
177
- });
178
- }));
179
- return {
180
- generations,
181
- llmOutput: { tokenUsage },
182
- };
183
- });
203
+ if (totalTokens) {
204
+ tokenUsage.totalTokens = ((_d = tokenUsage.totalTokens) !== null && _d !== void 0 ? _d : 0) + totalTokens;
205
+ }
206
+ }
207
+ const generations = chunkArray(choices, this.n).map((promptChoices) => promptChoices.map((choice) => {
208
+ var _a;
209
+ return ({
210
+ text: (_a = choice.text) !== null && _a !== void 0 ? _a : "",
211
+ generationInfo: {
212
+ finishReason: choice.finish_reason,
213
+ logprobs: choice.logprobs,
214
+ },
215
+ });
216
+ }));
217
+ return {
218
+ generations,
219
+ llmOutput: { tokenUsage },
220
+ };
184
221
  }
222
+ /** @ignore */
185
223
  completionWithRetry(request) {
186
224
  const makeCompletionRequest = () => this.client.createCompletion(request);
187
225
  return backOff(makeCompletionRequest, {
@@ -1 +1 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../llms/openai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../llms/openai.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,8 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { test } from "@jest/globals";
11
2
  import { OpenAI } from "../openai";
12
- test("Test OpenAI", () => __awaiter(void 0, void 0, void 0, function* () {
3
+ test("Test OpenAI", async () => {
13
4
  const model = new OpenAI({ maxTokens: 5 });
14
- const res = yield model.call("Print hello world");
5
+ const res = await model.call("Print hello world");
15
6
  console.log({ res });
16
- }));
7
+ });
17
8
  //# sourceMappingURL=openai.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openai.test.js","sourceRoot":"","sources":["../../../../llms/tests/openai.test.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,IAAI,CAAC,aAAa,EAAE,GAAS,EAAE;IAC7B,MAAM,KAAK,GAAG,IAAI,MAAM,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,CAAA,CAAC,CAAC"}
1
+ {"version":3,"file":"openai.test.js","sourceRoot":"","sources":["../../../../llms/tests/openai.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,IAAI,CAAC,aAAa,EAAE,KAAK,IAAI,EAAE;IAC7B,MAAM,KAAK,GAAG,IAAI,MAAM,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,3 @@
1
+ export class BaseMemory {
2
+ }
3
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../memory/base.ts"],"names":[],"mappings":"AAOA,MAAM,OAAgB,UAAU;CAO/B"}
@@ -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,53 @@
1
+ import { BaseMemory } from "./base";
2
+ const getInputValue = (inputValues) => {
3
+ const keys = Object.keys(inputValues);
4
+ if (keys.length === 1) {
5
+ return inputValues[keys[0]];
6
+ }
7
+ throw new Error("input values have multiple keys, memory only supported when one key currently");
8
+ };
9
+ export class BufferMemory extends BaseMemory {
10
+ constructor(fields) {
11
+ var _a, _b, _c;
12
+ super();
13
+ Object.defineProperty(this, "humanPrefix", {
14
+ enumerable: true,
15
+ configurable: true,
16
+ writable: true,
17
+ value: "Human"
18
+ });
19
+ Object.defineProperty(this, "aiPrefix", {
20
+ enumerable: true,
21
+ configurable: true,
22
+ writable: true,
23
+ value: "AI"
24
+ });
25
+ Object.defineProperty(this, "memoryKey", {
26
+ enumerable: true,
27
+ configurable: true,
28
+ writable: true,
29
+ value: "history"
30
+ });
31
+ Object.defineProperty(this, "buffer", {
32
+ enumerable: true,
33
+ configurable: true,
34
+ writable: true,
35
+ value: ""
36
+ });
37
+ this.humanPrefix = (_a = fields === null || fields === void 0 ? void 0 : fields.humanPrefix) !== null && _a !== void 0 ? _a : this.humanPrefix;
38
+ this.aiPrefix = (_b = fields === null || fields === void 0 ? void 0 : fields.aiPrefix) !== null && _b !== void 0 ? _b : this.aiPrefix;
39
+ this.memoryKey = (_c = fields === null || fields === void 0 ? void 0 : fields.memoryKey) !== null && _c !== void 0 ? _c : this.memoryKey;
40
+ }
41
+ async loadMemoryVariables(_values) {
42
+ const result = { [this.memoryKey]: this.buffer };
43
+ return result;
44
+ }
45
+ async saveContext(inputValues, outputValues) {
46
+ const values = await outputValues;
47
+ const human = `${this.humanPrefix}: ${getInputValue(inputValues)}`;
48
+ const ai = `${this.aiPrefix}: ${getInputValue(values)}`;
49
+ const newlines = [human, ai];
50
+ this.buffer += `\n${newlines.join("\n")}`;
51
+ }
52
+ }
53
+ //# sourceMappingURL=buffer_memory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buffer_memory.js","sourceRoot":"","sources":["../../../memory/buffer_memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA8C,MAAM,QAAQ,CAAC;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,MAAM,OAAO,YAAa,SAAQ,UAAU;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"}
@@ -0,0 +1,2 @@
1
+ export { BufferMemory } from "./buffer_memory";
2
+ export { BaseMemory } from "./base";
@@ -0,0 +1,3 @@
1
+ export { BufferMemory } from "./buffer_memory";
2
+ export { BaseMemory } from "./base";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,15 @@
1
+ import { test, expect } from "@jest/globals";
2
+ import { BufferMemory } from "../buffer_memory";
3
+ test("Test buffer memory", async () => {
4
+ const memory = new BufferMemory();
5
+ const result1 = await memory.loadMemoryVariables({});
6
+ expect(result1).toStrictEqual({ history: "" });
7
+ const result = new Promise((resolve, _reject) => {
8
+ resolve({ bar: "foo" });
9
+ });
10
+ await memory.saveContext({ foo: "bar" }, result);
11
+ const expectedString = "\nHuman: bar\nAI: foo";
12
+ const result2 = await memory.loadMemoryVariables({});
13
+ expect(result2).toStrictEqual({ history: expectedString });
14
+ });
15
+ //# 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,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,IAAI,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;IACpC,MAAM,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACrD,MAAM,CAAC,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,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;AAC7D,CAAC,CAAC,CAAC"}
@@ -3,17 +3,56 @@ import { PromptTemplate, FewShotPromptTemplate } from "./index";
3
3
  declare const templateClasses: (typeof PromptTemplate | typeof FewShotPromptTemplate)[];
4
4
  export type SerializedBasePromptTemplate = ReturnType<InstanceType<(typeof templateClasses)[number]>["serialize"]>;
5
5
  export type InputValues = Record<string, any>;
6
+ /**
7
+ * Input common to all prompt templates.
8
+ */
6
9
  export interface BasePromptTemplateInput {
10
+ /**
11
+ * A list of variable names the prompt template expects
12
+ */
7
13
  inputVariables: string[];
14
+ /**
15
+ * How to parse the output of calling an LLM on this formatted prompt
16
+ */
8
17
  outputParser?: BaseOutputParser;
9
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
+ */
10
24
  export declare abstract class BasePromptTemplate implements BasePromptTemplateInput {
11
25
  inputVariables: string[];
12
26
  outputParser?: BaseOutputParser;
13
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
+ */
14
39
  abstract format(values: InputValues): string;
40
+ /**
41
+ * Return the string type key uniquely identifying this class of prompt template.
42
+ */
15
43
  abstract _getPromptType(): string;
44
+ /**
45
+ * Return a json-like object representing this prompt template.
46
+ */
16
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
+ */
17
56
  static deserialize(data: SerializedBasePromptTemplate): Promise<BasePromptTemplate>;
18
57
  }
19
58
  export {};
@@ -1,14 +1,10 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { PromptTemplate, FewShotPromptTemplate } from "./index";
11
2
  const templateClasses = [PromptTemplate, FewShotPromptTemplate];
3
+ /**
4
+ * Base class for prompt templates. Exposes a format method that returns a
5
+ * string prompt given a set of input values.
6
+ * @augments BasePromptTemplateInput
7
+ */
12
8
  export class BasePromptTemplate {
13
9
  constructor(input) {
14
10
  Object.defineProperty(this, "inputVariables", {
@@ -29,22 +25,25 @@ export class BasePromptTemplate {
29
25
  }
30
26
  Object.assign(this, input);
31
27
  }
32
- // Deserializing needs to be async because templates (e.g. few_shot) can
33
- // reference remote resources that we read asynchronously with a web
34
- // request.
35
- static deserialize(data) {
36
- return __awaiter(this, void 0, void 0, function* () {
37
- switch (data._type) {
38
- case "prompt":
39
- return PromptTemplate.deserialize(data);
40
- case undefined:
41
- return PromptTemplate.deserialize(Object.assign(Object.assign({}, data), { _type: "prompt" }));
42
- case "few_shot":
43
- return FewShotPromptTemplate.deserialize(data);
44
- default:
45
- throw new Error(`Invalid prompt type in config: ${data._type}`);
46
- }
47
- });
28
+ /**
29
+ * Load a prompt template from a json-like object describing it.
30
+ *
31
+ * @remarks
32
+ * Deserializing needs to be async because templates (e.g. {@link FewShotPromptTemplate}) can
33
+ * reference remote resources that we read asynchronously with a web
34
+ * request.
35
+ */
36
+ static async deserialize(data) {
37
+ switch (data._type) {
38
+ case "prompt":
39
+ return PromptTemplate.deserialize(data);
40
+ case undefined:
41
+ return PromptTemplate.deserialize({ ...data, _type: "prompt" });
42
+ case "few_shot":
43
+ return FewShotPromptTemplate.deserialize(data);
44
+ default:
45
+ throw new Error(`Invalid prompt type in config: ${data._type}`);
46
+ }
48
47
  }
49
48
  }
50
49
  //# sourceMappingURL=base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../prompt/base.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEhE,MAAM,eAAe,GAAG,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC;AAchE,MAAM,OAAgB,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;IAQD,wEAAwE;IACxE,oEAAoE;IACpE,WAAW;IACX,MAAM,CAAO,WAAW,CACtB,IAAkC;;YAElC,QAAQ,IAAI,CAAC,KAAK,EAAE;gBAClB,KAAK,QAAQ;oBACX,OAAO,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAC1C,KAAK,SAAS;oBACZ,OAAO,cAAc,CAAC,WAAW,iCAAM,IAAI,KAAE,KAAK,EAAE,QAAQ,IAAG,CAAC;gBAClE,KAAK,UAAU;oBACb,OAAO,qBAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACjD;oBACE,MAAM,IAAI,KAAK,CACb,kCACG,IAAqC,CAAC,KACzC,EAAE,CACH,CAAC;aACL;QACH,CAAC;KAAA;CACF"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../prompt/base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEhE,MAAM,eAAe,GAAG,CAAC,cAAc,EAAE,qBAAqB,CAAC,CAAC;AAwBhE;;;;GAIG;AACH,MAAM,OAAgB,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,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC1C,KAAK,SAAS;gBACZ,OAAO,cAAc,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAClE,KAAK,UAAU;gBACb,OAAO,qBAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACjD;gBACE,MAAM,IAAI,KAAK,CACb,kCACG,IAAqC,CAAC,KACzC,EAAE,CACH,CAAC;SACL;IACH,CAAC;CACF"}
@@ -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,17 +1,13 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { BasePromptTemplate, } from "./index";
11
2
  import { checkValidTemplate, renderTemplate } from "./template";
12
3
  import { resolveTemplateFromFile, resolveConfigFromFile, parseFileConfig, } from "../util";
13
4
  import { PromptTemplate } from "./prompt";
14
5
  import { BaseOutputParser } from "./parser";
6
+ /**
7
+ * Prompt template that contains few-shot examples.
8
+ * @augments BasePromptTemplate
9
+ * @augments FewShotPromptTemplateInput
10
+ */
15
11
  export class FewShotPromptTemplate extends BasePromptTemplate {
16
12
  constructor(input) {
17
13
  super(input);
@@ -109,30 +105,28 @@ export class FewShotPromptTemplate extends BasePromptTemplate {
109
105
  examples: this.examples,
110
106
  };
111
107
  }
112
- static deserialize(data) {
113
- return __awaiter(this, void 0, void 0, function* () {
114
- const serializedPrompt = resolveConfigFromFile("example_prompt", data);
115
- const examplePrompt = yield PromptTemplate.deserialize(serializedPrompt);
116
- let examples;
117
- if (typeof data.examples === "string") {
118
- examples = parseFileConfig(data.examples, [".json", ".yml", ".yaml"]);
119
- }
120
- else if (Array.isArray(data.examples)) {
121
- examples = data.examples;
122
- }
123
- else {
124
- throw new Error("Invalid examples format. Only list or string are supported.");
125
- }
126
- return new FewShotPromptTemplate({
127
- inputVariables: data.input_variables,
128
- outputParser: data.output_parser && BaseOutputParser.deserialize(data.output_parser),
129
- examplePrompt,
130
- examples,
131
- exampleSeparator: data.example_separator,
132
- prefix: resolveTemplateFromFile("prefix", data),
133
- suffix: resolveTemplateFromFile("suffix", data),
134
- templateFormat: data.template_format,
135
- });
108
+ static async deserialize(data) {
109
+ const serializedPrompt = resolveConfigFromFile("example_prompt", data);
110
+ const examplePrompt = await PromptTemplate.deserialize(serializedPrompt);
111
+ let examples;
112
+ if (typeof data.examples === "string") {
113
+ examples = parseFileConfig(data.examples, [".json", ".yml", ".yaml"]);
114
+ }
115
+ else if (Array.isArray(data.examples)) {
116
+ examples = data.examples;
117
+ }
118
+ else {
119
+ throw new Error("Invalid examples format. Only list or string are supported.");
120
+ }
121
+ return new FewShotPromptTemplate({
122
+ inputVariables: data.input_variables,
123
+ outputParser: data.output_parser && BaseOutputParser.deserialize(data.output_parser),
124
+ examplePrompt,
125
+ examples,
126
+ exampleSeparator: data.example_separator,
127
+ prefix: resolveTemplateFromFile("prefix", data),
128
+ suffix: resolveTemplateFromFile("suffix", data),
129
+ templateFormat: data.template_format,
136
130
  });
137
131
  }
138
132
  }