langchain 0.0.5 → 0.0.7

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 (478) 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/{cjs/agents → agents}/agent.d.ts +1 -1
  7. package/dist/{cjs/agents → agents}/agent.js +0 -0
  8. package/dist/agents/agent.js.map +1 -0
  9. package/dist/{cjs/agents → agents}/executor.d.ts +0 -0
  10. package/dist/{cjs/agents → agents}/executor.js +0 -0
  11. package/dist/agents/executor.js.map +1 -0
  12. package/dist/{cjs/agents → agents}/helpers.d.ts +0 -0
  13. package/dist/{cjs/agents → agents}/helpers.js +0 -0
  14. package/dist/agents/helpers.js.map +1 -0
  15. package/dist/{cjs/agents → agents}/index.d.ts +0 -0
  16. package/dist/{cjs/agents → agents}/index.js +0 -0
  17. package/dist/agents/index.js.map +1 -0
  18. package/dist/{cjs/agents → agents}/initialize.d.ts +0 -0
  19. package/dist/{cjs/agents → agents}/initialize.js +2 -4
  20. package/dist/agents/initialize.js.map +1 -0
  21. package/dist/{cjs/agents → agents}/load.d.ts +0 -0
  22. package/dist/{cjs/agents → agents}/load.js +0 -0
  23. package/dist/agents/load.js.map +1 -0
  24. package/dist/{cjs/agents → agents}/mrkl/index.d.ts +1 -1
  25. package/dist/{cjs/agents → agents}/mrkl/index.js +5 -5
  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 -0
  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/{cjs/agents → agents}/tests/agent.test.js +0 -0
  32. package/dist/agents/tests/agent.test.js.map +1 -0
  33. package/dist/{cjs/agents → agents}/tests/calculator.test.d.ts +0 -0
  34. package/dist/{cjs/agents → agents}/tests/calculator.test.js +0 -0
  35. package/dist/agents/tests/calculator.test.js.map +1 -0
  36. package/dist/{cjs/agents → agents}/tools/base.d.ts +0 -0
  37. package/dist/{cjs/agents → agents}/tools/base.js +0 -0
  38. package/dist/agents/tools/base.js.map +1 -0
  39. package/dist/{cjs/agents → agents}/tools/calculator.d.ts +0 -0
  40. package/dist/{cjs/agents → agents}/tools/calculator.js +0 -0
  41. package/dist/agents/tools/calculator.js.map +1 -0
  42. package/dist/{cjs/agents → agents}/tools/index.d.ts +0 -0
  43. package/dist/{cjs/agents → agents}/tools/index.js +0 -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/{cjs/agents → agents}/tools/serpapi.d.ts +0 -0
  49. package/dist/{cjs/agents → agents}/tools/serpapi.js +0 -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/{cjs/chains → chains}/base.d.ts +0 -0
  58. package/dist/{cjs/chains → chains}/base.js +8 -2
  59. package/dist/chains/base.js.map +1 -0
  60. package/dist/{cjs/chains → chains}/chat_vector_db_chain.d.ts +0 -0
  61. package/dist/{cjs/chains → chains}/chat_vector_db_chain.js +21 -7
  62. package/dist/chains/chat_vector_db_chain.js.map +1 -0
  63. package/dist/{cjs/chains → chains}/combine_docs_chain.d.ts +0 -0
  64. package/dist/{cjs/chains → chains}/combine_docs_chain.js +0 -0
  65. package/dist/chains/combine_docs_chain.js.map +1 -0
  66. package/dist/{esm/chains → chains}/conversation.d.ts +1 -1
  67. package/dist/{cjs/chains → chains}/conversation.js +2 -2
  68. package/dist/chains/conversation.js.map +1 -0
  69. package/dist/{esm/chains → chains}/index.d.ts +1 -1
  70. package/dist/{cjs/chains → chains}/index.js +0 -0
  71. package/dist/chains/index.js.map +1 -0
  72. package/dist/{esm/chains → chains}/llm_chain.d.ts +1 -1
  73. package/dist/{cjs/chains → chains}/llm_chain.js +3 -3
  74. package/dist/chains/llm_chain.js.map +1 -0
  75. package/dist/{cjs/chains → chains}/load.d.ts +0 -0
  76. package/dist/{cjs/chains → chains}/load.js +0 -0
  77. package/dist/chains/load.js.map +1 -0
  78. package/dist/{cjs/chains → chains}/question_answering/load.d.ts +0 -0
  79. package/dist/{cjs/chains → chains}/question_answering/load.js +0 -0
  80. package/dist/chains/question_answering/load.js.map +1 -0
  81. package/dist/{cjs/chains → chains}/question_answering/stuff_prompts.d.ts +1 -1
  82. package/dist/{cjs/chains → chains}/question_answering/stuff_prompts.js +2 -2
  83. package/dist/chains/question_answering/stuff_prompts.js.map +1 -0
  84. package/dist/{cjs/chains → chains}/question_answering/tests/load.test.d.ts +0 -0
  85. package/dist/{cjs/chains → chains}/question_answering/tests/load.test.js +5 -1
  86. package/dist/chains/question_answering/tests/load.test.js.map +1 -0
  87. package/dist/{cjs/chains → chains}/tests/chat_vector_db_qa_chain.test.d.ts +0 -0
  88. package/dist/{cjs/chains → chains}/tests/chat_vector_db_qa_chain.test.js +2 -2
  89. package/dist/chains/tests/chat_vector_db_qa_chain.test.js.map +1 -0
  90. package/dist/{cjs/chains → chains}/tests/combine_docs_chain.test.d.ts +0 -0
  91. package/dist/{cjs/chains → chains}/tests/combine_docs_chain.test.js +16 -5
  92. package/dist/chains/tests/combine_docs_chain.test.js.map +1 -0
  93. package/dist/{cjs/chains → chains}/tests/llm_chain.test.d.ts +0 -0
  94. package/dist/{cjs/chains → chains}/tests/llm_chain.test.js +2 -2
  95. package/dist/chains/tests/llm_chain.test.js.map +1 -0
  96. package/dist/{cjs/chains → chains}/tests/vector_db_qa_chain.test.d.ts +0 -0
  97. package/dist/{cjs/chains → chains}/tests/vector_db_qa_chain.test.js +2 -2
  98. package/dist/chains/tests/vector_db_qa_chain.test.js.map +1 -0
  99. package/dist/{cjs/chains → chains}/vector_db_qa.d.ts +0 -0
  100. package/dist/{cjs/chains → chains}/vector_db_qa.js +0 -0
  101. package/dist/chains/vector_db_qa.js.map +1 -0
  102. package/dist/{cjs/document.d.ts → document.d.ts} +0 -0
  103. package/dist/{cjs/document.js → document.js} +0 -0
  104. package/dist/document.js.map +1 -0
  105. package/dist/{cjs/embeddings → embeddings}/base.d.ts +0 -0
  106. package/dist/{cjs/embeddings → embeddings}/base.js +0 -0
  107. package/dist/embeddings/base.js.map +1 -0
  108. package/dist/{cjs/embeddings → embeddings}/index.d.ts +0 -0
  109. package/dist/{cjs/embeddings → embeddings}/index.js +0 -0
  110. package/dist/embeddings/index.js.map +1 -0
  111. package/dist/{cjs/embeddings → embeddings}/openai.d.ts +0 -0
  112. package/dist/{cjs/embeddings → embeddings}/openai.js +1 -1
  113. package/dist/embeddings/openai.js.map +1 -0
  114. package/dist/{cjs/embeddings → embeddings}/tests/openai.test.d.ts +0 -0
  115. package/dist/{cjs/embeddings → embeddings}/tests/openai.test.js +0 -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/{cjs/llms → llms}/base.d.ts +0 -0
  121. package/dist/{cjs/llms → llms}/base.js +4 -3
  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/{cjs/llms → llms}/index.d.ts +5 -3
  127. package/dist/{cjs/llms → llms}/index.js +3 -1
  128. package/dist/llms/index.js.map +1 -0
  129. package/dist/{cjs/llms → llms}/load.d.ts +0 -0
  130. package/dist/{cjs/llms → llms}/load.js +0 -0
  131. package/dist/llms/load.js.map +1 -0
  132. package/dist/{esm/llms → llms}/openai.d.ts +5 -2
  133. package/dist/{cjs/llms → llms}/openai.js +49 -4
  134. package/dist/llms/openai.js.map +1 -0
  135. package/dist/{cjs/llms/tests/openai.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/embeddings → llms}/tests/openai.test.d.ts +0 -0
  139. package/dist/{cjs/llms → llms}/tests/openai.test.js +0 -0
  140. package/dist/llms/tests/openai.test.js.map +1 -0
  141. package/dist/{cjs/memory → memory}/base.d.ts +0 -0
  142. package/dist/{cjs/memory → memory}/base.js +0 -0
  143. package/dist/memory/base.js.map +1 -0
  144. package/dist/{cjs/memory → memory}/buffer_memory.d.ts +0 -0
  145. package/dist/{cjs/memory → memory}/buffer_memory.js +0 -0
  146. package/dist/memory/buffer_memory.js.map +1 -0
  147. package/dist/{cjs/memory → memory}/index.d.ts +0 -0
  148. package/dist/{cjs/memory → memory}/index.js +0 -0
  149. package/dist/memory/index.js.map +1 -0
  150. package/dist/{cjs/memory → memory}/tests/buffer_memory.test.d.ts +0 -0
  151. package/dist/{cjs/memory → memory}/tests/buffer_memory.test.js +0 -0
  152. package/dist/memory/tests/buffer_memory.test.js.map +1 -0
  153. package/dist/{cjs/prompt → prompts}/base.d.ts +0 -0
  154. package/dist/{cjs/prompt → prompts}/base.js +0 -0
  155. package/dist/prompts/base.js.map +1 -0
  156. package/dist/{cjs/prompt → prompts}/few_shot.d.ts +0 -0
  157. package/dist/{cjs/prompt → prompts}/few_shot.js +0 -0
  158. package/dist/prompts/few_shot.js.map +1 -0
  159. package/dist/{cjs/prompt → prompts}/index.d.ts +0 -0
  160. package/dist/{cjs/prompt → prompts}/index.js +0 -0
  161. package/dist/prompts/index.js.map +1 -0
  162. package/dist/{cjs/prompt → prompts}/load.d.ts +2 -2
  163. package/dist/{cjs/prompt → prompts}/load.js +2 -2
  164. package/dist/prompts/load.js.map +1 -0
  165. package/dist/{cjs/prompt → prompts}/parser.d.ts +0 -0
  166. package/dist/{cjs/prompt → prompts}/parser.js +0 -0
  167. package/dist/prompts/parser.js.map +1 -0
  168. package/dist/{cjs/prompt → prompts}/prompt.d.ts +1 -1
  169. package/dist/{cjs/prompt → prompts}/prompt.js +1 -1
  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/{cjs/prompt → prompts}/tests/load.test.d.ts +0 -0
  175. package/dist/{cjs/prompt → prompts}/tests/load.test.js +0 -0
  176. package/dist/prompts/tests/load.test.js.map +1 -0
  177. package/dist/{cjs/prompt → prompts}/tests/template.test.d.ts +0 -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/{cjs/text_splitter.d.ts → text_splitter.d.ts} +0 -0
  181. package/dist/{cjs/text_splitter.js → text_splitter.js} +3 -1
  182. package/dist/text_splitter.js.map +1 -0
  183. package/dist/{cjs/util → util}/hub.d.ts +0 -0
  184. package/dist/{cjs/util → util}/hub.js +0 -0
  185. package/dist/util/hub.js.map +1 -0
  186. package/dist/{cjs/util → util}/index.d.ts +0 -0
  187. package/dist/{cjs/util → util}/index.js +0 -0
  188. package/dist/util/index.js.map +1 -0
  189. package/dist/{esm/vectorstores → vectorstores}/base.d.ts +1 -1
  190. package/dist/{cjs/vectorstores → vectorstores}/base.js +1 -1
  191. package/dist/vectorstores/base.js.map +1 -0
  192. package/dist/{cjs/vectorstores → vectorstores}/hnswlib.d.ts +0 -0
  193. package/dist/{cjs/vectorstores → vectorstores}/hnswlib.js +6 -3
  194. package/dist/vectorstores/hnswlib.js.map +1 -0
  195. package/dist/{cjs/vectorstores → vectorstores}/index.d.ts +0 -0
  196. package/dist/{cjs/vectorstores → vectorstores}/index.js +0 -0
  197. package/dist/vectorstores/index.js.map +1 -0
  198. package/dist/{cjs/vectorstores → vectorstores}/tests/hnswlib.test.d.ts +0 -0
  199. package/dist/{cjs/vectorstores → vectorstores}/tests/hnswlib.test.js +6 -6
  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 +48 -65
  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.js.map +0 -1
  219. package/dist/cjs/agents/executor.js.map +0 -1
  220. package/dist/cjs/agents/helpers.js.map +0 -1
  221. package/dist/cjs/agents/index.js.map +0 -1
  222. package/dist/cjs/agents/initialize.js.map +0 -1
  223. package/dist/cjs/agents/load.js.map +0 -1
  224. package/dist/cjs/agents/mrkl/index.js.map +0 -1
  225. package/dist/cjs/agents/mrkl/prompt.js.map +0 -1
  226. package/dist/cjs/agents/tests/agent.test.js.map +0 -1
  227. package/dist/cjs/agents/tests/calculator.test.js.map +0 -1
  228. package/dist/cjs/agents/tools/base.js.map +0 -1
  229. package/dist/cjs/agents/tools/calculator.js.map +0 -1
  230. package/dist/cjs/agents/tools/index.js.map +0 -1
  231. package/dist/cjs/agents/tools/serpapi.js.map +0 -1
  232. package/dist/cjs/cache.js.map +0 -1
  233. package/dist/cjs/chains/base.js.map +0 -1
  234. package/dist/cjs/chains/chat_vector_db_chain.js.map +0 -1
  235. package/dist/cjs/chains/combine_docs_chain.js.map +0 -1
  236. package/dist/cjs/chains/conversation.d.ts +0 -12
  237. package/dist/cjs/chains/conversation.js.map +0 -1
  238. package/dist/cjs/chains/index.d.ts +0 -7
  239. package/dist/cjs/chains/index.js.map +0 -1
  240. package/dist/cjs/chains/llm_chain.d.ts +0 -65
  241. package/dist/cjs/chains/llm_chain.js.map +0 -1
  242. package/dist/cjs/chains/llm_math_chain.d.ts +0 -0
  243. package/dist/cjs/chains/llm_math_chain.js +0 -129
  244. package/dist/cjs/chains/llm_math_chain.js.map +0 -1
  245. package/dist/cjs/chains/load.js.map +0 -1
  246. package/dist/cjs/chains/question_answering/load.js.map +0 -1
  247. package/dist/cjs/chains/question_answering/stuff_prompts.js.map +0 -1
  248. package/dist/cjs/chains/question_answering/tests/load.test.js.map +0 -1
  249. package/dist/cjs/chains/tests/chat_vector_db_qa_chain.test.js.map +0 -1
  250. package/dist/cjs/chains/tests/combine_docs_chain.test.js.map +0 -1
  251. package/dist/cjs/chains/tests/llm_chain.test.js.map +0 -1
  252. package/dist/cjs/chains/tests/vector_db_qa_chain.test.js.map +0 -1
  253. package/dist/cjs/chains/vector_db_qa.js.map +0 -1
  254. package/dist/cjs/document.js.map +0 -1
  255. package/dist/cjs/embeddings/base.js.map +0 -1
  256. package/dist/cjs/embeddings/index.js.map +0 -1
  257. package/dist/cjs/embeddings/openai.js.map +0 -1
  258. package/dist/cjs/embeddings/tests/openai.test.js.map +0 -1
  259. package/dist/cjs/index.js.map +0 -1
  260. package/dist/cjs/llms/base.js.map +0 -1
  261. package/dist/cjs/llms/index.js.map +0 -1
  262. package/dist/cjs/llms/load.js.map +0 -1
  263. package/dist/cjs/llms/openai.d.ts +0 -125
  264. package/dist/cjs/llms/openai.js.map +0 -1
  265. package/dist/cjs/llms/tests/openai.test.js.map +0 -1
  266. package/dist/cjs/memory/base.js.map +0 -1
  267. package/dist/cjs/memory/buffer_memory.js.map +0 -1
  268. package/dist/cjs/memory/index.js.map +0 -1
  269. package/dist/cjs/memory/tests/buffer_memory.test.js.map +0 -1
  270. package/dist/cjs/prompt/base.js.map +0 -1
  271. package/dist/cjs/prompt/few_shot.js.map +0 -1
  272. package/dist/cjs/prompt/index.js.map +0 -1
  273. package/dist/cjs/prompt/load.js.map +0 -1
  274. package/dist/cjs/prompt/parser.js.map +0 -1
  275. package/dist/cjs/prompt/prompt.js.map +0 -1
  276. package/dist/cjs/prompt/template.js.map +0 -1
  277. package/dist/cjs/prompt/tests/load.test.js.map +0 -1
  278. package/dist/cjs/prompt/tests/template.test.js.map +0 -1
  279. package/dist/cjs/text_splitter.js.map +0 -1
  280. package/dist/cjs/text_splitter.test.d.ts +0 -1
  281. package/dist/cjs/text_splitter.test.js +0 -87
  282. package/dist/cjs/text_splitter.test.js.map +0 -1
  283. package/dist/cjs/util/hub.js.map +0 -1
  284. package/dist/cjs/util/index.js.map +0 -1
  285. package/dist/cjs/vectorstores/base.d.ts +0 -18
  286. package/dist/cjs/vectorstores/base.js.map +0 -1
  287. package/dist/cjs/vectorstores/hnswlib.js.map +0 -1
  288. package/dist/cjs/vectorstores/index.js.map +0 -1
  289. package/dist/cjs/vectorstores/tests/hnswlib.test.js.map +0 -1
  290. package/dist/esm/agents/agent.d.ts +0 -96
  291. package/dist/esm/agents/agent.js +0 -146
  292. package/dist/esm/agents/agent.js.map +0 -1
  293. package/dist/esm/agents/executor.d.ts +0 -32
  294. package/dist/esm/agents/executor.js +0 -95
  295. package/dist/esm/agents/executor.js.map +0 -1
  296. package/dist/esm/agents/helpers.d.ts +0 -3
  297. package/dist/esm/agents/helpers.js +0 -17
  298. package/dist/esm/agents/helpers.js.map +0 -1
  299. package/dist/esm/agents/index.d.ts +0 -7
  300. package/dist/esm/agents/index.js +0 -7
  301. package/dist/esm/agents/index.js.map +0 -1
  302. package/dist/esm/agents/initialize.d.ts +0 -4
  303. package/dist/esm/agents/initialize.js +0 -17
  304. package/dist/esm/agents/initialize.js.map +0 -1
  305. package/dist/esm/agents/load.d.ts +0 -6
  306. package/dist/esm/agents/load.js +0 -15
  307. package/dist/esm/agents/load.js.map +0 -1
  308. package/dist/esm/agents/mrkl/index.d.ts +0 -50
  309. package/dist/esm/agents/mrkl/index.js +0 -98
  310. package/dist/esm/agents/mrkl/index.js.map +0 -1
  311. package/dist/esm/agents/mrkl/prompt.d.ts +0 -3
  312. package/dist/esm/agents/mrkl/prompt.js +0 -16
  313. package/dist/esm/agents/mrkl/prompt.js.map +0 -1
  314. package/dist/esm/agents/tests/agent.test.d.ts +0 -1
  315. package/dist/esm/agents/tests/agent.test.js +0 -33
  316. package/dist/esm/agents/tests/agent.test.js.map +0 -1
  317. package/dist/esm/agents/tests/calculator.test.d.ts +0 -1
  318. package/dist/esm/agents/tests/calculator.test.js +0 -28
  319. package/dist/esm/agents/tests/calculator.test.js.map +0 -1
  320. package/dist/esm/agents/tools/base.d.ts +0 -6
  321. package/dist/esm/agents/tools/base.js +0 -11
  322. package/dist/esm/agents/tools/base.js.map +0 -1
  323. package/dist/esm/agents/tools/calculator.d.ts +0 -6
  324. package/dist/esm/agents/tools/calculator.js +0 -29
  325. package/dist/esm/agents/tools/calculator.js.map +0 -1
  326. package/dist/esm/agents/tools/index.d.ts +0 -3
  327. package/dist/esm/agents/tools/index.js +0 -4
  328. package/dist/esm/agents/tools/index.js.map +0 -1
  329. package/dist/esm/agents/tools/llm-math.d.ts +0 -0
  330. package/dist/esm/agents/tools/llm-math.js +0 -2
  331. package/dist/esm/agents/tools/llm-math.js.map +0 -1
  332. package/dist/esm/agents/tools/serpapi.d.ts +0 -18
  333. package/dist/esm/agents/tools/serpapi.js +0 -89
  334. package/dist/esm/agents/tools/serpapi.js.map +0 -1
  335. package/dist/esm/agents/types.d.ts +0 -25
  336. package/dist/esm/agents/types.js +0 -2
  337. package/dist/esm/agents/types.js.map +0 -1
  338. package/dist/esm/cache.d.ts +0 -11
  339. package/dist/esm/cache.js +0 -22
  340. package/dist/esm/cache.js.map +0 -1
  341. package/dist/esm/chains/base.d.ts +0 -42
  342. package/dist/esm/chains/base.js +0 -57
  343. package/dist/esm/chains/base.js.map +0 -1
  344. package/dist/esm/chains/chat_vector_db_chain.d.ts +0 -41
  345. package/dist/esm/chains/chat_vector_db_chain.js +0 -128
  346. package/dist/esm/chains/chat_vector_db_chain.js.map +0 -1
  347. package/dist/esm/chains/combine_docs_chain.d.ts +0 -35
  348. package/dist/esm/chains/combine_docs_chain.js +0 -71
  349. package/dist/esm/chains/combine_docs_chain.js.map +0 -1
  350. package/dist/esm/chains/conversation.js +0 -25
  351. package/dist/esm/chains/conversation.js.map +0 -1
  352. package/dist/esm/chains/index.js +0 -8
  353. package/dist/esm/chains/index.js.map +0 -1
  354. package/dist/esm/chains/llm_chain.js +0 -110
  355. package/dist/esm/chains/llm_chain.js.map +0 -1
  356. package/dist/esm/chains/llm_math_chain.d.ts +0 -0
  357. package/dist/esm/chains/llm_math_chain.js +0 -129
  358. package/dist/esm/chains/llm_math_chain.js.map +0 -1
  359. package/dist/esm/chains/load.d.ts +0 -21
  360. package/dist/esm/chains/load.js +0 -33
  361. package/dist/esm/chains/load.js.map +0 -1
  362. package/dist/esm/chains/question_answering/load.d.ts +0 -3
  363. package/dist/esm/chains/question_answering/load.js +0 -9
  364. package/dist/esm/chains/question_answering/load.js.map +0 -1
  365. package/dist/esm/chains/question_answering/stuff_prompts.d.ts +0 -2
  366. package/dist/esm/chains/question_answering/stuff_prompts.js +0 -7
  367. package/dist/esm/chains/question_answering/stuff_prompts.js.map +0 -1
  368. package/dist/esm/chains/question_answering/tests/load.test.d.ts +0 -1
  369. package/dist/esm/chains/question_answering/tests/load.test.js +0 -12
  370. package/dist/esm/chains/question_answering/tests/load.test.js.map +0 -1
  371. package/dist/esm/chains/tests/chat_vector_db_qa_chain.test.d.ts +0 -1
  372. package/dist/esm/chains/tests/chat_vector_db_qa_chain.test.js +0 -33
  373. package/dist/esm/chains/tests/chat_vector_db_qa_chain.test.js.map +0 -1
  374. package/dist/esm/chains/tests/combine_docs_chain.test.d.ts +0 -1
  375. package/dist/esm/chains/tests/combine_docs_chain.test.js +0 -26
  376. package/dist/esm/chains/tests/combine_docs_chain.test.js.map +0 -1
  377. package/dist/esm/chains/tests/llm_chain.test.d.ts +0 -1
  378. package/dist/esm/chains/tests/llm_chain.test.js +0 -27
  379. package/dist/esm/chains/tests/llm_chain.test.js.map +0 -1
  380. package/dist/esm/chains/tests/vector_db_qa_chain.test.d.ts +0 -1
  381. package/dist/esm/chains/tests/vector_db_qa_chain.test.js +0 -44
  382. package/dist/esm/chains/tests/vector_db_qa_chain.test.js.map +0 -1
  383. package/dist/esm/chains/vector_db_qa.d.ts +0 -36
  384. package/dist/esm/chains/vector_db_qa.js +0 -81
  385. package/dist/esm/chains/vector_db_qa.js.map +0 -1
  386. package/dist/esm/document.d.ts +0 -13
  387. package/dist/esm/document.js +0 -24
  388. package/dist/esm/document.js.map +0 -1
  389. package/dist/esm/embeddings/base.d.ts +0 -4
  390. package/dist/esm/embeddings/base.js +0 -3
  391. package/dist/esm/embeddings/base.js.map +0 -1
  392. package/dist/esm/embeddings/index.d.ts +0 -1
  393. package/dist/esm/embeddings/index.js +0 -2
  394. package/dist/esm/embeddings/index.js.map +0 -1
  395. package/dist/esm/embeddings/openai.d.ts +0 -20
  396. package/dist/esm/embeddings/openai.js +0 -82
  397. package/dist/esm/embeddings/openai.js.map +0 -1
  398. package/dist/esm/embeddings/tests/openai.test.js +0 -15
  399. package/dist/esm/embeddings/tests/openai.test.js.map +0 -1
  400. package/dist/esm/index.d.ts +0 -3
  401. package/dist/esm/index.js +0 -4
  402. package/dist/esm/index.js.map +0 -1
  403. package/dist/esm/llms/base.d.ts +0 -64
  404. package/dist/esm/llms/base.js +0 -159
  405. package/dist/esm/llms/base.js.map +0 -1
  406. package/dist/esm/llms/index.d.ts +0 -37
  407. package/dist/esm/llms/index.js +0 -4
  408. package/dist/esm/llms/index.js.map +0 -1
  409. package/dist/esm/llms/load.d.ts +0 -11
  410. package/dist/esm/llms/load.js +0 -13
  411. package/dist/esm/llms/load.js.map +0 -1
  412. package/dist/esm/llms/openai.js +0 -236
  413. package/dist/esm/llms/openai.js.map +0 -1
  414. package/dist/esm/llms/tests/openai.test.d.ts +0 -1
  415. package/dist/esm/llms/tests/openai.test.js +0 -8
  416. package/dist/esm/llms/tests/openai.test.js.map +0 -1
  417. package/dist/esm/memory/base.d.ts +0 -7
  418. package/dist/esm/memory/base.js +0 -3
  419. package/dist/esm/memory/base.js.map +0 -1
  420. package/dist/esm/memory/buffer_memory.d.ts +0 -15
  421. package/dist/esm/memory/buffer_memory.js +0 -53
  422. package/dist/esm/memory/buffer_memory.js.map +0 -1
  423. package/dist/esm/memory/index.d.ts +0 -2
  424. package/dist/esm/memory/index.js +0 -3
  425. package/dist/esm/memory/index.js.map +0 -1
  426. package/dist/esm/memory/tests/buffer_memory.test.d.ts +0 -1
  427. package/dist/esm/memory/tests/buffer_memory.test.js +0 -15
  428. package/dist/esm/memory/tests/buffer_memory.test.js.map +0 -1
  429. package/dist/esm/prompt/base.d.ts +0 -58
  430. package/dist/esm/prompt/base.js +0 -49
  431. package/dist/esm/prompt/base.js.map +0 -1
  432. package/dist/esm/prompt/few_shot.d.ts +0 -82
  433. package/dist/esm/prompt/few_shot.js +0 -133
  434. package/dist/esm/prompt/few_shot.js.map +0 -1
  435. package/dist/esm/prompt/index.d.ts +0 -4
  436. package/dist/esm/prompt/index.js +0 -5
  437. package/dist/esm/prompt/index.js.map +0 -1
  438. package/dist/esm/prompt/load.d.ts +0 -19
  439. package/dist/esm/prompt/load.js +0 -29
  440. package/dist/esm/prompt/load.js.map +0 -1
  441. package/dist/esm/prompt/parser.d.ts +0 -70
  442. package/dist/esm/prompt/parser.js +0 -107
  443. package/dist/esm/prompt/parser.js.map +0 -1
  444. package/dist/esm/prompt/prompt.d.ts +0 -76
  445. package/dist/esm/prompt/prompt.js +0 -107
  446. package/dist/esm/prompt/prompt.js.map +0 -1
  447. package/dist/esm/prompt/template.d.ts +0 -16
  448. package/dist/esm/prompt/template.js +0 -80
  449. package/dist/esm/prompt/template.js.map +0 -1
  450. package/dist/esm/prompt/tests/load.test.d.ts +0 -1
  451. package/dist/esm/prompt/tests/load.test.js +0 -16
  452. package/dist/esm/prompt/tests/load.test.js.map +0 -1
  453. package/dist/esm/prompt/tests/template.test.d.ts +0 -1
  454. package/dist/esm/prompt/tests/template.test.js +0 -25
  455. package/dist/esm/prompt/tests/template.test.js.map +0 -1
  456. package/dist/esm/text_splitter.d.ts +0 -32
  457. package/dist/esm/text_splitter.js +0 -160
  458. package/dist/esm/text_splitter.js.map +0 -1
  459. package/dist/esm/text_splitter.test.d.ts +0 -1
  460. package/dist/esm/text_splitter.test.js +0 -85
  461. package/dist/esm/text_splitter.test.js.map +0 -1
  462. package/dist/esm/util/hub.d.ts +0 -2
  463. package/dist/esm/util/hub.js +0 -34
  464. package/dist/esm/util/hub.js.map +0 -1
  465. package/dist/esm/util/index.d.ts +0 -13
  466. package/dist/esm/util/index.js +0 -61
  467. package/dist/esm/util/index.js.map +0 -1
  468. package/dist/esm/vectorstores/base.js +0 -33
  469. package/dist/esm/vectorstores/base.js.map +0 -1
  470. package/dist/esm/vectorstores/hnswlib.d.ts +0 -19
  471. package/dist/esm/vectorstores/hnswlib.js +0 -119
  472. package/dist/esm/vectorstores/hnswlib.js.map +0 -1
  473. package/dist/esm/vectorstores/index.d.ts +0 -1
  474. package/dist/esm/vectorstores/index.js +0 -2
  475. package/dist/esm/vectorstores/index.js.map +0 -1
  476. package/dist/esm/vectorstores/tests/hnswlib.test.d.ts +0 -1
  477. package/dist/esm/vectorstores/tests/hnswlib.test.js +0 -39
  478. package/dist/esm/vectorstores/tests/hnswlib.test.js.map +0 -1
