langchain 1.0.0-alpha.5 → 1.0.0-alpha.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (405) 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 +2 -5
  4. package/dist/agents/ReactAgent.d.cts.map +1 -1
  5. package/dist/agents/ReactAgent.d.ts +2 -5
  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/annotation.cjs.map +1 -1
  10. package/dist/agents/annotation.d.cts +13 -8
  11. package/dist/agents/annotation.d.cts.map +1 -1
  12. package/dist/agents/annotation.d.ts +13 -8
  13. package/dist/agents/annotation.d.ts.map +1 -1
  14. package/dist/agents/annotation.js.map +1 -1
  15. package/dist/agents/createAgent.cjs.map +1 -1
  16. package/dist/agents/createAgent.js.map +1 -1
  17. package/dist/agents/index.cjs +2 -2
  18. package/dist/agents/index.cjs.map +1 -1
  19. package/dist/agents/index.d.cts +50 -50
  20. package/dist/agents/index.d.cts.map +1 -1
  21. package/dist/agents/index.d.ts +50 -50
  22. package/dist/agents/index.d.ts.map +1 -1
  23. package/dist/agents/index.js +2 -2
  24. package/dist/agents/index.js.map +1 -1
  25. package/dist/agents/interrupt.d.cts +14 -1
  26. package/dist/agents/interrupt.d.cts.map +1 -1
  27. package/dist/agents/interrupt.d.ts +14 -1
  28. package/dist/agents/interrupt.d.ts.map +1 -1
  29. package/dist/agents/middlewareAgent/ReactAgent.cjs +273 -66
  30. package/dist/agents/middlewareAgent/ReactAgent.cjs.map +1 -1
  31. package/dist/agents/middlewareAgent/ReactAgent.d.cts +102 -16
  32. package/dist/agents/middlewareAgent/ReactAgent.d.cts.map +1 -1
  33. package/dist/agents/middlewareAgent/ReactAgent.d.ts +102 -16
  34. package/dist/agents/middlewareAgent/ReactAgent.d.ts.map +1 -1
  35. package/dist/agents/middlewareAgent/ReactAgent.js +275 -68
  36. package/dist/agents/middlewareAgent/ReactAgent.js.map +1 -1
  37. package/dist/agents/middlewareAgent/annotation.cjs +12 -6
  38. package/dist/agents/middlewareAgent/annotation.cjs.map +1 -1
  39. package/dist/agents/middlewareAgent/annotation.js +12 -6
  40. package/dist/agents/middlewareAgent/annotation.js.map +1 -1
  41. package/dist/agents/middlewareAgent/constants.d.cts +5 -0
  42. package/dist/agents/middlewareAgent/constants.d.cts.map +1 -0
  43. package/dist/agents/middlewareAgent/constants.d.ts +5 -0
  44. package/dist/agents/middlewareAgent/constants.d.ts.map +1 -0
  45. package/dist/agents/middlewareAgent/index.cjs.map +1 -1
  46. package/dist/agents/middlewareAgent/index.js.map +1 -1
  47. package/dist/agents/middlewareAgent/middleware/bigTool.cjs +162 -0
  48. package/dist/agents/middlewareAgent/middleware/bigTool.cjs.map +1 -0
  49. package/dist/agents/middlewareAgent/middleware/bigTool.d.cts +113 -0
  50. package/dist/agents/middlewareAgent/middleware/bigTool.d.cts.map +1 -0
  51. package/dist/agents/middlewareAgent/middleware/bigTool.d.ts +113 -0
  52. package/dist/agents/middlewareAgent/middleware/bigTool.d.ts.map +1 -0
  53. package/dist/agents/middlewareAgent/middleware/bigTool.js +161 -0
  54. package/dist/agents/middlewareAgent/middleware/bigTool.js.map +1 -0
  55. package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.cjs +58 -0
  56. package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.cjs.map +1 -0
  57. package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.d.cts +46 -0
  58. package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.d.cts.map +1 -0
  59. package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.d.ts +46 -0
  60. package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.d.ts.map +1 -0
  61. package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.js +58 -0
  62. package/dist/agents/middlewareAgent/middleware/dynamicSystemPrompt.js.map +1 -0
  63. package/dist/agents/middlewareAgent/middleware/hitl.cjs +311 -0
  64. package/dist/agents/middlewareAgent/middleware/hitl.cjs.map +1 -0
  65. package/dist/agents/middlewareAgent/middleware/hitl.d.cts +419 -0
  66. package/dist/agents/middlewareAgent/middleware/hitl.d.cts.map +1 -0
  67. package/dist/agents/middlewareAgent/middleware/hitl.d.ts +419 -0
  68. package/dist/agents/middlewareAgent/middleware/hitl.d.ts.map +1 -0
  69. package/dist/agents/middlewareAgent/middleware/hitl.js +310 -0
  70. package/dist/agents/middlewareAgent/middleware/hitl.js.map +1 -0
  71. package/dist/agents/middlewareAgent/middleware/index.cjs +32 -0
  72. package/dist/agents/middlewareAgent/middleware/index.cjs.map +1 -0
  73. package/dist/agents/middlewareAgent/middleware/index.d.cts +6 -0
  74. package/dist/agents/middlewareAgent/middleware/index.d.ts +6 -0
  75. package/dist/agents/middlewareAgent/middleware/index.js +21 -0
  76. package/dist/agents/middlewareAgent/middleware/index.js.map +1 -0
  77. package/dist/agents/middlewareAgent/{middlewares → middleware}/promptCaching.cjs +72 -27
  78. package/dist/agents/middlewareAgent/middleware/promptCaching.cjs.map +1 -0
  79. package/dist/agents/middlewareAgent/{middlewares → middleware}/promptCaching.d.cts +60 -15
  80. package/dist/agents/middlewareAgent/middleware/promptCaching.d.cts.map +1 -0
  81. package/dist/agents/middlewareAgent/{middlewares → middleware}/promptCaching.d.ts +60 -15
  82. package/dist/agents/middlewareAgent/middleware/promptCaching.d.ts.map +1 -0
  83. package/dist/agents/middlewareAgent/{middlewares → middleware}/promptCaching.js +71 -26
  84. package/dist/agents/middlewareAgent/middleware/promptCaching.js.map +1 -0
  85. package/dist/agents/middlewareAgent/{middlewares → middleware}/summarization.cjs +35 -23
  86. package/dist/agents/middlewareAgent/middleware/summarization.cjs.map +1 -0
  87. package/dist/agents/middlewareAgent/{middlewares → middleware}/summarization.d.cts +7 -5
  88. package/dist/agents/middlewareAgent/middleware/summarization.d.cts.map +1 -0
  89. package/dist/agents/middlewareAgent/{middlewares → middleware}/summarization.d.ts +7 -5
  90. package/dist/agents/middlewareAgent/middleware/summarization.d.ts.map +1 -0
  91. package/dist/agents/middlewareAgent/{middlewares → middleware}/summarization.js +29 -17
  92. package/dist/agents/middlewareAgent/middleware/summarization.js.map +1 -0
  93. package/dist/agents/middlewareAgent/middleware.cjs +8 -5
  94. package/dist/agents/middlewareAgent/middleware.cjs.map +1 -1
  95. package/dist/agents/middlewareAgent/middleware.d.cts +67 -7
  96. package/dist/agents/middlewareAgent/middleware.d.cts.map +1 -1
  97. package/dist/agents/middlewareAgent/middleware.d.ts +67 -7
  98. package/dist/agents/middlewareAgent/middleware.d.ts.map +1 -1
  99. package/dist/agents/middlewareAgent/middleware.js +8 -5
  100. package/dist/agents/middlewareAgent/middleware.js.map +1 -1
  101. package/dist/agents/middlewareAgent/nodes/AfterModalNode.cjs +2 -2
  102. package/dist/agents/middlewareAgent/nodes/AfterModalNode.cjs.map +1 -1
  103. package/dist/agents/middlewareAgent/nodes/AfterModalNode.js +2 -2
  104. package/dist/agents/middlewareAgent/nodes/AfterModalNode.js.map +1 -1
  105. package/dist/agents/middlewareAgent/nodes/AgentNode.cjs +125 -83
  106. package/dist/agents/middlewareAgent/nodes/AgentNode.cjs.map +1 -1
  107. package/dist/agents/middlewareAgent/nodes/AgentNode.js +128 -86
  108. package/dist/agents/middlewareAgent/nodes/AgentNode.js.map +1 -1
  109. package/dist/agents/middlewareAgent/nodes/BeforeModalNode.cjs +2 -2
  110. package/dist/agents/middlewareAgent/nodes/BeforeModalNode.cjs.map +1 -1
  111. package/dist/agents/middlewareAgent/nodes/BeforeModalNode.js +2 -2
  112. package/dist/agents/middlewareAgent/nodes/BeforeModalNode.js.map +1 -1
  113. package/dist/agents/middlewareAgent/nodes/middleware.cjs +42 -17
  114. package/dist/agents/middlewareAgent/nodes/middleware.cjs.map +1 -1
  115. package/dist/agents/middlewareAgent/nodes/middleware.js +42 -18
  116. package/dist/agents/middlewareAgent/nodes/middleware.js.map +1 -1
  117. package/dist/agents/middlewareAgent/nodes/utils.cjs +30 -16
  118. package/dist/agents/middlewareAgent/nodes/utils.cjs.map +1 -1
  119. package/dist/agents/middlewareAgent/nodes/utils.js +28 -14
  120. package/dist/agents/middlewareAgent/nodes/utils.js.map +1 -1
  121. package/dist/agents/middlewareAgent/types.d.cts +162 -88
  122. package/dist/agents/middlewareAgent/types.d.cts.map +1 -1
  123. package/dist/agents/middlewareAgent/types.d.ts +162 -88
  124. package/dist/agents/middlewareAgent/types.d.ts.map +1 -1
  125. package/dist/agents/model.cjs +13 -0
  126. package/dist/agents/model.cjs.map +1 -0
  127. package/dist/agents/model.js +11 -0
  128. package/dist/agents/model.js.map +1 -0
  129. package/dist/agents/nodes/AgentNode.cjs +60 -32
  130. package/dist/agents/nodes/AgentNode.cjs.map +1 -1
  131. package/dist/agents/nodes/AgentNode.js +61 -33
  132. package/dist/agents/nodes/AgentNode.js.map +1 -1
  133. package/dist/agents/nodes/ToolNode.cjs +4 -4
  134. package/dist/agents/nodes/ToolNode.cjs.map +1 -1
  135. package/dist/agents/nodes/ToolNode.d.cts +2 -3
  136. package/dist/agents/nodes/ToolNode.d.cts.map +1 -1
  137. package/dist/agents/nodes/ToolNode.d.ts +1 -2
  138. package/dist/agents/nodes/ToolNode.d.ts.map +1 -1
  139. package/dist/agents/nodes/ToolNode.js +5 -5
  140. package/dist/agents/nodes/ToolNode.js.map +1 -1
  141. package/dist/agents/responses.cjs +53 -11
  142. package/dist/agents/responses.cjs.map +1 -1
  143. package/dist/agents/responses.d.cts +12 -20
  144. package/dist/agents/responses.d.cts.map +1 -1
  145. package/dist/agents/responses.d.ts +12 -20
  146. package/dist/agents/responses.d.ts.map +1 -1
  147. package/dist/agents/responses.js +53 -12
  148. package/dist/agents/responses.js.map +1 -1
  149. package/dist/agents/types.d.cts +3 -6
  150. package/dist/agents/types.d.cts.map +1 -1
  151. package/dist/agents/types.d.ts +3 -6
  152. package/dist/agents/types.d.ts.map +1 -1
  153. package/dist/agents/utils.cjs +11 -29
  154. package/dist/agents/utils.cjs.map +1 -1
  155. package/dist/agents/utils.js +9 -26
  156. package/dist/agents/utils.js.map +1 -1
  157. package/dist/agents/withAgentName.cjs.map +1 -1
  158. package/dist/agents/withAgentName.js.map +1 -1
  159. package/dist/chains/api/prompts.cjs.map +1 -1
  160. package/dist/chains/api/prompts.js.map +1 -1
  161. package/dist/chains/constitutional_ai/constitutional_chain.cjs.map +1 -1
  162. package/dist/chains/constitutional_ai/constitutional_chain.js.map +1 -1
  163. package/dist/chains/index.cjs +0 -3
  164. package/dist/chains/index.cjs.map +1 -1
  165. package/dist/chains/index.d.cts +1 -2
  166. package/dist/chains/index.d.ts +1 -2
  167. package/dist/chains/index.js +1 -3
  168. package/dist/chains/index.js.map +1 -1
  169. package/dist/chains/openai_functions/extraction.cjs.map +1 -1
  170. package/dist/chains/openai_functions/extraction.d.cts +1 -3
  171. package/dist/chains/openai_functions/extraction.d.cts.map +1 -1
  172. package/dist/chains/openai_functions/extraction.d.ts +1 -3
  173. package/dist/chains/openai_functions/extraction.d.ts.map +1 -1
  174. package/dist/chains/openai_functions/extraction.js.map +1 -1
  175. package/dist/chains/openai_functions/index.cjs +0 -5
  176. package/dist/chains/openai_functions/index.cjs.map +1 -1
  177. package/dist/chains/openai_functions/index.d.cts +1 -2
  178. package/dist/chains/openai_functions/index.d.ts +1 -2
  179. package/dist/chains/openai_functions/index.js +1 -4
  180. package/dist/chains/openai_functions/index.js.map +1 -1
  181. package/dist/chains/openai_functions/openapi.cjs +4 -4
  182. package/dist/chains/openai_functions/openapi.cjs.map +1 -1
  183. package/dist/chains/openai_functions/openapi.d.cts +1 -1
  184. package/dist/chains/openai_functions/openapi.js +4 -4
  185. package/dist/chains/openai_functions/openapi.js.map +1 -1
  186. package/dist/chains/openai_functions/tagging.cjs.map +1 -1
  187. package/dist/chains/openai_functions/tagging.d.cts +1 -3
  188. package/dist/chains/openai_functions/tagging.d.cts.map +1 -1
  189. package/dist/chains/openai_functions/tagging.d.ts +1 -3
  190. package/dist/chains/openai_functions/tagging.d.ts.map +1 -1
  191. package/dist/chains/openai_functions/tagging.js.map +1 -1
  192. package/dist/chains/query_constructor/index.cjs +4 -4
  193. package/dist/chains/query_constructor/index.cjs.map +1 -1
  194. package/dist/chains/query_constructor/index.d.cts +4 -2
  195. package/dist/chains/query_constructor/index.d.cts.map +1 -1
  196. package/dist/chains/query_constructor/index.d.ts +4 -2
  197. package/dist/chains/query_constructor/index.d.ts.map +1 -1
  198. package/dist/chains/query_constructor/index.js +1 -1
  199. package/dist/chains/query_constructor/index.js.map +1 -1
  200. package/dist/chains/question_answering/load.d.ts +2 -2
  201. package/dist/chains/question_answering/load.d.ts.map +1 -1
  202. package/dist/chains/question_answering/map_reduce_prompts.cjs.map +1 -1
  203. package/dist/chains/question_answering/map_reduce_prompts.js.map +1 -1
  204. package/dist/chains/question_answering/refine_prompts.cjs.map +1 -1
  205. package/dist/chains/question_answering/refine_prompts.js.map +1 -1
  206. package/dist/chains/question_answering/stuff_prompts.cjs.map +1 -1
  207. package/dist/chains/question_answering/stuff_prompts.js.map +1 -1
  208. package/dist/chains/router/multi_prompt.cjs +4 -4
  209. package/dist/chains/router/multi_prompt.cjs.map +1 -1
  210. package/dist/chains/router/multi_prompt.js +1 -1
  211. package/dist/chains/router/multi_prompt.js.map +1 -1
  212. package/dist/chains/router/multi_retrieval_qa.cjs +4 -4
  213. package/dist/chains/router/multi_retrieval_qa.cjs.map +1 -1
  214. package/dist/chains/router/multi_retrieval_qa.js +1 -1
  215. package/dist/chains/router/multi_retrieval_qa.js.map +1 -1
  216. package/dist/chains/sql_db/sql_db_prompt.cjs.map +1 -1
  217. package/dist/chains/sql_db/sql_db_prompt.d.cts.map +1 -1
  218. package/dist/chains/sql_db/sql_db_prompt.d.ts.map +1 -1
  219. package/dist/chains/sql_db/sql_db_prompt.js.map +1 -1
  220. package/dist/chains/summarization/stuff_prompts.cjs.map +1 -1
  221. package/dist/chains/summarization/stuff_prompts.js.map +1 -1
  222. package/dist/chat_models/universal.cjs +8 -5
  223. package/dist/chat_models/universal.cjs.map +1 -1
  224. package/dist/chat_models/universal.d.cts +2 -2
  225. package/dist/chat_models/universal.d.cts.map +1 -1
  226. package/dist/chat_models/universal.d.ts +2 -2
  227. package/dist/chat_models/universal.d.ts.map +1 -1
  228. package/dist/chat_models/universal.js +8 -5
  229. package/dist/chat_models/universal.js.map +1 -1
  230. package/dist/document_loaders/fs/directory.cjs.map +1 -1
  231. package/dist/document_loaders/fs/directory.d.cts +0 -1
  232. package/dist/document_loaders/fs/directory.d.cts.map +1 -1
  233. package/dist/document_loaders/fs/directory.d.ts +0 -1
  234. package/dist/document_loaders/fs/directory.d.ts.map +1 -1
  235. package/dist/document_loaders/fs/directory.js.map +1 -1
  236. package/dist/document_loaders/fs/json.cjs +7 -1
  237. package/dist/document_loaders/fs/json.cjs.map +1 -1
  238. package/dist/document_loaders/fs/json.js +7 -1
  239. package/dist/document_loaders/fs/json.js.map +1 -1
  240. package/dist/embeddings/cache_backed.cjs +1 -1
  241. package/dist/embeddings/cache_backed.cjs.map +1 -1
  242. package/dist/embeddings/cache_backed.d.cts +1 -1
  243. package/dist/embeddings/cache_backed.d.ts +2 -2
  244. package/dist/embeddings/cache_backed.js +2 -2
  245. package/dist/embeddings/cache_backed.js.map +1 -1
  246. package/dist/evaluation/agents/trajectory.d.cts.map +1 -1
  247. package/dist/evaluation/comparison/pairwise.d.cts.map +1 -1
  248. package/dist/evaluation/criteria/criteria.d.cts.map +1 -1
  249. package/dist/evaluation/embedding_distance/base.cjs +2 -4
  250. package/dist/evaluation/embedding_distance/base.cjs.map +1 -1
  251. package/dist/evaluation/embedding_distance/base.js +2 -3
  252. package/dist/evaluation/embedding_distance/base.js.map +1 -1
  253. package/dist/evaluation/loader.cjs +7 -12
  254. package/dist/evaluation/loader.cjs.map +1 -1
  255. package/dist/evaluation/loader.d.cts +8 -2
  256. package/dist/evaluation/loader.d.cts.map +1 -1
  257. package/dist/evaluation/loader.d.ts +8 -2
  258. package/dist/evaluation/loader.d.ts.map +1 -1
  259. package/dist/evaluation/loader.js +7 -12
  260. package/dist/evaluation/loader.js.map +1 -1
  261. package/dist/hub/base.cjs.map +1 -1
  262. package/dist/hub/base.js.map +1 -1
  263. package/dist/index.cjs +38 -6
  264. package/dist/index.cjs.map +1 -1
  265. package/dist/index.d.cts +11 -4
  266. package/dist/index.d.ts +11 -4
  267. package/dist/index.js +18 -4
  268. package/dist/index.js.map +1 -1
  269. package/dist/langchain-core/dist/load/serializable.d.cts.map +1 -1
  270. package/dist/langchain-core/dist/messages/base.d.cts +24 -33
  271. package/dist/langchain-core/dist/messages/base.d.cts.map +1 -1
  272. package/dist/langchain-core/dist/messages/content/index.d.cts +21 -2
  273. package/dist/langchain-core/dist/messages/content/index.d.cts.map +1 -1
  274. package/dist/langchain-core/dist/messages/content/tools.d.cts +67 -6
  275. package/dist/langchain-core/dist/messages/content/tools.d.cts.map +1 -1
  276. package/dist/langchain-core/dist/messages/message.d.cts +598 -0
  277. package/dist/langchain-core/dist/messages/message.d.cts.map +1 -0
  278. package/dist/langchain-core/dist/messages/metadata.d.cts +97 -0
  279. package/dist/langchain-core/dist/messages/metadata.d.cts.map +1 -0
  280. package/dist/langchain-core/dist/messages/utils.d.cts +75 -0
  281. package/dist/langchain-core/dist/messages/utils.d.cts.map +1 -0
  282. package/dist/langchain-core/dist/prompt_values.d.cts.map +1 -1
  283. package/dist/langchain-core/dist/utils/types/index.d.cts.map +1 -1
  284. package/dist/libs/langchain-core/dist/load/serializable.d.ts.map +1 -1
  285. package/dist/libs/langchain-core/dist/messages/base.d.ts +24 -33
  286. package/dist/libs/langchain-core/dist/messages/base.d.ts.map +1 -1
  287. package/dist/libs/langchain-core/dist/messages/content/index.d.ts +21 -2
  288. package/dist/libs/langchain-core/dist/messages/content/index.d.ts.map +1 -1
  289. package/dist/libs/langchain-core/dist/messages/content/tools.d.ts +67 -6
  290. package/dist/libs/langchain-core/dist/messages/content/tools.d.ts.map +1 -1
  291. package/dist/libs/langchain-core/dist/messages/message.d.ts +598 -0
  292. package/dist/libs/langchain-core/dist/messages/message.d.ts.map +1 -0
  293. package/dist/libs/langchain-core/dist/messages/metadata.d.ts +97 -0
  294. package/dist/libs/langchain-core/dist/messages/metadata.d.ts.map +1 -0
  295. package/dist/libs/langchain-core/dist/messages/utils.d.ts +75 -0
  296. package/dist/libs/langchain-core/dist/messages/utils.d.ts.map +1 -0
  297. package/dist/libs/langchain-core/dist/prompt_values.d.ts.map +1 -1
  298. package/dist/libs/langchain-core/dist/utils/types/index.d.ts +2 -0
  299. package/dist/libs/langchain-core/dist/utils/types/index.d.ts.map +1 -1
  300. package/dist/libs/langchain-core/dist/utils/types/zod.d.ts +1 -0
  301. package/dist/load/import_map.cjs +3 -14
  302. package/dist/load/import_map.cjs.map +1 -1
  303. package/dist/load/import_map.js +3 -14
  304. package/dist/load/import_map.js.map +1 -1
  305. package/dist/memory/prompt.cjs.map +1 -1
  306. package/dist/memory/prompt.d.cts.map +1 -1
  307. package/dist/memory/prompt.d.ts.map +1 -1
  308. package/dist/memory/prompt.js.map +1 -1
  309. package/dist/output_parsers/combining.cjs +1 -1
  310. package/dist/output_parsers/combining.cjs.map +1 -1
  311. package/dist/output_parsers/combining.js +1 -1
  312. package/dist/output_parsers/combining.js.map +1 -1
  313. package/dist/output_parsers/expression_type_handlers/array_literal_expression_handler.cjs.map +1 -1
  314. package/dist/output_parsers/expression_type_handlers/array_literal_expression_handler.js.map +1 -1
  315. package/dist/output_parsers/expression_type_handlers/base.cjs +1 -1
  316. package/dist/output_parsers/expression_type_handlers/base.cjs.map +1 -1
  317. package/dist/output_parsers/expression_type_handlers/base.js +1 -1
  318. package/dist/output_parsers/expression_type_handlers/base.js.map +1 -1
  319. package/dist/output_parsers/regex.cjs.map +1 -1
  320. package/dist/output_parsers/regex.js.map +1 -1
  321. package/dist/output_parsers/structured.cjs +4 -4
  322. package/dist/output_parsers/structured.cjs.map +1 -1
  323. package/dist/output_parsers/structured.d.cts +1 -1
  324. package/dist/output_parsers/structured.d.cts.map +1 -1
  325. package/dist/output_parsers/structured.d.ts +1 -1
  326. package/dist/output_parsers/structured.d.ts.map +1 -1
  327. package/dist/output_parsers/structured.js +2 -2
  328. package/dist/output_parsers/structured.js.map +1 -1
  329. package/dist/retrievers/ensemble.cjs.map +1 -1
  330. package/dist/retrievers/ensemble.js.map +1 -1
  331. package/dist/storage/file_system.cjs +1 -1
  332. package/dist/storage/file_system.cjs.map +1 -1
  333. package/dist/storage/file_system.js +1 -1
  334. package/dist/storage/file_system.js.map +1 -1
  335. package/dist/tools/fs.cjs +5 -5
  336. package/dist/tools/fs.cjs.map +1 -1
  337. package/dist/tools/fs.d.cts +1 -1
  338. package/dist/tools/fs.d.cts.map +1 -1
  339. package/dist/tools/fs.d.ts +1 -1
  340. package/dist/tools/fs.d.ts.map +1 -1
  341. package/dist/tools/fs.js +1 -1
  342. package/dist/tools/fs.js.map +1 -1
  343. package/dist/tools/retriever.cjs +2 -2
  344. package/dist/tools/retriever.cjs.map +1 -1
  345. package/dist/tools/retriever.d.cts +1 -1
  346. package/dist/tools/retriever.d.cts.map +1 -1
  347. package/dist/tools/retriever.d.ts +1 -1
  348. package/dist/tools/retriever.d.ts.map +1 -1
  349. package/dist/tools/retriever.js +1 -1
  350. package/dist/tools/retriever.js.map +1 -1
  351. package/dist/tools/sql.cjs +1 -2
  352. package/dist/tools/sql.cjs.map +1 -1
  353. package/dist/tools/sql.d.cts +1 -1
  354. package/dist/tools/sql.d.cts.map +1 -1
  355. package/dist/tools/sql.d.ts +1 -1
  356. package/dist/tools/sql.d.ts.map +1 -1
  357. package/dist/tools/sql.js +1 -2
  358. package/dist/tools/sql.js.map +1 -1
  359. package/dist/types/expression-parser.d.cts +2 -0
  360. package/dist/types/expression-parser.d.cts.map +1 -1
  361. package/dist/types/expression-parser.d.ts +2 -0
  362. package/dist/types/expression-parser.d.ts.map +1 -1
  363. package/dist/util/hub.cjs +1 -1
  364. package/dist/util/hub.js +1 -1
  365. package/dist/util/openapi.cjs +1 -1
  366. package/dist/util/openapi.cjs.map +1 -1
  367. package/dist/util/openapi.js +1 -1
  368. package/dist/util/openapi.js.map +1 -1
  369. package/package.json +15 -21
  370. package/dist/agents/middlewareAgent/middlewares/hitl.cjs +0 -235
  371. package/dist/agents/middlewareAgent/middlewares/hitl.cjs.map +0 -1
  372. package/dist/agents/middlewareAgent/middlewares/hitl.d.cts +0 -199
  373. package/dist/agents/middlewareAgent/middlewares/hitl.d.cts.map +0 -1
  374. package/dist/agents/middlewareAgent/middlewares/hitl.d.ts +0 -199
  375. package/dist/agents/middlewareAgent/middlewares/hitl.d.ts.map +0 -1
  376. package/dist/agents/middlewareAgent/middlewares/hitl.js +0 -234
  377. package/dist/agents/middlewareAgent/middlewares/hitl.js.map +0 -1
  378. package/dist/agents/middlewareAgent/middlewares/index.cjs +0 -8
  379. package/dist/agents/middlewareAgent/middlewares/index.d.cts +0 -4
  380. package/dist/agents/middlewareAgent/middlewares/index.d.ts +0 -4
  381. package/dist/agents/middlewareAgent/middlewares/index.js +0 -5
  382. package/dist/agents/middlewareAgent/middlewares/promptCaching.cjs.map +0 -1
  383. package/dist/agents/middlewareAgent/middlewares/promptCaching.d.cts.map +0 -1
  384. package/dist/agents/middlewareAgent/middlewares/promptCaching.d.ts.map +0 -1
  385. package/dist/agents/middlewareAgent/middlewares/promptCaching.js.map +0 -1
  386. package/dist/agents/middlewareAgent/middlewares/summarization.cjs.map +0 -1
  387. package/dist/agents/middlewareAgent/middlewares/summarization.d.cts.map +0 -1
  388. package/dist/agents/middlewareAgent/middlewares/summarization.d.ts.map +0 -1
  389. package/dist/agents/middlewareAgent/middlewares/summarization.js.map +0 -1
  390. package/dist/chains/openai_functions/structured_output.cjs +0 -107
  391. package/dist/chains/openai_functions/structured_output.cjs.map +0 -1
  392. package/dist/chains/openai_functions/structured_output.d.cts +0 -38
  393. package/dist/chains/openai_functions/structured_output.d.cts.map +0 -1
  394. package/dist/chains/openai_functions/structured_output.d.ts +0 -38
  395. package/dist/chains/openai_functions/structured_output.d.ts.map +0 -1
  396. package/dist/chains/openai_functions/structured_output.js +0 -105
  397. package/dist/chains/openai_functions/structured_output.js.map +0 -1
  398. package/dist/chains/openai_moderation.cjs +0 -107
  399. package/dist/chains/openai_moderation.cjs.map +0 -1
  400. package/dist/chains/openai_moderation.d.cts +0 -74
  401. package/dist/chains/openai_moderation.d.cts.map +0 -1
  402. package/dist/chains/openai_moderation.d.ts +0 -74
  403. package/dist/chains/openai_moderation.d.ts.map +0 -1
  404. package/dist/chains/openai_moderation.js +0 -106
  405. package/dist/chains/openai_moderation.js.map +0 -1
