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
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpenAIEmbeddings = void 0;
4
+ const exponential_backoff_1 = require("exponential-backoff");
5
+ const util_1 = require("../util");
6
+ const base_1 = require("./base");
7
+ let Configuration = null;
8
+ let OpenAIApi = null;
9
+ try {
10
+ // eslint-disable-next-line global-require
11
+ ({ Configuration, OpenAIApi } = require("openai"));
12
+ }
13
+ catch (_a) {
14
+ // ignore error
15
+ }
16
+ class OpenAIEmbeddings extends base_1.Embeddings {
17
+ constructor(fields) {
18
+ var _a, _b, _c;
19
+ super();
20
+ Object.defineProperty(this, "modelName", {
21
+ enumerable: true,
22
+ configurable: true,
23
+ writable: true,
24
+ value: "text-embedding-ada-002"
25
+ });
26
+ Object.defineProperty(this, "batchSize", {
27
+ enumerable: true,
28
+ configurable: true,
29
+ writable: true,
30
+ value: 20
31
+ });
32
+ Object.defineProperty(this, "maxRetries", {
33
+ enumerable: true,
34
+ configurable: true,
35
+ writable: true,
36
+ value: 6
37
+ });
38
+ Object.defineProperty(this, "client", {
39
+ enumerable: true,
40
+ configurable: true,
41
+ writable: true,
42
+ value: void 0
43
+ });
44
+ if (Configuration === null || OpenAIApi === null) {
45
+ throw new Error("Please install openai as a dependency with, e.g. `npm install -S openai`");
46
+ }
47
+ this.modelName = (_a = fields === null || fields === void 0 ? void 0 : fields.modelName) !== null && _a !== void 0 ? _a : this.modelName;
48
+ this.batchSize = (_b = fields === null || fields === void 0 ? void 0 : fields.batchSize) !== null && _b !== void 0 ? _b : this.batchSize;
49
+ const clientConfig = new Configuration({
50
+ apiKey: (_c = fields === null || fields === void 0 ? void 0 : fields.openAIApiKey) !== null && _c !== void 0 ? _c : process.env.OPENAI_API_KEY,
51
+ });
52
+ this.client = new OpenAIApi(clientConfig);
53
+ }
54
+ async embedDocuments(texts) {
55
+ const subPrompts = (0, util_1.chunkArray)(texts, this.batchSize);
56
+ const embeddings = [];
57
+ for (let i = 0; i < subPrompts.length; i += 1) {
58
+ const input = subPrompts[i];
59
+ const { data } = await this.embeddingWithRetry({
60
+ model: this.modelName,
61
+ input,
62
+ });
63
+ for (let j = 0; j < input.length; j += 1) {
64
+ embeddings.push(data.data[j].embedding);
65
+ }
66
+ }
67
+ return embeddings;
68
+ }
69
+ async embedQuery(text) {
70
+ const { data } = await this.embeddingWithRetry({
71
+ model: this.modelName,
72
+ input: text,
73
+ });
74
+ return data.data[0].embedding;
75
+ }
76
+ embeddingWithRetry(request) {
77
+ const makeCompletionRequest = () => this.client.createEmbedding(request);
78
+ return (0, exponential_backoff_1.backOff)(makeCompletionRequest, {
79
+ startingDelay: 4,
80
+ maxDelay: 10,
81
+ numOfAttempts: this.maxRetries,
82
+ });
83
+ }
84
+ }
85
+ exports.OpenAIEmbeddings = OpenAIEmbeddings;
86
+ //# sourceMappingURL=openai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../embeddings/openai.ts"],"names":[],"mappings":";;;AAKA,6DAA8C;AAC9C,kCAAqC;AACrC,iCAAoC;AAEpC,IAAI,aAAa,GAAiC,IAAI,CAAC;AACvD,IAAI,SAAS,GAA6B,IAAI,CAAC;AAE/C,IAAI;IACF,0CAA0C;IAC1C,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;CACpD;AAAC,WAAM;IACN,eAAe;CAChB;AAMD,MAAa,gBAAiB,SAAQ,iBAAU;IAS9C,YACE,MAKC;;QAED,KAAK,EAAE,CAAC;QAhBV;;;;mBAAY,wBAAwB;WAAC;QAErC;;;;mBAAY,EAAE;WAAC;QAEf;;;;mBAAa,CAAC;WAAC;QAEf;;;;;WAA2B;QAWzB,IAAI,aAAa,KAAK,IAAI,IAAI,SAAS,KAAK,IAAI,EAAE;YAChD,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAC;SACH;QAED,IAAI,CAAC,SAAS,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,mCAAI,IAAI,CAAC,SAAS,CAAC;QACrD,IAAI,CAAC,SAAS,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,mCAAI,IAAI,CAAC,SAAS,CAAC;QACrD,MAAM,YAAY,GAAG,IAAI,aAAa,CAAC;YACrC,MAAM,EAAE,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,mCAAI,OAAO,CAAC,GAAG,CAAC,cAAc;SAC3D,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAe;QAClC,MAAM,UAAU,GAAG,IAAA,iBAAU,EAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAErD,MAAM,UAAU,GAAG,EAAE,CAAC;QAEtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;YAC7C,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAC5B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC;gBAC7C,KAAK,EAAE,IAAI,CAAC,SAAS;gBACrB,KAAK;aACN,CAAC,CAAC;YACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;gBACxC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;aACzC;SACF;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY;QAC3B,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC;YAC7C,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChC,CAAC;IAEO,kBAAkB,CAAC,OAA+B;QACxD,MAAM,qBAAqB,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QACzE,OAAO,IAAA,6BAAO,EAAC,qBAAqB,EAAE;YACpC,aAAa,EAAE,CAAC;YAChB,QAAQ,EAAE,EAAE;YACZ,aAAa,EAAE,IAAI,CAAC,UAAU;SAC/B,CAAC,CAAC;IACL,CAAC;CACF;AAnED,4CAmEC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const globals_1 = require("@jest/globals");
4
+ const openai_1 = require("../openai");
5
+ (0, globals_1.test)("Test OpenAIEmbeddings.embedQuery", async () => {
6
+ const embeddings = new openai_1.OpenAIEmbeddings();
7
+ const res = await embeddings.embedQuery("Hello world");
8
+ (0, globals_1.expect)(typeof res[0]).toBe("number");
9
+ });
10
+ (0, globals_1.test)("Test OpenAIEmbeddings.embedDocuments", async () => {
11
+ const embeddings = new openai_1.OpenAIEmbeddings();
12
+ const res = await embeddings.embedDocuments(["Hello world", "Bye bye"]);
13
+ (0, globals_1.expect)(res).toHaveLength(2);
14
+ (0, globals_1.expect)(typeof res[0][0]).toBe("number");
15
+ (0, globals_1.expect)(typeof res[1][0]).toBe("number");
16
+ });
17
+ //# sourceMappingURL=openai.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai.test.js","sourceRoot":"","sources":["../../../../embeddings/tests/openai.test.ts"],"names":[],"mappings":";;AAAA,2CAA6C;AAC7C,sCAA6C;AAE7C,IAAA,cAAI,EAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;IAClD,MAAM,UAAU,GAAG,IAAI,yBAAgB,EAAE,CAAC;IAC1C,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACvD,IAAA,gBAAM,EAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvC,CAAC,CAAC,CAAC;AAEH,IAAA,cAAI,EAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;IACtD,MAAM,UAAU,GAAG,IAAI,yBAAgB,EAAE,CAAC;IAC1C,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC,CAAC;IACxE,IAAA,gBAAM,EAAC,GAAG,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAA,gBAAM,EAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,IAAA,gBAAM,EAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC,CAAC,CAAC"}
@@ -2,22 +2,63 @@ import { LLMCallbackManager, LLMResult } from "./index";
2
2
  export type SerializedLLM = {
3
3
  _type: string;
4
4
  } & Record<string, any>;