@@ -1,2 +0,0 @@
1
- export { BufferMemory } from "./buffer_memory";
2
- export { BaseMemory } from "./base";
@@ -1,3 +0,0 @@
1
- export { BufferMemory } from "./buffer_memory";
2
- export { BaseMemory } from "./base";
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,15 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,58 +0,0 @@
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 {};
@@ -1,49 +0,0 @@
1
- import { PromptTemplate, FewShotPromptTemplate } from "./index";
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
- */
8
- export class BasePromptTemplate {
9
- constructor(input) {
10
- Object.defineProperty(this, "inputVariables", {
11
- enumerable: true,
12
- configurable: true,
13
- writable: true,
14
- value: void 0
15
- });
16
- Object.defineProperty(this, "outputParser", {
17
- enumerable: true,
18
- configurable: true,
19
- writable: true,
20
- value: void 0
21
- });
22
- const { inputVariables } = input;
23
- if (inputVariables.includes("stop")) {
24
- throw new Error("Cannot have an input variable named 'stop', as it is used internally, please rename.");
25
- }
26
- Object.assign(this, input);
27
- }
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
- }
47
- }
48
- }
49
- //# sourceMappingURL=base.js.map
@@ -1 +0,0 @@
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"}
@@ -1,82 +0,0 @@
1
- import { BasePromptTemplate, InputValues, BasePromptTemplateInput } from "./index";
2
- import { TemplateFormat } from "./template";
3
- import { PromptTemplate, SerializedPromptTemplate } from "./prompt";
4
- import { SerializedOutputParser } from "./parser";
5
- type ExampleSelector = null;
6
- type Example = Record<string, any>;
7
- export type SerializedFewShotTemplate = {
8
- _type: "few_shot";
9
- input_variables: string[];
10
- output_parser?: SerializedOutputParser;
11
- examples: string | Example[];
12
- example_prompt?: SerializedPromptTemplate;
13
- example_prompt_path?: string;
14
- example_separator: string;
15
- prefix?: string;
16
- prefix_path?: string;
17
- suffix?: string;
18
- suffix_path?: string;
19
- template_format: TemplateFormat;
20
- };
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
- */
27
- examples?: Example[];
28
- /**
29
- * An {@link ExampleSelector} Examples to format into the prompt. Exactly one of this or
30
- * {@link examples} must be
31
- * provided.
32
- */
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
- */
41
- exampleSeparator: string;
42
- /**
43
- * A prompt template string to put before the examples.
44
- *
45
- * @defaultValue `""`
46
- */
47
- prefix: string;
48
- /**
49
- * A prompt template string to put after the examples.
50
- */
51
- suffix: string;
52
- /**
53
- * The format of the prompt template. Options are: 'f-string', 'jinja-2'
54
- */
55
- templateFormat: TemplateFormat;
56
- /**
57
- * Whether or not to try validating the template on initialization.
58
- */
59
- validateTemplate?: boolean;
60
- }
61
- /**
62
- * Prompt template that contains few-shot examples.
63
- * @augments BasePromptTemplate
64
- * @augments FewShotPromptTemplateInput
65
- */
66
- export declare class FewShotPromptTemplate extends BasePromptTemplate implements FewShotPromptTemplateInput {
67
- examples?: InputValues[];
68
- exampleSelector?: ExampleSelector;
69
- examplePrompt: PromptTemplate;
70
- suffix: string;
71
- exampleSeparator: string;
72
- prefix: string;
73
- templateFormat: TemplateFormat;
74
- validateTemplate: boolean;
75
- constructor(input: FewShotPromptTemplateInput);
76
- _getPromptType(): "few_shot";
77
- private getExamples;
78
- format(values: InputValues): string;
79
- serialize(): SerializedFewShotTemplate;
80
- static deserialize(data: SerializedFewShotTemplate): Promise<FewShotPromptTemplate>;
81
- }
82
- export {};
@@ -1,133 +0,0 @@
1
- import { BasePromptTemplate, } from "./index";
2
- import { checkValidTemplate, renderTemplate } from "./template";
3
- import { resolveTemplateFromFile, resolveConfigFromFile, parseFileConfig, } from "../util";
4
- import { PromptTemplate } from "./prompt";
5
- import { BaseOutputParser } from "./parser";
6
- /**
7
- * Prompt template that contains few-shot examples.
8
- * @augments BasePromptTemplate
9
- * @augments FewShotPromptTemplateInput
10
- */
11
- export class FewShotPromptTemplate extends BasePromptTemplate {
12
- constructor(input) {
13
- super(input);
14
- Object.defineProperty(this, "examples", {
15
- enumerable: true,
16
- configurable: true,
17
- writable: true,
18
- value: void 0
19
- });
20
- Object.defineProperty(this, "exampleSelector", {
21
- enumerable: true,
22
- configurable: true,
23
- writable: true,
24
- value: void 0
25
- });
26
- Object.defineProperty(this, "examplePrompt", {
27
- enumerable: true,
28
- configurable: true,
29
- writable: true,
30
- value: void 0
31
- });
32
- Object.defineProperty(this, "suffix", {
33
- enumerable: true,
34
- configurable: true,
35
- writable: true,
36
- value: void 0
37
- });
38
- Object.defineProperty(this, "exampleSeparator", {
39
- enumerable: true,
40
- configurable: true,
41
- writable: true,
42
- value: void 0
43
- });
44
- Object.defineProperty(this, "prefix", {
45
- enumerable: true,
46
- configurable: true,
47
- writable: true,
48
- value: void 0
49
- });
50
- Object.defineProperty(this, "templateFormat", {
51
- enumerable: true,
52
- configurable: true,
53
- writable: true,
54
- value: "f-string"
55
- });
56
- Object.defineProperty(this, "validateTemplate", {
57
- enumerable: true,
58
- configurable: true,
59
- writable: true,
60
- value: true
61
- });
62
- Object.assign(this, input);
63
- if (this.examples !== undefined && this.exampleSelector !== undefined) {
64
- throw new Error("Only one of 'examples' and 'example_selector' should be provided");
65
- }
66
- if (this.examples === undefined && this.exampleSelector === undefined) {
67
- throw new Error("One of 'examples' and 'example_selector' should be provided");
68
- }
69
- if (this.validateTemplate) {
70
- checkValidTemplate(this.prefix + this.suffix, this.templateFormat, this.inputVariables);
71
- }
72
- }
73
- _getPromptType() {
74
- return "few_shot";
75
- }
76
- getExamples(_) {
77
- if (this.examples !== undefined) {
78
- return this.examples;
79
- }
80
- if (this.exampleSelector !== undefined) {
81
- throw new Error("Example selectors are not yet supported.");
82
- }
83
- throw new Error("One of 'examples' and 'example_selector' should be provided");
84
- }
85
- format(values) {
86
- const examples = this.getExamples(values);
87
- const exampleStrings = examples.map((example) => this.examplePrompt.format(example));
88
- const template = [this.prefix, ...exampleStrings, this.suffix].join(this.exampleSeparator);
89
- return renderTemplate(template, this.templateFormat, values);
90
- }
91
- serialize() {
92
- var _a;
93
- if (this.exampleSelector || !this.examples) {
94
- throw new Error("Serializing an example selector is not currently supported");
95
- }
96
- return {
97
- _type: this._getPromptType(),
98
- input_variables: this.inputVariables,
99
- output_parser: (_a = this.outputParser) === null || _a === void 0 ? void 0 : _a.serialize(),
100
- example_prompt: this.examplePrompt.serialize(),
101
- example_separator: this.exampleSeparator,
102
- suffix: this.suffix,
103
- prefix: this.prefix,
104
- template_format: this.templateFormat,
105
- examples: this.examples,
106
- };
107
- }
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,
130
- });
131
- }
132
- }
133
- //# sourceMappingURL=few_shot.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"few_shot.js","sourceRoot":"","sources":["../../../prompt/few_shot.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export { BasePromptTemplate, BasePromptTemplateInput, SerializedBasePromptTemplate, InputValues, } from "./base";
2
- export { PromptTemplate, PromptTemplateInput, SerializedPromptTemplate, } from "./prompt";
3
- export { FewShotPromptTemplate, FewShotPromptTemplateInput, SerializedFewShotTemplate, } from "./few_shot";
4
- export { loadPrompt } from "./load";
@@ -1,5 +0,0 @@
1
- export { BasePromptTemplate, } from "./base";
2
- export { PromptTemplate, } from "./prompt";
3
- export { FewShotPromptTemplate, } from "./few_shot";
4
- export { loadPrompt } from "./load";
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../prompt/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,GAInB,MAAM,QAAQ,CAAC;AAChB,OAAO,EACL,cAAc,GAGf,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,qBAAqB,GAGtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC"}
@@ -1,19 +0,0 @@
1
- import { BasePromptTemplate } from ".";
2
- /**
3
- * Load a prompt from {@link https://github.com/hwchase17/langchain-hub | LangchainHub} or local filesystem.
4
- *
5
- * @example
6
- * Loading from LangchainHub:
7
- * ```ts
8
- * import { loadPrompt } from "langchain/prompt";
9
- * const prompt = await loadPrompt("lc://prompts/hello-world/prompt.yaml");
10
- * ```
11
- *
12
- * @example
13
- * Loading from local filesystem:
14
- * ```ts
15
- * import { loadPrompt } from "langchain/prompt";
16
- * const prompt = await loadPrompt("/path/to/prompt.json");
17
- * ```
18
- */
19
- export declare const loadPrompt: (uri: string) => Promise<BasePromptTemplate>;
@@ -1,29 +0,0 @@
1
- import { BasePromptTemplate } from ".";
2
- import { loadFromHub } from "../util/hub";
3
- import { parseFileConfig } from "../util";
4
- const loadPromptFromFile = async (file) => BasePromptTemplate.deserialize(parseFileConfig(file));
5
- /**
6
- * Load a prompt from {@link https://github.com/hwchase17/langchain-hub | LangchainHub} or local filesystem.
7
- *
8
- * @example
9
- * Loading from LangchainHub:
10
- * ```ts
11
- * import { loadPrompt } from "langchain/prompt";
12
- * const prompt = await loadPrompt("lc://prompts/hello-world/prompt.yaml");
13
- * ```
14
- *
15
- * @example
16
- * Loading from local filesystem:
17
- * ```ts
18
- * import { loadPrompt } from "langchain/prompt";
19
- * const prompt = await loadPrompt("/path/to/prompt.json");
20
- * ```
21
- */
22
- export const loadPrompt = async (uri) => {
23
- const hubResult = await loadFromHub(uri, loadPromptFromFile, "prompts", new Set(["py", "json", "yaml"]));
24
- if (hubResult) {
25
- return hubResult;
26
- }
27
- return loadPromptFromFile(uri);
28
- };
29
- //# sourceMappingURL=load.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"load.js","sourceRoot":"","sources":["../../../prompt/load.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,GAAG,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,MAAM,kBAAkB,GAAG,KAAK,EAAE,IAAY,EAAE,EAAE,CAChD,kBAAkB,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;AAExD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,GAAW,EAA+B,EAAE;IAC3E,MAAM,SAAS,GAAG,MAAM,WAAW,CACjC,GAAG,EACH,kBAAkB,EAClB,SAAS,EACT,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAChC,CAAC;IACF,IAAI,SAAS,EAAE;QACb,OAAO,SAAS,CAAC;KAClB;IAED,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC,CAAC"}
@@ -1,70 +0,0 @@
1
- export type SerializedOutputParser = SerializedRegexParser | SerializedCommaSeparatedListOutputParser;
2
- /**
3
- * Class to parse the output of an LLM call.
4
- */
5
- export declare abstract class BaseOutputParser {
6
- /**
7
- * Parse the output of an LLM call.
8
- *
9
- * @param text - LLM output to parse.
10
- * @returns Parsed output.
11
- */
12
- abstract parse(text: string): string | string[] | Record<string, string>;
13
- /**
14
- * Return the string type key uniquely identifying this class of parser
15
- */
16
- _type(): string;
17
- /**
18
- * Return a json-like object representing this output parser.
19
- */
20
- abstract serialize(): SerializedOutputParser;
21
- /**
22
- * Load an output parser from a json-like object describing the parser.
23
- */
24
- static deserialize(data: SerializedOutputParser): BaseOutputParser;
25
- }
26
- /**
27
- * Class to parse the output of an LLM call to a list.
28
- * @augments BaseOutputParser
29
- */
30
- export declare abstract class ListOutputParser extends BaseOutputParser {
31
- abstract parse(text: string): string[];
32
- }
33
- type SerializedCommaSeparatedListOutputParser = {
34
- _type: "comma_separated_list";
35
- };
36
- /**
37
- * Class to parse the output of an LLM call as a comma-separated list.
38
- * @augments ListOutputParser
39
- */
40
- export declare class CommaSeparatedListOutputParser extends ListOutputParser {
41
- parse(text: string): string[];
42
- serialize(): SerializedCommaSeparatedListOutputParser;
43
- static deserialize(_: SerializedCommaSeparatedListOutputParser): CommaSeparatedListOutputParser;
44
- }
45
- type SerializedRegexParser = {
46
- _type: "regex_parser";
47
- regex: string;
48
- output_keys: string[];
49
- default_output_key?: string;
50
- };
51
- /**
52
- * Class to parse the output of an LLM call into a dictionary.
53
- * @augments BaseOutputParser
54
- */
55
- export declare class RegexParser extends BaseOutputParser {
56
- regex: string | RegExp;
57
- outputKeys: string[];
58
- defaultOutputKey?: string;
59
- constructor(regex: string | RegExp, outputKeys: string[], defaultOutputKey?: string);
60
- _type(): string;
61
- parse(text: string): Record<string, string>;
62
- serialize(): {
63
- _type: "regex_parser";
64
- regex: string;
65
- output_keys: string[];
66
- default_output_key: string | undefined;
67
- };
68
- static deserialize(data: SerializedRegexParser): RegexParser;
69
- }
70
- export {};
@@ -1,107 +0,0 @@
1
- /**
2
- * Class to parse the output of an LLM call.
3
- */
4
- export class BaseOutputParser {
5
- /**
6
- * Return the string type key uniquely identifying this class of parser
7
- */
8
- _type() {
9
- throw new Error("_type not implemented");
10
- }
11
- /**
12
- * Load an output parser from a json-like object describing the parser.
13
- */
14
- static deserialize(data) {
15
- switch (data._type) {
16
- case "regex_parser":
17
- // eslint-disable-next-line @typescript-eslint/no-use-before-define
18
- return RegexParser.deserialize(data);
19
- default:
20
- throw new Error(`Unknown parser type: ${data._type}`);
21
- }
22
- }
23
- }
24
- /**
25
- * Class to parse the output of an LLM call to a list.
26
- * @augments BaseOutputParser
27
- */
28
- export class ListOutputParser extends BaseOutputParser {
29
- }
30
- /**
31
- * Class to parse the output of an LLM call as a comma-separated list.
32
- * @augments ListOutputParser
33
- */
34
- export class CommaSeparatedListOutputParser extends ListOutputParser {
35
- parse(text) {
36
- return text.trim().split(", ");
37
- }
38
- serialize() {
39
- return {
40
- _type: "comma_separated_list",
41
- };
42
- }
43
- static deserialize(_) {
44
- return new CommaSeparatedListOutputParser();
45
- }
46
- }
47
- /**
48
- * Class to parse the output of an LLM call into a dictionary.
49
- * @augments BaseOutputParser
50
- */
51
- export class RegexParser extends BaseOutputParser {
52
- constructor(regex, outputKeys, defaultOutputKey) {
53
- super();
54
- Object.defineProperty(this, "regex", {
55
- enumerable: true,
56
- configurable: true,
57
- writable: true,
58
- value: void 0
59
- });
60
- Object.defineProperty(this, "outputKeys", {
61
- enumerable: true,
62
- configurable: true,
63
- writable: true,
64
- value: void 0
65
- });
66
- Object.defineProperty(this, "defaultOutputKey", {
67
- enumerable: true,
68
- configurable: true,
69
- writable: true,
70
- value: void 0
71
- });
72
- this.regex = regex;
73
- this.outputKeys = outputKeys;
74
- this.defaultOutputKey = defaultOutputKey;
75
- }
76
- _type() {
77
- return "regex_parser";
78
- }
79
- parse(text) {
80
- const match = text.match(this.regex);
81
- if (match) {
82
- return this.outputKeys.reduce((acc, key, index) => {
83
- acc[key] = match[index + 1];
84
- return acc;
85
- }, {});
86
- }
87
- if (this.defaultOutputKey === undefined) {
88
- throw new Error(`Could not parse output: ${text}`);
89
- }
90
- return this.outputKeys.reduce((acc, key) => {
91
- acc[key] = key === this.defaultOutputKey ? text : "";
92
- return acc;
93
- }, {});
94
- }
95
- serialize() {
96
- return {
97
- _type: "regex_parser",
98
- regex: typeof this.regex === "string" ? this.regex : this.regex.source,
99
- output_keys: this.outputKeys,
100
- default_output_key: this.defaultOutputKey,
101
- };
102
- }
103
- static deserialize(data) {
104
- return new RegexParser(data.regex, data.output_keys, data.default_output_key);
105
- }
106
- }
107
- //# sourceMappingURL=parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../prompt/parser.ts"],"names":[],"mappings":"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"}