@@ -118,7 +118,7 @@ var CacheBackedEmbeddings = class extends __langchain_core_embeddings.Embeddings
118
118
  const decoder = new TextDecoder();
119
119
  const encoderBackedStore = new require_storage_encoder_backed.EncoderBackedStore({
120
120
  store: documentEmbeddingStore,
121
- keyEncoder: (key) => (options?.namespace ?? "") + (0, __langchain_core_utils_hash.insecureHash)(key),
121
+ keyEncoder: (key) => (options?.namespace ?? "") + (0, __langchain_core_utils_hash.sha256)(key),
122
122
  valueSerializer: (value) => encoder.encode(JSON.stringify(value)),
123
123
  valueDeserializer: (serializedValue) => JSON.parse(decoder.decode(serializedValue))
124
124
  });
@@ -1 +1 @@
1
- {"version":3,"file":"cache_backed.cjs","names":["Embeddings","fields: CacheBackedEmbeddingsFields","document: string","documents: string[]","keyValuePairs: [string, number[]][]","underlyingEmbeddings: EmbeddingsInterface","documentEmbeddingStore: BaseStore<string, Uint8Array>","options?: {\n namespace?: string;\n }","EncoderBackedStore"],"sources":["../../src/embeddings/cache_backed.ts"],"sourcesContent":["import { insecureHash } from \"@langchain/core/utils/hash\";\nimport {\n type EmbeddingsInterface,\n Embeddings,\n} from \"@langchain/core/embeddings\";\nimport { BaseStore } from \"@langchain/core/stores\";\n\nimport { AsyncCallerParams } from \"@langchain/core/utils/async_caller\";\nimport { EncoderBackedStore } from \"../storage/encoder_backed.js\";\n\n/**\n * Interface for the fields required to initialize an instance of the\n * CacheBackedEmbeddings class.\n */\nexport interface CacheBackedEmbeddingsFields extends AsyncCallerParams {\n underlyingEmbeddings: EmbeddingsInterface;\n documentEmbeddingStore: BaseStore<string, number[]>;\n}\n\n/**\n * Interface for caching results from embedding models.\n *\n * The interface allows works with any store that implements\n * the abstract store interface accepting keys of type str and values of list of\n * floats.\n *\n * If need be, the interface can be extended to accept other implementations\n * of the value serializer and deserializer, as well as the key encoder.\n * @example\n * ```typescript\n * const underlyingEmbeddings = new OpenAIEmbeddings();\n *\n * const cacheBackedEmbeddings = CacheBackedEmbeddings.fromBytesStore(\n * underlyingEmbeddings,\n * new ConvexKVStore({ ctx }),\n * {\n * namespace: underlyingEmbeddings.modelName,\n * },\n * );\n *\n * const loader = new TextLoader(\"./state_of_the_union.txt\");\n * const rawDocuments = await loader.load();\n * const splitter = new RecursiveCharacterTextSplitter({\n * chunkSize: 1000,\n * chunkOverlap: 0,\n * });\n * const documents = await splitter.splitDocuments(rawDocuments);\n *\n * let time = Date.now();\n * const vectorstore = await ConvexVectorStore.fromDocuments(\n * documents,\n * cacheBackedEmbeddings,\n * { ctx },\n * );\n * console.log(`Initial creation time: ${Date.now() - time}ms`);\n *\n * time = Date.now();\n * const vectorstore2 = await ConvexVectorStore.fromDocuments(\n * documents,\n * cacheBackedEmbeddings,\n * { ctx },\n * );\n * console.log(`Cached creation time: ${Date.now() - time}ms`);\n *\n * ```\n */\nexport class CacheBackedEmbeddings extends Embeddings {\n protected underlyingEmbeddings: EmbeddingsInterface;\n\n protected documentEmbeddingStore: BaseStore<string, number[]>;\n\n constructor(fields: CacheBackedEmbeddingsFields) {\n super(fields);\n this.underlyingEmbeddings = fields.underlyingEmbeddings;\n this.documentEmbeddingStore = fields.documentEmbeddingStore;\n }\n\n /**\n * Embed query text.\n *\n * This method does not support caching at the moment.\n *\n * Support for caching queries is easy to implement, but might make\n * sense to hold off to see the most common patterns.\n *\n * If the cache has an eviction policy, we may need to be a bit more careful\n * about sharing the cache between documents and queries. Generally,\n * one is OK evicting query caches, but document caches should be kept.\n *\n * @param document The text to embed.\n * @returns The embedding for the given text.\n */\n async embedQuery(document: string): Promise<number[]> {\n return this.underlyingEmbeddings.embedQuery(document);\n }\n\n /**\n * Embed a list of texts.\n *\n * The method first checks the cache for the embeddings.\n * If the embeddings are not found, the method uses the underlying embedder\n * to embed the documents and stores the results in the cache.\n *\n * @param documents\n * @returns A list of embeddings for the given texts.\n */\n async embedDocuments(documents: string[]): Promise<number[][]> {\n const vectors = await this.documentEmbeddingStore.mget(documents);\n const missingIndicies = [];\n const missingDocuments = [];\n for (let i = 0; i < vectors.length; i += 1) {\n if (vectors[i] === undefined) {\n missingIndicies.push(i);\n missingDocuments.push(documents[i]);\n }\n }\n if (missingDocuments.length) {\n const missingVectors = await this.underlyingEmbeddings.embedDocuments(\n missingDocuments\n );\n const keyValuePairs: [string, number[]][] = missingDocuments.map(\n (document, i) => [document, missingVectors[i]]\n );\n await this.documentEmbeddingStore.mset(keyValuePairs);\n for (let i = 0; i < missingIndicies.length; i += 1) {\n vectors[missingIndicies[i]] = missingVectors[i];\n }\n }\n return vectors as number[][];\n }\n\n /**\n * Create a new CacheBackedEmbeddings instance from another embeddings instance\n * and a storage instance.\n * @param underlyingEmbeddings Embeddings used to populate the cache for new documents.\n * @param documentEmbeddingStore Stores raw document embedding values. Keys are hashes of the document content.\n * @param options.namespace Optional namespace for store keys.\n * @returns A new CacheBackedEmbeddings instance.\n */\n static fromBytesStore(\n underlyingEmbeddings: EmbeddingsInterface,\n documentEmbeddingStore: BaseStore<string, Uint8Array>,\n options?: {\n namespace?: string;\n }\n ) {\n const encoder = new TextEncoder();\n const decoder = new TextDecoder();\n const encoderBackedStore = new EncoderBackedStore<\n string,\n number[],\n Uint8Array\n >({\n store: documentEmbeddingStore,\n keyEncoder: (key) => (options?.namespace ?? \"\") + insecureHash(key),\n valueSerializer: (value) => encoder.encode(JSON.stringify(value)),\n valueDeserializer: (serializedValue) =>\n JSON.parse(decoder.decode(serializedValue)),\n });\n return new this({\n underlyingEmbeddings,\n documentEmbeddingStore: encoderBackedStore,\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkEA,IAAa,wBAAb,cAA2CA,uCAAW;CACpD,AAAU;CAEV,AAAU;CAEV,YAAYC,QAAqC;EAC/C,MAAM,OAAO;EACb,KAAK,uBAAuB,OAAO;EACnC,KAAK,yBAAyB,OAAO;CACtC;;;;;;;;;;;;;;;;CAiBD,MAAM,WAAWC,UAAqC;AACpD,SAAO,KAAK,qBAAqB,WAAW,SAAS;CACtD;;;;;;;;;;;CAYD,MAAM,eAAeC,WAA0C;EAC7D,MAAM,UAAU,MAAM,KAAK,uBAAuB,KAAK,UAAU;EACjE,MAAM,kBAAkB,CAAE;EAC1B,MAAM,mBAAmB,CAAE;AAC3B,OAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,EACvC,KAAI,QAAQ,OAAO,QAAW;GAC5B,gBAAgB,KAAK,EAAE;GACvB,iBAAiB,KAAK,UAAU,GAAG;EACpC;AAEH,MAAI,iBAAiB,QAAQ;GAC3B,MAAM,iBAAiB,MAAM,KAAK,qBAAqB,eACrD,iBACD;GACD,MAAMC,gBAAsC,iBAAiB,IAC3D,CAAC,UAAU,MAAM,CAAC,UAAU,eAAe,EAAG,EAC/C;GACD,MAAM,KAAK,uBAAuB,KAAK,cAAc;AACrD,QAAK,IAAI,IAAI,GAAG,IAAI,gBAAgB,QAAQ,KAAK,GAC/C,QAAQ,gBAAgB,MAAM,eAAe;EAEhD;AACD,SAAO;CACR;;;;;;;;;CAUD,OAAO,eACLC,sBACAC,wBACAC,SAGA;EACA,MAAM,UAAU,IAAI;EACpB,MAAM,UAAU,IAAI;EACpB,MAAM,qBAAqB,IAAIC,kDAI7B;GACA,OAAO;GACP,YAAY,CAAC,SAAS,SAAS,aAAa,oDAAmB,IAAI;GACnE,iBAAiB,CAAC,UAAU,QAAQ,OAAO,KAAK,UAAU,MAAM,CAAC;GACjE,mBAAmB,CAAC,oBAClB,KAAK,MAAM,QAAQ,OAAO,gBAAgB,CAAC;EAC9C;AACD,SAAO,IAAI,KAAK;GACd;GACA,wBAAwB;EACzB;CACF;AACF"}
1
+ {"version":3,"file":"cache_backed.cjs","names":["Embeddings","fields: CacheBackedEmbeddingsFields","document: string","documents: string[]","keyValuePairs: [string, number[]][]","underlyingEmbeddings: EmbeddingsInterface","documentEmbeddingStore: BaseStore<string, Uint8Array>","options?: {\n namespace?: string;\n }","EncoderBackedStore"],"sources":["../../src/embeddings/cache_backed.ts"],"sourcesContent":["import { sha256 } from \"@langchain/core/utils/hash\";\nimport {\n type EmbeddingsInterface,\n Embeddings,\n} from \"@langchain/core/embeddings\";\nimport { BaseStore } from \"@langchain/core/stores\";\n\nimport { AsyncCallerParams } from \"@langchain/core/utils/async_caller\";\nimport { EncoderBackedStore } from \"../storage/encoder_backed.js\";\n\n/**\n * Interface for the fields required to initialize an instance of the\n * CacheBackedEmbeddings class.\n */\nexport interface CacheBackedEmbeddingsFields extends AsyncCallerParams {\n underlyingEmbeddings: EmbeddingsInterface;\n documentEmbeddingStore: BaseStore<string, number[]>;\n}\n\n/**\n * Interface for caching results from embedding models.\n *\n * The interface allows works with any store that implements\n * the abstract store interface accepting keys of type str and values of list of\n * floats.\n *\n * If need be, the interface can be extended to accept other implementations\n * of the value serializer and deserializer, as well as the key encoder.\n * @example\n * ```typescript\n * const underlyingEmbeddings = new OpenAIEmbeddings();\n *\n * const cacheBackedEmbeddings = CacheBackedEmbeddings.fromBytesStore(\n * underlyingEmbeddings,\n * new ConvexKVStore({ ctx }),\n * {\n * namespace: underlyingEmbeddings.modelName,\n * },\n * );\n *\n * const loader = new TextLoader(\"./state_of_the_union.txt\");\n * const rawDocuments = await loader.load();\n * const splitter = new RecursiveCharacterTextSplitter({\n * chunkSize: 1000,\n * chunkOverlap: 0,\n * });\n * const documents = await splitter.splitDocuments(rawDocuments);\n *\n * let time = Date.now();\n * const vectorstore = await ConvexVectorStore.fromDocuments(\n * documents,\n * cacheBackedEmbeddings,\n * { ctx },\n * );\n * console.log(`Initial creation time: ${Date.now() - time}ms`);\n *\n * time = Date.now();\n * const vectorstore2 = await ConvexVectorStore.fromDocuments(\n * documents,\n * cacheBackedEmbeddings,\n * { ctx },\n * );\n * console.log(`Cached creation time: ${Date.now() - time}ms`);\n *\n * ```\n */\nexport class CacheBackedEmbeddings extends Embeddings {\n protected underlyingEmbeddings: EmbeddingsInterface;\n\n protected documentEmbeddingStore: BaseStore<string, number[]>;\n\n constructor(fields: CacheBackedEmbeddingsFields) {\n super(fields);\n this.underlyingEmbeddings = fields.underlyingEmbeddings;\n this.documentEmbeddingStore = fields.documentEmbeddingStore;\n }\n\n /**\n * Embed query text.\n *\n * This method does not support caching at the moment.\n *\n * Support for caching queries is easy to implement, but might make\n * sense to hold off to see the most common patterns.\n *\n * If the cache has an eviction policy, we may need to be a bit more careful\n * about sharing the cache between documents and queries. Generally,\n * one is OK evicting query caches, but document caches should be kept.\n *\n * @param document The text to embed.\n * @returns The embedding for the given text.\n */\n async embedQuery(document: string): Promise<number[]> {\n return this.underlyingEmbeddings.embedQuery(document);\n }\n\n /**\n * Embed a list of texts.\n *\n * The method first checks the cache for the embeddings.\n * If the embeddings are not found, the method uses the underlying embedder\n * to embed the documents and stores the results in the cache.\n *\n * @param documents\n * @returns A list of embeddings for the given texts.\n */\n async embedDocuments(documents: string[]): Promise<number[][]> {\n const vectors = await this.documentEmbeddingStore.mget(documents);\n const missingIndicies = [];\n const missingDocuments = [];\n for (let i = 0; i < vectors.length; i += 1) {\n if (vectors[i] === undefined) {\n missingIndicies.push(i);\n missingDocuments.push(documents[i]);\n }\n }\n if (missingDocuments.length) {\n const missingVectors = await this.underlyingEmbeddings.embedDocuments(\n missingDocuments\n );\n const keyValuePairs: [string, number[]][] = missingDocuments.map(\n (document, i) => [document, missingVectors[i]]\n );\n await this.documentEmbeddingStore.mset(keyValuePairs);\n for (let i = 0; i < missingIndicies.length; i += 1) {\n vectors[missingIndicies[i]] = missingVectors[i];\n }\n }\n return vectors as number[][];\n }\n\n /**\n * Create a new CacheBackedEmbeddings instance from another embeddings instance\n * and a storage instance.\n * @param underlyingEmbeddings Embeddings used to populate the cache for new documents.\n * @param documentEmbeddingStore Stores raw document embedding values. Keys are hashes of the document content.\n * @param options.namespace Optional namespace for store keys.\n * @returns A new CacheBackedEmbeddings instance.\n */\n static fromBytesStore(\n underlyingEmbeddings: EmbeddingsInterface,\n documentEmbeddingStore: BaseStore<string, Uint8Array>,\n options?: {\n namespace?: string;\n }\n ) {\n const encoder = new TextEncoder();\n const decoder = new TextDecoder();\n const encoderBackedStore = new EncoderBackedStore<\n string,\n number[],\n Uint8Array\n >({\n store: documentEmbeddingStore,\n keyEncoder: (key) => (options?.namespace ?? \"\") + sha256(key),\n valueSerializer: (value) => encoder.encode(JSON.stringify(value)),\n valueDeserializer: (serializedValue) =>\n JSON.parse(decoder.decode(serializedValue)),\n });\n return new this({\n underlyingEmbeddings,\n documentEmbeddingStore: encoderBackedStore,\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkEA,IAAa,wBAAb,cAA2CA,uCAAW;CACpD,AAAU;CAEV,AAAU;CAEV,YAAYC,QAAqC;EAC/C,MAAM,OAAO;EACb,KAAK,uBAAuB,OAAO;EACnC,KAAK,yBAAyB,OAAO;CACtC;;;;;;;;;;;;;;;;CAiBD,MAAM,WAAWC,UAAqC;AACpD,SAAO,KAAK,qBAAqB,WAAW,SAAS;CACtD;;;;;;;;;;;CAYD,MAAM,eAAeC,WAA0C;EAC7D,MAAM,UAAU,MAAM,KAAK,uBAAuB,KAAK,UAAU;EACjE,MAAM,kBAAkB,CAAE;EAC1B,MAAM,mBAAmB,CAAE;AAC3B,OAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,EACvC,KAAI,QAAQ,OAAO,QAAW;GAC5B,gBAAgB,KAAK,EAAE;GACvB,iBAAiB,KAAK,UAAU,GAAG;EACpC;AAEH,MAAI,iBAAiB,QAAQ;GAC3B,MAAM,iBAAiB,MAAM,KAAK,qBAAqB,eACrD,iBACD;GACD,MAAMC,gBAAsC,iBAAiB,IAC3D,CAAC,UAAU,MAAM,CAAC,UAAU,eAAe,EAAG,EAC/C;GACD,MAAM,KAAK,uBAAuB,KAAK,cAAc;AACrD,QAAK,IAAI,IAAI,GAAG,IAAI,gBAAgB,QAAQ,KAAK,GAC/C,QAAQ,gBAAgB,MAAM,eAAe;EAEhD;AACD,SAAO;CACR;;;;;;;;;CAUD,OAAO,eACLC,sBACAC,wBACAC,SAGA;EACA,MAAM,UAAU,IAAI;EACpB,MAAM,UAAU,IAAI;EACpB,MAAM,qBAAqB,IAAIC,kDAI7B;GACA,OAAO;GACP,YAAY,CAAC,SAAS,SAAS,aAAa,8CAAa,IAAI;GAC7D,iBAAiB,CAAC,UAAU,QAAQ,OAAO,KAAK,UAAU,MAAM,CAAC;GACjE,mBAAmB,CAAC,oBAClB,KAAK,MAAM,QAAQ,OAAO,gBAAgB,CAAC;EAC9C;AACD,SAAO,IAAI,KAAK;GACd;GACA,wBAAwB;EACzB;CACF;AACF"}
@@ -1,6 +1,6 @@
1
- import { AsyncCallerParams } from "@langchain/core/utils/async_caller";
2
1
  import { Embeddings, EmbeddingsInterface } from "@langchain/core/embeddings";
3
2
  import { BaseStore } from "@langchain/core/stores";
3
+ import { AsyncCallerParams } from "@langchain/core/utils/async_caller";
4
4
 
5
5
  //#region src/embeddings/cache_backed.d.ts
6
6
 
@@ -1,6 +1,6 @@
1
- import { AsyncCallerParams } from "@langchain/core/utils/async_caller";
2
- import { Embeddings, EmbeddingsInterface } from "@langchain/core/embeddings";
3
1
  import { BaseStore } from "@langchain/core/stores";
2
+ import { Embeddings, EmbeddingsInterface } from "@langchain/core/embeddings";
3
+ import { AsyncCallerParams } from "@langchain/core/utils/async_caller";
4
4
 
5
5
  //#region src/embeddings/cache_backed.d.ts
6
6
 
@@ -1,6 +1,6 @@
1
1
  import { __export } from "../_virtual/rolldown_runtime.js";
2
2
  import { EncoderBackedStore } from "../storage/encoder_backed.js";
3
- import { insecureHash } from "@langchain/core/utils/hash";
3
+ import { sha256 } from "@langchain/core/utils/hash";
4
4
  import { Embeddings } from "@langchain/core/embeddings";
5
5
 
6
6
  //#region src/embeddings/cache_backed.ts
@@ -118,7 +118,7 @@ var CacheBackedEmbeddings = class extends Embeddings {
118
118
  const decoder = new TextDecoder();
119
119
  const encoderBackedStore = new EncoderBackedStore({
120
120
  store: documentEmbeddingStore,
121
- keyEncoder: (key) => (options?.namespace ?? "") + insecureHash(key),
121
+ keyEncoder: (key) => (options?.namespace ?? "") + sha256(key),
122
122
  valueSerializer: (value) => encoder.encode(JSON.stringify(value)),
123
123
  valueDeserializer: (serializedValue) => JSON.parse(decoder.decode(serializedValue))
124
124
  });
@@ -1 +1 @@
1
- {"version":3,"file":"cache_backed.js","names":["fields: CacheBackedEmbeddingsFields","document: string","documents: string[]","keyValuePairs: [string, number[]][]","underlyingEmbeddings: EmbeddingsInterface","documentEmbeddingStore: BaseStore<string, Uint8Array>","options?: {\n namespace?: string;\n }"],"sources":["../../src/embeddings/cache_backed.ts"],"sourcesContent":["import { insecureHash } from \"@langchain/core/utils/hash\";\nimport {\n type EmbeddingsInterface,\n Embeddings,\n} from \"@langchain/core/embeddings\";\nimport { BaseStore } from \"@langchain/core/stores\";\n\nimport { AsyncCallerParams } from \"@langchain/core/utils/async_caller\";\nimport { EncoderBackedStore } from \"../storage/encoder_backed.js\";\n\n/**\n * Interface for the fields required to initialize an instance of the\n * CacheBackedEmbeddings class.\n */\nexport interface CacheBackedEmbeddingsFields extends AsyncCallerParams {\n underlyingEmbeddings: EmbeddingsInterface;\n documentEmbeddingStore: BaseStore<string, number[]>;\n}\n\n/**\n * Interface for caching results from embedding models.\n *\n * The interface allows works with any store that implements\n * the abstract store interface accepting keys of type str and values of list of\n * floats.\n *\n * If need be, the interface can be extended to accept other implementations\n * of the value serializer and deserializer, as well as the key encoder.\n * @example\n * ```typescript\n * const underlyingEmbeddings = new OpenAIEmbeddings();\n *\n * const cacheBackedEmbeddings = CacheBackedEmbeddings.fromBytesStore(\n * underlyingEmbeddings,\n * new ConvexKVStore({ ctx }),\n * {\n * namespace: underlyingEmbeddings.modelName,\n * },\n * );\n *\n * const loader = new TextLoader(\"./state_of_the_union.txt\");\n * const rawDocuments = await loader.load();\n * const splitter = new RecursiveCharacterTextSplitter({\n * chunkSize: 1000,\n * chunkOverlap: 0,\n * });\n * const documents = await splitter.splitDocuments(rawDocuments);\n *\n * let time = Date.now();\n * const vectorstore = await ConvexVectorStore.fromDocuments(\n * documents,\n * cacheBackedEmbeddings,\n * { ctx },\n * );\n * console.log(`Initial creation time: ${Date.now() - time}ms`);\n *\n * time = Date.now();\n * const vectorstore2 = await ConvexVectorStore.fromDocuments(\n * documents,\n * cacheBackedEmbeddings,\n * { ctx },\n * );\n * console.log(`Cached creation time: ${Date.now() - time}ms`);\n *\n * ```\n */\nexport class CacheBackedEmbeddings extends Embeddings {\n protected underlyingEmbeddings: EmbeddingsInterface;\n\n protected documentEmbeddingStore: BaseStore<string, number[]>;\n\n constructor(fields: CacheBackedEmbeddingsFields) {\n super(fields);\n this.underlyingEmbeddings = fields.underlyingEmbeddings;\n this.documentEmbeddingStore = fields.documentEmbeddingStore;\n }\n\n /**\n * Embed query text.\n *\n * This method does not support caching at the moment.\n *\n * Support for caching queries is easy to implement, but might make\n * sense to hold off to see the most common patterns.\n *\n * If the cache has an eviction policy, we may need to be a bit more careful\n * about sharing the cache between documents and queries. Generally,\n * one is OK evicting query caches, but document caches should be kept.\n *\n * @param document The text to embed.\n * @returns The embedding for the given text.\n */\n async embedQuery(document: string): Promise<number[]> {\n return this.underlyingEmbeddings.embedQuery(document);\n }\n\n /**\n * Embed a list of texts.\n *\n * The method first checks the cache for the embeddings.\n * If the embeddings are not found, the method uses the underlying embedder\n * to embed the documents and stores the results in the cache.\n *\n * @param documents\n * @returns A list of embeddings for the given texts.\n */\n async embedDocuments(documents: string[]): Promise<number[][]> {\n const vectors = await this.documentEmbeddingStore.mget(documents);\n const missingIndicies = [];\n const missingDocuments = [];\n for (let i = 0; i < vectors.length; i += 1) {\n if (vectors[i] === undefined) {\n missingIndicies.push(i);\n missingDocuments.push(documents[i]);\n }\n }\n if (missingDocuments.length) {\n const missingVectors = await this.underlyingEmbeddings.embedDocuments(\n missingDocuments\n );\n const keyValuePairs: [string, number[]][] = missingDocuments.map(\n (document, i) => [document, missingVectors[i]]\n );\n await this.documentEmbeddingStore.mset(keyValuePairs);\n for (let i = 0; i < missingIndicies.length; i += 1) {\n vectors[missingIndicies[i]] = missingVectors[i];\n }\n }\n return vectors as number[][];\n }\n\n /**\n * Create a new CacheBackedEmbeddings instance from another embeddings instance\n * and a storage instance.\n * @param underlyingEmbeddings Embeddings used to populate the cache for new documents.\n * @param documentEmbeddingStore Stores raw document embedding values. Keys are hashes of the document content.\n * @param options.namespace Optional namespace for store keys.\n * @returns A new CacheBackedEmbeddings instance.\n */\n static fromBytesStore(\n underlyingEmbeddings: EmbeddingsInterface,\n documentEmbeddingStore: BaseStore<string, Uint8Array>,\n options?: {\n namespace?: string;\n }\n ) {\n const encoder = new TextEncoder();\n const decoder = new TextDecoder();\n const encoderBackedStore = new EncoderBackedStore<\n string,\n number[],\n Uint8Array\n >({\n store: documentEmbeddingStore,\n keyEncoder: (key) => (options?.namespace ?? \"\") + insecureHash(key),\n valueSerializer: (value) => encoder.encode(JSON.stringify(value)),\n valueDeserializer: (serializedValue) =>\n JSON.parse(decoder.decode(serializedValue)),\n });\n return new this({\n underlyingEmbeddings,\n documentEmbeddingStore: encoderBackedStore,\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkEA,IAAa,wBAAb,cAA2C,WAAW;CACpD,AAAU;CAEV,AAAU;CAEV,YAAYA,QAAqC;EAC/C,MAAM,OAAO;EACb,KAAK,uBAAuB,OAAO;EACnC,KAAK,yBAAyB,OAAO;CACtC;;;;;;;;;;;;;;;;CAiBD,MAAM,WAAWC,UAAqC;AACpD,SAAO,KAAK,qBAAqB,WAAW,SAAS;CACtD;;;;;;;;;;;CAYD,MAAM,eAAeC,WAA0C;EAC7D,MAAM,UAAU,MAAM,KAAK,uBAAuB,KAAK,UAAU;EACjE,MAAM,kBAAkB,CAAE;EAC1B,MAAM,mBAAmB,CAAE;AAC3B,OAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,EACvC,KAAI,QAAQ,OAAO,QAAW;GAC5B,gBAAgB,KAAK,EAAE;GACvB,iBAAiB,KAAK,UAAU,GAAG;EACpC;AAEH,MAAI,iBAAiB,QAAQ;GAC3B,MAAM,iBAAiB,MAAM,KAAK,qBAAqB,eACrD,iBACD;GACD,MAAMC,gBAAsC,iBAAiB,IAC3D,CAAC,UAAU,MAAM,CAAC,UAAU,eAAe,EAAG,EAC/C;GACD,MAAM,KAAK,uBAAuB,KAAK,cAAc;AACrD,QAAK,IAAI,IAAI,GAAG,IAAI,gBAAgB,QAAQ,KAAK,GAC/C,QAAQ,gBAAgB,MAAM,eAAe;EAEhD;AACD,SAAO;CACR;;;;;;;;;CAUD,OAAO,eACLC,sBACAC,wBACAC,SAGA;EACA,MAAM,UAAU,IAAI;EACpB,MAAM,UAAU,IAAI;EACpB,MAAM,qBAAqB,IAAI,mBAI7B;GACA,OAAO;GACP,YAAY,CAAC,SAAS,SAAS,aAAa,MAAM,aAAa,IAAI;GACnE,iBAAiB,CAAC,UAAU,QAAQ,OAAO,KAAK,UAAU,MAAM,CAAC;GACjE,mBAAmB,CAAC,oBAClB,KAAK,MAAM,QAAQ,OAAO,gBAAgB,CAAC;EAC9C;AACD,SAAO,IAAI,KAAK;GACd;GACA,wBAAwB;EACzB;CACF;AACF"}
1
+ {"version":3,"file":"cache_backed.js","names":["fields: CacheBackedEmbeddingsFields","document: string","documents: string[]","keyValuePairs: [string, number[]][]","underlyingEmbeddings: EmbeddingsInterface","documentEmbeddingStore: BaseStore<string, Uint8Array>","options?: {\n namespace?: string;\n }"],"sources":["../../src/embeddings/cache_backed.ts"],"sourcesContent":["import { sha256 } from \"@langchain/core/utils/hash\";\nimport {\n type EmbeddingsInterface,\n Embeddings,\n} from \"@langchain/core/embeddings\";\nimport { BaseStore } from \"@langchain/core/stores\";\n\nimport { AsyncCallerParams } from \"@langchain/core/utils/async_caller\";\nimport { EncoderBackedStore } from \"../storage/encoder_backed.js\";\n\n/**\n * Interface for the fields required to initialize an instance of the\n * CacheBackedEmbeddings class.\n */\nexport interface CacheBackedEmbeddingsFields extends AsyncCallerParams {\n underlyingEmbeddings: EmbeddingsInterface;\n documentEmbeddingStore: BaseStore<string, number[]>;\n}\n\n/**\n * Interface for caching results from embedding models.\n *\n * The interface allows works with any store that implements\n * the abstract store interface accepting keys of type str and values of list of\n * floats.\n *\n * If need be, the interface can be extended to accept other implementations\n * of the value serializer and deserializer, as well as the key encoder.\n * @example\n * ```typescript\n * const underlyingEmbeddings = new OpenAIEmbeddings();\n *\n * const cacheBackedEmbeddings = CacheBackedEmbeddings.fromBytesStore(\n * underlyingEmbeddings,\n * new ConvexKVStore({ ctx }),\n * {\n * namespace: underlyingEmbeddings.modelName,\n * },\n * );\n *\n * const loader = new TextLoader(\"./state_of_the_union.txt\");\n * const rawDocuments = await loader.load();\n * const splitter = new RecursiveCharacterTextSplitter({\n * chunkSize: 1000,\n * chunkOverlap: 0,\n * });\n * const documents = await splitter.splitDocuments(rawDocuments);\n *\n * let time = Date.now();\n * const vectorstore = await ConvexVectorStore.fromDocuments(\n * documents,\n * cacheBackedEmbeddings,\n * { ctx },\n * );\n * console.log(`Initial creation time: ${Date.now() - time}ms`);\n *\n * time = Date.now();\n * const vectorstore2 = await ConvexVectorStore.fromDocuments(\n * documents,\n * cacheBackedEmbeddings,\n * { ctx },\n * );\n * console.log(`Cached creation time: ${Date.now() - time}ms`);\n *\n * ```\n */\nexport class CacheBackedEmbeddings extends Embeddings {\n protected underlyingEmbeddings: EmbeddingsInterface;\n\n protected documentEmbeddingStore: BaseStore<string, number[]>;\n\n constructor(fields: CacheBackedEmbeddingsFields) {\n super(fields);\n this.underlyingEmbeddings = fields.underlyingEmbeddings;\n this.documentEmbeddingStore = fields.documentEmbeddingStore;\n }\n\n /**\n * Embed query text.\n *\n * This method does not support caching at the moment.\n *\n * Support for caching queries is easy to implement, but might make\n * sense to hold off to see the most common patterns.\n *\n * If the cache has an eviction policy, we may need to be a bit more careful\n * about sharing the cache between documents and queries. Generally,\n * one is OK evicting query caches, but document caches should be kept.\n *\n * @param document The text to embed.\n * @returns The embedding for the given text.\n */\n async embedQuery(document: string): Promise<number[]> {\n return this.underlyingEmbeddings.embedQuery(document);\n }\n\n /**\n * Embed a list of texts.\n *\n * The method first checks the cache for the embeddings.\n * If the embeddings are not found, the method uses the underlying embedder\n * to embed the documents and stores the results in the cache.\n *\n * @param documents\n * @returns A list of embeddings for the given texts.\n */\n async embedDocuments(documents: string[]): Promise<number[][]> {\n const vectors = await this.documentEmbeddingStore.mget(documents);\n const missingIndicies = [];\n const missingDocuments = [];\n for (let i = 0; i < vectors.length; i += 1) {\n if (vectors[i] === undefined) {\n missingIndicies.push(i);\n missingDocuments.push(documents[i]);\n }\n }\n if (missingDocuments.length) {\n const missingVectors = await this.underlyingEmbeddings.embedDocuments(\n missingDocuments\n );\n const keyValuePairs: [string, number[]][] = missingDocuments.map(\n (document, i) => [document, missingVectors[i]]\n );\n await this.documentEmbeddingStore.mset(keyValuePairs);\n for (let i = 0; i < missingIndicies.length; i += 1) {\n vectors[missingIndicies[i]] = missingVectors[i];\n }\n }\n return vectors as number[][];\n }\n\n /**\n * Create a new CacheBackedEmbeddings instance from another embeddings instance\n * and a storage instance.\n * @param underlyingEmbeddings Embeddings used to populate the cache for new documents.\n * @param documentEmbeddingStore Stores raw document embedding values. Keys are hashes of the document content.\n * @param options.namespace Optional namespace for store keys.\n * @returns A new CacheBackedEmbeddings instance.\n */\n static fromBytesStore(\n underlyingEmbeddings: EmbeddingsInterface,\n documentEmbeddingStore: BaseStore<string, Uint8Array>,\n options?: {\n namespace?: string;\n }\n ) {\n const encoder = new TextEncoder();\n const decoder = new TextDecoder();\n const encoderBackedStore = new EncoderBackedStore<\n string,\n number[],\n Uint8Array\n >({\n store: documentEmbeddingStore,\n keyEncoder: (key) => (options?.namespace ?? \"\") + sha256(key),\n valueSerializer: (value) => encoder.encode(JSON.stringify(value)),\n valueDeserializer: (serializedValue) =>\n JSON.parse(decoder.decode(serializedValue)),\n });\n return new this({\n underlyingEmbeddings,\n documentEmbeddingStore: encoderBackedStore,\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkEA,IAAa,wBAAb,cAA2C,WAAW;CACpD,AAAU;CAEV,AAAU;CAEV,YAAYA,QAAqC;EAC/C,MAAM,OAAO;EACb,KAAK,uBAAuB,OAAO;EACnC,KAAK,yBAAyB,OAAO;CACtC;;;;;;;;;;;;;;;;CAiBD,MAAM,WAAWC,UAAqC;AACpD,SAAO,KAAK,qBAAqB,WAAW,SAAS;CACtD;;;;;;;;;;;CAYD,MAAM,eAAeC,WAA0C;EAC7D,MAAM,UAAU,MAAM,KAAK,uBAAuB,KAAK,UAAU;EACjE,MAAM,kBAAkB,CAAE;EAC1B,MAAM,mBAAmB,CAAE;AAC3B,OAAK,IAAI,IAAI,GAAG,IAAI,QAAQ,QAAQ,KAAK,EACvC,KAAI,QAAQ,OAAO,QAAW;GAC5B,gBAAgB,KAAK,EAAE;GACvB,iBAAiB,KAAK,UAAU,GAAG;EACpC;AAEH,MAAI,iBAAiB,QAAQ;GAC3B,MAAM,iBAAiB,MAAM,KAAK,qBAAqB,eACrD,iBACD;GACD,MAAMC,gBAAsC,iBAAiB,IAC3D,CAAC,UAAU,MAAM,CAAC,UAAU,eAAe,EAAG,EAC/C;GACD,MAAM,KAAK,uBAAuB,KAAK,cAAc;AACrD,QAAK,IAAI,IAAI,GAAG,IAAI,gBAAgB,QAAQ,KAAK,GAC/C,QAAQ,gBAAgB,MAAM,eAAe;EAEhD;AACD,SAAO;CACR;;;;;;;;;CAUD,OAAO,eACLC,sBACAC,wBACAC,SAGA;EACA,MAAM,UAAU,IAAI;EACpB,MAAM,UAAU,IAAI;EACpB,MAAM,qBAAqB,IAAI,mBAI7B;GACA,OAAO;GACP,YAAY,CAAC,SAAS,SAAS,aAAa,MAAM,OAAO,IAAI;GAC7D,iBAAiB,CAAC,UAAU,QAAQ,OAAO,KAAK,UAAU,MAAM,CAAC;GACjE,mBAAmB,CAAC,oBAClB,KAAK,MAAM,QAAQ,OAAO,gBAAgB,CAAC;EAC9C;AACD,SAAO,IAAI,KAAK;GACd;GACA,wBAAwB;EACzB;CACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"trajectory.d.cts","names":["StructuredToolInterface","BaseLLMOutputParser","AgentStep","ChainValues","ChatGeneration","Generation","BasePromptTemplate","Callbacks","BaseCallbackConfig","BaseChatModel","AgentTrajectoryEvaluator","EvalOutputType","LLMEvalChainInput","LLMTrajectoryEvaluatorArgs","ExtractLLMCallOptions","TrajectoryOutputParser","Promise","TrajectoryEvalChain","____________langchain_core_dist_prompt_values_js0","BasePromptValueInterface","Omit","Partial"],"sources":["../../../src/evaluation/agents/trajectory.d.ts"],"sourcesContent":["import type { StructuredToolInterface } from \"@langchain/core/tools\";\nimport { BaseLLMOutputParser } from \"@langchain/core/output_parsers\";\nimport { AgentStep } from \"@langchain/core/agents\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { ChatGeneration, Generation } from \"@langchain/core/outputs\";\nimport { BasePromptTemplate } from \"@langchain/core/prompts\";\nimport { Callbacks, BaseCallbackConfig } from \"@langchain/core/callbacks/manager\";\nimport { BaseChatModel } from \"@langchain/core/language_models/chat_models\";\nimport { AgentTrajectoryEvaluator, EvalOutputType, LLMEvalChainInput, LLMTrajectoryEvaluatorArgs, type ExtractLLMCallOptions } from \"../base.js\";\n/**\n * A parser for the output of the TrajectoryEvalChain.\n */\nexport declare class TrajectoryOutputParser extends BaseLLMOutputParser<EvalOutputType> {\n static lc_name(): string;\n lc_namespace: string[];\n parseResult(generations: Generation[] | ChatGeneration[], _callbacks: Callbacks | undefined): Promise<EvalOutputType>;\n}\n/**\n * A chain for evaluating ReAct style agents.\n *\n * This chain is used to evaluate ReAct style agents by reasoning about\n * the sequence of actions taken and their outcomes.\n */\nexport declare class TrajectoryEvalChain extends AgentTrajectoryEvaluator {\n static lc_name(): string;\n criterionName?: string;\n evaluationName?: string;\n requiresInput: boolean;\n requiresReference: boolean;\n outputParser: TrajectoryOutputParser;\n static resolveTrajectoryPrompt(prompt?: BasePromptTemplate | undefined, agentTools?: StructuredToolInterface[]): BasePromptTemplate<any, import(\"../../../../langchain-core/dist/prompt_values.js\").BasePromptValueInterface, any>;\n /**\n * Get the description of the agent tools.\n *\n * @returns The description of the agent tools.\n */\n static toolsDescription(agentTools: StructuredToolInterface[]): string;\n /**\n * Create a new TrajectoryEvalChain.\n * @param llm\n * @param agentTools - The tools used by the agent.\n * @param chainOptions - The options for the chain.\n */\n static fromLLM(llm: BaseChatModel, agentTools?: StructuredToolInterface[], chainOptions?: Partial<Omit<LLMEvalChainInput, \"llm\">>): Promise<TrajectoryEvalChain>;\n _prepareOutput(result: ChainValues): any;\n /**\n * Get the agent trajectory as a formatted string.\n *\n * @param steps - The agent trajectory.\n * @returns The formatted agent trajectory.\n */\n getAgentTrajectory(steps: AgentStep[]): string;\n formatReference(reference?: string): string;\n _evaluateAgentTrajectory(args: LLMTrajectoryEvaluatorArgs, callOptions: ExtractLLMCallOptions<this[\"llm\"]>, config?: Callbacks | BaseCallbackConfig): Promise<ChainValues>;\n}\n"],"mappings":";;;;;;;;;;;;;;;AAYqBe,cAAAA,sBAAAA,SAA+Bd,mBAAT,CAA6BU,cAA7B,CAAA,CAAA;EAAA,OAAA,OAAA,CAAA,CAAA,EAAA,MAAA;EAAA,YAA6BA,EAAAA,MAAAA,EAAAA;EAAc,WAGzDN,CAAAA,WAAAA,EAAAA,UAAAA,EAAAA,GAAeD,cAAfC,EAAAA,EAAAA,UAAAA,EAA6CE,SAA7CF,GAAAA,SAAAA,CAAAA,EAAqEW,OAArEX,CAA6EM,cAA7EN,CAAAA;;;;;;AAH0C;AAWvE;AAAwC,cAAnBY,mBAAAA,SAA4BP,wBAAAA,CAAT;EAAA,OAMtBK,OAAAA,CAAAA,CAAAA,EAAAA,MAAAA;EAAsB,aACIT,CAAAA,EAAAA,MAAAA;EAAkB,cAA2BN,CAAAA,EAAAA,MAAAA;EAAuB,aAAA,EAAA,OAAA;EAAgH,iBAA3GM,EAAAA,OAAAA;EAAkB,YAM/FN,EAPtBe,sBAOsBf;EAAuB,OAOvCS,uBAAAA,CAAAA,MAAAA,CAAAA,EAboBH,kBAapBG,GAAAA,SAAAA,EAAAA,UAAAA,CAAAA,EAbiET,uBAajES,EAAAA,CAAAA,EAb6FH,kBAa7FG,CAAAA,GAAAA,EAbwF,wBAAA,EAaxFA,GAAAA,CAAAA;EAAa;;;;;EAA8H,OAA3BO,gBAAAA,CAAAA,UAAAA,EAPhGhB,uBAOgGgB,EAAAA,CAAAA,EAAAA,MAAAA;EAAO;;;;;;EAUQ,OAAWb,OAAAA,CAAAA,GAAAA,EAV1IM,aAU0IN,EAAAA,UAAAA,CAAAA,EAV9GH,uBAU8GG,EAAAA,EAAAA,YAAAA,CAAAA,EAVpEkB,OAUoElB,CAV5DiB,IAU4DjB,CAVvDS,iBAUuDT,EAAAA,KAAAA,CAAAA,CAAAA,CAAAA,EAV1Ba,OAU0Bb,CAVlBc,mBAUkBd,CAAAA;EAAW,cAAnBa,CAAAA,MAAAA,EAT/Hb,WAS+Ha,CAAAA,EAAAA,GAAAA;EAAO;AA9BxF;;;;;4BA4B3Cd;;iCAEKW,yCAAyCC,6CAA6CP,YAAYC,qBAAqBQ,QAAQb"}
1
+ {"version":3,"file":"trajectory.d.cts","names":["StructuredToolInterface","BaseLLMOutputParser","AgentStep","ChainValues","ChatGeneration","Generation","BasePromptTemplate","Callbacks","BaseCallbackConfig","BaseChatModel","AgentTrajectoryEvaluator","EvalOutputType","LLMEvalChainInput","LLMTrajectoryEvaluatorArgs","ExtractLLMCallOptions","TrajectoryOutputParser","Promise","TrajectoryEvalChain","____________langchain_core_dist_prompt_values_js1","BasePromptValueInterface","Omit","Partial"],"sources":["../../../src/evaluation/agents/trajectory.d.ts"],"sourcesContent":["import type { StructuredToolInterface } from \"@langchain/core/tools\";\nimport { BaseLLMOutputParser } from \"@langchain/core/output_parsers\";\nimport { AgentStep } from \"@langchain/core/agents\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { ChatGeneration, Generation } from \"@langchain/core/outputs\";\nimport { BasePromptTemplate } from \"@langchain/core/prompts\";\nimport { Callbacks, BaseCallbackConfig } from \"@langchain/core/callbacks/manager\";\nimport { BaseChatModel } from \"@langchain/core/language_models/chat_models\";\nimport { AgentTrajectoryEvaluator, EvalOutputType, LLMEvalChainInput, LLMTrajectoryEvaluatorArgs, type ExtractLLMCallOptions } from \"../base.js\";\n/**\n * A parser for the output of the TrajectoryEvalChain.\n */\nexport declare class TrajectoryOutputParser extends BaseLLMOutputParser<EvalOutputType> {\n static lc_name(): string;\n lc_namespace: string[];\n parseResult(generations: Generation[] | ChatGeneration[], _callbacks: Callbacks | undefined): Promise<EvalOutputType>;\n}\n/**\n * A chain for evaluating ReAct style agents.\n *\n * This chain is used to evaluate ReAct style agents by reasoning about\n * the sequence of actions taken and their outcomes.\n */\nexport declare class TrajectoryEvalChain extends AgentTrajectoryEvaluator {\n static lc_name(): string;\n criterionName?: string;\n evaluationName?: string;\n requiresInput: boolean;\n requiresReference: boolean;\n outputParser: TrajectoryOutputParser;\n static resolveTrajectoryPrompt(prompt?: BasePromptTemplate | undefined, agentTools?: StructuredToolInterface[]): BasePromptTemplate<any, import(\"../../../../langchain-core/dist/prompt_values.js\").BasePromptValueInterface, any>;\n /**\n * Get the description of the agent tools.\n *\n * @returns The description of the agent tools.\n */\n static toolsDescription(agentTools: StructuredToolInterface[]): string;\n /**\n * Create a new TrajectoryEvalChain.\n * @param llm\n * @param agentTools - The tools used by the agent.\n * @param chainOptions - The options for the chain.\n */\n static fromLLM(llm: BaseChatModel, agentTools?: StructuredToolInterface[], chainOptions?: Partial<Omit<LLMEvalChainInput, \"llm\">>): Promise<TrajectoryEvalChain>;\n _prepareOutput(result: ChainValues): any;\n /**\n * Get the agent trajectory as a formatted string.\n *\n * @param steps - The agent trajectory.\n * @returns The formatted agent trajectory.\n */\n getAgentTrajectory(steps: AgentStep[]): string;\n formatReference(reference?: string): string;\n _evaluateAgentTrajectory(args: LLMTrajectoryEvaluatorArgs, callOptions: ExtractLLMCallOptions<this[\"llm\"]>, config?: Callbacks | BaseCallbackConfig): Promise<ChainValues>;\n}\n"],"mappings":";;;;;;;;;;;;;;;AAYqBe,cAAAA,sBAAAA,SAA+Bd,mBAAT,CAA6BU,cAA7B,CAAA,CAAA;EAAA,OAAA,OAAA,CAAA,CAAA,EAAA,MAAA;EAAA,YAA6BA,EAAAA,MAAAA,EAAAA;EAAc,WAGzDN,CAAAA,WAAAA,EAAAA,UAAAA,EAAAA,GAAeD,cAAfC,EAAAA,EAAAA,UAAAA,EAA6CE,SAA7CF,GAAAA,SAAAA,CAAAA,EAAqEW,OAArEX,CAA6EM,cAA7EN,CAAAA;;;;;;AAH0C;AAWvE;AAAwC,cAAnBY,mBAAAA,SAA4BP,wBAAAA,CAAT;EAAA,OAMtBK,OAAAA,CAAAA,CAAAA,EAAAA,MAAAA;EAAsB,aACIT,CAAAA,EAAAA,MAAAA;EAAkB,cAA2BN,CAAAA,EAAAA,MAAAA;EAAuB,aAAA,EAAA,OAAA;EAAgH,iBAA3GM,EAAAA,OAAAA;EAAkB,YAM/FN,EAPtBe,sBAOsBf;EAAuB,OAOvCS,uBAAAA,CAAAA,MAAAA,CAAAA,EAboBH,kBAapBG,GAAAA,SAAAA,EAAAA,UAAAA,CAAAA,EAbiET,uBAajES,EAAAA,CAAAA,EAb6FH,kBAa7FG,CAAAA,GAAAA,EAbwF,wBAAA,EAaxFA,GAAAA,CAAAA;EAAa;;;;;EAA8H,OAA3BO,gBAAAA,CAAAA,UAAAA,EAPhGhB,uBAOgGgB,EAAAA,CAAAA,EAAAA,MAAAA;EAAO;;;;;;EAUQ,OAAWb,OAAAA,CAAAA,GAAAA,EAV1IM,aAU0IN,EAAAA,UAAAA,CAAAA,EAV9GH,uBAU8GG,EAAAA,EAAAA,YAAAA,CAAAA,EAVpEkB,OAUoElB,CAV5DiB,IAU4DjB,CAVvDS,iBAUuDT,EAAAA,KAAAA,CAAAA,CAAAA,CAAAA,EAV1Ba,OAU0Bb,CAVlBc,mBAUkBd,CAAAA;EAAW,cAAnBa,CAAAA,MAAAA,EAT/Hb,WAS+Ha,CAAAA,EAAAA,GAAAA;EAAO;AA9BxF;;;;;4BA4B3Cd;;iCAEKW,yCAAyCC,6CAA6CP,YAAYC,qBAAqBQ,QAAQb"}
@@ -1 +1 @@
1
- {"version":3,"file":"pairwise.d.cts","names":["BaseLanguageModelInterface","BaseLLMOutputParser","ChainValues","ChatGeneration","Generation","BasePromptTemplate","Callbacks","BaseCallbackConfig","EvalOutputType","LLMEvalChainInput","LLMPairwiseStringEvaluator","LLMPairwiseStringEvaluatorArgs","ExtractLLMCallOptions","CriteriaLike","PairwiseStringResultOutputParser","Promise","PairwiseStringEvalChain","Record","____________langchain_core_dist_prompt_values_js0","BasePromptValueInterface","Omit","Partial","LabeledPairwiseStringEvalChain"],"sources":["../../../src/evaluation/comparison/pairwise.d.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport { BaseLLMOutputParser } from \"@langchain/core/output_parsers\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { ChatGeneration, Generation } from \"@langchain/core/outputs\";\nimport { BasePromptTemplate } from \"@langchain/core/prompts\";\nimport { Callbacks, BaseCallbackConfig } from \"@langchain/core/callbacks/manager\";\nimport { EvalOutputType, LLMEvalChainInput, LLMPairwiseStringEvaluator, LLMPairwiseStringEvaluatorArgs, type ExtractLLMCallOptions } from \"../base.js\";\nimport { CriteriaLike } from \"../criteria/criteria.js\";\n/**\n * A parser for the output of the PairwiseStringEvalChain.\n */\nexport declare class PairwiseStringResultOutputParser extends BaseLLMOutputParser<EvalOutputType> {\n static lc_name(): string;\n lc_namespace: string[];\n parseResult(generations: Generation[] | ChatGeneration[], _callbacks: Callbacks | undefined): Promise<EvalOutputType>;\n}\n/**\n * A chain for comparing two outputs, such as the outputs\n * of two models, prompts, or outputs of a single model on similar inputs.\n */\nexport declare class PairwiseStringEvalChain extends LLMPairwiseStringEvaluator {\n static lc_name(): string;\n criterionName?: string;\n evaluationName?: string;\n requiresInput: boolean;\n requiresReference: boolean;\n skipReferenceWarning: string;\n outputParser: PairwiseStringResultOutputParser;\n static resolvePairwiseCriteria(criteria?: CriteriaLike): Record<string, string>;\n static resolvePairwisePrompt(prompt?: BasePromptTemplate): BasePromptTemplate<any, import(\"../../../../langchain-core/dist/prompt_values.js\").BasePromptValueInterface, any>;\n /**\n * Create a new instance of the PairwiseStringEvalChain.\n * @param llm\n * @param criteria The criteria to use for evaluation.\n * @param chainOptions Options to pass to the chain.\n */\n static fromLLM(llm: BaseLanguageModelInterface, criteria?: CriteriaLike, chainOptions?: Partial<Omit<LLMEvalChainInput, \"llm\">>): Promise<PairwiseStringEvalChain>;\n _prepareOutput(result: ChainValues): any;\n _evaluateStringPairs(args: LLMPairwiseStringEvaluatorArgs, callOptions: ExtractLLMCallOptions<this[\"llm\"]>, config?: Callbacks | BaseCallbackConfig): Promise<ChainValues>;\n}\n/**\n * A chain for comparing two outputs, such as the outputs\n * of two models, prompts, or outputs of a single model on similar inputs,\n * with labeled preferences.\n */\nexport declare class LabeledPairwiseStringEvalChain extends PairwiseStringEvalChain {\n static lc_name(): string;\n requiresReference: boolean;\n static resolvePairwisePrompt(prompt?: BasePromptTemplate): BasePromptTemplate<any, import(\"../../../../langchain-core/dist/prompt_values.js\").BasePromptValueInterface, any>;\n}\n"],"mappings":";;;;;;;;;;;;;;AAWqBc,cAAAA,gCAAAA,SAAyCb,mBAAT,CAA6BO,cAA7B,CAAA,CAAA;EAAA,OAAA,OAAA,CAAA,CAAA,EAAA,MAAA;EAAA,YAA6BA,EAAAA,MAAAA,EAAAA;EAAc,WAGnEJ,CAAAA,WAAAA,EAAAA,UAAAA,EAAAA,GAAeD,cAAfC,EAAAA,EAAAA,UAAAA,EAA6CE,SAA7CF,GAAAA,SAAAA,CAAAA,EAAqEW,OAArEX,CAA6EI,cAA7EJ,CAAAA;;;;;;AAHoD,cAS5DY,uBAAAA,SAAgCN,0BAAAA,CAT4B;EAS5DM,OAAAA,OAAAA,CAAAA,CAAAA,EAAAA,MAAAA;EAAuB,aAAA,CAAA,EAAA,MAAA;EAAA,cAO1BF,CAAAA,EAAAA,MAAAA;EAAgC,aACJD,EAAAA,OAAAA;EAAY,iBAAGI,EAAAA,OAAAA;EAAM,oBACzBZ,EAAAA,MAAAA;EAAkB,YAAA,EAF1CS,gCAE0C;EAA8G,OAA3GT,uBAAAA,CAAAA,QAAAA,CAAAA,EADjBQ,YACiBR,CAAAA,EADFY,MACEZ,CAAAA,MAAAA,EAAAA,MAAAA,CAAAA;EAAkB,OAOzDL,qBAAAA,CAAAA,MAAAA,CAAAA,EAPkBK,kBAOlBL,CAAAA,EAPuCK,kBAOvCL,CAAAA,GAAAA,EAPoC,wBAAA,EAOpCA,GAAAA,CAAAA;EAA0B;;;;;;EAA2F,OAClHE,OAAAA,CAAAA,GAAAA,EADHF,0BACGE,EAAAA,QAAAA,CAAAA,EADoCW,YACpCX,EAAAA,YAAAA,CAAAA,EADiEmB,OACjEnB,CADyEkB,IACzElB,CAD8EO,iBAC9EP,EAAAA,KAAAA,CAAAA,CAAAA,CAAAA,EAD2Ga,OAC3Gb,CADmHc,uBACnHd,CAAAA;EAAW,cACPS,CAAAA,MAAAA,EADJT,WACIS,CAAAA,EAAAA,GAAAA;EAA8B,oBAAeC,CAAAA,IAAAA,EAA7CD,8BAA6CC,EAAAA,WAAAA,EAAAA,qBAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,EAAAA,MAAAA,CAAAA,EAA6CN,SAA7CM,GAAyDL,kBAAzDK,CAAAA,EAA8EG,OAA9EH,CAAsFV,WAAtFU,CAAAA;;;;;;AAlBG;AAyB1DU,cAAAA,8BAAAA,SAAuCN,uBAAAA,CAAT;EAAA,OAAA,OAAA,CAAA,CAAA,EAAA,MAAA;EAAA,iBAGTX,EAAAA,OAAAA;EAAkB,OAAA,qBAAA,CAAA,MAAA,CAAA,EAAlBA,kBAAkB,CAAA,EAAGA,kBAAH,CAAA,GAAA,EAAA,wBAAA,EAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"pairwise.d.cts","names":["BaseLanguageModelInterface","BaseLLMOutputParser","ChainValues","ChatGeneration","Generation","BasePromptTemplate","Callbacks","BaseCallbackConfig","EvalOutputType","LLMEvalChainInput","LLMPairwiseStringEvaluator","LLMPairwiseStringEvaluatorArgs","ExtractLLMCallOptions","CriteriaLike","PairwiseStringResultOutputParser","Promise","PairwiseStringEvalChain","Record","____________langchain_core_dist_prompt_values_js2","BasePromptValueInterface","Omit","Partial","LabeledPairwiseStringEvalChain"],"sources":["../../../src/evaluation/comparison/pairwise.d.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport { BaseLLMOutputParser } from \"@langchain/core/output_parsers\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { ChatGeneration, Generation } from \"@langchain/core/outputs\";\nimport { BasePromptTemplate } from \"@langchain/core/prompts\";\nimport { Callbacks, BaseCallbackConfig } from \"@langchain/core/callbacks/manager\";\nimport { EvalOutputType, LLMEvalChainInput, LLMPairwiseStringEvaluator, LLMPairwiseStringEvaluatorArgs, type ExtractLLMCallOptions } from \"../base.js\";\nimport { CriteriaLike } from \"../criteria/criteria.js\";\n/**\n * A parser for the output of the PairwiseStringEvalChain.\n */\nexport declare class PairwiseStringResultOutputParser extends BaseLLMOutputParser<EvalOutputType> {\n static lc_name(): string;\n lc_namespace: string[];\n parseResult(generations: Generation[] | ChatGeneration[], _callbacks: Callbacks | undefined): Promise<EvalOutputType>;\n}\n/**\n * A chain for comparing two outputs, such as the outputs\n * of two models, prompts, or outputs of a single model on similar inputs.\n */\nexport declare class PairwiseStringEvalChain extends LLMPairwiseStringEvaluator {\n static lc_name(): string;\n criterionName?: string;\n evaluationName?: string;\n requiresInput: boolean;\n requiresReference: boolean;\n skipReferenceWarning: string;\n outputParser: PairwiseStringResultOutputParser;\n static resolvePairwiseCriteria(criteria?: CriteriaLike): Record<string, string>;\n static resolvePairwisePrompt(prompt?: BasePromptTemplate): BasePromptTemplate<any, import(\"../../../../langchain-core/dist/prompt_values.js\").BasePromptValueInterface, any>;\n /**\n * Create a new instance of the PairwiseStringEvalChain.\n * @param llm\n * @param criteria The criteria to use for evaluation.\n * @param chainOptions Options to pass to the chain.\n */\n static fromLLM(llm: BaseLanguageModelInterface, criteria?: CriteriaLike, chainOptions?: Partial<Omit<LLMEvalChainInput, \"llm\">>): Promise<PairwiseStringEvalChain>;\n _prepareOutput(result: ChainValues): any;\n _evaluateStringPairs(args: LLMPairwiseStringEvaluatorArgs, callOptions: ExtractLLMCallOptions<this[\"llm\"]>, config?: Callbacks | BaseCallbackConfig): Promise<ChainValues>;\n}\n/**\n * A chain for comparing two outputs, such as the outputs\n * of two models, prompts, or outputs of a single model on similar inputs,\n * with labeled preferences.\n */\nexport declare class LabeledPairwiseStringEvalChain extends PairwiseStringEvalChain {\n static lc_name(): string;\n requiresReference: boolean;\n static resolvePairwisePrompt(prompt?: BasePromptTemplate): BasePromptTemplate<any, import(\"../../../../langchain-core/dist/prompt_values.js\").BasePromptValueInterface, any>;\n}\n"],"mappings":";;;;;;;;;;;;;;AAWqBc,cAAAA,gCAAAA,SAAyCb,mBAAT,CAA6BO,cAA7B,CAAA,CAAA;EAAA,OAAA,OAAA,CAAA,CAAA,EAAA,MAAA;EAAA,YAA6BA,EAAAA,MAAAA,EAAAA;EAAc,WAGnEJ,CAAAA,WAAAA,EAAAA,UAAAA,EAAAA,GAAeD,cAAfC,EAAAA,EAAAA,UAAAA,EAA6CE,SAA7CF,GAAAA,SAAAA,CAAAA,EAAqEW,OAArEX,CAA6EI,cAA7EJ,CAAAA;;;;;;AAHoD,cAS5DY,uBAAAA,SAAgCN,0BAAAA,CAT4B;EAS5DM,OAAAA,OAAAA,CAAAA,CAAAA,EAAAA,MAAAA;EAAuB,aAAA,CAAA,EAAA,MAAA;EAAA,cAO1BF,CAAAA,EAAAA,MAAAA;EAAgC,aACJD,EAAAA,OAAAA;EAAY,iBAAGI,EAAAA,OAAAA;EAAM,oBACzBZ,EAAAA,MAAAA;EAAkB,YAAA,EAF1CS,gCAE0C;EAA8G,OAA3GT,uBAAAA,CAAAA,QAAAA,CAAAA,EADjBQ,YACiBR,CAAAA,EADFY,MACEZ,CAAAA,MAAAA,EAAAA,MAAAA,CAAAA;EAAkB,OAOzDL,qBAAAA,CAAAA,MAAAA,CAAAA,EAPkBK,kBAOlBL,CAAAA,EAPuCK,kBAOvCL,CAAAA,GAAAA,EAPoC,wBAAA,EAOpCA,GAAAA,CAAAA;EAA0B;;;;;;EAA2F,OAClHE,OAAAA,CAAAA,GAAAA,EADHF,0BACGE,EAAAA,QAAAA,CAAAA,EADoCW,YACpCX,EAAAA,YAAAA,CAAAA,EADiEmB,OACjEnB,CADyEkB,IACzElB,CAD8EO,iBAC9EP,EAAAA,KAAAA,CAAAA,CAAAA,CAAAA,EAD2Ga,OAC3Gb,CADmHc,uBACnHd,CAAAA;EAAW,cACPS,CAAAA,MAAAA,EADJT,WACIS,CAAAA,EAAAA,GAAAA;EAA8B,oBAAeC,CAAAA,IAAAA,EAA7CD,8BAA6CC,EAAAA,WAAAA,EAAAA,qBAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAAA,CAAAA,EAAAA,MAAAA,CAAAA,EAA6CN,SAA7CM,GAAyDL,kBAAzDK,CAAAA,EAA8EG,OAA9EH,CAAsFV,WAAtFU,CAAAA;;;;;;AAlBG;AAyB1DU,cAAAA,8BAAAA,SAAuCN,uBAAAA,CAAT;EAAA,OAAA,OAAA,CAAA,CAAA,EAAA,MAAA;EAAA,iBAGTX,EAAAA,OAAAA;EAAkB,OAAA,qBAAA,CAAA,MAAA,CAAA,EAAlBA,kBAAkB,CAAA,EAAGA,kBAAH,CAAA,GAAA,EAAA,wBAAA,EAAA,GAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"criteria.d.cts","names":["BaseLanguageModelInterface","BaseLLMOutputParser","ChainValues","ChatGeneration","Generation","BasePromptTemplate","Callbacks","BaseCallbackConfig","EvalOutputType","LLMEvalChainInput","LLMStringEvaluator","StringEvaluatorArgs","ExtractLLMCallOptions","ConstitutionalPrinciple","Criteria","CriteriaLike","CriteriaResultOutputParser","Promise","CriteriaEvalInput","CriteriaEvalChain","Record","____________langchain_core_dist_prompt_values_js2","BasePromptValueInterface","Omit","Partial","input","prediction","reference","LabeledCriteriaEvalChain"],"sources":["../../../src/evaluation/criteria/criteria.d.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport { BaseLLMOutputParser } from \"@langchain/core/output_parsers\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { ChatGeneration, Generation } from \"@langchain/core/outputs\";\nimport { BasePromptTemplate } from \"@langchain/core/prompts\";\nimport { Callbacks, BaseCallbackConfig } from \"@langchain/core/callbacks/manager\";\nimport { EvalOutputType, LLMEvalChainInput, LLMStringEvaluator, StringEvaluatorArgs, type ExtractLLMCallOptions } from \"../base.js\";\nimport { ConstitutionalPrinciple } from \"../../chains/constitutional_ai/constitutional_principle.js\";\n/**\n * A Criteria to evaluate.\n */\nexport type Criteria = \"conciseness\" | \"relevance\" | \"correctness\" | \"coherence\" | \"harmfulness\" | \"maliciousness\" | \"helpfulness\" | \"controversiality\" | \"misogyny\" | \"criminality\" | \"insensitivity\" | \"depth\" | \"creativity\" | \"detail\";\nexport type CriteriaLike = {\n [key: string]: string;\n} | Criteria | ConstitutionalPrinciple;\n/**\n * A parser for the output of the CriteriaEvalChain.\n */\nexport declare class CriteriaResultOutputParser extends BaseLLMOutputParser<EvalOutputType> {\n lc_namespace: string[];\n parseResult(generations: Generation[] | ChatGeneration[], _callbacks: Callbacks | undefined): Promise<EvalOutputType>;\n}\nexport interface CriteriaEvalInput {\n input?: string;\n output: string;\n reference?: string;\n}\nexport declare class CriteriaEvalChain extends LLMStringEvaluator {\n static lc_name(): string;\n criterionName?: string;\n evaluationName?: string;\n requiresInput: boolean;\n requiresReference: boolean;\n skipReferenceWarning: string;\n // The output parser to use for the evaluation chain.\n outputParser: BaseLLMOutputParser<EvalOutputType>;\n /**\n * Resolve the criteria to evaluate.\n * @param criteria The criteria to evaluate the runs against. It can be:\n * - a mapping of a criterion name to its description\n * - a single criterion name present in one of the default criteria\n * - a single `ConstitutionalPrinciple` instance\n *\n * @return A dictionary mapping criterion names to descriptions.\n */\n static resolveCriteria(criteria?: CriteriaLike): Record<string, string>;\n /**\n * Resolve the prompt to use for the evaluation.\n * @param prompt\n */\n static resolvePrompt(prompt?: BasePromptTemplate): BasePromptTemplate<any, import(\"../../../../langchain-core/dist/prompt_values.js\").BasePromptValueInterface, any>;\n /**\n * Create a new instance of the CriteriaEvalChain.\n * @param llm\n * @param criteria\n * @param chainOptions Options to pass to the constructor of the LLMChain.\n */\n static fromLLM(llm: BaseLanguageModelInterface, criteria?: CriteriaLike, chainOptions?: Partial<Omit<LLMEvalChainInput, \"llm\">>): Promise<CriteriaEvalChain>;\n getEvalInput({ input, prediction, reference }: StringEvaluatorArgs): CriteriaEvalInput;\n /**\n * Prepare the output of the evaluation.\n * @param result\n */\n _prepareOutput(result: ChainValues): any;\n _evaluateStrings(args: StringEvaluatorArgs & ExtractLLMCallOptions<this[\"llm\"]>, config?: Callbacks | BaseCallbackConfig): Promise<ChainValues>;\n}\n/**\n * Criteria evaluation chain that requires references.\n */\nexport declare class LabeledCriteriaEvalChain extends CriteriaEvalChain {\n static lc_name(): string;\n // Whether the evaluation requires a reference text.\n requiresReference: boolean;\n static resolvePrompt(prompt?: BasePromptTemplate): BasePromptTemplate<any, import(\"../../../../langchain-core/dist/prompt_values.js\").BasePromptValueInterface, any>;\n}\n"],"mappings":";;;;;;;;;;;;;;AAWYc,KAAAA,QAAAA,GAAQ,aAAA,GAAA,WAAA,GAAA,aAAA,GAAA,WAAA,GAAA,aAAA,GAAA,eAAA,GAAA,aAAA,GAAA,kBAAA,GAAA,UAAA,GAAA,aAAA,GAAA,eAAA,GAAA,OAAA,GAAA,YAAA,GAAA,QAAA;AACRC,KAAAA,YAAAA,GAAY;EAAA,CAAA,GAAA,EAAA,MAAA,CAAA,EAAA,MAAA;CAAA,GAEpBD,QAAAA,GAAWD,uBAAXC;;AAAkC;AAItC;AAA+C,cAA1BE,0BAAAA,SAAmCf,mBAAT,CAA6BO,cAA7B,CAAA,CAAA;EAAA,YAA6BA,EAAAA,MAAAA,EAAAA;EAAc,WAE7DJ,CAAAA,WAAAA,EAAAA,UAAAA,EAAAA,GAAeD,cAAfC,EAAAA,EAAAA,UAAAA,EAA6CE,SAA7CF,GAAAA,SAAAA,CAAAA,EAAqEa,OAArEb,CAA6EI,cAA7EJ,CAAAA;;AAA6CE,UAEzDY,iBAAAA,CAFyDZ;EAAS,KAAuBE,CAAAA,EAAAA,MAAAA;EAAc,MAAtBS,EAAAA,MAAAA;EAAO,SAFjDhB,CAAAA,EAAAA,MAAAA;AAAmB;AAI1DiB,cAKIC,iBAAAA,SAA0BT,kBAAAA,CALb;EAKbS,OAAAA,OAAAA,CAAAA,CAAAA,EAAAA,MAAiB;EAAA,aAAA,CAAA,EAAA,MAAA;EAAA,cAQAX,CAAAA,EAAAA,MAAAA;EAAc,aAAlCP,EAAAA,OAAAA;EAAmB,iBAUCc,EAAAA,OAAAA;EAAY,oBAAGK,EAAAA,MAAAA;EAAM;EAKP,YAAA,EAflCnB,mBAekC,CAfdO,cAec,CAAA;EAA8G;;;;;;;;;EAQ1I,OAAEkB,eAAAA,CAAAA,QAAAA,CAAAA,EAbYX,YAaZW,CAAAA,EAb2BN,MAa3BM,CAAAA,MAAAA,EAAAA,MAAAA,CAAAA;EAAU;;;;EAKE,OACXf,aAAAA,CAAAA,MAAAA,CAAAA,EAdON,kBAcPM,CAAAA,EAd4BN,kBAc5BM,CAAAA,GAAAA,EAdyB,wBAAA,EAczBA,GAAAA,CAAAA;EAAmB;;;;;;EArCmB,OAAA,OAAA,CAAA,GAAA,EA8BzCX,0BA9ByC,EAAA,QAAA,CAAA,EA8BFe,YA9BE,EAAA,YAAA,CAAA,EA8B2BS,OA9B3B,CA8BmCD,IA9BnC,CA8BwCd,iBA9BxC,EAAA,KAAA,CAAA,CAAA,CAAA,EA8BqEQ,OA9BrE,CA8B6EE,iBA9B7E,CAAA;EA0C5CS,YAAAA,CAAAA;IAAAA,KAAAA;IAAAA,UAAwB;IAAA;EAAA,CAAA,EAXMjB,mBAWN,CAAA,EAX4BO,iBAW5B;EAAA;;;;EAI4B,cAJnBC,CAAAA,MAAAA,EAN3BjB,WAM2BiB,CAAAA,EAAAA,GAAAA;EAAiB,gBAAA,CAAA,IAAA,EAL5CR,mBAK4C,GALtBC,qBAKsB,CAAA,IAAA,CAAA,KAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EALuBN,SAKvB,GALmCC,kBAKnC,CAAA,EALwDU,OAKxD,CALgEf,WAKhE,CAAA;;;;;cAAlD0B,wBAAAA,SAAiCT,iBAAAA;;;;gCAIpBd,qBAAqBA,wBAAH,wBAAA"}
1
+ {"version":3,"file":"criteria.d.cts","names":["BaseLanguageModelInterface","BaseLLMOutputParser","ChainValues","ChatGeneration","Generation","BasePromptTemplate","Callbacks","BaseCallbackConfig","EvalOutputType","LLMEvalChainInput","LLMStringEvaluator","StringEvaluatorArgs","ExtractLLMCallOptions","ConstitutionalPrinciple","Criteria","CriteriaLike","CriteriaResultOutputParser","Promise","CriteriaEvalInput","CriteriaEvalChain","Record","____________langchain_core_dist_prompt_values_js0","BasePromptValueInterface","Omit","Partial","input","prediction","reference","LabeledCriteriaEvalChain"],"sources":["../../../src/evaluation/criteria/criteria.d.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport { BaseLLMOutputParser } from \"@langchain/core/output_parsers\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { ChatGeneration, Generation } from \"@langchain/core/outputs\";\nimport { BasePromptTemplate } from \"@langchain/core/prompts\";\nimport { Callbacks, BaseCallbackConfig } from \"@langchain/core/callbacks/manager\";\nimport { EvalOutputType, LLMEvalChainInput, LLMStringEvaluator, StringEvaluatorArgs, type ExtractLLMCallOptions } from \"../base.js\";\nimport { ConstitutionalPrinciple } from \"../../chains/constitutional_ai/constitutional_principle.js\";\n/**\n * A Criteria to evaluate.\n */\nexport type Criteria = \"conciseness\" | \"relevance\" | \"correctness\" | \"coherence\" | \"harmfulness\" | \"maliciousness\" | \"helpfulness\" | \"controversiality\" | \"misogyny\" | \"criminality\" | \"insensitivity\" | \"depth\" | \"creativity\" | \"detail\";\nexport type CriteriaLike = {\n [key: string]: string;\n} | Criteria | ConstitutionalPrinciple;\n/**\n * A parser for the output of the CriteriaEvalChain.\n */\nexport declare class CriteriaResultOutputParser extends BaseLLMOutputParser<EvalOutputType> {\n lc_namespace: string[];\n parseResult(generations: Generation[] | ChatGeneration[], _callbacks: Callbacks | undefined): Promise<EvalOutputType>;\n}\nexport interface CriteriaEvalInput {\n input?: string;\n output: string;\n reference?: string;\n}\nexport declare class CriteriaEvalChain extends LLMStringEvaluator {\n static lc_name(): string;\n criterionName?: string;\n evaluationName?: string;\n requiresInput: boolean;\n requiresReference: boolean;\n skipReferenceWarning: string;\n // The output parser to use for the evaluation chain.\n outputParser: BaseLLMOutputParser<EvalOutputType>;\n /**\n * Resolve the criteria to evaluate.\n * @param criteria The criteria to evaluate the runs against. It can be:\n * - a mapping of a criterion name to its description\n * - a single criterion name present in one of the default criteria\n * - a single `ConstitutionalPrinciple` instance\n *\n * @return A dictionary mapping criterion names to descriptions.\n */\n static resolveCriteria(criteria?: CriteriaLike): Record<string, string>;\n /**\n * Resolve the prompt to use for the evaluation.\n * @param prompt\n */\n static resolvePrompt(prompt?: BasePromptTemplate): BasePromptTemplate<any, import(\"../../../../langchain-core/dist/prompt_values.js\").BasePromptValueInterface, any>;\n /**\n * Create a new instance of the CriteriaEvalChain.\n * @param llm\n * @param criteria\n * @param chainOptions Options to pass to the constructor of the LLMChain.\n */\n static fromLLM(llm: BaseLanguageModelInterface, criteria?: CriteriaLike, chainOptions?: Partial<Omit<LLMEvalChainInput, \"llm\">>): Promise<CriteriaEvalChain>;\n getEvalInput({ input, prediction, reference }: StringEvaluatorArgs): CriteriaEvalInput;\n /**\n * Prepare the output of the evaluation.\n * @param result\n */\n _prepareOutput(result: ChainValues): any;\n _evaluateStrings(args: StringEvaluatorArgs & ExtractLLMCallOptions<this[\"llm\"]>, config?: Callbacks | BaseCallbackConfig): Promise<ChainValues>;\n}\n/**\n * Criteria evaluation chain that requires references.\n */\nexport declare class LabeledCriteriaEvalChain extends CriteriaEvalChain {\n static lc_name(): string;\n // Whether the evaluation requires a reference text.\n requiresReference: boolean;\n static resolvePrompt(prompt?: BasePromptTemplate): BasePromptTemplate<any, import(\"../../../../langchain-core/dist/prompt_values.js\").BasePromptValueInterface, any>;\n}\n"],"mappings":";;;;;;;;;;;;;;AAWYc,KAAAA,QAAAA,GAAQ,aAAA,GAAA,WAAA,GAAA,aAAA,GAAA,WAAA,GAAA,aAAA,GAAA,eAAA,GAAA,aAAA,GAAA,kBAAA,GAAA,UAAA,GAAA,aAAA,GAAA,eAAA,GAAA,OAAA,GAAA,YAAA,GAAA,QAAA;AACRC,KAAAA,YAAAA,GAAY;EAAA,CAAA,GAAA,EAAA,MAAA,CAAA,EAAA,MAAA;CAAA,GAEpBD,QAAAA,GAAWD,uBAAXC;;AAAkC;AAItC;AAA+C,cAA1BE,0BAAAA,SAAmCf,mBAAT,CAA6BO,cAA7B,CAAA,CAAA;EAAA,YAA6BA,EAAAA,MAAAA,EAAAA;EAAc,WAE7DJ,CAAAA,WAAAA,EAAAA,UAAAA,EAAAA,GAAeD,cAAfC,EAAAA,EAAAA,UAAAA,EAA6CE,SAA7CF,GAAAA,SAAAA,CAAAA,EAAqEa,OAArEb,CAA6EI,cAA7EJ,CAAAA;;AAA6CE,UAEzDY,iBAAAA,CAFyDZ;EAAS,KAAuBE,CAAAA,EAAAA,MAAAA;EAAc,MAAtBS,EAAAA,MAAAA;EAAO,SAFjDhB,CAAAA,EAAAA,MAAAA;AAAmB;AAI1DiB,cAKIC,iBAAAA,SAA0BT,kBAAAA,CALb;EAKbS,OAAAA,OAAAA,CAAAA,CAAAA,EAAAA,MAAiB;EAAA,aAAA,CAAA,EAAA,MAAA;EAAA,cAQAX,CAAAA,EAAAA,MAAAA;EAAc,aAAlCP,EAAAA,OAAAA;EAAmB,iBAUCc,EAAAA,OAAAA;EAAY,oBAAGK,EAAAA,MAAAA;EAAM;EAKP,YAAA,EAflCnB,mBAekC,CAfdO,cAec,CAAA;EAA8G;;;;;;;;;EAQ1I,OAAEkB,eAAAA,CAAAA,QAAAA,CAAAA,EAbYX,YAaZW,CAAAA,EAb2BN,MAa3BM,CAAAA,MAAAA,EAAAA,MAAAA,CAAAA;EAAU;;;;EAKE,OACXf,aAAAA,CAAAA,MAAAA,CAAAA,EAdON,kBAcPM,CAAAA,EAd4BN,kBAc5BM,CAAAA,GAAAA,EAdyB,wBAAA,EAczBA,GAAAA,CAAAA;EAAmB;;;;;;EArCmB,OAAA,OAAA,CAAA,GAAA,EA8BzCX,0BA9ByC,EAAA,QAAA,CAAA,EA8BFe,YA9BE,EAAA,YAAA,CAAA,EA8B2BS,OA9B3B,CA8BmCD,IA9BnC,CA8BwCd,iBA9BxC,EAAA,KAAA,CAAA,CAAA,CAAA,EA8BqEQ,OA9BrE,CA8B6EE,iBA9B7E,CAAA;EA0C5CS,YAAAA,CAAAA;IAAAA,KAAAA;IAAAA,UAAwB;IAAA;EAAA,CAAA,EAXMjB,mBAWN,CAAA,EAX4BO,iBAW5B;EAAA;;;;EAI4B,cAJnBC,CAAAA,MAAAA,EAN3BjB,WAM2BiB,CAAAA,EAAAA,GAAAA;EAAiB,gBAAA,CAAA,IAAA,EAL5CR,mBAK4C,GALtBC,qBAKsB,CAAA,IAAA,CAAA,KAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EALuBN,SAKvB,GALmCC,kBAKnC,CAAA,EALwDU,OAKxD,CALgEf,WAKhE,CAAA;;;;;cAAlD0B,wBAAAA,SAAiCT,iBAAAA;;;;gCAIpBd,qBAAqBA,wBAAH,wBAAA"}
@@ -1,9 +1,7 @@
1
- const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
1
  const require_base = require('../base.cjs');
3
2
  const require_similarities = require('../../util/ml-distance/similarities.cjs');
4
3
  const require_distances = require('../../util/ml-distance/distances.cjs');
5
4
  const require_euclidean = require('../../util/ml-distance-euclidean/euclidean.cjs');
6
- const __langchain_openai = require_rolldown_runtime.__toESM(require("@langchain/openai"));
7
5
 
8
6
  //#region src/evaluation/embedding_distance/base.ts
9
7
  /**
@@ -42,7 +40,7 @@ var EmbeddingDistanceEvalChain = class extends require_base.StringEvaluator {
42
40
  distanceMetric = "cosine";
43
41
  constructor(fields) {
44
42
  super();
45
- this.embedding = fields?.embedding || new __langchain_openai.OpenAIEmbeddings();
43
+ this.embedding = fields?.embedding;
46
44
  this.distanceMetric = fields?.distanceMetric || "cosine";
47
45
  }
48
46
  _chainType() {
@@ -77,7 +75,7 @@ var PairwiseEmbeddingDistanceEvalChain = class extends require_base.PairwiseStri
77
75
  distanceMetric = "cosine";
78
76
  constructor(fields) {
79
77
  super();
80
- this.embedding = fields?.embedding || new __langchain_openai.OpenAIEmbeddings();
78
+ this.embedding = fields?.embedding;
81
79
  this.distanceMetric = fields?.distanceMetric || "cosine";
82
80
  }
83
81
  _chainType() {
@@ -1 +1 @@
1
- {"version":3,"file":"base.cjs","names":["distanceType: EmbeddingDistanceType","distanceFunctions: { [key in EmbeddingDistanceType]: VectorFunction }","X: number[]","Y: number[]","cosine","vectors: number[][]","distanceMetric: EmbeddingDistanceType","StringEvaluator","fields: EmbeddingDistanceEvalChainInput","OpenAIEmbeddings","args: StringEvaluatorArgs","config: Callbacks | BaseCallbackConfig | undefined","values: ChainValues","_runManager: CallbackManagerForChainRun | undefined","PairwiseStringEvaluator","args: PairwiseStringEvaluatorArgs","config?: Callbacks | BaseCallbackConfig"],"sources":["../../../src/evaluation/embedding_distance/base.ts"],"sourcesContent":["import type { EmbeddingsInterface } from \"@langchain/core/embeddings\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { OpenAIEmbeddings } from \"@langchain/openai\";\nimport {\n CallbackManagerForChainRun,\n Callbacks,\n BaseCallbackConfig,\n} from \"@langchain/core/callbacks/manager\";\nimport {\n PairwiseStringEvaluator,\n PairwiseStringEvaluatorArgs,\n StringEvaluator,\n StringEvaluatorArgs,\n} from \"../base.js\";\nimport { cosine } from \"../../util/ml-distance/similarities.js\";\nimport { chebyshev, manhattan } from \"../../util/ml-distance/distances.js\";\nimport { euclidean } from \"../../util/ml-distance-euclidean/euclidean.js\";\n\n/**\n *\n * Embedding Distance Metric.\n *\n * COSINE: Cosine distance metric.\n * EUCLIDEAN: Euclidean distance metric.\n * MANHATTAN: Manhattan distance metric.\n * CHEBYSHEV: Chebyshev distance metric.\n * HAMMING: Hamming distance metric.\n */\nexport type EmbeddingDistanceType =\n | \"cosine\"\n | \"euclidean\"\n | \"manhattan\"\n | \"chebyshev\";\n\n/**\n * Embedding Distance Evaluation Chain Input.\n */\nexport interface EmbeddingDistanceEvalChainInput {\n /**\n * The embedding objects to vectorize the outputs.\n */\n embedding?: EmbeddingsInterface;\n\n /**\n * The distance metric to use\n * for comparing the embeddings.\n */\n distanceMetric?: EmbeddingDistanceType;\n}\n\ntype VectorFunction = (xVector: number[], yVector: number[]) => number;\n\n/**\n * Get the distance function for the given distance type.\n * @param distance The distance type.\n * @return The distance function.\n */\nexport function getDistanceCalculationFunction(\n distanceType: EmbeddingDistanceType\n): VectorFunction {\n const distanceFunctions: { [key in EmbeddingDistanceType]: VectorFunction } =\n {\n cosine: (X: number[], Y: number[]) => 1.0 - cosine(X, Y),\n euclidean,\n manhattan,\n chebyshev,\n };\n\n return distanceFunctions[distanceType];\n}\n\n/**\n * Compute the score based on the distance metric.\n * @param vectors The input vectors.\n * @param distanceMetric The distance metric.\n * @return The computed score.\n */\nexport function computeEvaluationScore(\n vectors: number[][],\n distanceMetric: EmbeddingDistanceType\n): number {\n const metricFunction = getDistanceCalculationFunction(distanceMetric);\n return metricFunction(vectors[0], vectors[1]);\n}\n\n/**\n * Use embedding distances to score semantic difference between\n * a prediction and reference.\n */\nexport class EmbeddingDistanceEvalChain\n extends StringEvaluator\n implements EmbeddingDistanceEvalChainInput\n{\n requiresReference = true;\n\n requiresInput = false;\n\n outputKey = \"score\";\n\n embedding?: EmbeddingsInterface;\n\n distanceMetric: EmbeddingDistanceType = \"cosine\";\n\n constructor(fields: EmbeddingDistanceEvalChainInput) {\n super();\n this.embedding = fields?.embedding || new OpenAIEmbeddings();\n this.distanceMetric = fields?.distanceMetric || \"cosine\";\n }\n\n _chainType() {\n return `embedding_${this.distanceMetric}_distance` as const;\n }\n\n async _evaluateStrings(\n args: StringEvaluatorArgs,\n config: Callbacks | BaseCallbackConfig | undefined\n ): Promise<ChainValues> {\n const result = await this.call(args, config);\n\n return { [this.outputKey]: result[this.outputKey] };\n }\n\n get inputKeys(): string[] {\n return [\"reference\", \"prediction\"];\n }\n\n get outputKeys(): string[] {\n return [this.outputKey];\n }\n\n async _call(\n values: ChainValues,\n _runManager: CallbackManagerForChainRun | undefined\n ): Promise<ChainValues> {\n const { prediction, reference } = values;\n\n if (!this.embedding) throw new Error(\"Embedding is undefined\");\n\n const vectors = await this.embedding.embedDocuments([\n prediction,\n reference,\n ]);\n\n const score = computeEvaluationScore(vectors, this.distanceMetric);\n\n return { [this.outputKey]: score };\n }\n}\n\n/**\n * Use embedding distances to score semantic difference between two predictions.\n */\nexport class PairwiseEmbeddingDistanceEvalChain\n extends PairwiseStringEvaluator\n implements EmbeddingDistanceEvalChainInput\n{\n requiresReference = false;\n\n requiresInput = false;\n\n outputKey = \"score\";\n\n embedding?: EmbeddingsInterface;\n\n distanceMetric: EmbeddingDistanceType = \"cosine\";\n\n constructor(fields: EmbeddingDistanceEvalChainInput) {\n super();\n this.embedding = fields?.embedding || new OpenAIEmbeddings();\n this.distanceMetric = fields?.distanceMetric || \"cosine\";\n }\n\n _chainType() {\n return `pairwise_embedding_${this.distanceMetric}_distance` as const;\n }\n\n async _evaluateStringPairs(\n args: PairwiseStringEvaluatorArgs,\n config?: Callbacks | BaseCallbackConfig\n ): Promise<ChainValues> {\n const result = await this.call(args, config);\n\n return { [this.outputKey]: result[this.outputKey] };\n }\n\n get inputKeys(): string[] {\n return [\"prediction\", \"predictionB\"];\n }\n\n get outputKeys(): string[] {\n return [this.outputKey];\n }\n\n async _call(\n values: ChainValues,\n _runManager: CallbackManagerForChainRun | undefined\n ): Promise<ChainValues> {\n const { prediction, predictionB } = values;\n\n if (!this.embedding) throw new Error(\"Embedding is undefined\");\n\n const vectors = await this.embedding.embedDocuments([\n prediction,\n predictionB,\n ]);\n\n const score = computeEvaluationScore(vectors, this.distanceMetric);\n\n return { [this.outputKey]: score };\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAyDA,SAAgB,+BACdA,cACgB;CAChB,MAAMC,oBACJ;EACE,QAAQ,CAACC,GAAaC,MAAgB,IAAMC,4BAAO,GAAG,EAAE;EACxD;EACA;EACA;CACD;AAEH,QAAO,kBAAkB;AAC1B;;;;;;;AAQD,SAAgB,uBACdC,SACAC,gBACQ;CACR,MAAM,iBAAiB,+BAA+B,eAAe;AACrE,QAAO,eAAe,QAAQ,IAAI,QAAQ,GAAG;AAC9C;;;;;AAMD,IAAa,6BAAb,cACUC,6BAEV;CACE,oBAAoB;CAEpB,gBAAgB;CAEhB,YAAY;CAEZ;CAEA,iBAAwC;CAExC,YAAYC,QAAyC;EACnD,OAAO;EACP,KAAK,YAAY,QAAQ,aAAa,IAAIC;EAC1C,KAAK,iBAAiB,QAAQ,kBAAkB;CACjD;CAED,aAAa;AACX,SAAO,CAAC,UAAU,EAAE,KAAK,eAAe,SAAS,CAAC;CACnD;CAED,MAAM,iBACJC,MACAC,QACsB;EACtB,MAAM,SAAS,MAAM,KAAK,KAAK,MAAM,OAAO;AAE5C,SAAO,GAAG,KAAK,YAAY,OAAO,KAAK,WAAY;CACpD;CAED,IAAI,YAAsB;AACxB,SAAO,CAAC,aAAa,YAAa;CACnC;CAED,IAAI,aAAuB;AACzB,SAAO,CAAC,KAAK,SAAU;CACxB;CAED,MAAM,MACJC,QACAC,aACsB;EACtB,MAAM,EAAE,YAAY,WAAW,GAAG;AAElC,MAAI,CAAC,KAAK,UAAW,OAAM,IAAI,MAAM;EAErC,MAAM,UAAU,MAAM,KAAK,UAAU,eAAe,CAClD,YACA,SACD,EAAC;EAEF,MAAM,QAAQ,uBAAuB,SAAS,KAAK,eAAe;AAElE,SAAO,GAAG,KAAK,YAAY,MAAO;CACnC;AACF;;;;AAKD,IAAa,qCAAb,cACUC,qCAEV;CACE,oBAAoB;CAEpB,gBAAgB;CAEhB,YAAY;CAEZ;CAEA,iBAAwC;CAExC,YAAYN,QAAyC;EACnD,OAAO;EACP,KAAK,YAAY,QAAQ,aAAa,IAAIC;EAC1C,KAAK,iBAAiB,QAAQ,kBAAkB;CACjD;CAED,aAAa;AACX,SAAO,CAAC,mBAAmB,EAAE,KAAK,eAAe,SAAS,CAAC;CAC5D;CAED,MAAM,qBACJM,MACAC,QACsB;EACtB,MAAM,SAAS,MAAM,KAAK,KAAK,MAAM,OAAO;AAE5C,SAAO,GAAG,KAAK,YAAY,OAAO,KAAK,WAAY;CACpD;CAED,IAAI,YAAsB;AACxB,SAAO,CAAC,cAAc,aAAc;CACrC;CAED,IAAI,aAAuB;AACzB,SAAO,CAAC,KAAK,SAAU;CACxB;CAED,MAAM,MACJJ,QACAC,aACsB;EACtB,MAAM,EAAE,YAAY,aAAa,GAAG;AAEpC,MAAI,CAAC,KAAK,UAAW,OAAM,IAAI,MAAM;EAErC,MAAM,UAAU,MAAM,KAAK,UAAU,eAAe,CAClD,YACA,WACD,EAAC;EAEF,MAAM,QAAQ,uBAAuB,SAAS,KAAK,eAAe;AAElE,SAAO,GAAG,KAAK,YAAY,MAAO;CACnC;AACF"}
1
+ {"version":3,"file":"base.cjs","names":["distanceType: EmbeddingDistanceType","distanceFunctions: { [key in EmbeddingDistanceType]: VectorFunction }","X: number[]","Y: number[]","cosine","vectors: number[][]","distanceMetric: EmbeddingDistanceType","StringEvaluator","fields: EmbeddingDistanceEvalChainInput","args: StringEvaluatorArgs","config: Callbacks | BaseCallbackConfig | undefined","values: ChainValues","_runManager: CallbackManagerForChainRun | undefined","PairwiseStringEvaluator","args: PairwiseStringEvaluatorArgs","config?: Callbacks | BaseCallbackConfig"],"sources":["../../../src/evaluation/embedding_distance/base.ts"],"sourcesContent":["import type { EmbeddingsInterface } from \"@langchain/core/embeddings\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport {\n CallbackManagerForChainRun,\n Callbacks,\n BaseCallbackConfig,\n} from \"@langchain/core/callbacks/manager\";\nimport {\n PairwiseStringEvaluator,\n PairwiseStringEvaluatorArgs,\n StringEvaluator,\n StringEvaluatorArgs,\n} from \"../base.js\";\nimport { cosine } from \"../../util/ml-distance/similarities.js\";\nimport { chebyshev, manhattan } from \"../../util/ml-distance/distances.js\";\nimport { euclidean } from \"../../util/ml-distance-euclidean/euclidean.js\";\n\n/**\n *\n * Embedding Distance Metric.\n *\n * COSINE: Cosine distance metric.\n * EUCLIDEAN: Euclidean distance metric.\n * MANHATTAN: Manhattan distance metric.\n * CHEBYSHEV: Chebyshev distance metric.\n * HAMMING: Hamming distance metric.\n */\nexport type EmbeddingDistanceType =\n | \"cosine\"\n | \"euclidean\"\n | \"manhattan\"\n | \"chebyshev\";\n\n/**\n * Embedding Distance Evaluation Chain Input.\n */\nexport interface EmbeddingDistanceEvalChainInput {\n /**\n * The embedding objects to vectorize the outputs.\n */\n embedding?: EmbeddingsInterface;\n\n /**\n * The distance metric to use\n * for comparing the embeddings.\n */\n distanceMetric?: EmbeddingDistanceType;\n}\n\ntype VectorFunction = (xVector: number[], yVector: number[]) => number;\n\n/**\n * Get the distance function for the given distance type.\n * @param distance The distance type.\n * @return The distance function.\n */\nexport function getDistanceCalculationFunction(\n distanceType: EmbeddingDistanceType\n): VectorFunction {\n const distanceFunctions: { [key in EmbeddingDistanceType]: VectorFunction } =\n {\n cosine: (X: number[], Y: number[]) => 1.0 - cosine(X, Y),\n euclidean,\n manhattan,\n chebyshev,\n };\n\n return distanceFunctions[distanceType];\n}\n\n/**\n * Compute the score based on the distance metric.\n * @param vectors The input vectors.\n * @param distanceMetric The distance metric.\n * @return The computed score.\n */\nexport function computeEvaluationScore(\n vectors: number[][],\n distanceMetric: EmbeddingDistanceType\n): number {\n const metricFunction = getDistanceCalculationFunction(distanceMetric);\n return metricFunction(vectors[0], vectors[1]);\n}\n\n/**\n * Use embedding distances to score semantic difference between\n * a prediction and reference.\n */\nexport class EmbeddingDistanceEvalChain\n extends StringEvaluator\n implements EmbeddingDistanceEvalChainInput\n{\n requiresReference = true;\n\n requiresInput = false;\n\n outputKey = \"score\";\n\n embedding?: EmbeddingsInterface;\n\n distanceMetric: EmbeddingDistanceType = \"cosine\";\n\n constructor(fields: EmbeddingDistanceEvalChainInput) {\n super();\n this.embedding = fields?.embedding;\n this.distanceMetric = fields?.distanceMetric || \"cosine\";\n }\n\n _chainType() {\n return `embedding_${this.distanceMetric}_distance` as const;\n }\n\n async _evaluateStrings(\n args: StringEvaluatorArgs,\n config: Callbacks | BaseCallbackConfig | undefined\n ): Promise<ChainValues> {\n const result = await this.call(args, config);\n\n return { [this.outputKey]: result[this.outputKey] };\n }\n\n get inputKeys(): string[] {\n return [\"reference\", \"prediction\"];\n }\n\n get outputKeys(): string[] {\n return [this.outputKey];\n }\n\n async _call(\n values: ChainValues,\n _runManager: CallbackManagerForChainRun | undefined\n ): Promise<ChainValues> {\n const { prediction, reference } = values;\n\n if (!this.embedding) throw new Error(\"Embedding is undefined\");\n\n const vectors = await this.embedding.embedDocuments([\n prediction,\n reference,\n ]);\n\n const score = computeEvaluationScore(vectors, this.distanceMetric);\n\n return { [this.outputKey]: score };\n }\n}\n\n/**\n * Use embedding distances to score semantic difference between two predictions.\n */\nexport class PairwiseEmbeddingDistanceEvalChain\n extends PairwiseStringEvaluator\n implements EmbeddingDistanceEvalChainInput\n{\n requiresReference = false;\n\n requiresInput = false;\n\n outputKey = \"score\";\n\n embedding?: EmbeddingsInterface;\n\n distanceMetric: EmbeddingDistanceType = \"cosine\";\n\n constructor(fields: EmbeddingDistanceEvalChainInput) {\n super();\n this.embedding = fields?.embedding;\n this.distanceMetric = fields?.distanceMetric || \"cosine\";\n }\n\n _chainType() {\n return `pairwise_embedding_${this.distanceMetric}_distance` as const;\n }\n\n async _evaluateStringPairs(\n args: PairwiseStringEvaluatorArgs,\n config?: Callbacks | BaseCallbackConfig\n ): Promise<ChainValues> {\n const result = await this.call(args, config);\n\n return { [this.outputKey]: result[this.outputKey] };\n }\n\n get inputKeys(): string[] {\n return [\"prediction\", \"predictionB\"];\n }\n\n get outputKeys(): string[] {\n return [this.outputKey];\n }\n\n async _call(\n values: ChainValues,\n _runManager: CallbackManagerForChainRun | undefined\n ): Promise<ChainValues> {\n const { prediction, predictionB } = values;\n\n if (!this.embedding) throw new Error(\"Embedding is undefined\");\n\n const vectors = await this.embedding.embedDocuments([\n prediction,\n predictionB,\n ]);\n\n const score = computeEvaluationScore(vectors, this.distanceMetric);\n\n return { [this.outputKey]: score };\n }\n}\n"],"mappings":";;;;;;;;;;;AAwDA,SAAgB,+BACdA,cACgB;CAChB,MAAMC,oBACJ;EACE,QAAQ,CAACC,GAAaC,MAAgB,IAAMC,4BAAO,GAAG,EAAE;EACxD;EACA;EACA;CACD;AAEH,QAAO,kBAAkB;AAC1B;;;;;;;AAQD,SAAgB,uBACdC,SACAC,gBACQ;CACR,MAAM,iBAAiB,+BAA+B,eAAe;AACrE,QAAO,eAAe,QAAQ,IAAI,QAAQ,GAAG;AAC9C;;;;;AAMD,IAAa,6BAAb,cACUC,6BAEV;CACE,oBAAoB;CAEpB,gBAAgB;CAEhB,YAAY;CAEZ;CAEA,iBAAwC;CAExC,YAAYC,QAAyC;EACnD,OAAO;EACP,KAAK,YAAY,QAAQ;EACzB,KAAK,iBAAiB,QAAQ,kBAAkB;CACjD;CAED,aAAa;AACX,SAAO,CAAC,UAAU,EAAE,KAAK,eAAe,SAAS,CAAC;CACnD;CAED,MAAM,iBACJC,MACAC,QACsB;EACtB,MAAM,SAAS,MAAM,KAAK,KAAK,MAAM,OAAO;AAE5C,SAAO,GAAG,KAAK,YAAY,OAAO,KAAK,WAAY;CACpD;CAED,IAAI,YAAsB;AACxB,SAAO,CAAC,aAAa,YAAa;CACnC;CAED,IAAI,aAAuB;AACzB,SAAO,CAAC,KAAK,SAAU;CACxB;CAED,MAAM,MACJC,QACAC,aACsB;EACtB,MAAM,EAAE,YAAY,WAAW,GAAG;AAElC,MAAI,CAAC,KAAK,UAAW,OAAM,IAAI,MAAM;EAErC,MAAM,UAAU,MAAM,KAAK,UAAU,eAAe,CAClD,YACA,SACD,EAAC;EAEF,MAAM,QAAQ,uBAAuB,SAAS,KAAK,eAAe;AAElE,SAAO,GAAG,KAAK,YAAY,MAAO;CACnC;AACF;;;;AAKD,IAAa,qCAAb,cACUC,qCAEV;CACE,oBAAoB;CAEpB,gBAAgB;CAEhB,YAAY;CAEZ;CAEA,iBAAwC;CAExC,YAAYL,QAAyC;EACnD,OAAO;EACP,KAAK,YAAY,QAAQ;EACzB,KAAK,iBAAiB,QAAQ,kBAAkB;CACjD;CAED,aAAa;AACX,SAAO,CAAC,mBAAmB,EAAE,KAAK,eAAe,SAAS,CAAC;CAC5D;CAED,MAAM,qBACJM,MACAC,QACsB;EACtB,MAAM,SAAS,MAAM,KAAK,KAAK,MAAM,OAAO;AAE5C,SAAO,GAAG,KAAK,YAAY,OAAO,KAAK,WAAY;CACpD;CAED,IAAI,YAAsB;AACxB,SAAO,CAAC,cAAc,aAAc;CACrC;CAED,IAAI,aAAuB;AACzB,SAAO,CAAC,KAAK,SAAU;CACxB;CAED,MAAM,MACJJ,QACAC,aACsB;EACtB,MAAM,EAAE,YAAY,aAAa,GAAG;AAEpC,MAAI,CAAC,KAAK,UAAW,OAAM,IAAI,MAAM;EAErC,MAAM,UAAU,MAAM,KAAK,UAAU,eAAe,CAClD,YACA,WACD,EAAC;EAEF,MAAM,QAAQ,uBAAuB,SAAS,KAAK,eAAe;AAElE,SAAO,GAAG,KAAK,YAAY,MAAO;CACnC;AACF"}
@@ -2,7 +2,6 @@ import { PairwiseStringEvaluator, StringEvaluator } from "../base.js";
2
2
  import { cosine } from "../../util/ml-distance/similarities.js";
3
3
  import { chebyshev, manhattan } from "../../util/ml-distance/distances.js";
4
4
  import { euclidean } from "../../util/ml-distance-euclidean/euclidean.js";
5
- import { OpenAIEmbeddings } from "@langchain/openai";
6
5
 
7
6
  //#region src/evaluation/embedding_distance/base.ts
8
7
  /**
@@ -41,7 +40,7 @@ var EmbeddingDistanceEvalChain = class extends StringEvaluator {
41
40
  distanceMetric = "cosine";
42
41
  constructor(fields) {
43
42
  super();
44
- this.embedding = fields?.embedding || new OpenAIEmbeddings();
43
+ this.embedding = fields?.embedding;
45
44
  this.distanceMetric = fields?.distanceMetric || "cosine";
46
45
  }
47
46
  _chainType() {
@@ -76,7 +75,7 @@ var PairwiseEmbeddingDistanceEvalChain = class extends PairwiseStringEvaluator {
76
75
  distanceMetric = "cosine";
77
76
  constructor(fields) {
78
77
  super();
79
- this.embedding = fields?.embedding || new OpenAIEmbeddings();
78
+ this.embedding = fields?.embedding;
80
79
  this.distanceMetric = fields?.distanceMetric || "cosine";
81
80
  }
82
81
  _chainType() {
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","names":["distanceType: EmbeddingDistanceType","distanceFunctions: { [key in EmbeddingDistanceType]: VectorFunction }","X: number[]","Y: number[]","vectors: number[][]","distanceMetric: EmbeddingDistanceType","fields: EmbeddingDistanceEvalChainInput","args: StringEvaluatorArgs","config: Callbacks | BaseCallbackConfig | undefined","values: ChainValues","_runManager: CallbackManagerForChainRun | undefined","args: PairwiseStringEvaluatorArgs","config?: Callbacks | BaseCallbackConfig"],"sources":["../../../src/evaluation/embedding_distance/base.ts"],"sourcesContent":["import type { EmbeddingsInterface } from \"@langchain/core/embeddings\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { OpenAIEmbeddings } from \"@langchain/openai\";\nimport {\n CallbackManagerForChainRun,\n Callbacks,\n BaseCallbackConfig,\n} from \"@langchain/core/callbacks/manager\";\nimport {\n PairwiseStringEvaluator,\n PairwiseStringEvaluatorArgs,\n StringEvaluator,\n StringEvaluatorArgs,\n} from \"../base.js\";\nimport { cosine } from \"../../util/ml-distance/similarities.js\";\nimport { chebyshev, manhattan } from \"../../util/ml-distance/distances.js\";\nimport { euclidean } from \"../../util/ml-distance-euclidean/euclidean.js\";\n\n/**\n *\n * Embedding Distance Metric.\n *\n * COSINE: Cosine distance metric.\n * EUCLIDEAN: Euclidean distance metric.\n * MANHATTAN: Manhattan distance metric.\n * CHEBYSHEV: Chebyshev distance metric.\n * HAMMING: Hamming distance metric.\n */\nexport type EmbeddingDistanceType =\n | \"cosine\"\n | \"euclidean\"\n | \"manhattan\"\n | \"chebyshev\";\n\n/**\n * Embedding Distance Evaluation Chain Input.\n */\nexport interface EmbeddingDistanceEvalChainInput {\n /**\n * The embedding objects to vectorize the outputs.\n */\n embedding?: EmbeddingsInterface;\n\n /**\n * The distance metric to use\n * for comparing the embeddings.\n */\n distanceMetric?: EmbeddingDistanceType;\n}\n\ntype VectorFunction = (xVector: number[], yVector: number[]) => number;\n\n/**\n * Get the distance function for the given distance type.\n * @param distance The distance type.\n * @return The distance function.\n */\nexport function getDistanceCalculationFunction(\n distanceType: EmbeddingDistanceType\n): VectorFunction {\n const distanceFunctions: { [key in EmbeddingDistanceType]: VectorFunction } =\n {\n cosine: (X: number[], Y: number[]) => 1.0 - cosine(X, Y),\n euclidean,\n manhattan,\n chebyshev,\n };\n\n return distanceFunctions[distanceType];\n}\n\n/**\n * Compute the score based on the distance metric.\n * @param vectors The input vectors.\n * @param distanceMetric The distance metric.\n * @return The computed score.\n */\nexport function computeEvaluationScore(\n vectors: number[][],\n distanceMetric: EmbeddingDistanceType\n): number {\n const metricFunction = getDistanceCalculationFunction(distanceMetric);\n return metricFunction(vectors[0], vectors[1]);\n}\n\n/**\n * Use embedding distances to score semantic difference between\n * a prediction and reference.\n */\nexport class EmbeddingDistanceEvalChain\n extends StringEvaluator\n implements EmbeddingDistanceEvalChainInput\n{\n requiresReference = true;\n\n requiresInput = false;\n\n outputKey = \"score\";\n\n embedding?: EmbeddingsInterface;\n\n distanceMetric: EmbeddingDistanceType = \"cosine\";\n\n constructor(fields: EmbeddingDistanceEvalChainInput) {\n super();\n this.embedding = fields?.embedding || new OpenAIEmbeddings();\n this.distanceMetric = fields?.distanceMetric || \"cosine\";\n }\n\n _chainType() {\n return `embedding_${this.distanceMetric}_distance` as const;\n }\n\n async _evaluateStrings(\n args: StringEvaluatorArgs,\n config: Callbacks | BaseCallbackConfig | undefined\n ): Promise<ChainValues> {\n const result = await this.call(args, config);\n\n return { [this.outputKey]: result[this.outputKey] };\n }\n\n get inputKeys(): string[] {\n return [\"reference\", \"prediction\"];\n }\n\n get outputKeys(): string[] {\n return [this.outputKey];\n }\n\n async _call(\n values: ChainValues,\n _runManager: CallbackManagerForChainRun | undefined\n ): Promise<ChainValues> {\n const { prediction, reference } = values;\n\n if (!this.embedding) throw new Error(\"Embedding is undefined\");\n\n const vectors = await this.embedding.embedDocuments([\n prediction,\n reference,\n ]);\n\n const score = computeEvaluationScore(vectors, this.distanceMetric);\n\n return { [this.outputKey]: score };\n }\n}\n\n/**\n * Use embedding distances to score semantic difference between two predictions.\n */\nexport class PairwiseEmbeddingDistanceEvalChain\n extends PairwiseStringEvaluator\n implements EmbeddingDistanceEvalChainInput\n{\n requiresReference = false;\n\n requiresInput = false;\n\n outputKey = \"score\";\n\n embedding?: EmbeddingsInterface;\n\n distanceMetric: EmbeddingDistanceType = \"cosine\";\n\n constructor(fields: EmbeddingDistanceEvalChainInput) {\n super();\n this.embedding = fields?.embedding || new OpenAIEmbeddings();\n this.distanceMetric = fields?.distanceMetric || \"cosine\";\n }\n\n _chainType() {\n return `pairwise_embedding_${this.distanceMetric}_distance` as const;\n }\n\n async _evaluateStringPairs(\n args: PairwiseStringEvaluatorArgs,\n config?: Callbacks | BaseCallbackConfig\n ): Promise<ChainValues> {\n const result = await this.call(args, config);\n\n return { [this.outputKey]: result[this.outputKey] };\n }\n\n get inputKeys(): string[] {\n return [\"prediction\", \"predictionB\"];\n }\n\n get outputKeys(): string[] {\n return [this.outputKey];\n }\n\n async _call(\n values: ChainValues,\n _runManager: CallbackManagerForChainRun | undefined\n ): Promise<ChainValues> {\n const { prediction, predictionB } = values;\n\n if (!this.embedding) throw new Error(\"Embedding is undefined\");\n\n const vectors = await this.embedding.embedDocuments([\n prediction,\n predictionB,\n ]);\n\n const score = computeEvaluationScore(vectors, this.distanceMetric);\n\n return { [this.outputKey]: score };\n }\n}\n"],"mappings":";;;;;;;;;;;;AAyDA,SAAgB,+BACdA,cACgB;CAChB,MAAMC,oBACJ;EACE,QAAQ,CAACC,GAAaC,MAAgB,IAAM,OAAO,GAAG,EAAE;EACxD;EACA;EACA;CACD;AAEH,QAAO,kBAAkB;AAC1B;;;;;;;AAQD,SAAgB,uBACdC,SACAC,gBACQ;CACR,MAAM,iBAAiB,+BAA+B,eAAe;AACrE,QAAO,eAAe,QAAQ,IAAI,QAAQ,GAAG;AAC9C;;;;;AAMD,IAAa,6BAAb,cACU,gBAEV;CACE,oBAAoB;CAEpB,gBAAgB;CAEhB,YAAY;CAEZ;CAEA,iBAAwC;CAExC,YAAYC,QAAyC;EACnD,OAAO;EACP,KAAK,YAAY,QAAQ,aAAa,IAAI;EAC1C,KAAK,iBAAiB,QAAQ,kBAAkB;CACjD;CAED,aAAa;AACX,SAAO,CAAC,UAAU,EAAE,KAAK,eAAe,SAAS,CAAC;CACnD;CAED,MAAM,iBACJC,MACAC,QACsB;EACtB,MAAM,SAAS,MAAM,KAAK,KAAK,MAAM,OAAO;AAE5C,SAAO,GAAG,KAAK,YAAY,OAAO,KAAK,WAAY;CACpD;CAED,IAAI,YAAsB;AACxB,SAAO,CAAC,aAAa,YAAa;CACnC;CAED,IAAI,aAAuB;AACzB,SAAO,CAAC,KAAK,SAAU;CACxB;CAED,MAAM,MACJC,QACAC,aACsB;EACtB,MAAM,EAAE,YAAY,WAAW,GAAG;AAElC,MAAI,CAAC,KAAK,UAAW,OAAM,IAAI,MAAM;EAErC,MAAM,UAAU,MAAM,KAAK,UAAU,eAAe,CAClD,YACA,SACD,EAAC;EAEF,MAAM,QAAQ,uBAAuB,SAAS,KAAK,eAAe;AAElE,SAAO,GAAG,KAAK,YAAY,MAAO;CACnC;AACF;;;;AAKD,IAAa,qCAAb,cACU,wBAEV;CACE,oBAAoB;CAEpB,gBAAgB;CAEhB,YAAY;CAEZ;CAEA,iBAAwC;CAExC,YAAYJ,QAAyC;EACnD,OAAO;EACP,KAAK,YAAY,QAAQ,aAAa,IAAI;EAC1C,KAAK,iBAAiB,QAAQ,kBAAkB;CACjD;CAED,aAAa;AACX,SAAO,CAAC,mBAAmB,EAAE,KAAK,eAAe,SAAS,CAAC;CAC5D;CAED,MAAM,qBACJK,MACAC,QACsB;EACtB,MAAM,SAAS,MAAM,KAAK,KAAK,MAAM,OAAO;AAE5C,SAAO,GAAG,KAAK,YAAY,OAAO,KAAK,WAAY;CACpD;CAED,IAAI,YAAsB;AACxB,SAAO,CAAC,cAAc,aAAc;CACrC;CAED,IAAI,aAAuB;AACzB,SAAO,CAAC,KAAK,SAAU;CACxB;CAED,MAAM,MACJH,QACAC,aACsB;EACtB,MAAM,EAAE,YAAY,aAAa,GAAG;AAEpC,MAAI,CAAC,KAAK,UAAW,OAAM,IAAI,MAAM;EAErC,MAAM,UAAU,MAAM,KAAK,UAAU,eAAe,CAClD,YACA,WACD,EAAC;EAEF,MAAM,QAAQ,uBAAuB,SAAS,KAAK,eAAe;AAElE,SAAO,GAAG,KAAK,YAAY,MAAO;CACnC;AACF"}
1
+ {"version":3,"file":"base.js","names":["distanceType: EmbeddingDistanceType","distanceFunctions: { [key in EmbeddingDistanceType]: VectorFunction }","X: number[]","Y: number[]","vectors: number[][]","distanceMetric: EmbeddingDistanceType","fields: EmbeddingDistanceEvalChainInput","args: StringEvaluatorArgs","config: Callbacks | BaseCallbackConfig | undefined","values: ChainValues","_runManager: CallbackManagerForChainRun | undefined","args: PairwiseStringEvaluatorArgs","config?: Callbacks | BaseCallbackConfig"],"sources":["../../../src/evaluation/embedding_distance/base.ts"],"sourcesContent":["import type { EmbeddingsInterface } from \"@langchain/core/embeddings\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport {\n CallbackManagerForChainRun,\n Callbacks,\n BaseCallbackConfig,\n} from \"@langchain/core/callbacks/manager\";\nimport {\n PairwiseStringEvaluator,\n PairwiseStringEvaluatorArgs,\n StringEvaluator,\n StringEvaluatorArgs,\n} from \"../base.js\";\nimport { cosine } from \"../../util/ml-distance/similarities.js\";\nimport { chebyshev, manhattan } from \"../../util/ml-distance/distances.js\";\nimport { euclidean } from \"../../util/ml-distance-euclidean/euclidean.js\";\n\n/**\n *\n * Embedding Distance Metric.\n *\n * COSINE: Cosine distance metric.\n * EUCLIDEAN: Euclidean distance metric.\n * MANHATTAN: Manhattan distance metric.\n * CHEBYSHEV: Chebyshev distance metric.\n * HAMMING: Hamming distance metric.\n */\nexport type EmbeddingDistanceType =\n | \"cosine\"\n | \"euclidean\"\n | \"manhattan\"\n | \"chebyshev\";\n\n/**\n * Embedding Distance Evaluation Chain Input.\n */\nexport interface EmbeddingDistanceEvalChainInput {\n /**\n * The embedding objects to vectorize the outputs.\n */\n embedding?: EmbeddingsInterface;\n\n /**\n * The distance metric to use\n * for comparing the embeddings.\n */\n distanceMetric?: EmbeddingDistanceType;\n}\n\ntype VectorFunction = (xVector: number[], yVector: number[]) => number;\n\n/**\n * Get the distance function for the given distance type.\n * @param distance The distance type.\n * @return The distance function.\n */\nexport function getDistanceCalculationFunction(\n distanceType: EmbeddingDistanceType\n): VectorFunction {\n const distanceFunctions: { [key in EmbeddingDistanceType]: VectorFunction } =\n {\n cosine: (X: number[], Y: number[]) => 1.0 - cosine(X, Y),\n euclidean,\n manhattan,\n chebyshev,\n };\n\n return distanceFunctions[distanceType];\n}\n\n/**\n * Compute the score based on the distance metric.\n * @param vectors The input vectors.\n * @param distanceMetric The distance metric.\n * @return The computed score.\n */\nexport function computeEvaluationScore(\n vectors: number[][],\n distanceMetric: EmbeddingDistanceType\n): number {\n const metricFunction = getDistanceCalculationFunction(distanceMetric);\n return metricFunction(vectors[0], vectors[1]);\n}\n\n/**\n * Use embedding distances to score semantic difference between\n * a prediction and reference.\n */\nexport class EmbeddingDistanceEvalChain\n extends StringEvaluator\n implements EmbeddingDistanceEvalChainInput\n{\n requiresReference = true;\n\n requiresInput = false;\n\n outputKey = \"score\";\n\n embedding?: EmbeddingsInterface;\n\n distanceMetric: EmbeddingDistanceType = \"cosine\";\n\n constructor(fields: EmbeddingDistanceEvalChainInput) {\n super();\n this.embedding = fields?.embedding;\n this.distanceMetric = fields?.distanceMetric || \"cosine\";\n }\n\n _chainType() {\n return `embedding_${this.distanceMetric}_distance` as const;\n }\n\n async _evaluateStrings(\n args: StringEvaluatorArgs,\n config: Callbacks | BaseCallbackConfig | undefined\n ): Promise<ChainValues> {\n const result = await this.call(args, config);\n\n return { [this.outputKey]: result[this.outputKey] };\n }\n\n get inputKeys(): string[] {\n return [\"reference\", \"prediction\"];\n }\n\n get outputKeys(): string[] {\n return [this.outputKey];\n }\n\n async _call(\n values: ChainValues,\n _runManager: CallbackManagerForChainRun | undefined\n ): Promise<ChainValues> {\n const { prediction, reference } = values;\n\n if (!this.embedding) throw new Error(\"Embedding is undefined\");\n\n const vectors = await this.embedding.embedDocuments([\n prediction,\n reference,\n ]);\n\n const score = computeEvaluationScore(vectors, this.distanceMetric);\n\n return { [this.outputKey]: score };\n }\n}\n\n/**\n * Use embedding distances to score semantic difference between two predictions.\n */\nexport class PairwiseEmbeddingDistanceEvalChain\n extends PairwiseStringEvaluator\n implements EmbeddingDistanceEvalChainInput\n{\n requiresReference = false;\n\n requiresInput = false;\n\n outputKey = \"score\";\n\n embedding?: EmbeddingsInterface;\n\n distanceMetric: EmbeddingDistanceType = \"cosine\";\n\n constructor(fields: EmbeddingDistanceEvalChainInput) {\n super();\n this.embedding = fields?.embedding;\n this.distanceMetric = fields?.distanceMetric || \"cosine\";\n }\n\n _chainType() {\n return `pairwise_embedding_${this.distanceMetric}_distance` as const;\n }\n\n async _evaluateStringPairs(\n args: PairwiseStringEvaluatorArgs,\n config?: Callbacks | BaseCallbackConfig\n ): Promise<ChainValues> {\n const result = await this.call(args, config);\n\n return { [this.outputKey]: result[this.outputKey] };\n }\n\n get inputKeys(): string[] {\n return [\"prediction\", \"predictionB\"];\n }\n\n get outputKeys(): string[] {\n return [this.outputKey];\n }\n\n async _call(\n values: ChainValues,\n _runManager: CallbackManagerForChainRun | undefined\n ): Promise<ChainValues> {\n const { prediction, predictionB } = values;\n\n if (!this.embedding) throw new Error(\"Embedding is undefined\");\n\n const vectors = await this.embedding.embedDocuments([\n prediction,\n predictionB,\n ]);\n\n const score = computeEvaluationScore(vectors, this.distanceMetric);\n\n return { [this.outputKey]: score };\n }\n}\n"],"mappings":";;;;;;;;;;;AAwDA,SAAgB,+BACdA,cACgB;CAChB,MAAMC,oBACJ;EACE,QAAQ,CAACC,GAAaC,MAAgB,IAAM,OAAO,GAAG,EAAE;EACxD;EACA;EACA;CACD;AAEH,QAAO,kBAAkB;AAC1B;;;;;;;AAQD,SAAgB,uBACdC,SACAC,gBACQ;CACR,MAAM,iBAAiB,+BAA+B,eAAe;AACrE,QAAO,eAAe,QAAQ,IAAI,QAAQ,GAAG;AAC9C;;;;;AAMD,IAAa,6BAAb,cACU,gBAEV;CACE,oBAAoB;CAEpB,gBAAgB;CAEhB,YAAY;CAEZ;CAEA,iBAAwC;CAExC,YAAYC,QAAyC;EACnD,OAAO;EACP,KAAK,YAAY,QAAQ;EACzB,KAAK,iBAAiB,QAAQ,kBAAkB;CACjD;CAED,aAAa;AACX,SAAO,CAAC,UAAU,EAAE,KAAK,eAAe,SAAS,CAAC;CACnD;CAED,MAAM,iBACJC,MACAC,QACsB;EACtB,MAAM,SAAS,MAAM,KAAK,KAAK,MAAM,OAAO;AAE5C,SAAO,GAAG,KAAK,YAAY,OAAO,KAAK,WAAY;CACpD;CAED,IAAI,YAAsB;AACxB,SAAO,CAAC,aAAa,YAAa;CACnC;CAED,IAAI,aAAuB;AACzB,SAAO,CAAC,KAAK,SAAU;CACxB;CAED,MAAM,MACJC,QACAC,aACsB;EACtB,MAAM,EAAE,YAAY,WAAW,GAAG;AAElC,MAAI,CAAC,KAAK,UAAW,OAAM,IAAI,MAAM;EAErC,MAAM,UAAU,MAAM,KAAK,UAAU,eAAe,CAClD,YACA,SACD,EAAC;EAEF,MAAM,QAAQ,uBAAuB,SAAS,KAAK,eAAe;AAElE,SAAO,GAAG,KAAK,YAAY,MAAO;CACnC;AACF;;;;AAKD,IAAa,qCAAb,cACU,wBAEV;CACE,oBAAoB;CAEpB,gBAAgB;CAEhB,YAAY;CAEZ;CAEA,iBAAwC;CAExC,YAAYJ,QAAyC;EACnD,OAAO;EACP,KAAK,YAAY,QAAQ;EACzB,KAAK,iBAAiB,QAAQ,kBAAkB;CACjD;CAED,aAAa;AACX,SAAO,CAAC,mBAAmB,EAAE,KAAK,eAAe,SAAS,CAAC;CAC5D;CAED,MAAM,qBACJK,MACAC,QACsB;EACtB,MAAM,SAAS,MAAM,KAAK,KAAK,MAAM,OAAO;AAE5C,SAAO,GAAG,KAAK,YAAY,OAAO,KAAK,WAAY;CACpD;CAED,IAAI,YAAsB;AACxB,SAAO,CAAC,cAAc,aAAc;CACrC;CAED,IAAI,aAAuB;AACzB,SAAO,CAAC,KAAK,SAAU;CACxB;CAED,MAAM,MACJH,QACAC,aACsB;EACtB,MAAM,EAAE,YAAY,aAAa,GAAG;AAEpC,MAAI,CAAC,KAAK,UAAW,OAAM,IAAI,MAAM;EAErC,MAAM,UAAU,MAAM,KAAK,UAAU,eAAe,CAClD,YACA,WACD,EAAC;EAEF,MAAM,QAAQ,uBAAuB,SAAS,KAAK,eAAe;AAElE,SAAO,GAAG,KAAK,YAAY,MAAO;CACnC;AACF"}
@@ -8,7 +8,6 @@ require('./embedding_distance/index.cjs');
8
8
  const require_pairwise = require('./comparison/pairwise.cjs');