5
+ /**
6
+ * LLM Wrapper. Provides an {@link call} (an {@link generate}) function that takes in a prompt (or prompts) and returns a string.
7
+ */
5
8
  export declare abstract class BaseLLM {
9
+ /**
10
+ * The name of the LLM class
11
+ */
6
12
  name: string;
7
13
  cache?: boolean;
8
14
  callbackManager: LLMCallbackManager;
15
+ /**
16
+ * Whether to print out response text.
17
+ */
9
18
  verbose?: boolean;
10
19
  constructor(callbackManager?: LLMCallbackManager, verbose?: boolean);
20
+ /**
21
+ * Run the LLM on the given prompts and input.
22
+ */
11
23
  abstract _generate(prompts: string[], stop?: string[]): Promise<LLMResult>;
24
+ /** @ignore */
12
25
  _generateUncached(prompts: string[], stop?: string[]): Promise<LLMResult>;
26
+ /**
27
+ * Run the LLM on the given propmts an input, handling caching.
28
+ */
13
29
  generate(prompts: string[], stop?: string[]): Promise<LLMResult>;
30
+ /**
31
+ * Convenience wrapper for {@link generate} that takes in a single string prompt and returns a single string output.
32
+ */
14
33
  call(prompt: string, stop?: string[]): Promise<string>;
34
+ /**
35
+ * Get the identifying parameters of the LLM.
36
+ */
15
37
  _identifyingParams(): Record<string, any>;
38
+ /**
39
+ * Return the string type key uniquely identifying this class of LLM.
40
+ */
16
41
  abstract _llmType(): string;
42
+ /**
43
+ * Return a json-like object representing this LLM.
44
+ */
17
45
  serialize(): SerializedLLM;
46
+ /**
47
+ * Load an LLM from a json-like object describing it.
48
+ */
18
49
  static deserialize(data: SerializedLLM): Promise<BaseLLM>;
19
50
  }
