langchain 1.0.0-alpha.4 → 1.0.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (384) hide show
  1. package/dist/agents/ReactAgent.cjs +5 -5
  2. package/dist/agents/ReactAgent.cjs.map +1 -1
  3. package/dist/agents/ReactAgent.d.cts +1 -3
  4. package/dist/agents/ReactAgent.d.cts.map +1 -1
  5. package/dist/agents/ReactAgent.d.ts +1 -3
  6. package/dist/agents/ReactAgent.d.ts.map +1 -1
  7. package/dist/agents/ReactAgent.js +6 -6
  8. package/dist/agents/ReactAgent.js.map +1 -1
  9. package/dist/agents/RunnableCallable.cjs +5 -0
  10. package/dist/agents/RunnableCallable.cjs.map +1 -1
  11. package/dist/agents/RunnableCallable.d.cts +2 -0
  12. package/dist/agents/RunnableCallable.d.cts.map +1 -1
  13. package/dist/agents/RunnableCallable.d.ts +2 -0
  14. package/dist/agents/RunnableCallable.d.ts.map +1 -1
  15. package/dist/agents/RunnableCallable.js +5 -0
  16. package/dist/agents/RunnableCallable.js.map +1 -1
  17. package/dist/agents/annotation.cjs.map +1 -1
  18. package/dist/agents/annotation.d.cts +5 -7
  19. package/dist/agents/annotation.d.cts.map +1 -1
  20. package/dist/agents/annotation.d.ts +4 -6
  21. package/dist/agents/annotation.d.ts.map +1 -1
  22. package/dist/agents/annotation.js.map +1 -1
  23. package/dist/agents/createAgent.cjs +10 -0
  24. package/dist/agents/createAgent.cjs.map +1 -0
  25. package/dist/agents/createAgent.js +10 -0
  26. package/dist/agents/createAgent.js.map +1 -0
  27. package/dist/agents/index.cjs +23 -4
  28. package/dist/agents/index.cjs.map +1 -1
  29. package/dist/agents/index.d.cts +84 -21
  30. package/dist/agents/index.d.cts.map +1 -1
  31. package/dist/agents/index.d.ts +84 -21
  32. package/dist/agents/index.d.ts.map +1 -1
  33. package/dist/agents/index.js +23 -4
  34. package/dist/agents/index.js.map +1 -1
  35. package/dist/agents/middlewareAgent/ReactAgent.cjs +255 -0
  36. package/dist/agents/middlewareAgent/ReactAgent.cjs.map +1 -0
  37. package/dist/agents/middlewareAgent/ReactAgent.d.cts +67 -0
  38. package/dist/agents/middlewareAgent/ReactAgent.d.cts.map +1 -0
  39. package/dist/agents/middlewareAgent/ReactAgent.d.ts +67 -0
  40. package/dist/agents/middlewareAgent/ReactAgent.d.ts.map +1 -0
  41. package/dist/agents/middlewareAgent/ReactAgent.js +254 -0
  42. package/dist/agents/middlewareAgent/ReactAgent.js.map +1 -0
  43. package/dist/agents/middlewareAgent/annotation.cjs +39 -0
  44. package/dist/agents/middlewareAgent/annotation.cjs.map +1 -0
  45. package/dist/agents/middlewareAgent/annotation.js +38 -0
  46. package/dist/agents/middlewareAgent/annotation.js.map +1 -0
  47. package/dist/agents/middlewareAgent/index.cjs +11 -0
  48. package/dist/agents/middlewareAgent/index.cjs.map +1 -0
  49. package/dist/agents/middlewareAgent/index.js +11 -0
  50. package/dist/agents/middlewareAgent/index.js.map +1 -0
  51. package/dist/agents/middlewareAgent/middleware/hitl.cjs +235 -0
  52. package/dist/agents/middlewareAgent/middleware/hitl.cjs.map +1 -0
  53. package/dist/agents/middlewareAgent/middleware/hitl.d.cts +199 -0
  54. package/dist/agents/middlewareAgent/middleware/hitl.d.cts.map +1 -0
  55. package/dist/agents/middlewareAgent/middleware/hitl.d.ts +199 -0
  56. package/dist/agents/middlewareAgent/middleware/hitl.d.ts.map +1 -0
  57. package/dist/agents/middlewareAgent/middleware/hitl.js +234 -0
  58. package/dist/agents/middlewareAgent/middleware/hitl.js.map +1 -0
  59. package/dist/agents/middlewareAgent/middleware/index.cjs +26 -0
  60. package/dist/agents/middlewareAgent/middleware/index.cjs.map +1 -0
  61. package/dist/agents/middlewareAgent/middleware/index.d.cts +4 -0
  62. package/dist/agents/middlewareAgent/middleware/index.d.ts +4 -0
  63. package/dist/agents/middlewareAgent/middleware/index.js +17 -0
  64. package/dist/agents/middlewareAgent/middleware/index.js.map +1 -0
  65. package/dist/agents/middlewareAgent/middleware/promptCaching.cjs +182 -0
  66. package/dist/agents/middlewareAgent/middleware/promptCaching.cjs.map +1 -0
  67. package/dist/agents/middlewareAgent/middleware/promptCaching.d.cts +152 -0
  68. package/dist/agents/middlewareAgent/middleware/promptCaching.d.cts.map +1 -0
  69. package/dist/agents/middlewareAgent/middleware/promptCaching.d.ts +152 -0
  70. package/dist/agents/middlewareAgent/middleware/promptCaching.d.ts.map +1 -0
  71. package/dist/agents/middlewareAgent/middleware/promptCaching.js +181 -0
  72. package/dist/agents/middlewareAgent/middleware/promptCaching.js.map +1 -0
  73. package/dist/agents/middlewareAgent/middleware/summarization.cjs +262 -0
  74. package/dist/agents/middlewareAgent/middleware/summarization.cjs.map +1 -0
  75. package/dist/agents/middlewareAgent/middleware/summarization.d.cts +89 -0
  76. package/dist/agents/middlewareAgent/middleware/summarization.d.cts.map +1 -0
  77. package/dist/agents/middlewareAgent/middleware/summarization.d.ts +89 -0
  78. package/dist/agents/middlewareAgent/middleware/summarization.d.ts.map +1 -0
  79. package/dist/agents/middlewareAgent/middleware/summarization.js +260 -0
  80. package/dist/agents/middlewareAgent/middleware/summarization.js.map +1 -0
  81. package/dist/agents/middlewareAgent/middleware.cjs +47 -0
  82. package/dist/agents/middlewareAgent/middleware.cjs.map +1 -0
  83. package/dist/agents/middlewareAgent/middleware.d.cts +46 -0
  84. package/dist/agents/middlewareAgent/middleware.d.cts.map +1 -0
  85. package/dist/agents/middlewareAgent/middleware.d.ts +46 -0
  86. package/dist/agents/middlewareAgent/middleware.d.ts.map +1 -0
  87. package/dist/agents/middlewareAgent/middleware.js +46 -0
  88. package/dist/agents/middlewareAgent/middleware.js.map +1 -0
  89. package/dist/agents/middlewareAgent/nodes/AfterModalNode.cjs +29 -0
  90. package/dist/agents/middlewareAgent/nodes/AfterModalNode.cjs.map +1 -0
  91. package/dist/agents/middlewareAgent/nodes/AfterModalNode.js +29 -0
  92. package/dist/agents/middlewareAgent/nodes/AfterModalNode.js.map +1 -0
  93. package/dist/agents/middlewareAgent/nodes/AgentNode.cjs +325 -0
  94. package/dist/agents/middlewareAgent/nodes/AgentNode.cjs.map +1 -0
  95. package/dist/agents/middlewareAgent/nodes/AgentNode.js +324 -0
  96. package/dist/agents/middlewareAgent/nodes/AgentNode.js.map +1 -0
  97. package/dist/agents/middlewareAgent/nodes/BeforeModalNode.cjs +27 -0
  98. package/dist/agents/middlewareAgent/nodes/BeforeModalNode.cjs.map +1 -0
  99. package/dist/agents/middlewareAgent/nodes/BeforeModalNode.js +27 -0
  100. package/dist/agents/middlewareAgent/nodes/BeforeModalNode.js.map +1 -0
  101. package/dist/agents/middlewareAgent/nodes/middleware.cjs +73 -0
  102. package/dist/agents/middlewareAgent/nodes/middleware.cjs.map +1 -0
  103. package/dist/agents/middlewareAgent/nodes/middleware.js +73 -0
  104. package/dist/agents/middlewareAgent/nodes/middleware.js.map +1 -0
  105. package/dist/agents/middlewareAgent/nodes/utils.cjs +74 -0
  106. package/dist/agents/middlewareAgent/nodes/utils.cjs.map +1 -0
  107. package/dist/agents/middlewareAgent/nodes/utils.js +70 -0
  108. package/dist/agents/middlewareAgent/nodes/utils.js.map +1 -0
  109. package/dist/agents/middlewareAgent/types.d.cts +380 -0
  110. package/dist/agents/middlewareAgent/types.d.cts.map +1 -0
  111. package/dist/agents/middlewareAgent/types.d.ts +380 -0
  112. package/dist/agents/middlewareAgent/types.d.ts.map +1 -0
  113. package/dist/agents/nodes/AgentNode.cjs +4 -4
  114. package/dist/agents/nodes/AgentNode.cjs.map +1 -1
  115. package/dist/agents/nodes/AgentNode.js +4 -4
  116. package/dist/agents/nodes/AgentNode.js.map +1 -1
  117. package/dist/agents/nodes/ToolNode.cjs +3 -3
  118. package/dist/agents/nodes/ToolNode.cjs.map +1 -1
  119. package/dist/agents/nodes/ToolNode.d.cts +4 -5
  120. package/dist/agents/nodes/ToolNode.d.cts.map +1 -1
  121. package/dist/agents/nodes/ToolNode.d.ts +1 -2
  122. package/dist/agents/nodes/ToolNode.d.ts.map +1 -1
  123. package/dist/agents/nodes/ToolNode.js +4 -4
  124. package/dist/agents/nodes/ToolNode.js.map +1 -1
  125. package/dist/agents/responses.cjs +1 -1
  126. package/dist/agents/responses.cjs.map +1 -1
  127. package/dist/agents/responses.d.cts.map +1 -1
  128. package/dist/agents/responses.d.ts.map +1 -1
  129. package/dist/agents/responses.js +1 -1
  130. package/dist/agents/responses.js.map +1 -1
  131. package/dist/agents/types.d.cts +5 -7
  132. package/dist/agents/types.d.cts.map +1 -1
  133. package/dist/agents/types.d.ts +1 -3
  134. package/dist/agents/types.d.ts.map +1 -1
  135. package/dist/agents/utils.cjs +6 -6
  136. package/dist/agents/utils.cjs.map +1 -1
  137. package/dist/agents/utils.js +7 -7
  138. package/dist/agents/utils.js.map +1 -1
  139. package/dist/agents/withAgentName.cjs.map +1 -1
  140. package/dist/agents/withAgentName.js.map +1 -1
  141. package/dist/chains/api/api_chain.d.cts +1 -1
  142. package/dist/chains/api/prompts.cjs.map +1 -1
  143. package/dist/chains/api/prompts.js.map +1 -1
  144. package/dist/chains/base.d.cts +1 -1
  145. package/dist/chains/combine_docs_chain.d.cts +1 -1
  146. package/dist/chains/combine_documents/stuff.d.cts +1 -1
  147. package/dist/chains/constitutional_ai/constitutional_chain.cjs.map +1 -1
  148. package/dist/chains/constitutional_ai/constitutional_chain.js.map +1 -1
  149. package/dist/chains/conversational_retrieval_chain.d.cts +1 -1
  150. package/dist/chains/graph_qa/cypher.d.cts +1 -1
  151. package/dist/chains/history_aware_retriever.d.cts +2 -2
  152. package/dist/chains/index.cjs +0 -3
  153. package/dist/chains/index.cjs.map +1 -1
  154. package/dist/chains/index.d.cts +1 -2
  155. package/dist/chains/index.d.ts +1 -2
  156. package/dist/chains/index.js +1 -3
  157. package/dist/chains/index.js.map +1 -1
  158. package/dist/chains/llm_chain.d.cts +3 -3
  159. package/dist/chains/openai_functions/base.d.cts +3 -3
  160. package/dist/chains/openai_functions/extraction.cjs.map +1 -1
  161. package/dist/chains/openai_functions/extraction.d.cts +1 -3
  162. package/dist/chains/openai_functions/extraction.d.cts.map +1 -1
  163. package/dist/chains/openai_functions/extraction.d.ts +1 -3
  164. package/dist/chains/openai_functions/extraction.d.ts.map +1 -1
  165. package/dist/chains/openai_functions/extraction.js.map +1 -1
  166. package/dist/chains/openai_functions/index.cjs +0 -5
  167. package/dist/chains/openai_functions/index.cjs.map +1 -1
  168. package/dist/chains/openai_functions/index.d.cts +1 -2
  169. package/dist/chains/openai_functions/index.d.ts +1 -2
  170. package/dist/chains/openai_functions/index.js +1 -4
  171. package/dist/chains/openai_functions/index.js.map +1 -1
  172. package/dist/chains/openai_functions/openapi.cjs +4 -4
  173. package/dist/chains/openai_functions/openapi.cjs.map +1 -1
  174. package/dist/chains/openai_functions/openapi.d.cts +2 -2
  175. package/dist/chains/openai_functions/openapi.js +4 -4
  176. package/dist/chains/openai_functions/openapi.js.map +1 -1
  177. package/dist/chains/openai_functions/tagging.cjs.map +1 -1
  178. package/dist/chains/openai_functions/tagging.d.cts +2 -4
  179. package/dist/chains/openai_functions/tagging.d.cts.map +1 -1
  180. package/dist/chains/openai_functions/tagging.d.ts +1 -3
  181. package/dist/chains/openai_functions/tagging.d.ts.map +1 -1
  182. package/dist/chains/openai_functions/tagging.js.map +1 -1
  183. package/dist/chains/query_constructor/index.cjs +4 -4
  184. package/dist/chains/query_constructor/index.cjs.map +1 -1
  185. package/dist/chains/query_constructor/index.d.cts +5 -3
  186. package/dist/chains/query_constructor/index.d.cts.map +1 -1
  187. package/dist/chains/query_constructor/index.d.ts +4 -2
  188. package/dist/chains/query_constructor/index.d.ts.map +1 -1
  189. package/dist/chains/query_constructor/index.js +1 -1
  190. package/dist/chains/query_constructor/index.js.map +1 -1
  191. package/dist/chains/question_answering/map_reduce_prompts.cjs.map +1 -1
  192. package/dist/chains/question_answering/map_reduce_prompts.js.map +1 -1
  193. package/dist/chains/question_answering/refine_prompts.cjs.map +1 -1
  194. package/dist/chains/question_answering/refine_prompts.js.map +1 -1
  195. package/dist/chains/question_answering/stuff_prompts.cjs.map +1 -1
  196. package/dist/chains/question_answering/stuff_prompts.js.map +1 -1
  197. package/dist/chains/retrieval.d.cts +1 -1
  198. package/dist/chains/router/llm_router.d.cts +1 -1
  199. package/dist/chains/router/multi_prompt.cjs +4 -4
  200. package/dist/chains/router/multi_prompt.cjs.map +1 -1
  201. package/dist/chains/router/multi_prompt.js +1 -1
  202. package/dist/chains/router/multi_prompt.js.map +1 -1
  203. package/dist/chains/router/multi_retrieval_qa.cjs +4 -4
  204. package/dist/chains/router/multi_retrieval_qa.cjs.map +1 -1
  205. package/dist/chains/router/multi_retrieval_qa.js +1 -1
  206. package/dist/chains/router/multi_retrieval_qa.js.map +1 -1
  207. package/dist/chains/sql_db/sql_db_chain.d.cts +2 -2
  208. package/dist/chains/sql_db/sql_db_prompt.cjs.map +1 -1
  209. package/dist/chains/sql_db/sql_db_prompt.d.cts.map +1 -1
  210. package/dist/chains/sql_db/sql_db_prompt.d.ts.map +1 -1
  211. package/dist/chains/sql_db/sql_db_prompt.js.map +1 -1
  212. package/dist/chains/summarization/stuff_prompts.cjs.map +1 -1
  213. package/dist/chains/summarization/stuff_prompts.js.map +1 -1
  214. package/dist/chat_models/universal.cjs +8 -5
  215. package/dist/chat_models/universal.cjs.map +1 -1
  216. package/dist/chat_models/universal.d.cts +4 -4
  217. package/dist/chat_models/universal.d.cts.map +1 -1
  218. package/dist/chat_models/universal.d.ts +2 -2
  219. package/dist/chat_models/universal.d.ts.map +1 -1
  220. package/dist/chat_models/universal.js +8 -5
  221. package/dist/chat_models/universal.js.map +1 -1
  222. package/dist/document_loaders/fs/directory.cjs.map +1 -1
  223. package/dist/document_loaders/fs/directory.d.cts +0 -1
  224. package/dist/document_loaders/fs/directory.d.cts.map +1 -1
  225. package/dist/document_loaders/fs/directory.d.ts +0 -1
  226. package/dist/document_loaders/fs/directory.d.ts.map +1 -1
  227. package/dist/document_loaders/fs/directory.js.map +1 -1
  228. package/dist/document_loaders/fs/json.cjs +7 -1
  229. package/dist/document_loaders/fs/json.cjs.map +1 -1
  230. package/dist/document_loaders/fs/json.js +7 -1
  231. package/dist/document_loaders/fs/json.js.map +1 -1
  232. package/dist/embeddings/cache_backed.cjs +1 -1
  233. package/dist/embeddings/cache_backed.cjs.map +1 -1
  234. package/dist/embeddings/cache_backed.d.cts +1 -1
  235. package/dist/embeddings/cache_backed.d.ts +1 -1
  236. package/dist/embeddings/cache_backed.js +2 -2
  237. package/dist/embeddings/cache_backed.js.map +1 -1
  238. package/dist/evaluation/agents/trajectory.d.cts +3 -3
  239. package/dist/evaluation/agents/trajectory.d.cts.map +1 -1
  240. package/dist/evaluation/agents/trajectory.d.ts.map +1 -1
  241. package/dist/evaluation/comparison/pairwise.d.cts +1 -1
  242. package/dist/evaluation/comparison/pairwise.d.cts.map +1 -1
  243. package/dist/evaluation/criteria/criteria.d.cts +1 -1
  244. package/dist/evaluation/criteria/criteria.d.cts.map +1 -1
  245. package/dist/evaluation/criteria/criteria.d.ts.map +1 -1
  246. package/dist/evaluation/embedding_distance/base.cjs +2 -4
  247. package/dist/evaluation/embedding_distance/base.cjs.map +1 -1
  248. package/dist/evaluation/embedding_distance/base.js +2 -3
  249. package/dist/evaluation/embedding_distance/base.js.map +1 -1
  250. package/dist/evaluation/loader.cjs +7 -12
  251. package/dist/evaluation/loader.cjs.map +1 -1
  252. package/dist/evaluation/loader.d.cts +8 -2
  253. package/dist/evaluation/loader.d.cts.map +1 -1
  254. package/dist/evaluation/loader.d.ts +8 -2
  255. package/dist/evaluation/loader.d.ts.map +1 -1
  256. package/dist/evaluation/loader.js +7 -12
  257. package/dist/evaluation/loader.js.map +1 -1
  258. package/dist/evaluation/qa/eval_chain.d.cts +1 -1
  259. package/dist/hub/base.cjs.map +1 -1
  260. package/dist/hub/base.js.map +1 -1
  261. package/dist/index.cjs +3 -0
  262. package/dist/index.cjs.map +1 -1
  263. package/dist/index.d.cts +5 -4
  264. package/dist/index.d.ts +3 -2
  265. package/dist/index.js +3 -1
  266. package/dist/index.js.map +1 -1
  267. package/dist/langchain-core/dist/load/serializable.d.cts.map +1 -1
  268. package/dist/langchain-core/dist/messages/base.d.cts +24 -33
  269. package/dist/langchain-core/dist/messages/base.d.cts.map +1 -1
  270. package/dist/langchain-core/dist/messages/content/index.d.cts +1 -1
  271. package/dist/langchain-core/dist/messages/content/index.d.cts.map +1 -1
  272. package/dist/langchain-core/dist/messages/message.d.cts +598 -0
  273. package/dist/langchain-core/dist/messages/message.d.cts.map +1 -0
  274. package/dist/langchain-core/dist/messages/metadata.d.cts +97 -0
  275. package/dist/langchain-core/dist/messages/metadata.d.cts.map +1 -0
  276. package/dist/langchain-core/dist/messages/utils.d.cts +75 -0
  277. package/dist/langchain-core/dist/messages/utils.d.cts.map +1 -0
  278. package/dist/langchain-core/dist/prompt_values.d.cts.map +1 -1
  279. package/dist/libs/langchain-core/dist/load/serializable.d.ts.map +1 -1
  280. package/dist/libs/langchain-core/dist/messages/base.d.ts +24 -33
  281. package/dist/libs/langchain-core/dist/messages/base.d.ts.map +1 -1
  282. package/dist/libs/langchain-core/dist/messages/content/index.d.ts +1 -1
  283. package/dist/libs/langchain-core/dist/messages/content/index.d.ts.map +1 -1
  284. package/dist/libs/langchain-core/dist/messages/message.d.ts +598 -0
  285. package/dist/libs/langchain-core/dist/messages/message.d.ts.map +1 -0
  286. package/dist/libs/langchain-core/dist/messages/metadata.d.ts +97 -0
  287. package/dist/libs/langchain-core/dist/messages/metadata.d.ts.map +1 -0
  288. package/dist/libs/langchain-core/dist/messages/utils.d.ts +75 -0
  289. package/dist/libs/langchain-core/dist/messages/utils.d.ts.map +1 -0
  290. package/dist/libs/langchain-core/dist/prompt_values.d.ts.map +1 -1
  291. package/dist/libs/langchain-core/dist/utils/types/index.d.ts +2 -0
  292. package/dist/libs/langchain-core/dist/utils/types/index.d.ts.map +1 -1
  293. package/dist/libs/langchain-core/dist/utils/types/zod.d.ts +1 -0
  294. package/dist/load/import_map.cjs +2 -13
  295. package/dist/load/import_map.cjs.map +1 -1
  296. package/dist/load/import_map.js +2 -13
  297. package/dist/load/import_map.js.map +1 -1
  298. package/dist/memory/prompt.cjs.map +1 -1
  299. package/dist/memory/prompt.d.cts.map +1 -1
  300. package/dist/memory/prompt.d.ts.map +1 -1
  301. package/dist/memory/prompt.js.map +1 -1
  302. package/dist/memory/summary.d.cts +1 -1
  303. package/dist/output_parsers/combining.cjs +1 -1
  304. package/dist/output_parsers/combining.cjs.map +1 -1
  305. package/dist/output_parsers/combining.js +1 -1
  306. package/dist/output_parsers/combining.js.map +1 -1
  307. package/dist/output_parsers/expression_type_handlers/array_literal_expression_handler.cjs.map +1 -1
  308. package/dist/output_parsers/expression_type_handlers/array_literal_expression_handler.js.map +1 -1
  309. package/dist/output_parsers/expression_type_handlers/base.cjs +1 -1
  310. package/dist/output_parsers/expression_type_handlers/base.cjs.map +1 -1
  311. package/dist/output_parsers/expression_type_handlers/base.js +1 -1
  312. package/dist/output_parsers/expression_type_handlers/base.js.map +1 -1
  313. package/dist/output_parsers/fix.d.cts +1 -1
  314. package/dist/output_parsers/http_response.d.cts +1 -1
  315. package/dist/output_parsers/regex.cjs.map +1 -1
  316. package/dist/output_parsers/regex.js.map +1 -1
  317. package/dist/output_parsers/structured.cjs +4 -4
  318. package/dist/output_parsers/structured.cjs.map +1 -1
  319. package/dist/output_parsers/structured.d.cts +2 -2
  320. package/dist/output_parsers/structured.d.cts.map +1 -1
  321. package/dist/output_parsers/structured.d.ts +1 -1
  322. package/dist/output_parsers/structured.d.ts.map +1 -1
  323. package/dist/output_parsers/structured.js +2 -2
  324. package/dist/output_parsers/structured.js.map +1 -1
  325. package/dist/retrievers/ensemble.cjs.map +1 -1
  326. package/dist/retrievers/ensemble.js.map +1 -1
  327. package/dist/storage/file_system.cjs +1 -1
  328. package/dist/storage/file_system.cjs.map +1 -1
  329. package/dist/storage/file_system.js +1 -1
  330. package/dist/storage/file_system.js.map +1 -1
  331. package/dist/tools/fs.cjs +5 -5
  332. package/dist/tools/fs.cjs.map +1 -1
  333. package/dist/tools/fs.d.cts +1 -1
  334. package/dist/tools/fs.d.cts.map +1 -1
  335. package/dist/tools/fs.d.ts +1 -1
  336. package/dist/tools/fs.d.ts.map +1 -1
  337. package/dist/tools/fs.js +1 -1
  338. package/dist/tools/fs.js.map +1 -1
  339. package/dist/tools/json.d.cts +1 -1
  340. package/dist/tools/retriever.cjs +2 -2
  341. package/dist/tools/retriever.cjs.map +1 -1
  342. package/dist/tools/retriever.d.cts +2 -2
  343. package/dist/tools/retriever.d.cts.map +1 -1
  344. package/dist/tools/retriever.d.ts +1 -1
  345. package/dist/tools/retriever.d.ts.map +1 -1
  346. package/dist/tools/retriever.js +1 -1
  347. package/dist/tools/retriever.js.map +1 -1
  348. package/dist/tools/sql.cjs +1 -2
  349. package/dist/tools/sql.cjs.map +1 -1
  350. package/dist/tools/sql.d.cts +1 -1
  351. package/dist/tools/sql.d.cts.map +1 -1
  352. package/dist/tools/sql.d.ts +1 -1
  353. package/dist/tools/sql.d.ts.map +1 -1
  354. package/dist/tools/sql.js +1 -2
  355. package/dist/tools/sql.js.map +1 -1
  356. package/dist/tools/vectorstore.d.cts +1 -1
  357. package/dist/tools/webbrowser.d.cts +1 -1
  358. package/dist/types/expression-parser.d.cts +2 -0
  359. package/dist/types/expression-parser.d.cts.map +1 -1
  360. package/dist/types/expression-parser.d.ts +2 -0
  361. package/dist/types/expression-parser.d.ts.map +1 -1
  362. package/dist/util/hub.cjs +1 -1
  363. package/dist/util/hub.js +1 -1
  364. package/dist/util/openapi.cjs +1 -1
  365. package/dist/util/openapi.cjs.map +1 -1
  366. package/dist/util/openapi.js +1 -1
  367. package/dist/util/openapi.js.map +1 -1
  368. package/package.json +21 -16
  369. package/dist/chains/openai_functions/structured_output.cjs +0 -107
  370. package/dist/chains/openai_functions/structured_output.cjs.map +0 -1
  371. package/dist/chains/openai_functions/structured_output.d.cts +0 -38
  372. package/dist/chains/openai_functions/structured_output.d.cts.map +0 -1
  373. package/dist/chains/openai_functions/structured_output.d.ts +0 -38
  374. package/dist/chains/openai_functions/structured_output.d.ts.map +0 -1
  375. package/dist/chains/openai_functions/structured_output.js +0 -105
  376. package/dist/chains/openai_functions/structured_output.js.map +0 -1
  377. package/dist/chains/openai_moderation.cjs +0 -107
  378. package/dist/chains/openai_moderation.cjs.map +0 -1
  379. package/dist/chains/openai_moderation.d.cts +0 -74
  380. package/dist/chains/openai_moderation.d.cts.map +0 -1
  381. package/dist/chains/openai_moderation.d.ts +0 -74
  382. package/dist/chains/openai_moderation.d.ts.map +0 -1
  383. package/dist/chains/openai_moderation.js +0 -106
  384. package/dist/chains/openai_moderation.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"structured_output.d.cts","names":["JsonSchema7Type","Validator","ChatOpenAI","BasePromptTemplate","BaseLLMOutputParser","ChatGeneration","AIMessageChunk","BaseChatModel","BaseFunctionCallOptions","InferInteropZodOutput","InteropZodObject","LLMChain","LLMChainInput","OutputFunctionsParser","StructuredOutputChainInput","Omit","T","FunctionCallStructuredOutputParserFields","FunctionCallStructuredOutputParser","Promise","createStructuredOutputChain","createStructuredOutputChainFromZod"],"sources":["../../../src/chains/openai_functions/structured_output.d.ts"],"sourcesContent":["import { type JsonSchema7Type, Validator } from \"@langchain/core/utils/json_schema\";\nimport { ChatOpenAI } from \"@langchain/openai\";\nimport { BasePromptTemplate } from \"@langchain/core/prompts\";\nimport { BaseLLMOutputParser } from \"@langchain/core/output_parsers\";\nimport { ChatGeneration } from \"@langchain/core/outputs\";\nimport { AIMessageChunk } from \"@langchain/core/messages\";\nimport type { BaseChatModel } from \"@langchain/core/language_models/chat_models\";\nimport type { BaseFunctionCallOptions } from \"@langchain/core/language_models/base\";\nimport { InferInteropZodOutput, InteropZodObject } from \"@langchain/core/utils/types\";\nimport { LLMChain, type LLMChainInput } from \"../llm_chain.js\";\nimport { OutputFunctionsParser } from \"../../output_parsers/openai_functions.js\";\n/**\n * Type representing the input for creating a structured output chain. It\n * extends the LLMChainInput type and includes an additional\n * 'outputSchema' field representing the JSON schema for the expected\n * output.\n */\nexport type StructuredOutputChainInput<T extends InteropZodObject = InteropZodObject> = Omit<LLMChainInput, \"outputParser\" | \"llm\"> & {\n outputSchema?: JsonSchema7Type;\n prompt: BasePromptTemplate;\n llm?: BaseChatModel<BaseFunctionCallOptions>;\n zodSchema?: T;\n};\nexport type FunctionCallStructuredOutputParserFields<T extends InteropZodObject = InteropZodObject> = {\n jsonSchema?: JsonSchema7Type;\n zodSchema?: T;\n};\n/**\n * Class that extends the BaseLLMOutputParser class. It provides\n * functionality for parsing the structured output based on a JSON schema.\n */\nexport declare class FunctionCallStructuredOutputParser<T extends InteropZodObject> extends BaseLLMOutputParser<InferInteropZodOutput<T>> {\n lc_namespace: string[];\n protected functionOutputParser: OutputFunctionsParser;\n protected jsonSchemaValidator?: Validator;\n protected zodSchema?: T;\n constructor(fieldsOrSchema: JsonSchema7Type);\n constructor(fieldsOrSchema: FunctionCallStructuredOutputParserFields<T>);\n /**\n * Method to parse the result of chat generations. It first parses the\n * result using the functionOutputParser, then parses the result against a\n * zod schema if the zod schema is available which allows the result to undergo\n * Zod preprocessing, then it parses that result against the JSON schema.\n * If the result is valid, it returns the parsed result. Otherwise, it throws\n * an OutputParserException.\n * @param generations Array of ChatGeneration instances to be parsed.\n * @returns The parsed result if it is valid according to the JSON schema.\n */\n parseResult(generations: ChatGeneration[]): Promise<any>;\n}\n/**\n * @deprecated Use {@link https://api.js.langchain.com/functions/langchain.chains_openai_functions.createStructuredOutputRunnable.html | createStructuredOutputRunnable} instead\n * Create a chain that returns output matching a JSON Schema.\n * @param input Object that includes all LLMChainInput fields except \"outputParser\"\n * as well as an additional required \"outputSchema\" JSON Schema object.\n * @returns OpenAPIChain\n */\nexport declare function createStructuredOutputChain<T extends InteropZodObject = InteropZodObject>(input: StructuredOutputChainInput<T>): LLMChain<any, BaseChatModel<BaseFunctionCallOptions, AIMessageChunk> | ChatOpenAI<BaseFunctionCallOptions>>;\n/** @deprecated Use {@link https://api.js.langchain.com/functions/langchain.chains_openai_functions.createStructuredOutputRunnable.html | createStructuredOutputRunnable} instead */\nexport declare function createStructuredOutputChainFromZod<T extends InteropZodObject>(zodSchema: T, input: Omit<StructuredOutputChainInput<T>, \"outputSchema\">): LLMChain<any, BaseChatModel<BaseFunctionCallOptions, AIMessageChunk> | ChatOpenAI<BaseFunctionCallOptions>>;\n"],"mappings":";;;;;;;;;;;;;;AAiBA;;;;;AAAwFe,KAA5ED,0BAA4EC,CAAAA,UAAvCL,gBAAuCK,GAApBL,gBAAoBK,CAAAA,GAAAA,IAAAA,CAAKH,aAALG,EAAAA,cAAAA,GAAAA,KAAAA,CAAAA,GAAAA;EAAI,YACzEf,CAAAA,EAAAA,eAAAA;EAAe,MACtBG,EAAAA,kBAAAA;EAAkB,GACNK,CAAAA,EAAdD,aAAcC,CAAAA,uBAAAA,CAAAA;EAAuB,SAArCD,CAAAA,EACMS,CADNT;CAAa;AAuCmJ;;;;;;;iBAFlJa,sCAAsCV,mBAAmBA,yBAAyBI,2BAA2BE,KAAKL,cAAcJ,cAAcC,yBAAyBF,kBAAkBJ,WAAWM;;iBAEpMa,6CAA6CX,6BAA6BM,UAAUD,KAAKD,2BAA2BE,sBAAsBL,cAAcJ,cAAcC,yBAAyBF,kBAAkBJ,WAAWM"}