9
9
  require('./comparison/index.cjs');
10
10
  const __langchain_core_language_models_chat_models = require_rolldown_runtime.__toESM(require("@langchain/core/language_models/chat_models"));
11
- const __langchain_openai = require_rolldown_runtime.__toESM(require("@langchain/openai"));
12
11
 
13
12
  //#region src/evaluation/loader.ts
14
13
  /**
@@ -20,28 +19,24 @@ const __langchain_openai = require_rolldown_runtime.__toESM(require("@langchain/
20
19
  * - agentTools A list of tools available to the agent,for TrajectoryEvalChain.
21
20
  */
22
21
  async function loadEvaluator(type, options) {
23
- const { llm, chainOptions, criteria, agentTools } = options || {};
24
- const llm_ = llm ?? new __langchain_openai.ChatOpenAI({
25
- model: "gpt-4",
26
- temperature: 0
27
- });
22
+ const { llm, chainOptions, criteria, agentTools } = options;
28
23
  let evaluator;
29
24
  switch (type) {
30
25
  case "criteria":
31
- evaluator = await require_criteria.CriteriaEvalChain.fromLLM(llm_, criteria, chainOptions);
26
+ evaluator = await require_criteria.CriteriaEvalChain.fromLLM(llm, criteria, chainOptions);
32
27
  break;
33
28
  case "labeled_criteria":
34
- evaluator = await require_criteria.LabeledCriteriaEvalChain.fromLLM(llm_, criteria, chainOptions);
29
+ evaluator = await require_criteria.LabeledCriteriaEvalChain.fromLLM(llm, criteria, chainOptions);
35
30
  break;
36
31
  case "pairwise_string":
37
- evaluator = await require_pairwise.PairwiseStringEvalChain.fromLLM(llm_, criteria, chainOptions);
32
+ evaluator = await require_pairwise.PairwiseStringEvalChain.fromLLM(llm, criteria, chainOptions);
38
33
  break;
39
34
  case "labeled_pairwise_string":
40
- evaluator = await require_pairwise.LabeledPairwiseStringEvalChain.fromLLM(llm_, criteria, chainOptions);
35
+ evaluator = await require_pairwise.LabeledPairwiseStringEvalChain.fromLLM(llm, criteria, chainOptions);
41
36
  break;
42
37
  case "trajectory":
43
- if (!(llm_ instanceof __langchain_core_language_models_chat_models.BaseChatModel)) throw new Error("LLM must be an instance of a base chat model.");
44
- evaluator = await require_trajectory.TrajectoryEvalChain.fromLLM(llm_, agentTools, chainOptions);
38
+ if (!(llm instanceof __langchain_core_language_models_chat_models.BaseChatModel)) throw new Error("LLM must be an instance of a base chat model.");
39
+ evaluator = await require_trajectory.TrajectoryEvalChain.fromLLM(llm, agentTools, chainOptions);
45
40
  break;
46
41
  case "embedding_distance":
47
42
  evaluator = new require_base.EmbeddingDistanceEvalChain({
@@ -1 +1 @@
1
- {"version":3,"file":"loader.cjs","names":["type: T","options?: LoadEvaluatorOptions","ChatOpenAI","evaluator: unknown","CriteriaEvalChain","LabeledCriteriaEvalChain","PairwiseStringEvalChain","LabeledPairwiseStringEvalChain","BaseChatModel","TrajectoryEvalChain","EmbeddingDistanceEvalChain","PairwiseEmbeddingDistanceEvalChain"],"sources":["../../src/evaluation/loader.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport type { StructuredToolInterface } from \"@langchain/core/tools\";\nimport { ChatOpenAI } from \"@langchain/openai\";\nimport { BaseChatModel } from \"@langchain/core/language_models/chat_models\";\nimport {\n CriteriaLike,\n CriteriaEvalChain,\n LabeledCriteriaEvalChain,\n} from \"./criteria/index.js\";\nimport type { EvaluatorType } from \"./types.js\";\nimport { LLMEvalChainInput } from \"./base.js\";\nimport {\n LabeledPairwiseStringEvalChain,\n PairwiseStringEvalChain,\n} from \"./comparison/index.js\";\nimport {\n EmbeddingDistanceEvalChain,\n EmbeddingDistanceEvalChainInput,\n PairwiseEmbeddingDistanceEvalChain,\n} from \"./embedding_distance/index.js\";\nimport { TrajectoryEvalChain } from \"./agents/index.js\";\n\nexport type LoadEvaluatorOptions = EmbeddingDistanceEvalChainInput & {\n llm?: BaseLanguageModelInterface;\n\n chainOptions?: Partial<Omit<LLMEvalChainInput, \"llm\">>;\n /**\n * The criteria to use for the evaluator.\n */\n criteria?: CriteriaLike;\n\n /**\n * A list of tools available to the agent, for TrajectoryEvalChain.\n */\n agentTools?: StructuredToolInterface[];\n};\n\n/**\n * Load the requested evaluation chain specified by a string\n * @param type The type of evaluator to load.\n * @param options\n * - llm The language model to use for the evaluator.\n * - criteria The criteria to use for the evaluator.\n * - agentTools A list of tools available to the agent,for TrajectoryEvalChain.\n */\nexport async function loadEvaluator<T extends keyof EvaluatorType>(\n type: T,\n options?: LoadEvaluatorOptions\n): Promise<EvaluatorType[T]> {\n const { llm, chainOptions, criteria, agentTools } = options || {};\n\n const llm_ =\n llm ??\n new ChatOpenAI({\n model: \"gpt-4\",\n temperature: 0.0,\n });\n\n let evaluator: unknown;\n switch (type) {\n case \"criteria\":\n evaluator = await CriteriaEvalChain.fromLLM(llm_, criteria, chainOptions);\n break;\n case \"labeled_criteria\":\n evaluator = await LabeledCriteriaEvalChain.fromLLM(\n llm_,\n criteria,\n chainOptions\n );\n break;\n case \"pairwise_string\":\n evaluator = await PairwiseStringEvalChain.fromLLM(\n llm_,\n criteria,\n chainOptions\n );\n break;\n case \"labeled_pairwise_string\":\n evaluator = await LabeledPairwiseStringEvalChain.fromLLM(\n llm_,\n criteria,\n chainOptions\n );\n break;\n case \"trajectory\":\n // eslint-disable-next-line no-instanceof/no-instanceof\n if (!(llm_ instanceof BaseChatModel)) {\n throw new Error(\"LLM must be an instance of a base chat model.\");\n }\n evaluator = await TrajectoryEvalChain.fromLLM(\n llm_,\n agentTools,\n chainOptions\n );\n break;\n case \"embedding_distance\":\n evaluator = new EmbeddingDistanceEvalChain({\n embedding: options?.embedding,\n distanceMetric: options?.distanceMetric,\n });\n break;\n case \"pairwise_embedding_distance\":\n evaluator = new PairwiseEmbeddingDistanceEvalChain({});\n break;\n default:\n throw new Error(`Unknown type: ${type}`);\n }\n\n return evaluator as EvaluatorType[T];\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA6CA,eAAsB,cACpBA,MACAC,SAC2B;CAC3B,MAAM,EAAE,KAAK,cAAc,UAAU,YAAY,GAAG,WAAW,CAAE;CAEjE,MAAM,OACJ,OACA,IAAIC,8BAAW;EACb,OAAO;EACP,aAAa;CACd;CAEH,IAAIC;AACJ,SAAQ,MAAR;EACE,KAAK;GACH,YAAY,MAAMC,mCAAkB,QAAQ,MAAM,UAAU,aAAa;AACzE;EACF,KAAK;GACH,YAAY,MAAMC,0CAAyB,QACzC,MACA,UACA,aACD;AACD;EACF,KAAK;GACH,YAAY,MAAMC,yCAAwB,QACxC,MACA,UACA,aACD;AACD;EACF,KAAK;GACH,YAAY,MAAMC,gDAA+B,QAC/C,MACA,UACA,aACD;AACD;EACF,KAAK;AAEH,OAAI,EAAE,gBAAgBC,4DACpB,OAAM,IAAI,MAAM;GAElB,YAAY,MAAMC,uCAAoB,QACpC,MACA,YACA,aACD;AACD;EACF,KAAK;GACH,YAAY,IAAIC,wCAA2B;IACzC,WAAW,SAAS;IACpB,gBAAgB,SAAS;GAC1B;AACD;EACF,KAAK;GACH,YAAY,IAAIC,gDAAmC,CAAE;AACrD;EACF,QACE,OAAM,IAAI,MAAM,CAAC,cAAc,EAAE,MAAM;CAC1C;AAED,QAAO;AACR"}
1
+ {"version":3,"file":"loader.cjs","names":["type: T","options: LoadEvaluatorOptions","evaluator: unknown","CriteriaEvalChain","LabeledCriteriaEvalChain","PairwiseStringEvalChain","LabeledPairwiseStringEvalChain","BaseChatModel","TrajectoryEvalChain","EmbeddingDistanceEvalChain","PairwiseEmbeddingDistanceEvalChain"],"sources":["../../src/evaluation/loader.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport type { StructuredToolInterface } from \"@langchain/core/tools\";\nimport { BaseChatModel } from \"@langchain/core/language_models/chat_models\";\nimport {\n CriteriaLike,\n CriteriaEvalChain,\n LabeledCriteriaEvalChain,\n} from \"./criteria/index.js\";\nimport type { EvaluatorType } from \"./types.js\";\nimport { LLMEvalChainInput } from \"./base.js\";\nimport {\n LabeledPairwiseStringEvalChain,\n PairwiseStringEvalChain,\n} from \"./comparison/index.js\";\nimport {\n EmbeddingDistanceEvalChain,\n EmbeddingDistanceEvalChainInput,\n PairwiseEmbeddingDistanceEvalChain,\n} from \"./embedding_distance/index.js\";\nimport { TrajectoryEvalChain } from \"./agents/index.js\";\n\nexport type LoadEvaluatorOptions = EmbeddingDistanceEvalChainInput & {\n /**\n * The language model to use for the evaluator.\n */\n llm: BaseLanguageModelInterface;\n /**\n * The options to pass to the evaluator chain.\n */\n chainOptions?: Partial<Omit<LLMEvalChainInput, \"llm\">>;\n /**\n * The criteria to use for the evaluator.\n */\n criteria?: CriteriaLike;\n\n /**\n * A list of tools available to the agent, for TrajectoryEvalChain.\n */\n agentTools?: StructuredToolInterface[];\n};\n\n/**\n * Load the requested evaluation chain specified by a string\n * @param type The type of evaluator to load.\n * @param options\n * - llm The language model to use for the evaluator.\n * - criteria The criteria to use for the evaluator.\n * - agentTools A list of tools available to the agent,for TrajectoryEvalChain.\n */\nexport async function loadEvaluator<T extends keyof EvaluatorType>(\n type: T,\n options: LoadEvaluatorOptions\n): Promise<EvaluatorType[T]> {\n const { llm, chainOptions, criteria, agentTools } = options;\n\n let evaluator: unknown;\n switch (type) {\n case \"criteria\":\n evaluator = await CriteriaEvalChain.fromLLM(llm, criteria, chainOptions);\n break;\n case \"labeled_criteria\":\n evaluator = await LabeledCriteriaEvalChain.fromLLM(\n llm,\n criteria,\n chainOptions\n );\n break;\n case \"pairwise_string\":\n evaluator = await PairwiseStringEvalChain.fromLLM(\n llm,\n criteria,\n chainOptions\n );\n break;\n case \"labeled_pairwise_string\":\n evaluator = await LabeledPairwiseStringEvalChain.fromLLM(\n llm,\n criteria,\n chainOptions\n );\n break;\n case \"trajectory\":\n // eslint-disable-next-line no-instanceof/no-instanceof\n if (!(llm instanceof BaseChatModel)) {\n throw new Error(\"LLM must be an instance of a base chat model.\");\n }\n evaluator = await TrajectoryEvalChain.fromLLM(\n llm,\n agentTools,\n chainOptions\n );\n break;\n case \"embedding_distance\":\n evaluator = new EmbeddingDistanceEvalChain({\n embedding: options?.embedding,\n distanceMetric: options?.distanceMetric,\n });\n break;\n case \"pairwise_embedding_distance\":\n evaluator = new PairwiseEmbeddingDistanceEvalChain({});\n break;\n default:\n throw new Error(`Unknown type: ${type}`);\n }\n\n return evaluator as EvaluatorType[T];\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAiDA,eAAsB,cACpBA,MACAC,SAC2B;CAC3B,MAAM,EAAE,KAAK,cAAc,UAAU,YAAY,GAAG;CAEpD,IAAIC;AACJ,SAAQ,MAAR;EACE,KAAK;GACH,YAAY,MAAMC,mCAAkB,QAAQ,KAAK,UAAU,aAAa;AACxE;EACF,KAAK;GACH,YAAY,MAAMC,0CAAyB,QACzC,KACA,UACA,aACD;AACD;EACF,KAAK;GACH,YAAY,MAAMC,yCAAwB,QACxC,KACA,UACA,aACD;AACD;EACF,KAAK;GACH,YAAY,MAAMC,gDAA+B,QAC/C,KACA,UACA,aACD;AACD;EACF,KAAK;AAEH,OAAI,EAAE,eAAeC,4DACnB,OAAM,IAAI,MAAM;GAElB,YAAY,MAAMC,uCAAoB,QACpC,KACA,YACA,aACD;AACD;EACF,KAAK;GACH,YAAY,IAAIC,wCAA2B;IACzC,WAAW,SAAS;IACpB,gBAAgB,SAAS;GAC1B;AACD;EACF,KAAK;GACH,YAAY,IAAIC,gDAAmC,CAAE;AACrD;EACF,QACE,OAAM,IAAI,MAAM,CAAC,cAAc,EAAE,MAAM;CAC1C;AAED,QAAO;AACR"}
@@ -7,7 +7,13 @@ import { StructuredToolInterface } from "@langchain/core/tools";
7
7
 
8
8
  //#region src/evaluation/loader.d.ts
9
9
  type LoadEvaluatorOptions = EmbeddingDistanceEvalChainInput & {
10
- llm?: BaseLanguageModelInterface;
10
+ /**
11
+ * The language model to use for the evaluator.
12
+ */
13
+ llm: BaseLanguageModelInterface;
14
+ /**
15
+ * The options to pass to the evaluator chain.
16
+ */
11
17
  chainOptions?: Partial<Omit<LLMEvalChainInput, "llm">>;
12
18
  /**
13
19
  * The criteria to use for the evaluator.
@@ -26,7 +32,7 @@ type LoadEvaluatorOptions = EmbeddingDistanceEvalChainInput & {
26
32
  * - criteria The criteria to use for the evaluator.
27
33
  * - agentTools A list of tools available to the agent,for TrajectoryEvalChain.
28
34
  */
29
- declare function loadEvaluator<T extends keyof EvaluatorType>(type: T, options?: LoadEvaluatorOptions): Promise<EvaluatorType[T]>;
35
+ declare function loadEvaluator<T extends keyof EvaluatorType>(type: T, options: LoadEvaluatorOptions): Promise<EvaluatorType[T]>;
30
36
  //#endregion
31
37
  export { LoadEvaluatorOptions, loadEvaluator };
32
38
  //# sourceMappingURL=loader.d.cts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.cts","names":["BaseLanguageModelInterface","StructuredToolInterface","CriteriaLike","EvaluatorType","LLMEvalChainInput","EmbeddingDistanceEvalChainInput","LoadEvaluatorOptions","Omit","Partial","loadEvaluator","T","Promise"],"sources":["../../src/evaluation/loader.d.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport type { StructuredToolInterface } from \"@langchain/core/tools\";\nimport { CriteriaLike } from \"./criteria/index.js\";\nimport type { EvaluatorType } from \"./types.js\";\nimport { LLMEvalChainInput } from \"./base.js\";\nimport { EmbeddingDistanceEvalChainInput } from \"./embedding_distance/index.js\";\nexport type LoadEvaluatorOptions = EmbeddingDistanceEvalChainInput & {\n llm?: BaseLanguageModelInterface;\n chainOptions?: Partial<Omit<LLMEvalChainInput, \"llm\">>;\n /**\n * The criteria to use for the evaluator.\n */\n criteria?: CriteriaLike;\n /**\n * A list of tools available to the agent, for TrajectoryEvalChain.\n */\n agentTools?: StructuredToolInterface[];\n};\n/**\n * Load the requested evaluation chain specified by a string\n * @param type The type of evaluator to load.\n * @param options\n * - llm The language model to use for the evaluator.\n * - criteria The criteria to use for the evaluator.\n * - agentTools A list of tools available to the agent,for TrajectoryEvalChain.\n */\nexport declare function loadEvaluator<T extends keyof EvaluatorType>(type: T, options?: LoadEvaluatorOptions): Promise<EvaluatorType[T]>;\n"],"mappings":";;;;;;;;KAMYM,oBAAAA,GAAuBD;QACzBL;EADEM,YAAAA,CAAAA,EAEOE,OAFPF,CAEeC,IAFK,CAEAH,iBAFA,EAAA,KAAA,CAAA,CAAA;EAAA;;;EACI,QACJA,CAAAA,EAIjBF,YAJiBE;EAAiB;;;EAItB,UAIVH,CAAAA,EAAAA,uBAAAA,EAAAA;AAAuB,CAAA;AAUxC;;;;;;;;AAAsH,iBAA9FQ,aAA8F,CAAA,UAAA,MAAhEN,aAAgE,CAAA,CAAA,IAAA,EAA3CO,CAA2C,EAAA,OAAA,CAAA,EAA9BJ,oBAA8B,CAAA,EAAPK,OAAO,CAACR,aAAD,CAAeO,CAAf,CAAA,CAAA"}
1
+ {"version":3,"file":"loader.d.cts","names":["BaseLanguageModelInterface","StructuredToolInterface","CriteriaLike","EvaluatorType","LLMEvalChainInput","EmbeddingDistanceEvalChainInput","LoadEvaluatorOptions","Omit","Partial","loadEvaluator","T","Promise"],"sources":["../../src/evaluation/loader.d.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport type { StructuredToolInterface } from \"@langchain/core/tools\";\nimport { CriteriaLike } from \"./criteria/index.js\";\nimport type { EvaluatorType } from \"./types.js\";\nimport { LLMEvalChainInput } from \"./base.js\";\nimport { EmbeddingDistanceEvalChainInput } from \"./embedding_distance/index.js\";\nexport type LoadEvaluatorOptions = EmbeddingDistanceEvalChainInput & {\n /**\n * The language model to use for the evaluator.\n */\n llm: BaseLanguageModelInterface;\n /**\n * The options to pass to the evaluator chain.\n */\n chainOptions?: Partial<Omit<LLMEvalChainInput, \"llm\">>;\n /**\n * The criteria to use for the evaluator.\n */\n criteria?: CriteriaLike;\n /**\n * A list of tools available to the agent, for TrajectoryEvalChain.\n */\n agentTools?: StructuredToolInterface[];\n};\n/**\n * Load the requested evaluation chain specified by a string\n * @param type The type of evaluator to load.\n * @param options\n * - llm The language model to use for the evaluator.\n * - criteria The criteria to use for the evaluator.\n * - agentTools A list of tools available to the agent,for TrajectoryEvalChain.\n */\nexport declare function loadEvaluator<T extends keyof EvaluatorType>(type: T, options: LoadEvaluatorOptions): Promise<EvaluatorType[T]>;\n"],"mappings":";;;;;;;;KAMYM,oBAAAA,GAAuBD;;AAAnC;;EAAgC,GAAGA,EAI1BL,0BAJ0BK;EAA+B;;;EAQnC,YAAZG,CAAAA,EAAAA,OAAAA,CAAQD,IAARC,CAAaJ,iBAAbI,EAAAA,KAAAA,CAAAA,CAAAA;EAAO;;AAQc;EAUhBC,QAAAA,CAAAA,EAdTP,YAcsB;EAAA;;;EAAuC,UAAWI,CAAAA,EAVtEL,uBAUsEK,EAAAA;CAAoB;;;AAAU;;;;;;iBAA7FG,8BAA8BN,qBAAqBO,YAAYJ,uBAAuBK,QAAQR,cAAcO"}
@@ -7,7 +7,13 @@ import { BaseLanguageModelInterface } from "@langchain/core/language_models/base
7
7
 
8
8
  //#region src/evaluation/loader.d.ts
9
9
  type LoadEvaluatorOptions = EmbeddingDistanceEvalChainInput & {
10
- llm?: BaseLanguageModelInterface;
10
+ /**
11
+ * The language model to use for the evaluator.
12
+ */
13
+ llm: BaseLanguageModelInterface;
14
+ /**
15
+ * The options to pass to the evaluator chain.
16
+ */
11
17
  chainOptions?: Partial<Omit<LLMEvalChainInput, "llm">>;
12
18
  /**
13
19
  * The criteria to use for the evaluator.
@@ -26,7 +32,7 @@ type LoadEvaluatorOptions = EmbeddingDistanceEvalChainInput & {
26
32
  * - criteria The criteria to use for the evaluator.
27
33
  * - agentTools A list of tools available to the agent,for TrajectoryEvalChain.
28
34
  */
29
- declare function loadEvaluator<T extends keyof EvaluatorType>(type: T, options?: LoadEvaluatorOptions): Promise<EvaluatorType[T]>;
35
+ declare function loadEvaluator<T extends keyof EvaluatorType>(type: T, options: LoadEvaluatorOptions): Promise<EvaluatorType[T]>;
30
36
  //#endregion
31
37
  export { LoadEvaluatorOptions, loadEvaluator };
32
38
  //# sourceMappingURL=loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","names":["BaseLanguageModelInterface","StructuredToolInterface","CriteriaLike","EvaluatorType","LLMEvalChainInput","EmbeddingDistanceEvalChainInput","LoadEvaluatorOptions","Omit","Partial","loadEvaluator","T","Promise"],"sources":["../../src/evaluation/loader.d.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport type { StructuredToolInterface } from \"@langchain/core/tools\";\nimport { CriteriaLike } from \"./criteria/index.js\";\nimport type { EvaluatorType } from \"./types.js\";\nimport { LLMEvalChainInput } from \"./base.js\";\nimport { EmbeddingDistanceEvalChainInput } from \"./embedding_distance/index.js\";\nexport type LoadEvaluatorOptions = EmbeddingDistanceEvalChainInput & {\n llm?: BaseLanguageModelInterface;\n chainOptions?: Partial<Omit<LLMEvalChainInput, \"llm\">>;\n /**\n * The criteria to use for the evaluator.\n */\n criteria?: CriteriaLike;\n /**\n * A list of tools available to the agent, for TrajectoryEvalChain.\n */\n agentTools?: StructuredToolInterface[];\n};\n/**\n * Load the requested evaluation chain specified by a string\n * @param type The type of evaluator to load.\n * @param options\n * - llm The language model to use for the evaluator.\n * - criteria The criteria to use for the evaluator.\n * - agentTools A list of tools available to the agent,for TrajectoryEvalChain.\n */\nexport declare function loadEvaluator<T extends keyof EvaluatorType>(type: T, options?: LoadEvaluatorOptions): Promise<EvaluatorType[T]>;\n"],"mappings":";;;;;;;;KAMYM,oBAAAA,GAAuBD;QACzBL;EADEM,YAAAA,CAAAA,EAEOE,OAFPF,CAEeC,IAFK,CAEAH,iBAFA,EAAA,KAAA,CAAA,CAAA;EAAA;;;EACI,QACJA,CAAAA,EAIjBF,YAJiBE;EAAiB;;;EAItB,UAIVH,CAAAA,EAAAA,uBAAAA,EAAAA;AAAuB,CAAA;AAUxC;;;;;;;;AAAsH,iBAA9FQ,aAA8F,CAAA,UAAA,MAAhEN,aAAgE,CAAA,CAAA,IAAA,EAA3CO,CAA2C,EAAA,OAAA,CAAA,EAA9BJ,oBAA8B,CAAA,EAAPK,OAAO,CAACR,aAAD,CAAeO,CAAf,CAAA,CAAA"}
1
+ {"version":3,"file":"loader.d.ts","names":["BaseLanguageModelInterface","StructuredToolInterface","CriteriaLike","EvaluatorType","LLMEvalChainInput","EmbeddingDistanceEvalChainInput","LoadEvaluatorOptions","Omit","Partial","loadEvaluator","T","Promise"],"sources":["../../src/evaluation/loader.d.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport type { StructuredToolInterface } from \"@langchain/core/tools\";\nimport { CriteriaLike } from \"./criteria/index.js\";\nimport type { EvaluatorType } from \"./types.js\";\nimport { LLMEvalChainInput } from \"./base.js\";\nimport { EmbeddingDistanceEvalChainInput } from \"./embedding_distance/index.js\";\nexport type LoadEvaluatorOptions = EmbeddingDistanceEvalChainInput & {\n /**\n * The language model to use for the evaluator.\n */\n llm: BaseLanguageModelInterface;\n /**\n * The options to pass to the evaluator chain.\n */\n chainOptions?: Partial<Omit<LLMEvalChainInput, \"llm\">>;\n /**\n * The criteria to use for the evaluator.\n */\n criteria?: CriteriaLike;\n /**\n * A list of tools available to the agent, for TrajectoryEvalChain.\n */\n agentTools?: StructuredToolInterface[];\n};\n/**\n * Load the requested evaluation chain specified by a string\n * @param type The type of evaluator to load.\n * @param options\n * - llm The language model to use for the evaluator.\n * - criteria The criteria to use for the evaluator.\n * - agentTools A list of tools available to the agent,for TrajectoryEvalChain.\n */\nexport declare function loadEvaluator<T extends keyof EvaluatorType>(type: T, options: LoadEvaluatorOptions): Promise<EvaluatorType[T]>;\n"],"mappings":";;;;;;;;KAMYM,oBAAAA,GAAuBD;;AAAnC;;EAAgC,GAAGA,EAI1BL,0BAJ0BK;EAA+B;;;EAQnC,YAAZG,CAAAA,EAAAA,OAAAA,CAAQD,IAARC,CAAaJ,iBAAbI,EAAAA,KAAAA,CAAAA,CAAAA;EAAO;;AAQc;EAUhBC,QAAAA,CAAAA,EAdTP,YAcsB;EAAA;;;EAAuC,UAAWI,CAAAA,EAVtEL,uBAUsEK,EAAAA;CAAoB;;;AAAU;;;;;;iBAA7FG,8BAA8BN,qBAAqBO,YAAYJ,uBAAuBK,QAAQR,cAAcO"}
@@ -7,7 +7,6 @@ import "./embedding_distance/index.js";
7
7
  import { LabeledPairwiseStringEvalChain, PairwiseStringEvalChain } from "./comparison/pairwise.js";
8
8
  import "./comparison/index.js";
9
9
  import { BaseChatModel } from "@langchain/core/language_models/chat_models";
10
- import { ChatOpenAI } from "@langchain/openai";
11
10
 
12
11
  //#region src/evaluation/loader.ts
13
12
  /**
@@ -19,28 +18,24 @@ import { ChatOpenAI } from "@langchain/openai";
19
18
  * - agentTools A list of tools available to the agent,for TrajectoryEvalChain.
20
19
  */
21
20
  async function loadEvaluator(type, options) {
22
- const { llm, chainOptions, criteria, agentTools } = options || {};
23
- const llm_ = llm ?? new ChatOpenAI({
24
- model: "gpt-4",
25
- temperature: 0
26
- });
21
+ const { llm, chainOptions, criteria, agentTools } = options;
27
22
  let evaluator;
28
23
  switch (type) {
29
24
  case "criteria":
30
- evaluator = await CriteriaEvalChain.fromLLM(llm_, criteria, chainOptions);
25
+ evaluator = await CriteriaEvalChain.fromLLM(llm, criteria, chainOptions);
31
26
  break;
32
27
  case "labeled_criteria":
33
- evaluator = await LabeledCriteriaEvalChain.fromLLM(llm_, criteria, chainOptions);
28
+ evaluator = await LabeledCriteriaEvalChain.fromLLM(llm, criteria, chainOptions);
34
29
  break;
35
30
  case "pairwise_string":
36
- evaluator = await PairwiseStringEvalChain.fromLLM(llm_, criteria, chainOptions);
31
+ evaluator = await PairwiseStringEvalChain.fromLLM(llm, criteria, chainOptions);
37
32
  break;
38
33
  case "labeled_pairwise_string":
39
- evaluator = await LabeledPairwiseStringEvalChain.fromLLM(llm_, criteria, chainOptions);
34
+ evaluator = await LabeledPairwiseStringEvalChain.fromLLM(llm, criteria, chainOptions);
40
35
  break;
41
36
  case "trajectory":
42
- if (!(llm_ instanceof BaseChatModel)) throw new Error("LLM must be an instance of a base chat model.");
43
- evaluator = await TrajectoryEvalChain.fromLLM(llm_, agentTools, chainOptions);
37
+ if (!(llm instanceof BaseChatModel)) throw new Error("LLM must be an instance of a base chat model.");
38
+ evaluator = await TrajectoryEvalChain.fromLLM(llm, agentTools, chainOptions);
44
39
  break;
45
40
  case "embedding_distance":
46
41
  evaluator = new EmbeddingDistanceEvalChain({
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","names":["type: T","options?: LoadEvaluatorOptions","evaluator: unknown"],"sources":["../../src/evaluation/loader.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport type { StructuredToolInterface } from \"@langchain/core/tools\";\nimport { ChatOpenAI } from \"@langchain/openai\";\nimport { BaseChatModel } from \"@langchain/core/language_models/chat_models\";\nimport {\n CriteriaLike,\n CriteriaEvalChain,\n LabeledCriteriaEvalChain,\n} from \"./criteria/index.js\";\nimport type { EvaluatorType } from \"./types.js\";\nimport { LLMEvalChainInput } from \"./base.js\";\nimport {\n LabeledPairwiseStringEvalChain,\n PairwiseStringEvalChain,\n} from \"./comparison/index.js\";\nimport {\n EmbeddingDistanceEvalChain,\n EmbeddingDistanceEvalChainInput,\n PairwiseEmbeddingDistanceEvalChain,\n} from \"./embedding_distance/index.js\";\nimport { TrajectoryEvalChain } from \"./agents/index.js\";\n\nexport type LoadEvaluatorOptions = EmbeddingDistanceEvalChainInput & {\n llm?: BaseLanguageModelInterface;\n\n chainOptions?: Partial<Omit<LLMEvalChainInput, \"llm\">>;\n /**\n * The criteria to use for the evaluator.\n */\n criteria?: CriteriaLike;\n\n /**\n * A list of tools available to the agent, for TrajectoryEvalChain.\n */\n agentTools?: StructuredToolInterface[];\n};\n\n/**\n * Load the requested evaluation chain specified by a string\n * @param type The type of evaluator to load.\n * @param options\n * - llm The language model to use for the evaluator.\n * - criteria The criteria to use for the evaluator.\n * - agentTools A list of tools available to the agent,for TrajectoryEvalChain.\n */\nexport async function loadEvaluator<T extends keyof EvaluatorType>(\n type: T,\n options?: LoadEvaluatorOptions\n): Promise<EvaluatorType[T]> {\n const { llm, chainOptions, criteria, agentTools } = options || {};\n\n const llm_ =\n llm ??\n new ChatOpenAI({\n model: \"gpt-4\",\n temperature: 0.0,\n });\n\n let evaluator: unknown;\n switch (type) {\n case \"criteria\":\n evaluator = await CriteriaEvalChain.fromLLM(llm_, criteria, chainOptions);\n break;\n case \"labeled_criteria\":\n evaluator = await LabeledCriteriaEvalChain.fromLLM(\n llm_,\n criteria,\n chainOptions\n );\n break;\n case \"pairwise_string\":\n evaluator = await PairwiseStringEvalChain.fromLLM(\n llm_,\n criteria,\n chainOptions\n );\n break;\n case \"labeled_pairwise_string\":\n evaluator = await LabeledPairwiseStringEvalChain.fromLLM(\n llm_,\n criteria,\n chainOptions\n );\n break;\n case \"trajectory\":\n // eslint-disable-next-line no-instanceof/no-instanceof\n if (!(llm_ instanceof BaseChatModel)) {\n throw new Error(\"LLM must be an instance of a base chat model.\");\n }\n evaluator = await TrajectoryEvalChain.fromLLM(\n llm_,\n agentTools,\n chainOptions\n );\n break;\n case \"embedding_distance\":\n evaluator = new EmbeddingDistanceEvalChain({\n embedding: options?.embedding,\n distanceMetric: options?.distanceMetric,\n });\n break;\n case \"pairwise_embedding_distance\":\n evaluator = new PairwiseEmbeddingDistanceEvalChain({});\n break;\n default:\n throw new Error(`Unknown type: ${type}`);\n }\n\n return evaluator as EvaluatorType[T];\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AA6CA,eAAsB,cACpBA,MACAC,SAC2B;CAC3B,MAAM,EAAE,KAAK,cAAc,UAAU,YAAY,GAAG,WAAW,CAAE;CAEjE,MAAM,OACJ,OACA,IAAI,WAAW;EACb,OAAO;EACP,aAAa;CACd;CAEH,IAAIC;AACJ,SAAQ,MAAR;EACE,KAAK;GACH,YAAY,MAAM,kBAAkB,QAAQ,MAAM,UAAU,aAAa;AACzE;EACF,KAAK;GACH,YAAY,MAAM,yBAAyB,QACzC,MACA,UACA,aACD;AACD;EACF,KAAK;GACH,YAAY,MAAM,wBAAwB,QACxC,MACA,UACA,aACD;AACD;EACF,KAAK;GACH,YAAY,MAAM,+BAA+B,QAC/C,MACA,UACA,aACD;AACD;EACF,KAAK;AAEH,OAAI,EAAE,gBAAgB,eACpB,OAAM,IAAI,MAAM;GAElB,YAAY,MAAM,oBAAoB,QACpC,MACA,YACA,aACD;AACD;EACF,KAAK;GACH,YAAY,IAAI,2BAA2B;IACzC,WAAW,SAAS;IACpB,gBAAgB,SAAS;GAC1B;AACD;EACF,KAAK;GACH,YAAY,IAAI,mCAAmC,CAAE;AACrD;EACF,QACE,OAAM,IAAI,MAAM,CAAC,cAAc,EAAE,MAAM;CAC1C;AAED,QAAO;AACR"}
1
+ {"version":3,"file":"loader.js","names":["type: T","options: LoadEvaluatorOptions","evaluator: unknown"],"sources":["../../src/evaluation/loader.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport type { StructuredToolInterface } from \"@langchain/core/tools\";\nimport { BaseChatModel } from \"@langchain/core/language_models/chat_models\";\nimport {\n CriteriaLike,\n CriteriaEvalChain,\n LabeledCriteriaEvalChain,\n} from \"./criteria/index.js\";\nimport type { EvaluatorType } from \"./types.js\";\nimport { LLMEvalChainInput } from \"./base.js\";\nimport {\n LabeledPairwiseStringEvalChain,\n PairwiseStringEvalChain,\n} from \"./comparison/index.js\";\nimport {\n EmbeddingDistanceEvalChain,\n EmbeddingDistanceEvalChainInput,\n PairwiseEmbeddingDistanceEvalChain,\n} from \"./embedding_distance/index.js\";\nimport { TrajectoryEvalChain } from \"./agents/index.js\";\n\nexport type LoadEvaluatorOptions = EmbeddingDistanceEvalChainInput & {\n /**\n * The language model to use for the evaluator.\n */\n llm: BaseLanguageModelInterface;\n /**\n * The options to pass to the evaluator chain.\n */\n chainOptions?: Partial<Omit<LLMEvalChainInput, \"llm\">>;\n /**\n * The criteria to use for the evaluator.\n */\n criteria?: CriteriaLike;\n\n /**\n * A list of tools available to the agent, for TrajectoryEvalChain.\n */\n agentTools?: StructuredToolInterface[];\n};\n\n/**\n * Load the requested evaluation chain specified by a string\n * @param type The type of evaluator to load.\n * @param options\n * - llm The language model to use for the evaluator.\n * - criteria The criteria to use for the evaluator.\n * - agentTools A list of tools available to the agent,for TrajectoryEvalChain.\n */\nexport async function loadEvaluator<T extends keyof EvaluatorType>(\n type: T,\n options: LoadEvaluatorOptions\n): Promise<EvaluatorType[T]> {\n const { llm, chainOptions, criteria, agentTools } = options;\n\n let evaluator: unknown;\n switch (type) {\n case \"criteria\":\n evaluator = await CriteriaEvalChain.fromLLM(llm, criteria, chainOptions);\n break;\n case \"labeled_criteria\":\n evaluator = await LabeledCriteriaEvalChain.fromLLM(\n llm,\n criteria,\n chainOptions\n );\n break;\n case \"pairwise_string\":\n evaluator = await PairwiseStringEvalChain.fromLLM(\n llm,\n criteria,\n chainOptions\n );\n break;\n case \"labeled_pairwise_string\":\n evaluator = await LabeledPairwiseStringEvalChain.fromLLM(\n llm,\n criteria,\n chainOptions\n );\n break;\n case \"trajectory\":\n // eslint-disable-next-line no-instanceof/no-instanceof\n if (!(llm instanceof BaseChatModel)) {\n throw new Error(\"LLM must be an instance of a base chat model.\");\n }\n evaluator = await TrajectoryEvalChain.fromLLM(\n llm,\n agentTools,\n chainOptions\n );\n break;\n case \"embedding_distance\":\n evaluator = new EmbeddingDistanceEvalChain({\n embedding: options?.embedding,\n distanceMetric: options?.distanceMetric,\n });\n break;\n case \"pairwise_embedding_distance\":\n evaluator = new PairwiseEmbeddingDistanceEvalChain({});\n break;\n default:\n throw new Error(`Unknown type: ${type}`);\n }\n\n return evaluator as EvaluatorType[T];\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAiDA,eAAsB,cACpBA,MACAC,SAC2B;CAC3B,MAAM,EAAE,KAAK,cAAc,UAAU,YAAY,GAAG;CAEpD,IAAIC;AACJ,SAAQ,MAAR;EACE,KAAK;GACH,YAAY,MAAM,kBAAkB,QAAQ,KAAK,UAAU,aAAa;AACxE;EACF,KAAK;GACH,YAAY,MAAM,yBAAyB,QACzC,KACA,UACA,aACD;AACD;EACF,KAAK;GACH,YAAY,MAAM,wBAAwB,QACxC,KACA,UACA,aACD;AACD;EACF,KAAK;GACH,YAAY,MAAM,+BAA+B,QAC/C,KACA,UACA,aACD;AACD;EACF,KAAK;AAEH,OAAI,EAAE,eAAe,eACnB,OAAM,IAAI,MAAM;GAElB,YAAY,MAAM,oBAAoB,QACpC,KACA,YACA,aACD;AACD;EACF,KAAK;GACH,YAAY,IAAI,2BAA2B;IACzC,WAAW,SAAS;IACpB,gBAAgB,SAAS;GAC1B;AACD;EACF,KAAK;GACH,YAAY,IAAI,mCAAmC,CAAE;AACrD;EACF,QACE,OAAM,IAAI,MAAM,CAAC,cAAc,EAAE,MAAM;CAC1C;AAED,QAAO;AACR"}