51
+ /**
52
+ * LLM class that provides a simpler interface to subclass than {@link BaseLLM}.
53
+ *
54
+ * Requires only implementing a simpler {@link _call} method instead of {@link _generate}.
55
+ *
56
+ * @augments BaseLLM
57
+ */
20
58
  export declare abstract class LLM extends BaseLLM {
59
+ /**
60
+ * Run the LLM on the given prompt and input.
61
+ */
21
62
  abstract _call(prompt: string, stop?: string[]): Promise<string>;
22
63
  _generate(prompts: string[], stop?: string[]): Promise<LLMResult>;
23
64
  }
@@ -1,24 +1,4 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __rest = (this && this.__rest) || function (s, e) {
12
- var t = {};
13
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
14
- t[p] = s[p];
15
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
16
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
17
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
18
- t[p[i]] = s[p[i]];
19
- }
20
- return t;
21
- };
22
2
  Object.defineProperty(exports, "__esModule", { value: true });
23
3
  exports.LLM = exports.BaseLLM = void 0;
24
4
  const index_1 = require("./index");
@@ -36,8 +16,14 @@ const getCallbackManager = () => ({
36
16
  });
37
17
  const getVerbosity = () => true;
38
18
  const cache = new cache_1.InMemoryCache();
19
+ /**
20
+ * LLM Wrapper. Provides an {@link call} (an {@link generate}) function that takes in a prompt (or prompts) and returns a string.
21
+ */
39
22
  class BaseLLM {
40
23
  constructor(callbackManager, verbose) {
24
+ /**
25
+ * The name of the LLM class
26
+ */
41
27
  Object.defineProperty(this, "name", {
42
28
  enumerable: true,
43
29
  configurable: true,
@@ -56,6 +42,9 @@ class BaseLLM {
56
42
  writable: true,
57
43
  value: void 0
58
44
  });
45
+ /**
46
+ * Whether to print out response text.
47
+ */
59
48
  Object.defineProperty(this, "verbose", {
60
49
  enumerable: true,
61
50
  configurable: true,
@@ -65,94 +54,110 @@ class BaseLLM {
65
54
  this.callbackManager = callbackManager !== null && callbackManager !== void 0 ? callbackManager : getCallbackManager();
66
55
  this.verbose = verbose !== null && verbose !== void 0 ? verbose : getVerbosity();
67
56
  }
68
- _generateUncached(prompts, stop) {
69
- return __awaiter(this, void 0, void 0, function* () {
70
- this.callbackManager.handleStart({ name: this.name }, prompts, this.verbose);
71
- let output;
72
- try {
73
- output = yield this._generate(prompts, stop);
74
- }
75
- catch (err) {
76
- this.callbackManager.handleError(`${err}`, this.verbose);
77
- throw err;
78
- }
79
- this.callbackManager.handleEnd(output, this.verbose);
80
- return output;
81
- });
57
+ /** @ignore */
58
+ async _generateUncached(prompts, stop) {
59
+ this.callbackManager.handleStart({ name: this.name }, prompts, this.verbose);
60
+ let output;
61
+ try {
62
+ output = await this._generate(prompts, stop);
63
+ }
64
+ catch (err) {
65
+ this.callbackManager.handleError(`${err}`, this.verbose);
66
+ throw err;
67
+ }
68
+ this.callbackManager.handleEnd(output, this.verbose);
69
+ return output;
82
70
  }
83
- generate(prompts, stop) {
71
+ /**
72
+ * Run the LLM on the given propmts an input, handling caching.
73
+ */
74
+ async generate(prompts, stop) {
84
75
  var _a;
85
- return __awaiter(this, void 0, void 0, function* () {
86
- if (!Array.isArray(prompts)) {
87
- throw new Error("Argument 'prompts' is expected to be a string[]");
88
- }
89
- if (this.cache === true && cache === null) {
90
- throw new Error("Requested cache, but no cache found");
91
- }
92
- if (cache === null || this.cache === false) {
93
- return this._generateUncached(prompts, stop);
94
- }
95
- const params = this.serialize();
96
- params.stop = stop;
97
- const llmStringKey = `${Object.entries(params).sort()}`;
98
- const missingPromptIndices = [];
99
- const generations = prompts.map((prompt, index) => {
100
- const result = cache.lookup(prompt, llmStringKey);
101
- if (!result) {
102
- missingPromptIndices.push(index);
103
- }
104
- return result;
105
- });
106
- let llmOutput = {};
107
- if (missingPromptIndices.length > 0) {
108
- const results = yield this._generateUncached(missingPromptIndices.map((i) => prompts[i]), stop);
109
- results.generations.forEach((generation, index) => {
110
- const promptIndex = missingPromptIndices[index];
111
- generations[promptIndex] = generation;
112
- cache.update(prompts[promptIndex], llmStringKey, generation);
113
- });
114
- llmOutput = (_a = results.llmOutput) !== null && _a !== void 0 ? _a : {};
76
+ if (!Array.isArray(prompts)) {
77
+ throw new Error("Argument 'prompts' is expected to be a string[]");
78
+ }
79
+ if (this.cache === true && cache === null) {
80
+ throw new Error("Requested cache, but no cache found");
81
+ }
82
+ if (cache === null || this.cache === false) {
83
+ return this._generateUncached(prompts, stop);
84
+ }
85
+ const params = this.serialize();
86
+ params.stop = stop;
87
+ const llmStringKey = `${Object.entries(params).sort()}`;
88
+ const missingPromptIndices = [];
89
+ const generations = prompts.map((prompt, index) => {
90
+ const result = cache.lookup(prompt, llmStringKey);
91
+ if (!result) {
92
+ missingPromptIndices.push(index);
115
93
  }
116
- return { generations, llmOutput };
94
+ return result;
117
95
  });
96
+ let llmOutput = {};
97
+ if (missingPromptIndices.length > 0) {
98
+ const results = await this._generateUncached(missingPromptIndices.map((i) => prompts[i]), stop);
99
+ results.generations.forEach((generation, index) => {
100
+ const promptIndex = missingPromptIndices[index];
101
+ generations[promptIndex] = generation;
102
+ cache.update(prompts[promptIndex], llmStringKey, generation);
103
+ });
104
+ llmOutput = (_a = results.llmOutput) !== null && _a !== void 0 ? _a : {};
105
+ }
106
+ return { generations, llmOutput };
118
107
  }
119
- call(prompt, stop) {
120
- return __awaiter(this, void 0, void 0, function* () {
121
- const { generations } = yield this.generate([prompt], stop);
122
- return generations[0][0].text;
123
- });
108
+ /**
109
+ * Convenience wrapper for {@link generate} that takes in a single string prompt and returns a single string output.
110
+ */
111
+ async call(prompt, stop) {
112
+ const { generations } = await this.generate([prompt], stop);
113
+ return generations[0][0].text;
124
114
  }
115
+ /**
116
+ * Get the identifying parameters of the LLM.
117
+ */
125
118
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
126
119
  _identifyingParams() {
127
120
  return {};
128
121
  }
122
+ /**
123
+ * Return a json-like object representing this LLM.
124
+ */
129
125
  serialize() {
130
- return Object.assign(Object.assign({}, this._identifyingParams()), { _type: this._llmType() });
126
+ return {
127
+ ...this._identifyingParams(),
128
+ _type: this._llmType(),
129
+ };
131
130
  }
132
- static deserialize(data) {
133
- return __awaiter(this, void 0, void 0, function* () {
134
- const { _type } = data, rest = __rest(data, ["_type"]);
135
- const Cls = {
136
- openai: index_1.OpenAI,
137
- }[_type];
138
- if (Cls === undefined) {
139
- throw new Error(`Cannot load LLM with type ${_type}`);
140
- }
141
- return new Cls(rest);
142
- });
131
+ /**
132
+ * Load an LLM from a json-like object describing it.
133
+ */
134
+ static async deserialize(data) {
135
+ const { _type, ...rest } = data;
136
+ const Cls = {
137
+ openai: index_1.OpenAI,
138
+ }[_type];
139
+ if (Cls === undefined) {
140
+ throw new Error(`Cannot load LLM with type ${_type}`);
141
+ }
142
+ return new Cls(rest);
143
143
  }
144
144
  }
145
145
  exports.BaseLLM = BaseLLM;
146
+ /**
147
+ * LLM class that provides a simpler interface to subclass than {@link BaseLLM}.
148
+ *
149
+ * Requires only implementing a simpler {@link _call} method instead of {@link _generate}.
150
+ *
151
+ * @augments BaseLLM
152
+ */
146
153
  class LLM extends BaseLLM {
147
- _generate(prompts, stop) {
148
- return __awaiter(this, void 0, void 0, function* () {
149
- const generations = [];
150
- for (let i = 0; i < prompts.length; i += 1) {
151
- const text = yield this._call(prompts[i], stop);
152
- generations.push([{ text }]);
153
- }
154
- return { generations };
155
- });
154
+ async _generate(prompts, stop) {
155
+ const generations = [];
156
+ for (let i = 0; i < prompts.length; i += 1) {
157
+ const text = await this._call(prompts[i], stop);
158
+ generations.push([{ text }]);
159
+ }
160
+ return { generations };
156
161
  }
157
162
  }
158
163
  exports.LLM = LLM;
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../llms/base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../llms/base.ts"],"names":[],"mappings":"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"}
@@ -8,11 +8,30 @@ export type LLMCallbackManager = {
8
8
  handleError: (err: string, verbose?: boolean) => void;
9
9
  handleEnd: (output: LLMResult, verbose?: boolean) => void;
10
10
  };
11
+ /**
12
+ * Output of a single generation.
13
+ */
11
14
  export type Generation = {
15
+ /**
16
+ * Generated text output
17
+ */
12
18
  text: string;
19
+ /**
20
+ * Raw generation info response from the provider.
21
+ * May include things like reason for finishing (e.g. in {@link OpenAI})
22
+ */
13
23
  generationInfo?: Record<string, any>;
14
24
  };
25
+ /**
26
+ * Contains all relevant information returned by an LLM.
27
+ */
15
28
  export type LLMResult = {
29
+ /**
30
+ * List of the things generated. Each input could have multiple {@link Generation | generations}, hence this is a list of lists.
31
+ */
16
32
  generations: Generation[][];
33
+ /**
34
+ * Dictionary of arbitrary LLM-provider specific output.
35
+ */
17
36
  llmOutput?: Record<string, any>;
18
37
  };
@@ -1,3 +1,11 @@
1
1
  import { BaseLLM } from "./base";
2
- export declare const loadLLM: typeof BaseLLM.deserialize;
3
- export declare const loadLLMFromFile: (file: string) => Promise<BaseLLM>;
2
+ /**
3
+ * Load an LLM from a local file.
4
+ *
5
+ * @example
6
+ * ```ts
7
+ * import { loadLLM } from "langchain/llms";
8
+ * const model = await loadLLM("/path/to/llm.json");
9
+ * ```
10
+ */
11
+ export declare const loadLLM: (file: string) => Promise<BaseLLM>;
@@ -1,9 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loadLLMFromFile = exports.loadLLM = void 0;
3
+ exports.loadLLM = void 0;
4
4
  const base_1 = require("./base");
5
5
  const util_1 = require("../util");
6
- exports.loadLLM = base_1.BaseLLM.deserialize;
7
- const loadLLMFromFile = (file) => (0, exports.loadLLM)((0, util_1.parseFileConfig)(file));
8
- exports.loadLLMFromFile = loadLLMFromFile;
6
+ /**
7
+ * Load an LLM from a local file.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import { loadLLM } from "langchain/llms";
12
+ * const model = await loadLLM("/path/to/llm.json");
13
+ * ```
14
+ */
15
+ const loadLLM = (file) => base_1.BaseLLM.deserialize((0, util_1.parseFileConfig)(file));
16
+ exports.loadLLM = loadLLM;
9
17
  //# sourceMappingURL=load.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"load.js","sourceRoot":"","sources":["../../../llms/load.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AACjC,kCAA0C;AAE7B,QAAA,OAAO,GAAG,cAAO,CAAC,WAAW,CAAC;AACpC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,IAAA,eAAO,EAAC,IAAA,sBAAe,EAAC,IAAI,CAAC,CAAC,CAAC;AAAnE,QAAA,eAAe,mBAAoD"}
1
+ {"version":3,"file":"load.js","sourceRoot":"","sources":["../../../llms/load.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AACjC,kCAA0C;AAE1C;;;;;;;;GAQG;AACI,MAAM,OAAO,GAAG,CAAC,IAAY,EAAE,EAAE,CACtC,cAAO,CAAC,WAAW,CAAC,IAAA,sBAAe,EAAC,IAAI,CAAC,CAAC,CAAC;AADhC,QAAA,OAAO,WACyB"}
@@ -1,17 +1,62 @@
1
1
  import type { CreateCompletionRequest } from "openai";
2
2
  import { BaseLLM, LLMResult, LLMCallbackManager } from ".";
3
3
  interface ModelParams {
4
+ /** Sampling temperature to use */
4
5
  temperature: number;
6
+ /**
7
+ * Maximum number of tokens to generate in the completion. -1 returns as many
8
+ * tokens as possible given the prompt and the model's maximum context size.
9
+ */
5
10
  maxTokens: number;
11
+ /** Total probability mass of tokens to consider at each step */
6
12
  topP: number;
13
+ /** Penalizes repeated tokens according to frequency */
7
14
  frequencyPenalty: number;
15
+ /** Penalizes repeated tokens */
8
16
  presencePenalty: number;
17
+ /** Number of completions to generate for each prompt */
9
18
  n: number;
19
+ /** Generates `bestOf` completions server side and returns the "best" */
10
20
  bestOf: number;
21
+ /** Dictionary used to adjust the probability of specific tokens being generated */
11
22
  logitBias?: Record<string, number>;
12
23
  }
24
+ /**
25
+ * Input to OpenAI class.
26
+ * @augments ModelParams
27
+ */
28
+ interface OpenAIInput extends ModelParams {
29
+ /** Model name to use */
30
+ modelName: string;
31
+ /** Holds any additional parameters that are valid to pass to {@link
32
+ * https://platform.openai.com/docs/api-reference/completions/create |
33
+ * `openai.createCompletion`} that are not explicitly specified on this class.
34
+ */
35
+ modelKwargs?: Kwargs;
36
+ /** Batch size to use when passing multiple documents to generate */
37
+ batchSize: number;
38
+ /** Maximum number of retries to make when generating */
39
+ maxRetries: number;
40
+ /** List of stop words to use when generating */
41
+ stop?: string[];
42
+ }
13
43
  type Kwargs = Record<string, any>;
14
- export declare class OpenAI extends BaseLLM implements ModelParams {
44
+ /**
45
+ * Wrapper around OpenAI large language models.
46
+ *
47
+ * To use you should have the `openai` package installed, with the
48
+ * `OPENAI_API_KEY` environment variable set.
49
+ *
50
+ * @remarks
51
+ * Any parameters that are valid to be passed to {@link
52
+ * https://platform.openai.com/docs/api-reference/completions/create |
53
+ * `openai.createCompletion`} can be passed through {@link modelKwargs}, even
54
+ * if not explicitly available on this class.
55
+ *
56
+ * @augments BaseLLM
57
+ * @augments OpenAIInput
58
+ */
59
+ export declare class OpenAI extends BaseLLM implements OpenAIInput {
15
60
  temperature: number;
16
61
  maxTokens: number;
17
62
  topP: number;
@@ -26,17 +71,18 @@ export declare class OpenAI extends BaseLLM implements ModelParams {
26
71
  maxRetries: number;
27
72
  stop?: string[];
28
73
  private client;
29
- constructor(fields?: Partial<ModelParams> & {
74
+ constructor(fields?: Partial<OpenAIInput> & {
30
75
  callbackManager?: LLMCallbackManager;
31
76
  verbose?: boolean;
32
- modelName?: string;
33
- modelKwargs?: Kwargs;
34
77
  openAIApiKey?: string;
35
- batchSize?: number;
36
- maxRetries?: number;
37
- stop?: string[];
38
78
  });
79
+ /**
80
+ * Get the parameters used to invoke the model
81
+ */
39
82
  invocationParams(): CreateCompletionRequest & Kwargs;
83
+ /**
84
+ * Get the identifyin parameters for the model
85
+ */
40
86
  identifyingParams(): {
41
87
  model: string;
42
88
  prompt?: import("openai").CreateCompletionRequestPrompt | null | undefined;
@@ -56,7 +102,23 @@ export declare class OpenAI extends BaseLLM implements ModelParams {
56
102
  user?: string | undefined;
57
103
  model_name: string;
58
104
  };
105
+ /**
106
+ * Call out to OpenAI's endpoint with k unique prompts
107
+ *
108
+ * @param prompts - The prompts to pass into the model.
109
+ * @param [stop] - Optional list of stop words to use when generating.
110
+ *
111
+ * @returns The full LLM output.
112
+ *
113
+ * @example
114
+ * ```ts
115
+ * import { OpenAI } from "langchain/llms";
116
+ * const openai = new OpenAI();
117
+ * const response = await openai.generate(["Tell me a joke."]);
118
+ * ```
119
+ */
59
120
  _generate(prompts: string[], stop?: string[]): Promise<LLMResult>;
121
+ /** @ignore */
60
122
  completionWithRetry(request: CreateCompletionRequest): Promise<import("axios").AxiosResponse<import("openai").CreateCompletionResponse, any>>;
61
123
  _llmType(): string;
62
124
  }