@@ -1,38 +0,0 @@
1
- import { LLMChain, LLMChainInput } from "../llm_chain.js";
2
- import { AIMessageChunk } from "@langchain/core/messages";
3
- import { BaseChatModel } from "@langchain/core/language_models/chat_models";
4
- import { InferInteropZodOutput, InteropZodObject } from "@langchain/core/utils/types";
5
- import { JsonSchema7Type, Validator } from "@langchain/core/utils/json_schema";
6
- import { BasePromptTemplate } from "@langchain/core/prompts";
7
- import { BaseLLMOutputParser } from "@langchain/core/output_parsers";
8
- import { ChatGeneration } from "@langchain/core/outputs";
9
- import { BaseFunctionCallOptions } from "@langchain/core/language_models/base";
10
- import { ChatOpenAI } from "@langchain/openai";
11
-
12
- //#region src/chains/openai_functions/structured_output.d.ts
13
-
14
- /**
15
- * Type representing the input for creating a structured output chain. It
16
- * extends the LLMChainInput type and includes an additional
17
- * 'outputSchema' field representing the JSON schema for the expected
18
- * output.
19
- */
20
- type StructuredOutputChainInput<T extends InteropZodObject = InteropZodObject> = Omit<LLMChainInput, "outputParser" | "llm"> & {
21
- outputSchema?: JsonSchema7Type;
22
- prompt: BasePromptTemplate;
23
- llm?: BaseChatModel<BaseFunctionCallOptions>;
24
- zodSchema?: T;
25
- };
26
- /**
27
- * @deprecated Use {@link https://api.js.langchain.com/functions/langchain.chains_openai_functions.createStructuredOutputRunnable.html | createStructuredOutputRunnable} instead
28
- * Create a chain that returns output matching a JSON Schema.
29
- * @param input Object that includes all LLMChainInput fields except "outputParser"
30
- * as well as an additional required "outputSchema" JSON Schema object.
31
- * @returns OpenAPIChain
32
- */
33
- declare function createStructuredOutputChain<T extends InteropZodObject = InteropZodObject>(input: StructuredOutputChainInput<T>): LLMChain<any, BaseChatModel<BaseFunctionCallOptions, AIMessageChunk> | ChatOpenAI<BaseFunctionCallOptions>>;
34
- /** @deprecated Use {@link https://api.js.langchain.com/functions/langchain.chains_openai_functions.createStructuredOutputRunnable.html | createStructuredOutputRunnable} instead */
35
- declare function createStructuredOutputChainFromZod<T extends InteropZodObject>(zodSchema: T, input: Omit<StructuredOutputChainInput<T>, "outputSchema">): LLMChain<any, BaseChatModel<BaseFunctionCallOptions, AIMessageChunk> | ChatOpenAI<BaseFunctionCallOptions>>;
36
- //#endregion
37
- export { StructuredOutputChainInput, createStructuredOutputChain, createStructuredOutputChainFromZod };
38
- //# sourceMappingURL=structured_output.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"structured_output.d.ts","names":["JsonSchema7Type","Validator","ChatOpenAI","BasePromptTemplate","BaseLLMOutputParser","ChatGeneration","AIMessageChunk","BaseChatModel","BaseFunctionCallOptions","InferInteropZodOutput","InteropZodObject","LLMChain","LLMChainInput","OutputFunctionsParser","StructuredOutputChainInput","Omit","T","FunctionCallStructuredOutputParserFields","FunctionCallStructuredOutputParser","Promise","createStructuredOutputChain","createStructuredOutputChainFromZod"],"sources":["../../../src/chains/openai_functions/structured_output.d.ts"],"sourcesContent":["import { type JsonSchema7Type, Validator } from \"@langchain/core/utils/json_schema\";\nimport { ChatOpenAI } from \"@langchain/openai\";\nimport { BasePromptTemplate } from \"@langchain/core/prompts\";\nimport { BaseLLMOutputParser } from \"@langchain/core/output_parsers\";\nimport { ChatGeneration } from \"@langchain/core/outputs\";\nimport { AIMessageChunk } from \"@langchain/core/messages\";\nimport type { BaseChatModel } from \"@langchain/core/language_models/chat_models\";\nimport type { BaseFunctionCallOptions } from \"@langchain/core/language_models/base\";\nimport { InferInteropZodOutput, InteropZodObject } from \"@langchain/core/utils/types\";\nimport { LLMChain, type LLMChainInput } from \"../llm_chain.js\";\nimport { OutputFunctionsParser } from \"../../output_parsers/openai_functions.js\";\n/**\n * Type representing the input for creating a structured output chain. It\n * extends the LLMChainInput type and includes an additional\n * 'outputSchema' field representing the JSON schema for the expected\n * output.\n */\nexport type StructuredOutputChainInput<T extends InteropZodObject = InteropZodObject> = Omit<LLMChainInput, \"outputParser\" | \"llm\"> & {\n outputSchema?: JsonSchema7Type;\n prompt: BasePromptTemplate;\n llm?: BaseChatModel<BaseFunctionCallOptions>;\n zodSchema?: T;\n};\nexport type FunctionCallStructuredOutputParserFields<T extends InteropZodObject = InteropZodObject> = {\n jsonSchema?: JsonSchema7Type;\n zodSchema?: T;\n};\n/**\n * Class that extends the BaseLLMOutputParser class. It provides\n * functionality for parsing the structured output based on a JSON schema.\n */\nexport declare class FunctionCallStructuredOutputParser<T extends InteropZodObject> extends BaseLLMOutputParser<InferInteropZodOutput<T>> {\n lc_namespace: string[];\n protected functionOutputParser: OutputFunctionsParser;\n protected jsonSchemaValidator?: Validator;\n protected zodSchema?: T;\n constructor(fieldsOrSchema: JsonSchema7Type);\n constructor(fieldsOrSchema: FunctionCallStructuredOutputParserFields<T>);\n /**\n * Method to parse the result of chat generations. It first parses the\n * result using the functionOutputParser, then parses the result against a\n * zod schema if the zod schema is available which allows the result to undergo\n * Zod preprocessing, then it parses that result against the JSON schema.\n * If the result is valid, it returns the parsed result. Otherwise, it throws\n * an OutputParserException.\n * @param generations Array of ChatGeneration instances to be parsed.\n * @returns The parsed result if it is valid according to the JSON schema.\n */\n parseResult(generations: ChatGeneration[]): Promise<any>;\n}\n/**\n * @deprecated Use {@link https://api.js.langchain.com/functions/langchain.chains_openai_functions.createStructuredOutputRunnable.html | createStructuredOutputRunnable} instead\n * Create a chain that returns output matching a JSON Schema.\n * @param input Object that includes all LLMChainInput fields except \"outputParser\"\n * as well as an additional required \"outputSchema\" JSON Schema object.\n * @returns OpenAPIChain\n */\nexport declare function createStructuredOutputChain<T extends InteropZodObject = InteropZodObject>(input: StructuredOutputChainInput<T>): LLMChain<any, BaseChatModel<BaseFunctionCallOptions, AIMessageChunk> | ChatOpenAI<BaseFunctionCallOptions>>;\n/** @deprecated Use {@link https://api.js.langchain.com/functions/langchain.chains_openai_functions.createStructuredOutputRunnable.html | createStructuredOutputRunnable} instead */\nexport declare function createStructuredOutputChainFromZod<T extends InteropZodObject>(zodSchema: T, input: Omit<StructuredOutputChainInput<T>, \"outputSchema\">): LLMChain<any, BaseChatModel<BaseFunctionCallOptions, AIMessageChunk> | ChatOpenAI<BaseFunctionCallOptions>>;\n"],"mappings":";;;;;;;;;;;;;;AAiBA;;;;;AAAwFe,KAA5ED,0BAA4EC,CAAAA,UAAvCL,gBAAuCK,GAApBL,gBAAoBK,CAAAA,GAAAA,IAAAA,CAAKH,aAALG,EAAAA,cAAAA,GAAAA,KAAAA,CAAAA,GAAAA;EAAI,YACzEf,CAAAA,EAAAA,eAAAA;EAAe,MACtBG,EAAAA,kBAAAA;EAAkB,GACNK,CAAAA,EAAdD,aAAcC,CAAAA,uBAAAA,CAAAA;EAAuB,SAArCD,CAAAA,EACMS,CADNT;CAAa;AAuCmJ;;;;;;;iBAFlJa,sCAAsCV,mBAAmBA,yBAAyBI,2BAA2BE,KAAKL,cAAcJ,cAAcC,yBAAyBF,kBAAkBJ,WAAWM;;iBAEpMa,6CAA6CX,6BAA6BM,UAAUD,KAAKD,2BAA2BE,sBAAsBL,cAAcJ,cAAcC,yBAAyBF,kBAAkBJ,WAAWM"}
@@ -1,105 +0,0 @@
1
- import { LLMChain } from "../llm_chain.js";
2
- import { OutputFunctionsParser } from "../../output_parsers/openai_functions.js";
3
- import { interopSafeParseAsync } from "@langchain/core/utils/types";
4
- import { Validator, toJsonSchema } from "@langchain/core/utils/json_schema";
5
- import { BaseLLMOutputParser, OutputParserException } from "@langchain/core/output_parsers";
6
- import { ChatOpenAI } from "@langchain/openai";
7
-
8
- //#region src/chains/openai_functions/structured_output.ts
9
- function isJsonSchema7Type(x) {
10
- return x.jsonSchema === void 0 && x.zodSchema === void 0;
11
- }
12
- /**
13
- * Class that extends the BaseLLMOutputParser class. It provides
14
- * functionality for parsing the structured output based on a JSON schema.
15
- */
16
- var FunctionCallStructuredOutputParser = class extends BaseLLMOutputParser {
17
- lc_namespace = [
18
- "langchain",
19
- "chains",
20
- "openai_functions"
21
- ];
22
- functionOutputParser = new OutputFunctionsParser();
23
- jsonSchemaValidator;
24
- zodSchema;
25
- constructor(fieldsOrSchema) {
26
- let fields;
27
- if (isJsonSchema7Type(fieldsOrSchema)) fields = { jsonSchema: fieldsOrSchema };
28
- else fields = fieldsOrSchema;
29
- if (fields.jsonSchema === void 0 && fields.zodSchema === void 0) throw new Error(`Must provide at least one of "jsonSchema" or "zodSchema".`);
30
- super(fields);
31
- if (fields.jsonSchema !== void 0) this.jsonSchemaValidator = new Validator(fields.jsonSchema, "7");
32
- if (fields.zodSchema !== void 0) this.zodSchema = fields.zodSchema;
33
- }
34
- /**
35
- * Method to parse the result of chat generations. It first parses the
36
- * result using the functionOutputParser, then parses the result against a
37
- * zod schema if the zod schema is available which allows the result to undergo
38
- * Zod preprocessing, then it parses that result against the JSON schema.
39
- * If the result is valid, it returns the parsed result. Otherwise, it throws
40
- * an OutputParserException.
41
- * @param generations Array of ChatGeneration instances to be parsed.
42
- * @returns The parsed result if it is valid according to the JSON schema.
43
- */
44
- async parseResult(generations) {
45
- const initialResult = await this.functionOutputParser.parseResult(generations);
46
- const parsedResult = JSON.parse(initialResult, (_, value) => {
47
- if (value === null) return void 0;
48
- return value;
49
- });
50
- if (this.zodSchema) {
51
- const zodParsedResult = await interopSafeParseAsync(this.zodSchema, parsedResult);
52
- if (zodParsedResult.success) return zodParsedResult.data;
53
- else throw new OutputParserException(`Failed to parse. Text: "${initialResult}". Error: ${JSON.stringify(zodParsedResult.error.issues)}`, initialResult);
54
- } else if (this.jsonSchemaValidator !== void 0) {
55
- const result = this.jsonSchemaValidator.validate(parsedResult);
56
- if (result.valid) return parsedResult;
57
- else throw new OutputParserException(`Failed to parse. Text: "${initialResult}". Error: ${JSON.stringify(result.errors)}`, initialResult);
58
- } else throw new Error("This parser requires an input JSON Schema or an input Zod schema.");
59
- }
60
- };
61
- /**
62
- * @deprecated Use {@link https://api.js.langchain.com/functions/langchain.chains_openai_functions.createStructuredOutputRunnable.html | createStructuredOutputRunnable} instead
63
- * Create a chain that returns output matching a JSON Schema.
64
- * @param input Object that includes all LLMChainInput fields except "outputParser"
65
- * as well as an additional required "outputSchema" JSON Schema object.
66
- * @returns OpenAPIChain
67
- */
68
- function createStructuredOutputChain(input) {
69
- const { outputSchema, llm = new ChatOpenAI({
70
- model: "gpt-3.5-turbo-0613",
71
- temperature: 0
72
- }), outputKey = "output", llmKwargs = {}, zodSchema,...rest } = input;
73
- if (outputSchema === void 0 && zodSchema === void 0) throw new Error(`Must provide one of "outputSchema" or "zodSchema".`);
74
- const functionName = "output_formatter";
75
- return new LLMChain({
76
- llm,
77
- llmKwargs: {
78
- ...llmKwargs,
79
- functions: [{
80
- name: functionName,
81
- description: `Output formatter. Should always be used to format your response to the user.`,
82
- parameters: outputSchema
83
- }],
84
- function_call: { name: functionName }
85
- },
86
- outputKey,
87
- outputParser: new FunctionCallStructuredOutputParser({
88
- jsonSchema: outputSchema,
89
- zodSchema
90
- }),
91
- ...rest
92
- });
93
- }
94
- /** @deprecated Use {@link https://api.js.langchain.com/functions/langchain.chains_openai_functions.createStructuredOutputRunnable.html | createStructuredOutputRunnable} instead */
95
- function createStructuredOutputChainFromZod(zodSchema, input) {
96
- return createStructuredOutputChain({
97
- ...input,
98
- outputSchema: toJsonSchema(zodSchema),
99
- zodSchema
100
- });
101
- }
102
-
103
- //#endregion
104
- export { createStructuredOutputChain, createStructuredOutputChainFromZod };
105
- //# sourceMappingURL=structured_output.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"structured_output.js","names":["x: JsonSchema7Type | FunctionCallStructuredOutputParserFields","fieldsOrSchema:\n | JsonSchema7Type\n | FunctionCallStructuredOutputParserFields<T>","generations: ChatGeneration[]","input: StructuredOutputChainInput<T>","zodSchema: T","input: Omit<StructuredOutputChainInput<T>, \"outputSchema\">"],"sources":["../../../src/chains/openai_functions/structured_output.ts"],"sourcesContent":["import {\n type JsonSchema7Type,\n Validator,\n toJsonSchema,\n} from \"@langchain/core/utils/json_schema\";\nimport { ChatOpenAI } from \"@langchain/openai\";\nimport { BasePromptTemplate } from \"@langchain/core/prompts\";\nimport {\n BaseLLMOutputParser,\n OutputParserException,\n} from \"@langchain/core/output_parsers\";\nimport { ChatGeneration } from \"@langchain/core/outputs\";\nimport { AIMessageChunk } from \"@langchain/core/messages\";\nimport type { BaseChatModel } from \"@langchain/core/language_models/chat_models\";\nimport type { BaseFunctionCallOptions } from \"@langchain/core/language_models/base\";\nimport {\n InferInteropZodOutput,\n interopSafeParseAsync,\n InteropZodObject,\n} from \"@langchain/core/utils/types\";\nimport { LLMChain, type LLMChainInput } from \"../llm_chain.js\";\nimport { OutputFunctionsParser } from \"../../output_parsers/openai_functions.js\";\n\n/**\n * Type representing the input for creating a structured output chain. It\n * extends the LLMChainInput type and includes an additional\n * 'outputSchema' field representing the JSON schema for the expected\n * output.\n */\nexport type StructuredOutputChainInput<\n T extends InteropZodObject = InteropZodObject\n> = Omit<LLMChainInput, \"outputParser\" | \"llm\"> & {\n outputSchema?: JsonSchema7Type;\n prompt: BasePromptTemplate;\n llm?: BaseChatModel<BaseFunctionCallOptions>;\n zodSchema?: T;\n};\n\nexport type FunctionCallStructuredOutputParserFields<\n T extends InteropZodObject = InteropZodObject\n> = {\n jsonSchema?: JsonSchema7Type;\n zodSchema?: T;\n};\n\nfunction isJsonSchema7Type(\n x: JsonSchema7Type | FunctionCallStructuredOutputParserFields\n): x is JsonSchema7Type {\n return (\n (x as FunctionCallStructuredOutputParserFields).jsonSchema === undefined &&\n (x as FunctionCallStructuredOutputParserFields).zodSchema === undefined\n );\n}\n\n/**\n * Class that extends the BaseLLMOutputParser class. It provides\n * functionality for parsing the structured output based on a JSON schema.\n */\nexport class FunctionCallStructuredOutputParser<\n T extends InteropZodObject\n> extends BaseLLMOutputParser<InferInteropZodOutput<T>> {\n lc_namespace = [\"langchain\", \"chains\", \"openai_functions\"];\n\n protected functionOutputParser = new OutputFunctionsParser();\n\n protected jsonSchemaValidator?: Validator;\n\n protected zodSchema?: T;\n\n constructor(fieldsOrSchema: JsonSchema7Type);\n\n constructor(fieldsOrSchema: FunctionCallStructuredOutputParserFields<T>);\n\n constructor(\n fieldsOrSchema:\n | JsonSchema7Type\n | FunctionCallStructuredOutputParserFields<T>\n ) {\n let fields;\n if (isJsonSchema7Type(fieldsOrSchema)) {\n fields = { jsonSchema: fieldsOrSchema };\n } else {\n fields = fieldsOrSchema;\n }\n if (fields.jsonSchema === undefined && fields.zodSchema === undefined) {\n throw new Error(\n `Must provide at least one of \"jsonSchema\" or \"zodSchema\".`\n );\n }\n super(fields);\n if (fields.jsonSchema !== undefined) {\n this.jsonSchemaValidator = new Validator(\n fields.jsonSchema as Record<string, unknown>,\n \"7\"\n );\n }\n if (fields.zodSchema !== undefined) {\n this.zodSchema = fields.zodSchema;\n }\n }\n\n /**\n * Method to parse the result of chat generations. It first parses the\n * result using the functionOutputParser, then parses the result against a\n * zod schema if the zod schema is available which allows the result to undergo\n * Zod preprocessing, then it parses that result against the JSON schema.\n * If the result is valid, it returns the parsed result. Otherwise, it throws\n * an OutputParserException.\n * @param generations Array of ChatGeneration instances to be parsed.\n * @returns The parsed result if it is valid according to the JSON schema.\n */\n async parseResult(generations: ChatGeneration[]) {\n const initialResult = await this.functionOutputParser.parseResult(\n generations\n );\n const parsedResult = JSON.parse(initialResult, (_, value) => {\n if (value === null) {\n return undefined;\n }\n return value;\n });\n if (this.zodSchema) {\n const zodParsedResult = await interopSafeParseAsync(\n this.zodSchema,\n parsedResult\n );\n if (zodParsedResult.success) {\n return zodParsedResult.data;\n } else {\n throw new OutputParserException(\n `Failed to parse. Text: \"${initialResult}\". Error: ${JSON.stringify(\n zodParsedResult.error.issues\n )}`,\n initialResult\n );\n }\n } else if (this.jsonSchemaValidator !== undefined) {\n const result = this.jsonSchemaValidator.validate(parsedResult);\n if (result.valid) {\n return parsedResult;\n } else {\n throw new OutputParserException(\n `Failed to parse. Text: \"${initialResult}\". Error: ${JSON.stringify(\n result.errors\n )}`,\n initialResult\n );\n }\n } else {\n throw new Error(\n \"This parser requires an input JSON Schema or an input Zod schema.\"\n );\n }\n }\n}\n\n/**\n * @deprecated Use {@link https://api.js.langchain.com/functions/langchain.chains_openai_functions.createStructuredOutputRunnable.html | createStructuredOutputRunnable} instead\n * Create a chain that returns output matching a JSON Schema.\n * @param input Object that includes all LLMChainInput fields except \"outputParser\"\n * as well as an additional required \"outputSchema\" JSON Schema object.\n * @returns OpenAPIChain\n */\nexport function createStructuredOutputChain<\n T extends InteropZodObject = InteropZodObject\n>(\n input: StructuredOutputChainInput<T>\n): LLMChain<\n any,\n | BaseChatModel<BaseFunctionCallOptions, AIMessageChunk>\n | ChatOpenAI<BaseFunctionCallOptions>\n> {\n const {\n outputSchema,\n llm = new ChatOpenAI({ model: \"gpt-3.5-turbo-0613\", temperature: 0 }),\n outputKey = \"output\",\n llmKwargs = {},\n zodSchema,\n ...rest\n } = input;\n if (outputSchema === undefined && zodSchema === undefined) {\n throw new Error(`Must provide one of \"outputSchema\" or \"zodSchema\".`);\n }\n const functionName = \"output_formatter\";\n return new LLMChain({\n llm,\n llmKwargs: {\n ...llmKwargs,\n functions: [\n {\n name: functionName,\n description: `Output formatter. Should always be used to format your response to the user.`,\n parameters: outputSchema,\n },\n ],\n function_call: {\n name: functionName,\n },\n },\n outputKey,\n outputParser: new FunctionCallStructuredOutputParser<T>({\n jsonSchema: outputSchema,\n zodSchema,\n }),\n ...rest,\n });\n}\n\n/** @deprecated Use {@link https://api.js.langchain.com/functions/langchain.chains_openai_functions.createStructuredOutputRunnable.html | createStructuredOutputRunnable} instead */\nexport function createStructuredOutputChainFromZod<T extends InteropZodObject>(\n zodSchema: T,\n input: Omit<StructuredOutputChainInput<T>, \"outputSchema\">\n): LLMChain<\n any,\n | BaseChatModel<BaseFunctionCallOptions, AIMessageChunk>\n | ChatOpenAI<BaseFunctionCallOptions>\n> {\n return createStructuredOutputChain<T>({\n ...input,\n outputSchema: toJsonSchema(zodSchema),\n zodSchema,\n });\n}\n"],"mappings":";;;;;;;;AA6CA,SAAS,kBACPA,GACsB;AACtB,QACG,EAA+C,eAAe,UAC9D,EAA+C,cAAc;AAEjE;;;;;AAMD,IAAa,qCAAb,cAEU,oBAA8C;CACtD,eAAe;EAAC;EAAa;EAAU;CAAmB;CAE1D,AAAU,uBAAuB,IAAI;CAErC,AAAU;CAEV,AAAU;CAMV,YACEC,gBAGA;EACA,IAAI;AACJ,MAAI,kBAAkB,eAAe,EACnC,SAAS,EAAE,YAAY,eAAgB;OAEvC,SAAS;AAEX,MAAI,OAAO,eAAe,UAAa,OAAO,cAAc,OAC1D,OAAM,IAAI,MACR,CAAC,yDAAyD,CAAC;EAG/D,MAAM,OAAO;AACb,MAAI,OAAO,eAAe,QACxB,KAAK,sBAAsB,IAAI,UAC7B,OAAO,YACP;AAGJ,MAAI,OAAO,cAAc,QACvB,KAAK,YAAY,OAAO;CAE3B;;;;;;;;;;;CAYD,MAAM,YAAYC,aAA+B;EAC/C,MAAM,gBAAgB,MAAM,KAAK,qBAAqB,YACpD,YACD;EACD,MAAM,eAAe,KAAK,MAAM,eAAe,CAAC,GAAG,UAAU;AAC3D,OAAI,UAAU,KACZ,QAAO;AAET,UAAO;EACR,EAAC;AACF,MAAI,KAAK,WAAW;GAClB,MAAM,kBAAkB,MAAM,sBAC5B,KAAK,WACL,aACD;AACD,OAAI,gBAAgB,QAClB,QAAO,gBAAgB;OAEvB,OAAM,IAAI,sBACR,CAAC,wBAAwB,EAAE,cAAc,UAAU,EAAE,KAAK,UACxD,gBAAgB,MAAM,OACvB,EAAE,EACH;EAGL,WAAU,KAAK,wBAAwB,QAAW;GACjD,MAAM,SAAS,KAAK,oBAAoB,SAAS,aAAa;AAC9D,OAAI,OAAO,MACT,QAAO;OAEP,OAAM,IAAI,sBACR,CAAC,wBAAwB,EAAE,cAAc,UAAU,EAAE,KAAK,UACxD,OAAO,OACR,EAAE,EACH;EAGL,MACC,OAAM,IAAI,MACR;CAGL;AACF;;;;;;;;AASD,SAAgB,4BAGdC,OAKA;CACA,MAAM,EACJ,cACA,MAAM,IAAI,WAAW;EAAE,OAAO;EAAsB,aAAa;CAAG,IACpE,YAAY,UACZ,YAAY,CAAE,GACd,UACA,GAAG,MACJ,GAAG;AACJ,KAAI,iBAAiB,UAAa,cAAc,OAC9C,OAAM,IAAI,MAAM,CAAC,kDAAkD,CAAC;CAEtE,MAAM,eAAe;AACrB,QAAO,IAAI,SAAS;EAClB;EACA,WAAW;GACT,GAAG;GACH,WAAW,CACT;IACE,MAAM;IACN,aAAa,CAAC,4EAA4E,CAAC;IAC3F,YAAY;GACb,CACF;GACD,eAAe,EACb,MAAM,aACP;EACF;EACD;EACA,cAAc,IAAI,mCAAsC;GACtD,YAAY;GACZ;EACD;EACD,GAAG;CACJ;AACF;;AAGD,SAAgB,mCACdC,WACAC,OAKA;AACA,QAAO,4BAA+B;EACpC,GAAG;EACH,cAAc,aAAa,UAAU;EACrC;CACD,EAAC;AACH"}
@@ -1,107 +0,0 @@
1
- const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
- const require_base = require('./base.cjs');
3
- const __langchain_openai = require_rolldown_runtime.__toESM(require("@langchain/openai"));
4
- const __langchain_core_utils_async_caller = require_rolldown_runtime.__toESM(require("@langchain/core/utils/async_caller"));
5
- const __langchain_core_utils_env = require_rolldown_runtime.__toESM(require("@langchain/core/utils/env"));
6
-
7
- //#region src/chains/openai_moderation.ts
8
- /**
9
- * Class representing a chain for moderating text using the OpenAI
10
- * Moderation API. It extends the BaseChain class and implements the
11
- * OpenAIModerationChainInput interface.
12
- * @example
13
- * ```typescript
14
- * const moderation = new OpenAIModerationChain({ throwError: true });
15
- *
16
- * const badString = "Bad naughty words from user";
17
- *
18
- * try {
19
- * const { output: moderatedContent, results } = await moderation.call({
20
- * input: badString,
21
- * });
22
- *
23
- * if (results[0].category_scores["harassment/threatening"] > 0.01) {
24
- * throw new Error("Harassment detected!");
25
- * }
26
- *
27
- * const model = new OpenAI({ temperature: 0 });
28
- * const promptTemplate = "Hello, how are you today {person}?";
29
- * const prompt = new PromptTemplate({
30
- * template: promptTemplate,
31
- * inputVariables: ["person"],
32
- * });
33
- * const chain = new LLMChain({ llm: model, prompt });
34
- * const response = await chain.call({ person: moderatedContent });
35
- * console.log({ response });
36
- * } catch (error) {
37
- * console.error("Naughty words detected!");
38
- * }
39
- * ```
40
- */
41
- var OpenAIModerationChain = class extends require_base.BaseChain {
42
- static lc_name() {
43
- return "OpenAIModerationChain";
44
- }
45
- get lc_secrets() {
46
- return { openAIApiKey: "OPENAI_API_KEY" };
47
- }
48
- inputKey = "input";
49
- outputKey = "output";
50
- openAIApiKey;
51
- openAIOrganization;
52
- clientConfig;
53
- client;
54
- throwError;
55
- caller;
56
- constructor(fields) {
57
- super(fields);
58
- this.throwError = fields?.throwError ?? false;
59
- this.openAIApiKey = fields?.apiKey ?? fields?.openAIApiKey ?? (0, __langchain_core_utils_env.getEnvironmentVariable)("OPENAI_API_KEY");
60
- if (!this.openAIApiKey) throw new Error("OpenAI API key not found");
61
- this.openAIOrganization = fields?.openAIOrganization;
62
- this.clientConfig = {
63
- ...fields?.configuration,
64
- apiKey: this.openAIApiKey,
65
- organization: this.openAIOrganization
66
- };
67
- this.client = new __langchain_openai.OpenAIClient(this.clientConfig);
68
- this.caller = new __langchain_core_utils_async_caller.AsyncCaller(fields ?? {});
69
- }
70
- _moderate(text, results) {
71
- if (results.flagged) {
72
- const errorStr = "Text was found that violates OpenAI's content policy.";
73
- if (this.throwError) throw new Error(errorStr);
74
- else return errorStr;
75
- }
76
- return text;
77
- }
78
- async _call(values) {
79
- const text = values[this.inputKey];
80
- const moderationRequest = { input: text };
81
- let mod;
82
- try {
83
- mod = await this.caller.call(() => this.client.moderations.create(moderationRequest));
84
- } catch (error) {
85
- if (error instanceof Error) throw error;
86
- else throw new Error(error);
87
- }
88
- const output = this._moderate(text, mod.results[0]);
89
- return {
90
- [this.outputKey]: output,
91
- results: mod.results
92
- };
93
- }
94
- _chainType() {
95
- return "moderation_chain";
96
- }
97
- get inputKeys() {
98
- return [this.inputKey];
99
- }
100
- get outputKeys() {
101
- return [this.outputKey];
102
- }
103
- };
104
-
105
- //#endregion
106
- exports.OpenAIModerationChain = OpenAIModerationChain;
107
- //# sourceMappingURL=openai_moderation.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai_moderation.cjs","names":["BaseChain","fields?: OpenAIModerationChainInput","OpenAIClient","AsyncCaller","text: string","results: OpenAIClient.Moderation","values: ChainValues","moderationRequest: OpenAIClient.ModerationCreateParams"],"sources":["../../src/chains/openai_moderation.ts"],"sourcesContent":["import { type ClientOptions, OpenAIClient } from \"@langchain/openai\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport {\n AsyncCaller,\n AsyncCallerParams,\n} from \"@langchain/core/utils/async_caller\";\nimport { getEnvironmentVariable } from \"@langchain/core/utils/env\";\nimport { BaseChain, ChainInputs } from \"./base.js\";\n\n/**\n * Interface for the input parameters of the OpenAIModerationChain class.\n */\nexport interface OpenAIModerationChainInput\n extends ChainInputs,\n AsyncCallerParams {\n apiKey?: string;\n /** @deprecated Use \"apiKey\" instead. */\n openAIApiKey?: string;\n openAIOrganization?: string;\n throwError?: boolean;\n configuration?: ClientOptions;\n}\n\n/**\n * Class representing a chain for moderating text using the OpenAI\n * Moderation API. It extends the BaseChain class and implements the\n * OpenAIModerationChainInput interface.\n * @example\n * ```typescript\n * const moderation = new OpenAIModerationChain({ throwError: true });\n *\n * const badString = \"Bad naughty words from user\";\n *\n * try {\n * const { output: moderatedContent, results } = await moderation.call({\n * input: badString,\n * });\n *\n * if (results[0].category_scores[\"harassment/threatening\"] > 0.01) {\n * throw new Error(\"Harassment detected!\");\n * }\n *\n * const model = new OpenAI({ temperature: 0 });\n * const promptTemplate = \"Hello, how are you today {person}?\";\n * const prompt = new PromptTemplate({\n * template: promptTemplate,\n * inputVariables: [\"person\"],\n * });\n * const chain = new LLMChain({ llm: model, prompt });\n * const response = await chain.call({ person: moderatedContent });\n * console.log({ response });\n * } catch (error) {\n * console.error(\"Naughty words detected!\");\n * }\n * ```\n */\nexport class OpenAIModerationChain\n extends BaseChain\n implements OpenAIModerationChainInput\n{\n static lc_name() {\n return \"OpenAIModerationChain\";\n }\n\n get lc_secrets(): { [key: string]: string } | undefined {\n return {\n openAIApiKey: \"OPENAI_API_KEY\",\n };\n }\n\n inputKey = \"input\";\n\n outputKey = \"output\";\n\n openAIApiKey?: string;\n\n openAIOrganization?: string;\n\n clientConfig: ClientOptions;\n\n client: OpenAIClient;\n\n throwError: boolean;\n\n caller: AsyncCaller;\n\n constructor(fields?: OpenAIModerationChainInput) {\n super(fields);\n this.throwError = fields?.throwError ?? false;\n this.openAIApiKey =\n fields?.apiKey ??\n fields?.openAIApiKey ??\n getEnvironmentVariable(\"OPENAI_API_KEY\");\n\n if (!this.openAIApiKey) {\n throw new Error(\"OpenAI API key not found\");\n }\n\n this.openAIOrganization = fields?.openAIOrganization;\n\n this.clientConfig = {\n ...fields?.configuration,\n apiKey: this.openAIApiKey,\n organization: this.openAIOrganization,\n };\n\n this.client = new OpenAIClient(this.clientConfig);\n\n this.caller = new AsyncCaller(fields ?? {});\n }\n\n _moderate(text: string, results: OpenAIClient.Moderation): string {\n if (results.flagged) {\n const errorStr = \"Text was found that violates OpenAI's content policy.\";\n if (this.throwError) {\n throw new Error(errorStr);\n } else {\n return errorStr;\n }\n }\n return text;\n }\n\n async _call(values: ChainValues): Promise<ChainValues> {\n const text = values[this.inputKey];\n const moderationRequest: OpenAIClient.ModerationCreateParams = {\n input: text,\n };\n let mod;\n try {\n mod = await this.caller.call(() =>\n this.client.moderations.create(moderationRequest)\n );\n } catch (error) {\n // eslint-disable-next-line no-instanceof/no-instanceof\n if (error instanceof Error) {\n throw error;\n } else {\n throw new Error(error as string);\n }\n }\n const output = this._moderate(text, mod.results[0]);\n return {\n [this.outputKey]: output,\n results: mod.results,\n };\n }\n\n _chainType() {\n return \"moderation_chain\";\n }\n\n get inputKeys(): string[] {\n return [this.inputKey];\n }\n\n get outputKeys(): string[] {\n return [this.outputKey];\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA,IAAa,wBAAb,cACUA,uBAEV;CACE,OAAO,UAAU;AACf,SAAO;CACR;CAED,IAAI,aAAoD;AACtD,SAAO,EACL,cAAc,iBACf;CACF;CAED,WAAW;CAEX,YAAY;CAEZ;CAEA;CAEA;CAEA;CAEA;CAEA;CAEA,YAAYC,QAAqC;EAC/C,MAAM,OAAO;EACb,KAAK,aAAa,QAAQ,cAAc;EACxC,KAAK,eACH,QAAQ,UACR,QAAQ,uEACe,iBAAiB;AAE1C,MAAI,CAAC,KAAK,aACR,OAAM,IAAI,MAAM;EAGlB,KAAK,qBAAqB,QAAQ;EAElC,KAAK,eAAe;GAClB,GAAG,QAAQ;GACX,QAAQ,KAAK;GACb,cAAc,KAAK;EACpB;EAED,KAAK,SAAS,IAAIC,gCAAa,KAAK;EAEpC,KAAK,SAAS,IAAIC,gDAAY,UAAU,CAAE;CAC3C;CAED,UAAUC,MAAcC,SAA0C;AAChE,MAAI,QAAQ,SAAS;GACnB,MAAM,WAAW;AACjB,OAAI,KAAK,WACP,OAAM,IAAI,MAAM;OAEhB,QAAO;EAEV;AACD,SAAO;CACR;CAED,MAAM,MAAMC,QAA2C;EACrD,MAAM,OAAO,OAAO,KAAK;EACzB,MAAMC,oBAAyD,EAC7D,OAAO,KACR;EACD,IAAI;AACJ,MAAI;GACF,MAAM,MAAM,KAAK,OAAO,KAAK,MAC3B,KAAK,OAAO,YAAY,OAAO,kBAAkB,CAClD;EACF,SAAQ,OAAO;AAEd,OAAI,iBAAiB,MACnB,OAAM;OAEN,OAAM,IAAI,MAAM;EAEnB;EACD,MAAM,SAAS,KAAK,UAAU,MAAM,IAAI,QAAQ,GAAG;AACnD,SAAO;IACJ,KAAK,YAAY;GAClB,SAAS,IAAI;EACd;CACF;CAED,aAAa;AACX,SAAO;CACR;CAED,IAAI,YAAsB;AACxB,SAAO,CAAC,KAAK,QAAS;CACvB;CAED,IAAI,aAAuB;AACzB,SAAO,CAAC,KAAK,SAAU;CACxB;AACF"}
@@ -1,74 +0,0 @@
1
- import { BaseChain, ChainInputs } from "./base.cjs";
2
- import { ChainValues } from "@langchain/core/utils/types";
3
- import { ClientOptions, OpenAIClient } from "@langchain/openai";
4
- import { AsyncCaller, AsyncCallerParams } from "@langchain/core/utils/async_caller";
5
-
6
- //#region src/chains/openai_moderation.d.ts
7
-
8
- /**
9
- * Interface for the input parameters of the OpenAIModerationChain class.
10
- */
11
- interface OpenAIModerationChainInput extends ChainInputs, AsyncCallerParams {
12
- apiKey?: string;
13
- /** @deprecated Use "apiKey" instead. */
14
- openAIApiKey?: string;
15
- openAIOrganization?: string;
16
- throwError?: boolean;
17
- configuration?: ClientOptions;
18
- }
19
- /**
20
- * Class representing a chain for moderating text using the OpenAI
21
- * Moderation API. It extends the BaseChain class and implements the
22
- * OpenAIModerationChainInput interface.
23
- * @example
24
- * ```typescript
25
- * const moderation = new OpenAIModerationChain({ throwError: true });
26
- *
27
- * const badString = "Bad naughty words from user";
28
- *
29
- * try {
30
- * const { output: moderatedContent, results } = await moderation.call({
31
- * input: badString,
32
- * });
33
- *
34
- * if (results[0].category_scores["harassment/threatening"] > 0.01) {
35
- * throw new Error("Harassment detected!");
36
- * }
37
- *
38
- * const model = new OpenAI({ temperature: 0 });
39
- * const promptTemplate = "Hello, how are you today {person}?";
40
- * const prompt = new PromptTemplate({
41
- * template: promptTemplate,
42
- * inputVariables: ["person"],
43
- * });
44
- * const chain = new LLMChain({ llm: model, prompt });
45
- * const response = await chain.call({ person: moderatedContent });
46
- * console.log({ response });
47
- * } catch (error) {
48
- * console.error("Naughty words detected!");
49
- * }
50
- * ```
51
- */
52
- declare class OpenAIModerationChain extends BaseChain implements OpenAIModerationChainInput {
53
- static lc_name(): string;
54
- get lc_secrets(): {
55
- [key: string]: string;
56
- } | undefined;
57
- inputKey: string;
58
- outputKey: string;
59
- openAIApiKey?: string;
60
- openAIOrganization?: string;
61
- clientConfig: ClientOptions;
62
- client: OpenAIClient;
63
- throwError: boolean;
64
- caller: AsyncCaller;
65
- constructor(fields?: OpenAIModerationChainInput);
66
- _moderate(text: string, results: OpenAIClient.Moderation): string;
67
- _call(values: ChainValues): Promise<ChainValues>;
68
- _chainType(): string;
69
- get inputKeys(): string[];
70
- get outputKeys(): string[];
71
- }
72
- //#endregion
73
- export { OpenAIModerationChain };
74
- //# sourceMappingURL=openai_moderation.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai_moderation.d.cts","names":["ClientOptions","OpenAIClient","ChainValues","AsyncCaller","AsyncCallerParams","BaseChain","ChainInputs","OpenAIModerationChainInput","OpenAIModerationChain","Moderation","Promise"],"sources":["../../src/chains/openai_moderation.d.ts"],"sourcesContent":["import { type ClientOptions, OpenAIClient } from \"@langchain/openai\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { AsyncCaller, AsyncCallerParams } from \"@langchain/core/utils/async_caller\";\nimport { BaseChain, ChainInputs } from \"./base.js\";\n/**\n * Interface for the input parameters of the OpenAIModerationChain class.\n */\nexport interface OpenAIModerationChainInput extends ChainInputs, AsyncCallerParams {\n apiKey?: string;\n /** @deprecated Use \"apiKey\" instead. */\n openAIApiKey?: string;\n openAIOrganization?: string;\n throwError?: boolean;\n configuration?: ClientOptions;\n}\n/**\n * Class representing a chain for moderating text using the OpenAI\n * Moderation API. It extends the BaseChain class and implements the\n * OpenAIModerationChainInput interface.\n * @example\n * ```typescript\n * const moderation = new OpenAIModerationChain({ throwError: true });\n *\n * const badString = \"Bad naughty words from user\";\n *\n * try {\n * const { output: moderatedContent, results } = await moderation.call({\n * input: badString,\n * });\n *\n * if (results[0].category_scores[\"harassment/threatening\"] > 0.01) {\n * throw new Error(\"Harassment detected!\");\n * }\n *\n * const model = new OpenAI({ temperature: 0 });\n * const promptTemplate = \"Hello, how are you today {person}?\";\n * const prompt = new PromptTemplate({\n * template: promptTemplate,\n * inputVariables: [\"person\"],\n * });\n * const chain = new LLMChain({ llm: model, prompt });\n * const response = await chain.call({ person: moderatedContent });\n * console.log({ response });\n * } catch (error) {\n * console.error(\"Naughty words detected!\");\n * }\n * ```\n */\nexport declare class OpenAIModerationChain extends BaseChain implements OpenAIModerationChainInput {\n static lc_name(): string;\n get lc_secrets(): {\n [key: string]: string;\n } | undefined;\n inputKey: string;\n outputKey: string;\n openAIApiKey?: string;\n openAIOrganization?: string;\n clientConfig: ClientOptions;\n client: OpenAIClient;\n throwError: boolean;\n caller: AsyncCaller;\n constructor(fields?: OpenAIModerationChainInput);\n _moderate(text: string, results: OpenAIClient.Moderation): string;\n _call(values: ChainValues): Promise<ChainValues>;\n _chainType(): string;\n get inputKeys(): string[];\n get outputKeys(): string[];\n}\n"],"mappings":";;;;;;;;;AAOA;AAA2C,UAA1BO,0BAAAA,SAAmCD,WAAT,EAAsBF,iBAAtB,CAAA;EAAA,MAMvBJ,CAAAA,EAAAA,MAAAA;EAAa;EAN8B,YAAEI,CAAAA,EAAAA,MAAAA;EAAiB,kBAAA,CAAA,EAAA,MAAA;EAyC7DI,UAAAA,CAAAA,EAAAA,OAAAA;EAAqB,aAAA,CAAA,EAnCtBR,aAmCsB;;;;;;;;;;;AAAwD;;;;;;;;;;;;;;;;;;;;;;;;cAA7EQ,qBAAAA,SAA8BH,SAAAA,YAAqBE;;;;;;;;;gBAStDP;UACNC;;UAEAE;uBACaI;mCACYN,YAAAA,CAAaQ;gBAChCP,cAAcQ,QAAQR"}
@@ -1,74 +0,0 @@
1
- import { BaseChain, ChainInputs } from "./base.js";
2
- import { ChainValues } from "@langchain/core/utils/types";
3
- import { ClientOptions, OpenAIClient } from "@langchain/openai";
4
- import { AsyncCaller, AsyncCallerParams } from "@langchain/core/utils/async_caller";
5
-
6
- //#region src/chains/openai_moderation.d.ts
7
-
8
- /**
9
- * Interface for the input parameters of the OpenAIModerationChain class.
10
- */
11
- interface OpenAIModerationChainInput extends ChainInputs, AsyncCallerParams {
12
- apiKey?: string;
13
- /** @deprecated Use "apiKey" instead. */
14
- openAIApiKey?: string;
15
- openAIOrganization?: string;
16
- throwError?: boolean;
17
- configuration?: ClientOptions;
18
- }
19
- /**
20
- * Class representing a chain for moderating text using the OpenAI
21
- * Moderation API. It extends the BaseChain class and implements the
22
- * OpenAIModerationChainInput interface.
23
- * @example
24
- * ```typescript
25
- * const moderation = new OpenAIModerationChain({ throwError: true });
26
- *
27
- * const badString = "Bad naughty words from user";
28
- *
29
- * try {
30
- * const { output: moderatedContent, results } = await moderation.call({
31
- * input: badString,
32
- * });
33
- *
34
- * if (results[0].category_scores["harassment/threatening"] > 0.01) {
35
- * throw new Error("Harassment detected!");
36
- * }
37
- *
38
- * const model = new OpenAI({ temperature: 0 });
39
- * const promptTemplate = "Hello, how are you today {person}?";
40
- * const prompt = new PromptTemplate({
41
- * template: promptTemplate,
42
- * inputVariables: ["person"],
43
- * });
44
- * const chain = new LLMChain({ llm: model, prompt });
45
- * const response = await chain.call({ person: moderatedContent });
46
- * console.log({ response });
47
- * } catch (error) {
48
- * console.error("Naughty words detected!");
49
- * }
50
- * ```
51
- */
52
- declare class OpenAIModerationChain extends BaseChain implements OpenAIModerationChainInput {
53
- static lc_name(): string;
54
- get lc_secrets(): {
55
- [key: string]: string;
56
- } | undefined;
57
- inputKey: string;
58
- outputKey: string;
59
- openAIApiKey?: string;
60
- openAIOrganization?: string;
61
- clientConfig: ClientOptions;
62
- client: OpenAIClient;
63
- throwError: boolean;
64
- caller: AsyncCaller;
65
- constructor(fields?: OpenAIModerationChainInput);
66
- _moderate(text: string, results: OpenAIClient.Moderation): string;
67
- _call(values: ChainValues): Promise<ChainValues>;
68
- _chainType(): string;
69
- get inputKeys(): string[];
70
- get outputKeys(): string[];
71
- }
72
- //#endregion
73
- export { OpenAIModerationChain };
74
- //# sourceMappingURL=openai_moderation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai_moderation.d.ts","names":["ClientOptions","OpenAIClient","ChainValues","AsyncCaller","AsyncCallerParams","BaseChain","ChainInputs","OpenAIModerationChainInput","OpenAIModerationChain","Moderation","Promise"],"sources":["../../src/chains/openai_moderation.d.ts"],"sourcesContent":["import { type ClientOptions, OpenAIClient } from \"@langchain/openai\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { AsyncCaller, AsyncCallerParams } from \"@langchain/core/utils/async_caller\";\nimport { BaseChain, ChainInputs } from \"./base.js\";\n/**\n * Interface for the input parameters of the OpenAIModerationChain class.\n */\nexport interface OpenAIModerationChainInput extends ChainInputs, AsyncCallerParams {\n apiKey?: string;\n /** @deprecated Use \"apiKey\" instead. */\n openAIApiKey?: string;\n openAIOrganization?: string;\n throwError?: boolean;\n configuration?: ClientOptions;\n}\n/**\n * Class representing a chain for moderating text using the OpenAI\n * Moderation API. It extends the BaseChain class and implements the\n * OpenAIModerationChainInput interface.\n * @example\n * ```typescript\n * const moderation = new OpenAIModerationChain({ throwError: true });\n *\n * const badString = \"Bad naughty words from user\";\n *\n * try {\n * const { output: moderatedContent, results } = await moderation.call({\n * input: badString,\n * });\n *\n * if (results[0].category_scores[\"harassment/threatening\"] > 0.01) {\n * throw new Error(\"Harassment detected!\");\n * }\n *\n * const model = new OpenAI({ temperature: 0 });\n * const promptTemplate = \"Hello, how are you today {person}?\";\n * const prompt = new PromptTemplate({\n * template: promptTemplate,\n * inputVariables: [\"person\"],\n * });\n * const chain = new LLMChain({ llm: model, prompt });\n * const response = await chain.call({ person: moderatedContent });\n * console.log({ response });\n * } catch (error) {\n * console.error(\"Naughty words detected!\");\n * }\n * ```\n */\nexport declare class OpenAIModerationChain extends BaseChain implements OpenAIModerationChainInput {\n static lc_name(): string;\n get lc_secrets(): {\n [key: string]: string;\n } | undefined;\n inputKey: string;\n outputKey: string;\n openAIApiKey?: string;\n openAIOrganization?: string;\n clientConfig: ClientOptions;\n client: OpenAIClient;\n throwError: boolean;\n caller: AsyncCaller;\n constructor(fields?: OpenAIModerationChainInput);\n _moderate(text: string, results: OpenAIClient.Moderation): string;\n _call(values: ChainValues): Promise<ChainValues>;\n _chainType(): string;\n get inputKeys(): string[];\n get outputKeys(): string[];\n}\n"],"mappings":";;;;;;;;;AAOA;AAA2C,UAA1BO,0BAAAA,SAAmCD,WAAT,EAAsBF,iBAAtB,CAAA;EAAA,MAMvBJ,CAAAA,EAAAA,MAAAA;EAAa;EAN8B,YAAEI,CAAAA,EAAAA,MAAAA;EAAiB,kBAAA,CAAA,EAAA,MAAA;EAyC7DI,UAAAA,CAAAA,EAAAA,OAAAA;EAAqB,aAAA,CAAA,EAnCtBR,aAmCsB;;;;;;;;;;;AAAwD;;;;;;;;;;;;;;;;;;;;;;;;cAA7EQ,qBAAAA,SAA8BH,SAAAA,YAAqBE;;;;;;;;;gBAStDP;UACNC;;UAEAE;uBACaI;mCACYN,YAAAA,CAAaQ;gBAChCP,cAAcQ,QAAQR"}
@@ -1,106 +0,0 @@
1
- import { BaseChain } from "./base.js";
2
- import { OpenAIClient } from "@langchain/openai";
3
- import { AsyncCaller } from "@langchain/core/utils/async_caller";
4
- import { getEnvironmentVariable } from "@langchain/core/utils/env";
5
-
6
- //#region src/chains/openai_moderation.ts
7
- /**
8
- * Class representing a chain for moderating text using the OpenAI
9
- * Moderation API. It extends the BaseChain class and implements the
10
- * OpenAIModerationChainInput interface.
11
- * @example
12
- * ```typescript
13
- * const moderation = new OpenAIModerationChain({ throwError: true });
14
- *
15
- * const badString = "Bad naughty words from user";
16
- *
17
- * try {
18
- * const { output: moderatedContent, results } = await moderation.call({
19
- * input: badString,
20
- * });
21
- *
22
- * if (results[0].category_scores["harassment/threatening"] > 0.01) {
23
- * throw new Error("Harassment detected!");
24
- * }
25
- *
26
- * const model = new OpenAI({ temperature: 0 });
27
- * const promptTemplate = "Hello, how are you today {person}?";
28
- * const prompt = new PromptTemplate({
29
- * template: promptTemplate,
30
- * inputVariables: ["person"],
31
- * });
32
- * const chain = new LLMChain({ llm: model, prompt });
33
- * const response = await chain.call({ person: moderatedContent });
34
- * console.log({ response });
35
- * } catch (error) {
36
- * console.error("Naughty words detected!");
37
- * }
38
- * ```
39
- */
40
- var OpenAIModerationChain = class extends BaseChain {
41
- static lc_name() {
42
- return "OpenAIModerationChain";
43
- }
44
- get lc_secrets() {
45
- return { openAIApiKey: "OPENAI_API_KEY" };
46
- }
47
- inputKey = "input";
48
- outputKey = "output";
49
- openAIApiKey;
50
- openAIOrganization;
51
- clientConfig;
52
- client;
53
- throwError;
54
- caller;
55
- constructor(fields) {
56
- super(fields);
57
- this.throwError = fields?.throwError ?? false;
58
- this.openAIApiKey = fields?.apiKey ?? fields?.openAIApiKey ?? getEnvironmentVariable("OPENAI_API_KEY");
59
- if (!this.openAIApiKey) throw new Error("OpenAI API key not found");
60
- this.openAIOrganization = fields?.openAIOrganization;
61
- this.clientConfig = {
62
- ...fields?.configuration,
63
- apiKey: this.openAIApiKey,
64
- organization: this.openAIOrganization
65
- };
66
- this.client = new OpenAIClient(this.clientConfig);
67
- this.caller = new AsyncCaller(fields ?? {});
68
- }
69
- _moderate(text, results) {
70
- if (results.flagged) {
71
- const errorStr = "Text was found that violates OpenAI's content policy.";
72
- if (this.throwError) throw new Error(errorStr);
73
- else return errorStr;
74
- }
75
- return text;
76
- }
77
- async _call(values) {
78
- const text = values[this.inputKey];
79
- const moderationRequest = { input: text };
80
- let mod;
81
- try {
82
- mod = await this.caller.call(() => this.client.moderations.create(moderationRequest));
83
- } catch (error) {
84
- if (error instanceof Error) throw error;
85
- else throw new Error(error);
86
- }
87
- const output = this._moderate(text, mod.results[0]);
88
- return {
89
- [this.outputKey]: output,
90
- results: mod.results
91
- };
92
- }
93
- _chainType() {
94
- return "moderation_chain";
95
- }
96
- get inputKeys() {
97
- return [this.inputKey];
98
- }
99
- get outputKeys() {
100
- return [this.outputKey];
101
- }
102
- };
103
-
104
- //#endregion
105
- export { OpenAIModerationChain };
106
- //# sourceMappingURL=openai_moderation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openai_moderation.js","names":["fields?: OpenAIModerationChainInput","text: string","results: OpenAIClient.Moderation","values: ChainValues","moderationRequest: OpenAIClient.ModerationCreateParams"],"sources":["../../src/chains/openai_moderation.ts"],"sourcesContent":["import { type ClientOptions, OpenAIClient } from \"@langchain/openai\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport {\n AsyncCaller,\n AsyncCallerParams,\n} from \"@langchain/core/utils/async_caller\";\nimport { getEnvironmentVariable } from \"@langchain/core/utils/env\";\nimport { BaseChain, ChainInputs } from \"./base.js\";\n\n/**\n * Interface for the input parameters of the OpenAIModerationChain class.\n */\nexport interface OpenAIModerationChainInput\n extends ChainInputs,\n AsyncCallerParams {\n apiKey?: string;\n /** @deprecated Use \"apiKey\" instead. */\n openAIApiKey?: string;\n openAIOrganization?: string;\n throwError?: boolean;\n configuration?: ClientOptions;\n}\n\n/**\n * Class representing a chain for moderating text using the OpenAI\n * Moderation API. It extends the BaseChain class and implements the\n * OpenAIModerationChainInput interface.\n * @example\n * ```typescript\n * const moderation = new OpenAIModerationChain({ throwError: true });\n *\n * const badString = \"Bad naughty words from user\";\n *\n * try {\n * const { output: moderatedContent, results } = await moderation.call({\n * input: badString,\n * });\n *\n * if (results[0].category_scores[\"harassment/threatening\"] > 0.01) {\n * throw new Error(\"Harassment detected!\");\n * }\n *\n * const model = new OpenAI({ temperature: 0 });\n * const promptTemplate = \"Hello, how are you today {person}?\";\n * const prompt = new PromptTemplate({\n * template: promptTemplate,\n * inputVariables: [\"person\"],\n * });\n * const chain = new LLMChain({ llm: model, prompt });\n * const response = await chain.call({ person: moderatedContent });\n * console.log({ response });\n * } catch (error) {\n * console.error(\"Naughty words detected!\");\n * }\n * ```\n */\nexport class OpenAIModerationChain\n extends BaseChain\n implements OpenAIModerationChainInput\n{\n static lc_name() {\n return \"OpenAIModerationChain\";\n }\n\n get lc_secrets(): { [key: string]: string } | undefined {\n return {\n openAIApiKey: \"OPENAI_API_KEY\",\n };\n }\n\n inputKey = \"input\";\n\n outputKey = \"output\";\n\n openAIApiKey?: string;\n\n openAIOrganization?: string;\n\n clientConfig: ClientOptions;\n\n client: OpenAIClient;\n\n throwError: boolean;\n\n caller: AsyncCaller;\n\n constructor(fields?: OpenAIModerationChainInput) {\n super(fields);\n this.throwError = fields?.throwError ?? false;\n this.openAIApiKey =\n fields?.apiKey ??\n fields?.openAIApiKey ??\n getEnvironmentVariable(\"OPENAI_API_KEY\");\n\n if (!this.openAIApiKey) {\n throw new Error(\"OpenAI API key not found\");\n }\n\n this.openAIOrganization = fields?.openAIOrganization;\n\n this.clientConfig = {\n ...fields?.configuration,\n apiKey: this.openAIApiKey,\n organization: this.openAIOrganization,\n };\n\n this.client = new OpenAIClient(this.clientConfig);\n\n this.caller = new AsyncCaller(fields ?? {});\n }\n\n _moderate(text: string, results: OpenAIClient.Moderation): string {\n if (results.flagged) {\n const errorStr = \"Text was found that violates OpenAI's content policy.\";\n if (this.throwError) {\n throw new Error(errorStr);\n } else {\n return errorStr;\n }\n }\n return text;\n }\n\n async _call(values: ChainValues): Promise<ChainValues> {\n const text = values[this.inputKey];\n const moderationRequest: OpenAIClient.ModerationCreateParams = {\n input: text,\n };\n let mod;\n try {\n mod = await this.caller.call(() =>\n this.client.moderations.create(moderationRequest)\n );\n } catch (error) {\n // eslint-disable-next-line no-instanceof/no-instanceof\n if (error instanceof Error) {\n throw error;\n } else {\n throw new Error(error as string);\n }\n }\n const output = this._moderate(text, mod.results[0]);\n return {\n [this.outputKey]: output,\n results: mod.results,\n };\n }\n\n _chainType() {\n return \"moderation_chain\";\n }\n\n get inputKeys(): string[] {\n return [this.inputKey];\n }\n\n get outputKeys(): string[] {\n return [this.outputKey];\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA,IAAa,wBAAb,cACU,UAEV;CACE,OAAO,UAAU;AACf,SAAO;CACR;CAED,IAAI,aAAoD;AACtD,SAAO,EACL,cAAc,iBACf;CACF;CAED,WAAW;CAEX,YAAY;CAEZ;CAEA;CAEA;CAEA;CAEA;CAEA;CAEA,YAAYA,QAAqC;EAC/C,MAAM,OAAO;EACb,KAAK,aAAa,QAAQ,cAAc;EACxC,KAAK,eACH,QAAQ,UACR,QAAQ,gBACR,uBAAuB,iBAAiB;AAE1C,MAAI,CAAC,KAAK,aACR,OAAM,IAAI,MAAM;EAGlB,KAAK,qBAAqB,QAAQ;EAElC,KAAK,eAAe;GAClB,GAAG,QAAQ;GACX,QAAQ,KAAK;GACb,cAAc,KAAK;EACpB;EAED,KAAK,SAAS,IAAI,aAAa,KAAK;EAEpC,KAAK,SAAS,IAAI,YAAY,UAAU,CAAE;CAC3C;CAED,UAAUC,MAAcC,SAA0C;AAChE,MAAI,QAAQ,SAAS;GACnB,MAAM,WAAW;AACjB,OAAI,KAAK,WACP,OAAM,IAAI,MAAM;OAEhB,QAAO;EAEV;AACD,SAAO;CACR;CAED,MAAM,MAAMC,QAA2C;EACrD,MAAM,OAAO,OAAO,KAAK;EACzB,MAAMC,oBAAyD,EAC7D,OAAO,KACR;EACD,IAAI;AACJ,MAAI;GACF,MAAM,MAAM,KAAK,OAAO,KAAK,MAC3B,KAAK,OAAO,YAAY,OAAO,kBAAkB,CAClD;EACF,SAAQ,OAAO;AAEd,OAAI,iBAAiB,MACnB,OAAM;OAEN,OAAM,IAAI,MAAM;EAEnB;EACD,MAAM,SAAS,KAAK,UAAU,MAAM,IAAI,QAAQ,GAAG;AACnD,SAAO;IACJ,KAAK,YAAY;GAClB,SAAS,IAAI;EACd;CACF;CAED,aAAa;AACX,SAAO;CACR;CAED,IAAI,YAAsB;AACxB,SAAO,CAAC,KAAK,QAAS;CACvB;CAED,IAAI,aAAuB;AACzB,SAAO,CAAC,KAAK,SAAU;CACxB;AACF"}