@langchain/classic 1.0.17 → 1.0.18
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.
- package/CHANGELOG.md +7 -0
- package/dist/_virtual/{rolldown_runtime.cjs → _rolldown/runtime.cjs} +24 -13
- package/dist/_virtual/_rolldown/runtime.js +36 -0
- package/dist/agents/agent.cjs +9 -11
- package/dist/agents/agent.cjs.map +1 -1
- package/dist/agents/agent.d.cts +0 -1
- package/dist/agents/agent.d.cts.map +1 -1
- package/dist/agents/agent.d.ts +2 -3
- package/dist/agents/agent.d.ts.map +1 -1
- package/dist/agents/agent.js +1 -3
- package/dist/agents/agent.js.map +1 -1
- package/dist/agents/chat/index.cjs +11 -15
- package/dist/agents/chat/index.cjs.map +1 -1
- package/dist/agents/chat/index.d.cts +0 -1
- package/dist/agents/chat/index.d.cts.map +1 -1
- package/dist/agents/chat/index.d.ts +0 -1
- package/dist/agents/chat/index.d.ts.map +1 -1
- package/dist/agents/chat/index.js +7 -11
- package/dist/agents/chat/index.js.map +1 -1
- package/dist/agents/chat/outputParser.cjs +4 -5
- package/dist/agents/chat/outputParser.cjs.map +1 -1
- package/dist/agents/chat/outputParser.d.cts +2 -3
- package/dist/agents/chat/outputParser.d.cts.map +1 -1
- package/dist/agents/chat/outputParser.d.ts +0 -1
- package/dist/agents/chat/outputParser.d.ts.map +1 -1
- package/dist/agents/chat/outputParser.js +1 -2
- package/dist/agents/chat/outputParser.js.map +1 -1
- package/dist/agents/chat/prompt.cjs.map +1 -1
- package/dist/agents/chat/prompt.js.map +1 -1
- package/dist/agents/chat_convo/index.cjs +21 -25
- package/dist/agents/chat_convo/index.cjs.map +1 -1
- package/dist/agents/chat_convo/index.d.cts +0 -1
- package/dist/agents/chat_convo/index.d.cts.map +1 -1
- package/dist/agents/chat_convo/index.d.ts +1 -2
- package/dist/agents/chat_convo/index.d.ts.map +1 -1
- package/dist/agents/chat_convo/index.js +11 -15
- package/dist/agents/chat_convo/index.js.map +1 -1
- package/dist/agents/chat_convo/outputParser.cjs +10 -13
- package/dist/agents/chat_convo/outputParser.cjs.map +1 -1
- package/dist/agents/chat_convo/outputParser.d.cts.map +1 -1
- package/dist/agents/chat_convo/outputParser.d.ts.map +1 -1
- package/dist/agents/chat_convo/outputParser.js +4 -7
- package/dist/agents/chat_convo/outputParser.js.map +1 -1
- package/dist/agents/chat_convo/prompt.cjs.map +1 -1
- package/dist/agents/chat_convo/prompt.js.map +1 -1
- package/dist/agents/executor.cjs +25 -33
- package/dist/agents/executor.cjs.map +1 -1
- package/dist/agents/executor.d.cts +0 -1
- package/dist/agents/executor.d.cts.map +1 -1
- package/dist/agents/executor.d.ts +0 -1
- package/dist/agents/executor.d.ts.map +1 -1
- package/dist/agents/executor.js +11 -19
- package/dist/agents/executor.js.map +1 -1
- package/dist/agents/format_scratchpad/log.cjs +4 -5
- package/dist/agents/format_scratchpad/log.cjs.map +1 -1
- package/dist/agents/format_scratchpad/log.d.cts +0 -1
- package/dist/agents/format_scratchpad/log.d.cts.map +1 -1
- package/dist/agents/format_scratchpad/log.d.ts +0 -1
- package/dist/agents/format_scratchpad/log.d.ts.map +1 -1
- package/dist/agents/format_scratchpad/log.js +3 -5
- package/dist/agents/format_scratchpad/log.js.map +1 -1
- package/dist/agents/format_scratchpad/log_to_message.cjs +8 -9
- package/dist/agents/format_scratchpad/log_to_message.cjs.map +1 -1
- package/dist/agents/format_scratchpad/log_to_message.d.cts.map +1 -1
- package/dist/agents/format_scratchpad/log_to_message.d.ts.map +1 -1
- package/dist/agents/format_scratchpad/log_to_message.js +4 -6
- package/dist/agents/format_scratchpad/log_to_message.js.map +1 -1
- package/dist/agents/format_scratchpad/openai_functions.cjs +9 -11
- package/dist/agents/format_scratchpad/openai_functions.cjs.map +1 -1
- package/dist/agents/format_scratchpad/openai_functions.d.cts +0 -1
- package/dist/agents/format_scratchpad/openai_functions.d.cts.map +1 -1
- package/dist/agents/format_scratchpad/openai_functions.d.ts +0 -1
- package/dist/agents/format_scratchpad/openai_functions.d.ts.map +1 -1
- package/dist/agents/format_scratchpad/openai_functions.js +5 -8
- package/dist/agents/format_scratchpad/openai_functions.js.map +1 -1
- package/dist/agents/format_scratchpad/openai_tools.cjs +3 -3
- package/dist/agents/format_scratchpad/openai_tools.js +2 -3
- package/dist/agents/format_scratchpad/tool_calling.cjs +8 -10
- package/dist/agents/format_scratchpad/tool_calling.cjs.map +1 -1
- package/dist/agents/format_scratchpad/tool_calling.d.cts +0 -1
- package/dist/agents/format_scratchpad/tool_calling.d.cts.map +1 -1
- package/dist/agents/format_scratchpad/tool_calling.d.ts +0 -1
- package/dist/agents/format_scratchpad/tool_calling.d.ts.map +1 -1
- package/dist/agents/format_scratchpad/tool_calling.js +5 -7
- package/dist/agents/format_scratchpad/tool_calling.js.map +1 -1
- package/dist/agents/format_scratchpad/xml.cjs +3 -3
- package/dist/agents/format_scratchpad/xml.cjs.map +1 -1
- package/dist/agents/format_scratchpad/xml.d.cts.map +1 -1
- package/dist/agents/format_scratchpad/xml.d.ts.map +1 -1
- package/dist/agents/format_scratchpad/xml.js +2 -3
- package/dist/agents/format_scratchpad/xml.js.map +1 -1
- package/dist/agents/helpers.cjs +2 -2
- package/dist/agents/helpers.cjs.map +1 -1
- package/dist/agents/helpers.js +2 -2
- package/dist/agents/helpers.js.map +1 -1
- package/dist/agents/index.cjs +6 -6
- package/dist/agents/index.js +2 -3
- package/dist/agents/initialize.cjs +12 -16
- package/dist/agents/initialize.cjs.map +1 -1
- package/dist/agents/initialize.d.cts +8 -2
- package/dist/agents/initialize.d.cts.map +1 -1
- package/dist/agents/initialize.d.ts +8 -2
- package/dist/agents/initialize.d.ts.map +1 -1
- package/dist/agents/initialize.js +12 -16
- package/dist/agents/initialize.js.map +1 -1
- package/dist/agents/load.cjs +5 -5
- package/dist/agents/load.cjs.map +1 -1
- package/dist/agents/load.d.cts +8 -2
- package/dist/agents/load.d.cts.map +1 -1
- package/dist/agents/load.d.ts +8 -2
- package/dist/agents/load.d.ts.map +1 -1
- package/dist/agents/load.js +4 -5
- package/dist/agents/load.js.map +1 -1
- package/dist/agents/mrkl/index.cjs +16 -21
- package/dist/agents/mrkl/index.cjs.map +1 -1
- package/dist/agents/mrkl/index.d.cts +0 -1
- package/dist/agents/mrkl/index.d.cts.map +1 -1
- package/dist/agents/mrkl/index.d.ts +0 -1
- package/dist/agents/mrkl/index.d.ts.map +1 -1
- package/dist/agents/mrkl/index.js +13 -18
- package/dist/agents/mrkl/index.js.map +1 -1
- package/dist/agents/mrkl/outputParser.cjs +4 -5
- package/dist/agents/mrkl/outputParser.cjs.map +1 -1
- package/dist/agents/mrkl/outputParser.d.cts +1 -2
- package/dist/agents/mrkl/outputParser.d.cts.map +1 -1
- package/dist/agents/mrkl/outputParser.d.ts +0 -1
- package/dist/agents/mrkl/outputParser.d.ts.map +1 -1
- package/dist/agents/mrkl/outputParser.js +1 -2
- package/dist/agents/mrkl/outputParser.js.map +1 -1
- package/dist/agents/mrkl/prompt.cjs.map +1 -1
- package/dist/agents/mrkl/prompt.js.map +1 -1
- package/dist/agents/openai/output_parser.cjs +3 -3
- package/dist/agents/openai/output_parser.js +2 -3
- package/dist/agents/openai_functions/index.cjs +22 -25
- package/dist/agents/openai_functions/index.cjs.map +1 -1
- package/dist/agents/openai_functions/index.d.cts +2 -5
- package/dist/agents/openai_functions/index.d.cts.map +1 -1
- package/dist/agents/openai_functions/index.d.ts +3 -6
- package/dist/agents/openai_functions/index.d.ts.map +1 -1
- package/dist/agents/openai_functions/index.js +8 -11
- package/dist/agents/openai_functions/index.js.map +1 -1
- package/dist/agents/openai_functions/output_parser.cjs +5 -5
- package/dist/agents/openai_functions/output_parser.cjs.map +1 -1
- package/dist/agents/openai_functions/output_parser.d.cts +0 -1
- package/dist/agents/openai_functions/output_parser.d.cts.map +1 -1
- package/dist/agents/openai_functions/output_parser.d.ts +1 -2
- package/dist/agents/openai_functions/output_parser.d.ts.map +1 -1
- package/dist/agents/openai_functions/output_parser.js +1 -1
- package/dist/agents/openai_functions/output_parser.js.map +1 -1
- package/dist/agents/openai_functions/prompt.cjs.map +1 -1
- package/dist/agents/openai_functions/prompt.js.map +1 -1
- package/dist/agents/openai_tools/index.cjs +8 -9
- package/dist/agents/openai_tools/index.cjs.map +1 -1
- package/dist/agents/openai_tools/index.d.cts +4 -6
- package/dist/agents/openai_tools/index.d.cts.map +1 -1
- package/dist/agents/openai_tools/index.d.ts +4 -6
- package/dist/agents/openai_tools/index.d.ts.map +1 -1
- package/dist/agents/openai_tools/index.js +3 -4
- package/dist/agents/openai_tools/index.js.map +1 -1
- package/dist/agents/openai_tools/output_parser.cjs +5 -6
- package/dist/agents/openai_tools/output_parser.cjs.map +1 -1
- package/dist/agents/openai_tools/output_parser.d.cts +0 -1
- package/dist/agents/openai_tools/output_parser.d.cts.map +1 -1
- package/dist/agents/openai_tools/output_parser.d.ts +1 -2
- package/dist/agents/openai_tools/output_parser.d.ts.map +1 -1
- package/dist/agents/openai_tools/output_parser.js +1 -2
- package/dist/agents/openai_tools/output_parser.js.map +1 -1
- package/dist/agents/react/index.cjs +5 -6
- package/dist/agents/react/index.cjs.map +1 -1
- package/dist/agents/react/index.d.cts +3 -5
- package/dist/agents/react/index.d.cts.map +1 -1
- package/dist/agents/react/index.d.ts +3 -5
- package/dist/agents/react/index.d.ts.map +1 -1
- package/dist/agents/react/index.js +2 -3
- package/dist/agents/react/index.js.map +1 -1
- package/dist/agents/react/output_parser.cjs +15 -22
- package/dist/agents/react/output_parser.cjs.map +1 -1
- package/dist/agents/react/output_parser.d.cts +0 -1
- package/dist/agents/react/output_parser.d.cts.map +1 -1
- package/dist/agents/react/output_parser.d.ts +0 -1
- package/dist/agents/react/output_parser.d.ts.map +1 -1
- package/dist/agents/react/output_parser.js +9 -17
- package/dist/agents/react/output_parser.js.map +1 -1
- package/dist/agents/react/prompt.cjs.map +1 -1
- package/dist/agents/react/prompt.js.map +1 -1
- package/dist/agents/structured_chat/index.cjs +26 -29
- package/dist/agents/structured_chat/index.cjs.map +1 -1
- package/dist/agents/structured_chat/index.d.cts +1 -4
- package/dist/agents/structured_chat/index.d.cts.map +1 -1
- package/dist/agents/structured_chat/index.d.ts +3 -6
- package/dist/agents/structured_chat/index.d.ts.map +1 -1
- package/dist/agents/structured_chat/index.js +12 -15
- package/dist/agents/structured_chat/index.js.map +1 -1
- package/dist/agents/structured_chat/outputParser.cjs +10 -13
- package/dist/agents/structured_chat/outputParser.cjs.map +1 -1
- package/dist/agents/structured_chat/outputParser.d.cts +0 -1
- package/dist/agents/structured_chat/outputParser.d.cts.map +1 -1
- package/dist/agents/structured_chat/outputParser.d.ts +0 -1
- package/dist/agents/structured_chat/outputParser.d.ts.map +1 -1
- package/dist/agents/structured_chat/outputParser.js +3 -6
- package/dist/agents/structured_chat/outputParser.js.map +1 -1
- package/dist/agents/structured_chat/prompt.cjs.map +1 -1
- package/dist/agents/structured_chat/prompt.js.map +1 -1
- package/dist/agents/tool_calling/index.cjs +5 -6
- package/dist/agents/tool_calling/index.cjs.map +1 -1
- package/dist/agents/tool_calling/index.d.cts +4 -6
- package/dist/agents/tool_calling/index.d.cts.map +1 -1
- package/dist/agents/tool_calling/index.d.ts +2 -4
- package/dist/agents/tool_calling/index.d.ts.map +1 -1
- package/dist/agents/tool_calling/index.js +2 -3
- package/dist/agents/tool_calling/index.js.map +1 -1
- package/dist/agents/tool_calling/output_parser.cjs +5 -5
- package/dist/agents/tool_calling/output_parser.cjs.map +1 -1
- package/dist/agents/tool_calling/output_parser.d.cts +0 -1
- package/dist/agents/tool_calling/output_parser.d.cts.map +1 -1
- package/dist/agents/tool_calling/output_parser.d.ts +1 -2
- package/dist/agents/tool_calling/output_parser.d.ts.map +1 -1
- package/dist/agents/tool_calling/output_parser.js +1 -1
- package/dist/agents/tool_calling/output_parser.js.map +1 -1
- package/dist/agents/toolkits/base.cjs +2 -2
- package/dist/agents/toolkits/conversational_retrieval/openai_functions.cjs +1 -2
- package/dist/agents/toolkits/conversational_retrieval/openai_functions.cjs.map +1 -1
- package/dist/agents/toolkits/conversational_retrieval/openai_functions.d.cts.map +1 -1
- package/dist/agents/toolkits/conversational_retrieval/openai_functions.d.ts.map +1 -1
- package/dist/agents/toolkits/conversational_retrieval/openai_functions.js +1 -2
- package/dist/agents/toolkits/conversational_retrieval/openai_functions.js.map +1 -1
- package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.cjs +6 -6
- package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.cjs.map +1 -1
- package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.d.cts +0 -1
- package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.d.cts.map +1 -1
- package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.d.ts +0 -1
- package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.d.ts.map +1 -1
- package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.js.map +1 -1
- package/dist/agents/toolkits/conversational_retrieval/tool.cjs +6 -7
- package/dist/agents/toolkits/conversational_retrieval/tool.cjs.map +1 -1
- package/dist/agents/toolkits/conversational_retrieval/tool.d.cts.map +1 -1
- package/dist/agents/toolkits/conversational_retrieval/tool.d.ts.map +1 -1
- package/dist/agents/toolkits/conversational_retrieval/tool.js +2 -3
- package/dist/agents/toolkits/conversational_retrieval/tool.js.map +1 -1
- package/dist/agents/toolkits/index.cjs +3 -3
- package/dist/agents/toolkits/index.js +2 -3
- package/dist/agents/toolkits/json/json.cjs +11 -13
- package/dist/agents/toolkits/json/json.cjs.map +1 -1
- package/dist/agents/toolkits/json/json.d.cts +0 -1
- package/dist/agents/toolkits/json/json.d.cts.map +1 -1
- package/dist/agents/toolkits/json/json.d.ts +0 -1
- package/dist/agents/toolkits/json/json.d.ts.map +1 -1
- package/dist/agents/toolkits/json/json.js +8 -10
- package/dist/agents/toolkits/json/json.js.map +1 -1
- package/dist/agents/toolkits/json/prompt.cjs.map +1 -1
- package/dist/agents/toolkits/json/prompt.js.map +1 -1
- package/dist/agents/toolkits/openapi/openapi.cjs +14 -18
- package/dist/agents/toolkits/openapi/openapi.cjs.map +1 -1
- package/dist/agents/toolkits/openapi/openapi.d.cts +0 -1
- package/dist/agents/toolkits/openapi/openapi.d.cts.map +1 -1
- package/dist/agents/toolkits/openapi/openapi.d.ts +0 -1
- package/dist/agents/toolkits/openapi/openapi.d.ts.map +1 -1
- package/dist/agents/toolkits/openapi/openapi.js +10 -14
- package/dist/agents/toolkits/openapi/openapi.js.map +1 -1
- package/dist/agents/toolkits/openapi/prompt.cjs.map +1 -1
- package/dist/agents/toolkits/openapi/prompt.js.map +1 -1
- package/dist/agents/toolkits/sql/index.cjs +3 -3
- package/dist/agents/toolkits/sql/index.js +2 -3
- package/dist/agents/toolkits/sql/prompt.cjs.map +1 -1
- package/dist/agents/toolkits/sql/prompt.d.cts.map +1 -1
- package/dist/agents/toolkits/sql/prompt.d.ts.map +1 -1
- package/dist/agents/toolkits/sql/prompt.js.map +1 -1
- package/dist/agents/toolkits/sql/sql.cjs +13 -15
- package/dist/agents/toolkits/sql/sql.cjs.map +1 -1
- package/dist/agents/toolkits/sql/sql.d.cts +0 -1
- package/dist/agents/toolkits/sql/sql.d.cts.map +1 -1
- package/dist/agents/toolkits/sql/sql.d.ts +0 -1
- package/dist/agents/toolkits/sql/sql.d.ts.map +1 -1
- package/dist/agents/toolkits/sql/sql.js +8 -10
- package/dist/agents/toolkits/sql/sql.js.map +1 -1
- package/dist/agents/toolkits/vectorstore/prompt.cjs.map +1 -1
- package/dist/agents/toolkits/vectorstore/prompt.js.map +1 -1
- package/dist/agents/toolkits/vectorstore/vectorstore.cjs +20 -24
- package/dist/agents/toolkits/vectorstore/vectorstore.cjs.map +1 -1
- package/dist/agents/toolkits/vectorstore/vectorstore.d.cts +0 -1
- package/dist/agents/toolkits/vectorstore/vectorstore.d.cts.map +1 -1
- package/dist/agents/toolkits/vectorstore/vectorstore.d.ts +0 -1
- package/dist/agents/toolkits/vectorstore/vectorstore.d.ts.map +1 -1
- package/dist/agents/toolkits/vectorstore/vectorstore.js +16 -20
- package/dist/agents/toolkits/vectorstore/vectorstore.js.map +1 -1
- package/dist/agents/types.cjs +4 -4
- package/dist/agents/types.cjs.map +1 -1
- package/dist/agents/types.d.cts +0 -1
- package/dist/agents/types.d.cts.map +1 -1
- package/dist/agents/types.d.ts +1 -2
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/agents/types.js.map +1 -1
- package/dist/agents/xml/index.cjs +12 -15
- package/dist/agents/xml/index.cjs.map +1 -1
- package/dist/agents/xml/index.d.cts +1 -4
- package/dist/agents/xml/index.d.cts.map +1 -1
- package/dist/agents/xml/index.d.ts +1 -4
- package/dist/agents/xml/index.d.ts.map +1 -1
- package/dist/agents/xml/index.js +7 -10
- package/dist/agents/xml/index.js.map +1 -1
- package/dist/agents/xml/output_parser.cjs +7 -9
- package/dist/agents/xml/output_parser.cjs.map +1 -1
- package/dist/agents/xml/output_parser.d.cts +0 -1
- package/dist/agents/xml/output_parser.d.cts.map +1 -1
- package/dist/agents/xml/output_parser.d.ts +0 -1
- package/dist/agents/xml/output_parser.d.ts.map +1 -1
- package/dist/agents/xml/output_parser.js +4 -7
- package/dist/agents/xml/output_parser.js.map +1 -1
- package/dist/agents/xml/prompt.cjs.map +1 -1
- package/dist/agents/xml/prompt.js.map +1 -1
- package/dist/cache/file_system.cjs +11 -9
- package/dist/cache/file_system.cjs.map +1 -1
- package/dist/cache/file_system.d.cts +0 -1
- package/dist/cache/file_system.d.cts.map +1 -1
- package/dist/cache/file_system.d.ts +0 -1
- package/dist/cache/file_system.d.ts.map +1 -1
- package/dist/cache/file_system.js +2 -3
- package/dist/cache/file_system.js.map +1 -1
- package/dist/callbacks/handlers/console.cjs +6 -6
- package/dist/callbacks/handlers/console.d.cts +3 -2
- package/dist/callbacks/handlers/console.d.cts.map +1 -1
- package/dist/callbacks/handlers/console.d.ts +3 -2
- package/dist/callbacks/handlers/console.d.ts.map +1 -1
- package/dist/callbacks/handlers/console.js +4 -4
- package/dist/callbacks/handlers/run_collector.cjs +6 -6
- package/dist/callbacks/handlers/run_collector.d.cts +3 -2
- package/dist/callbacks/handlers/run_collector.d.cts.map +1 -1
- package/dist/callbacks/handlers/run_collector.d.ts +3 -2
- package/dist/callbacks/handlers/run_collector.d.ts.map +1 -1
- package/dist/callbacks/handlers/run_collector.js +4 -4
- package/dist/callbacks/handlers/tracer.cjs +6 -6
- package/dist/callbacks/handlers/tracer.d.cts +3 -2
- package/dist/callbacks/handlers/tracer.d.cts.map +1 -1
- package/dist/callbacks/handlers/tracer.d.ts +3 -2
- package/dist/callbacks/handlers/tracer.d.ts.map +1 -1
- package/dist/callbacks/handlers/tracer.js +4 -4
- package/dist/callbacks/handlers/tracer_langchain.cjs +6 -6
- package/dist/callbacks/handlers/tracer_langchain.d.cts +3 -2
- package/dist/callbacks/handlers/tracer_langchain.d.cts.map +1 -1
- package/dist/callbacks/handlers/tracer_langchain.d.ts +3 -2
- package/dist/callbacks/handlers/tracer_langchain.d.ts.map +1 -1
- package/dist/callbacks/handlers/tracer_langchain.js +4 -4
- package/dist/callbacks/index.cjs +3 -3
- package/dist/callbacks/index.js +2 -3
- package/dist/callbacks/promises.cjs +6 -6
- package/dist/callbacks/promises.d.cts +3 -2
- package/dist/callbacks/promises.d.cts.map +1 -1
- package/dist/callbacks/promises.d.ts +3 -2
- package/dist/callbacks/promises.d.ts.map +1 -1
- package/dist/callbacks/promises.js +4 -4
- package/dist/chains/analyze_documents_chain.cjs +6 -8
- package/dist/chains/analyze_documents_chain.cjs.map +1 -1
- package/dist/chains/analyze_documents_chain.d.cts.map +1 -1
- package/dist/chains/analyze_documents_chain.d.ts +1 -1
- package/dist/chains/analyze_documents_chain.d.ts.map +1 -1
- package/dist/chains/analyze_documents_chain.js +3 -5
- package/dist/chains/analyze_documents_chain.js.map +1 -1
- package/dist/chains/api/api_chain.cjs +1 -2
- package/dist/chains/api/api_chain.cjs.map +1 -1
- package/dist/chains/api/api_chain.d.cts +0 -1
- package/dist/chains/api/api_chain.d.cts.map +1 -1
- package/dist/chains/api/api_chain.d.ts +0 -1
- package/dist/chains/api/api_chain.d.ts.map +1 -1
- package/dist/chains/api/api_chain.js +1 -2
- package/dist/chains/api/api_chain.js.map +1 -1
- package/dist/chains/api/prompts.cjs +4 -4
- package/dist/chains/api/prompts.cjs.map +1 -1
- package/dist/chains/api/prompts.js.map +1 -1
- package/dist/chains/base.cjs +12 -14
- package/dist/chains/base.cjs.map +1 -1
- package/dist/chains/base.d.cts +3 -0
- package/dist/chains/base.d.cts.map +1 -1
- package/dist/chains/base.d.ts +3 -0
- package/dist/chains/base.d.ts.map +1 -1
- package/dist/chains/base.js +3 -5
- package/dist/chains/base.js.map +1 -1
- package/dist/chains/chat_vector_db_chain.cjs +9 -11
- package/dist/chains/chat_vector_db_chain.cjs.map +1 -1
- package/dist/chains/chat_vector_db_chain.d.cts.map +1 -1
- package/dist/chains/chat_vector_db_chain.d.ts.map +1 -1
- package/dist/chains/chat_vector_db_chain.js +6 -8
- package/dist/chains/chat_vector_db_chain.js.map +1 -1
- package/dist/chains/combine_docs_chain.cjs +15 -24
- package/dist/chains/combine_docs_chain.cjs.map +1 -1
- package/dist/chains/combine_docs_chain.d.cts.map +1 -1
- package/dist/chains/combine_docs_chain.d.ts +1 -1
- package/dist/chains/combine_docs_chain.d.ts.map +1 -1
- package/dist/chains/combine_docs_chain.js +12 -21
- package/dist/chains/combine_docs_chain.js.map +1 -1
- package/dist/chains/combine_documents/base.cjs +5 -6
- package/dist/chains/combine_documents/base.cjs.map +1 -1
- package/dist/chains/combine_documents/base.js +2 -3
- package/dist/chains/combine_documents/base.js.map +1 -1
- package/dist/chains/combine_documents/index.cjs +3 -3
- package/dist/chains/combine_documents/index.js +2 -3
- package/dist/chains/combine_documents/reduce.cjs +5 -7
- package/dist/chains/combine_documents/reduce.cjs.map +1 -1
- package/dist/chains/combine_documents/reduce.d.cts +0 -1
- package/dist/chains/combine_documents/reduce.d.cts.map +1 -1
- package/dist/chains/combine_documents/reduce.d.ts +0 -1
- package/dist/chains/combine_documents/reduce.d.ts.map +1 -1
- package/dist/chains/combine_documents/reduce.js +4 -7
- package/dist/chains/combine_documents/reduce.js.map +1 -1
- package/dist/chains/combine_documents/stuff.cjs +6 -6
- package/dist/chains/combine_documents/stuff.cjs.map +1 -1
- package/dist/chains/combine_documents/stuff.d.cts +0 -1
- package/dist/chains/combine_documents/stuff.d.cts.map +1 -1
- package/dist/chains/combine_documents/stuff.d.ts +0 -1
- package/dist/chains/combine_documents/stuff.d.ts.map +1 -1
- package/dist/chains/combine_documents/stuff.js.map +1 -1
- package/dist/chains/constitutional_ai/constitutional_chain.cjs.map +1 -1
- package/dist/chains/constitutional_ai/constitutional_chain.d.cts +0 -1
- package/dist/chains/constitutional_ai/constitutional_chain.d.cts.map +1 -1
- package/dist/chains/constitutional_ai/constitutional_chain.d.ts +0 -1
- package/dist/chains/constitutional_ai/constitutional_chain.d.ts.map +1 -1
- package/dist/chains/constitutional_ai/constitutional_chain.js.map +1 -1
- package/dist/chains/constitutional_ai/constitutional_principle.cjs.map +1 -1
- package/dist/chains/constitutional_ai/constitutional_principle.d.cts +0 -1
- package/dist/chains/constitutional_ai/constitutional_principle.d.cts.map +1 -1
- package/dist/chains/constitutional_ai/constitutional_principle.d.ts +0 -1
- package/dist/chains/constitutional_ai/constitutional_principle.d.ts.map +1 -1
- package/dist/chains/constitutional_ai/constitutional_principle.js.map +1 -1
- package/dist/chains/constitutional_ai/constitutional_prompts.cjs +5 -5
- package/dist/chains/constitutional_ai/constitutional_prompts.cjs.map +1 -1
- package/dist/chains/constitutional_ai/constitutional_prompts.js.map +1 -1
- package/dist/chains/conversation.cjs +4 -4
- package/dist/chains/conversation.cjs.map +1 -1
- package/dist/chains/conversation.d.cts +0 -1
- package/dist/chains/conversation.d.cts.map +1 -1
- package/dist/chains/conversation.d.ts +0 -1
- package/dist/chains/conversation.d.ts.map +1 -1
- package/dist/chains/conversation.js +1 -1
- package/dist/chains/conversation.js.map +1 -1
- package/dist/chains/conversational_retrieval_chain.cjs +12 -14
- package/dist/chains/conversational_retrieval_chain.cjs.map +1 -1
- package/dist/chains/conversational_retrieval_chain.d.cts +2 -4
- package/dist/chains/conversational_retrieval_chain.d.cts.map +1 -1
- package/dist/chains/conversational_retrieval_chain.d.ts +3 -5
- package/dist/chains/conversational_retrieval_chain.d.ts.map +1 -1
- package/dist/chains/conversational_retrieval_chain.js +7 -9
- package/dist/chains/conversational_retrieval_chain.js.map +1 -1
- package/dist/chains/graph_qa/cypher.cjs +8 -10
- package/dist/chains/graph_qa/cypher.cjs.map +1 -1
- package/dist/chains/graph_qa/cypher.d.cts.map +1 -1
- package/dist/chains/graph_qa/cypher.d.ts.map +1 -1
- package/dist/chains/graph_qa/cypher.js +7 -10
- package/dist/chains/graph_qa/cypher.js.map +1 -1
- package/dist/chains/graph_qa/prompts.cjs +4 -4
- package/dist/chains/graph_qa/prompts.cjs.map +1 -1
- package/dist/chains/graph_qa/prompts.js.map +1 -1
- package/dist/chains/history_aware_retriever.cjs +7 -8
- package/dist/chains/history_aware_retriever.cjs.map +1 -1
- package/dist/chains/history_aware_retriever.d.cts +0 -1
- package/dist/chains/history_aware_retriever.d.cts.map +1 -1
- package/dist/chains/history_aware_retriever.d.ts +2 -3
- package/dist/chains/history_aware_retriever.d.ts.map +1 -1
- package/dist/chains/history_aware_retriever.js +3 -5
- package/dist/chains/history_aware_retriever.js.map +1 -1
- package/dist/chains/index.cjs +3 -3
- package/dist/chains/index.js +2 -3
- package/dist/chains/llm_chain.cjs +12 -15
- package/dist/chains/llm_chain.cjs.map +1 -1
- package/dist/chains/llm_chain.d.cts.map +1 -1
- package/dist/chains/llm_chain.d.ts +1 -1
- package/dist/chains/llm_chain.d.ts.map +1 -1
- package/dist/chains/llm_chain.js +3 -6
- package/dist/chains/llm_chain.js.map +1 -1
- package/dist/chains/load.cjs +3 -3
- package/dist/chains/load.cjs.map +1 -1
- package/dist/chains/load.d.cts +0 -1
- package/dist/chains/load.d.cts.map +1 -1
- package/dist/chains/load.d.ts +0 -1
- package/dist/chains/load.d.ts.map +1 -1
- package/dist/chains/load.js +2 -3
- package/dist/chains/load.js.map +1 -1
- package/dist/chains/openai_functions/base.cjs +8 -10
- package/dist/chains/openai_functions/base.cjs.map +1 -1
- package/dist/chains/openai_functions/base.d.cts +3 -7
- package/dist/chains/openai_functions/base.d.cts.map +1 -1
- package/dist/chains/openai_functions/base.d.ts +4 -8
- package/dist/chains/openai_functions/base.d.ts.map +1 -1
- package/dist/chains/openai_functions/base.js +5 -7
- package/dist/chains/openai_functions/base.js.map +1 -1
- package/dist/chains/openai_functions/extraction.cjs +5 -5
- package/dist/chains/openai_functions/extraction.cjs.map +1 -1
- package/dist/chains/openai_functions/extraction.d.cts +0 -1
- package/dist/chains/openai_functions/extraction.d.cts.map +1 -1
- package/dist/chains/openai_functions/extraction.d.ts +1 -2
- package/dist/chains/openai_functions/extraction.d.ts.map +1 -1
- package/dist/chains/openai_functions/extraction.js.map +1 -1
- package/dist/chains/openai_functions/index.cjs +3 -3
- package/dist/chains/openai_functions/index.js +2 -3
- package/dist/chains/openai_functions/openapi.cjs +12 -19
- package/dist/chains/openai_functions/openapi.cjs.map +1 -1
- package/dist/chains/openai_functions/openapi.d.cts +0 -2
- package/dist/chains/openai_functions/openapi.d.cts.map +1 -1
- package/dist/chains/openai_functions/openapi.d.ts +0 -2
- package/dist/chains/openai_functions/openapi.d.ts.map +1 -1
- package/dist/chains/openai_functions/openapi.js +9 -16
- package/dist/chains/openai_functions/openapi.js.map +1 -1
- package/dist/chains/openai_functions/tagging.cjs +5 -5
- package/dist/chains/openai_functions/tagging.cjs.map +1 -1
- package/dist/chains/openai_functions/tagging.d.cts +0 -1
- package/dist/chains/openai_functions/tagging.d.cts.map +1 -1
- package/dist/chains/openai_functions/tagging.d.ts +1 -2
- package/dist/chains/openai_functions/tagging.d.ts.map +1 -1
- package/dist/chains/openai_functions/tagging.js +1 -1
- package/dist/chains/openai_functions/tagging.js.map +1 -1
- package/dist/chains/openai_moderation.cjs +7 -7
- package/dist/chains/openai_moderation.cjs.map +1 -1
- package/dist/chains/openai_moderation.d.cts +0 -1
- package/dist/chains/openai_moderation.d.cts.map +1 -1
- package/dist/chains/openai_moderation.d.ts +0 -1
- package/dist/chains/openai_moderation.d.ts.map +1 -1
- package/dist/chains/openai_moderation.js.map +1 -1
- package/dist/chains/query_constructor/index.cjs +19 -25
- package/dist/chains/query_constructor/index.cjs.map +1 -1
- package/dist/chains/query_constructor/index.d.cts +0 -1
- package/dist/chains/query_constructor/index.d.cts.map +1 -1
- package/dist/chains/query_constructor/index.d.ts +0 -1
- package/dist/chains/query_constructor/index.d.ts.map +1 -1
- package/dist/chains/query_constructor/index.js +11 -18
- package/dist/chains/query_constructor/index.js.map +1 -1
- package/dist/chains/query_constructor/ir.cjs +7 -6
- package/dist/chains/query_constructor/ir.js +4 -4
- package/dist/chains/query_constructor/parser.cjs +8 -9
- package/dist/chains/query_constructor/parser.cjs.map +1 -1
- package/dist/chains/query_constructor/parser.d.cts +0 -1
- package/dist/chains/query_constructor/parser.d.cts.map +1 -1
- package/dist/chains/query_constructor/parser.d.ts +0 -1
- package/dist/chains/query_constructor/parser.d.ts.map +1 -1
- package/dist/chains/query_constructor/parser.js +1 -2
- package/dist/chains/query_constructor/parser.js.map +1 -1
- package/dist/chains/query_constructor/prompt.cjs +3 -3
- package/dist/chains/query_constructor/prompt.cjs.map +1 -1
- package/dist/chains/query_constructor/prompt.d.cts +0 -1
- package/dist/chains/query_constructor/prompt.d.cts.map +1 -1
- package/dist/chains/query_constructor/prompt.d.ts +0 -1
- package/dist/chains/query_constructor/prompt.d.ts.map +1 -1
- package/dist/chains/query_constructor/prompt.js.map +1 -1
- package/dist/chains/question_answering/load.cjs +32 -41
- package/dist/chains/question_answering/load.cjs.map +1 -1
- package/dist/chains/question_answering/load.d.cts +0 -1
- package/dist/chains/question_answering/load.d.cts.map +1 -1
- package/dist/chains/question_answering/load.d.ts +0 -1
- package/dist/chains/question_answering/load.d.ts.map +1 -1
- package/dist/chains/question_answering/load.js +32 -41
- package/dist/chains/question_answering/load.js.map +1 -1
- package/dist/chains/question_answering/map_reduce_prompts.cjs +13 -15
- package/dist/chains/question_answering/map_reduce_prompts.cjs.map +1 -1
- package/dist/chains/question_answering/map_reduce_prompts.js +4 -6
- package/dist/chains/question_answering/map_reduce_prompts.js.map +1 -1
- package/dist/chains/question_answering/refine_prompts.cjs +16 -18
- package/dist/chains/question_answering/refine_prompts.cjs.map +1 -1
- package/dist/chains/question_answering/refine_prompts.js +7 -9
- package/dist/chains/question_answering/refine_prompts.js.map +1 -1
- package/dist/chains/question_answering/stuff_prompts.cjs +8 -9
- package/dist/chains/question_answering/stuff_prompts.cjs.map +1 -1
- package/dist/chains/question_answering/stuff_prompts.js +2 -3
- package/dist/chains/question_answering/stuff_prompts.js.map +1 -1
- package/dist/chains/retrieval.cjs +7 -8
- package/dist/chains/retrieval.cjs.map +1 -1
- package/dist/chains/retrieval.d.cts +0 -1
- package/dist/chains/retrieval.d.cts.map +1 -1
- package/dist/chains/retrieval.d.ts +2 -3
- package/dist/chains/retrieval.d.ts.map +1 -1
- package/dist/chains/retrieval.js +3 -5
- package/dist/chains/retrieval.js.map +1 -1
- package/dist/chains/retrieval_qa.cjs.map +1 -1
- package/dist/chains/retrieval_qa.d.cts.map +1 -1
- package/dist/chains/retrieval_qa.d.ts.map +1 -1
- package/dist/chains/retrieval_qa.js.map +1 -1
- package/dist/chains/router/llm_router.cjs.map +1 -1
- package/dist/chains/router/llm_router.d.cts +0 -1
- package/dist/chains/router/llm_router.d.cts.map +1 -1
- package/dist/chains/router/llm_router.d.ts +0 -1
- package/dist/chains/router/llm_router.d.ts.map +1 -1
- package/dist/chains/router/llm_router.js.map +1 -1
- package/dist/chains/router/multi_prompt.cjs +8 -10
- package/dist/chains/router/multi_prompt.cjs.map +1 -1
- package/dist/chains/router/multi_prompt.d.cts +0 -1
- package/dist/chains/router/multi_prompt.d.cts.map +1 -1
- package/dist/chains/router/multi_prompt.d.ts +0 -1
- package/dist/chains/router/multi_prompt.d.ts.map +1 -1
- package/dist/chains/router/multi_prompt.js +3 -5
- package/dist/chains/router/multi_prompt.js.map +1 -1
- package/dist/chains/router/multi_prompt_prompt.cjs.map +1 -1
- package/dist/chains/router/multi_prompt_prompt.js.map +1 -1
- package/dist/chains/router/multi_retrieval_prompt.cjs.map +1 -1
- package/dist/chains/router/multi_retrieval_prompt.js.map +1 -1
- package/dist/chains/router/multi_retrieval_qa.cjs +15 -22
- package/dist/chains/router/multi_retrieval_qa.cjs.map +1 -1
- package/dist/chains/router/multi_retrieval_qa.d.cts +0 -1
- package/dist/chains/router/multi_retrieval_qa.d.cts.map +1 -1
- package/dist/chains/router/multi_retrieval_qa.d.ts +0 -1
- package/dist/chains/router/multi_retrieval_qa.d.ts.map +1 -1
- package/dist/chains/router/multi_retrieval_qa.js +11 -18
- package/dist/chains/router/multi_retrieval_qa.js.map +1 -1
- package/dist/chains/router/multi_route.cjs.map +1 -1
- package/dist/chains/router/multi_route.d.cts +0 -1
- package/dist/chains/router/multi_route.d.cts.map +1 -1
- package/dist/chains/router/multi_route.d.ts +0 -1
- package/dist/chains/router/multi_route.d.ts.map +1 -1
- package/dist/chains/router/multi_route.js.map +1 -1
- package/dist/chains/router/utils.cjs.map +1 -1
- package/dist/chains/router/utils.js.map +1 -1
- package/dist/chains/sequential_chain.cjs.map +1 -1
- package/dist/chains/sequential_chain.d.cts +0 -1
- package/dist/chains/sequential_chain.d.cts.map +1 -1
- package/dist/chains/sequential_chain.d.ts +0 -1
- package/dist/chains/sequential_chain.d.ts.map +1 -1
- package/dist/chains/sequential_chain.js.map +1 -1
- package/dist/chains/serde.d.cts +0 -1
- package/dist/chains/serde.d.cts.map +1 -1
- package/dist/chains/serde.d.ts +0 -1
- package/dist/chains/serde.d.ts.map +1 -1
- package/dist/chains/sql_db/index.cjs +3 -3
- package/dist/chains/sql_db/index.js +2 -3
- package/dist/chains/sql_db/sql_db_chain.cjs +19 -24
- package/dist/chains/sql_db/sql_db_chain.cjs.map +1 -1
- package/dist/chains/sql_db/sql_db_chain.d.cts +0 -1
- package/dist/chains/sql_db/sql_db_chain.d.cts.map +1 -1
- package/dist/chains/sql_db/sql_db_chain.d.ts +0 -1
- package/dist/chains/sql_db/sql_db_chain.d.ts.map +1 -1
- package/dist/chains/sql_db/sql_db_chain.js +13 -18
- package/dist/chains/sql_db/sql_db_chain.js.map +1 -1
- package/dist/chains/sql_db/sql_db_prompt.cjs +9 -9
- package/dist/chains/sql_db/sql_db_prompt.cjs.map +1 -1
- package/dist/chains/sql_db/sql_db_prompt.d.cts.map +1 -1
- package/dist/chains/sql_db/sql_db_prompt.d.ts.map +1 -1
- package/dist/chains/sql_db/sql_db_prompt.js.map +1 -1
- package/dist/chains/summarization/load.cjs +32 -41
- package/dist/chains/summarization/load.cjs.map +1 -1
- package/dist/chains/summarization/load.d.cts +0 -1
- package/dist/chains/summarization/load.d.cts.map +1 -1
- package/dist/chains/summarization/load.d.ts +0 -1
- package/dist/chains/summarization/load.d.ts.map +1 -1
- package/dist/chains/summarization/load.js +32 -41
- package/dist/chains/summarization/load.js.map +1 -1
- package/dist/chains/summarization/refine_prompts.cjs +3 -3
- package/dist/chains/summarization/refine_prompts.cjs.map +1 -1
- package/dist/chains/summarization/refine_prompts.js.map +1 -1
- package/dist/chains/summarization/stuff_prompts.cjs +3 -3
- package/dist/chains/summarization/stuff_prompts.cjs.map +1 -1
- package/dist/chains/summarization/stuff_prompts.js.map +1 -1
- package/dist/chains/transform.cjs.map +1 -1
- package/dist/chains/transform.d.cts +0 -1
- package/dist/chains/transform.d.cts.map +1 -1
- package/dist/chains/transform.d.ts +0 -1
- package/dist/chains/transform.d.ts.map +1 -1
- package/dist/chains/transform.js.map +1 -1
- package/dist/chains/vector_db_qa.cjs.map +1 -1
- package/dist/chains/vector_db_qa.d.cts.map +1 -1
- package/dist/chains/vector_db_qa.d.ts.map +1 -1
- package/dist/chains/vector_db_qa.js.map +1 -1
- package/dist/chat_models/universal.cjs +33 -39
- package/dist/chat_models/universal.cjs.map +1 -1
- package/dist/chat_models/universal.d.cts.map +1 -1
- package/dist/chat_models/universal.d.ts +1 -1
- package/dist/chat_models/universal.d.ts.map +1 -1
- package/dist/chat_models/universal.js +20 -27
- package/dist/chat_models/universal.js.map +1 -1
- package/dist/document.cjs +5 -5
- package/dist/document.js +2 -3
- package/dist/document_loaders/base.cjs +7 -6
- package/dist/document_loaders/base.js +4 -4
- package/dist/document_loaders/fs/buffer.cjs +7 -7
- package/dist/document_loaders/fs/buffer.cjs.map +1 -1
- package/dist/document_loaders/fs/buffer.d.cts +0 -1
- package/dist/document_loaders/fs/buffer.d.cts.map +1 -1
- package/dist/document_loaders/fs/buffer.d.ts +1 -2
- package/dist/document_loaders/fs/buffer.d.ts.map +1 -1
- package/dist/document_loaders/fs/buffer.js +2 -3
- package/dist/document_loaders/fs/buffer.js.map +1 -1
- package/dist/document_loaders/fs/directory.cjs +7 -7
- package/dist/document_loaders/fs/directory.cjs.map +1 -1
- package/dist/document_loaders/fs/directory.d.cts.map +1 -1
- package/dist/document_loaders/fs/directory.d.ts +1 -1
- package/dist/document_loaders/fs/directory.d.ts.map +1 -1
- package/dist/document_loaders/fs/directory.js +2 -3
- package/dist/document_loaders/fs/directory.js.map +1 -1
- package/dist/document_loaders/fs/json.cjs +7 -8
- package/dist/document_loaders/fs/json.cjs.map +1 -1
- package/dist/document_loaders/fs/json.d.cts +0 -1
- package/dist/document_loaders/fs/json.d.cts.map +1 -1
- package/dist/document_loaders/fs/json.d.ts +0 -1
- package/dist/document_loaders/fs/json.d.ts.map +1 -1
- package/dist/document_loaders/fs/json.js +4 -7
- package/dist/document_loaders/fs/json.js.map +1 -1
- package/dist/document_loaders/fs/multi_file.cjs +8 -9
- package/dist/document_loaders/fs/multi_file.cjs.map +1 -1
- package/dist/document_loaders/fs/multi_file.d.cts +0 -1
- package/dist/document_loaders/fs/multi_file.d.cts.map +1 -1
- package/dist/document_loaders/fs/multi_file.d.ts +0 -1
- package/dist/document_loaders/fs/multi_file.d.ts.map +1 -1
- package/dist/document_loaders/fs/multi_file.js +3 -5
- package/dist/document_loaders/fs/multi_file.js.map +1 -1
- package/dist/document_loaders/fs/text.cjs +9 -9
- package/dist/document_loaders/fs/text.cjs.map +1 -1
- package/dist/document_loaders/fs/text.d.cts +0 -1
- package/dist/document_loaders/fs/text.d.cts.map +1 -1
- package/dist/document_loaders/fs/text.d.ts +1 -2
- package/dist/document_loaders/fs/text.d.ts.map +1 -1
- package/dist/document_loaders/fs/text.js +3 -4
- package/dist/document_loaders/fs/text.js.map +1 -1
- package/dist/document_transformers/openai_functions.cjs +12 -14
- package/dist/document_transformers/openai_functions.cjs.map +1 -1
- package/dist/document_transformers/openai_functions.d.cts +0 -1
- package/dist/document_transformers/openai_functions.d.cts.map +1 -1
- package/dist/document_transformers/openai_functions.d.ts +1 -1
- package/dist/document_transformers/openai_functions.d.ts.map +1 -1
- package/dist/document_transformers/openai_functions.js +6 -9
- package/dist/document_transformers/openai_functions.js.map +1 -1
- package/dist/embeddings/cache_backed.cjs +7 -7
- package/dist/embeddings/cache_backed.cjs.map +1 -1
- package/dist/embeddings/cache_backed.d.cts +0 -1
- package/dist/embeddings/cache_backed.d.cts.map +1 -1
- package/dist/embeddings/cache_backed.d.ts +0 -1
- package/dist/embeddings/cache_backed.d.ts.map +1 -1
- package/dist/embeddings/cache_backed.js +2 -3
- package/dist/embeddings/cache_backed.js.map +1 -1
- package/dist/embeddings/fake.cjs +7 -6
- package/dist/embeddings/fake.js +4 -4
- package/dist/evaluation/agents/index.js +2 -0
- package/dist/evaluation/agents/prompt.cjs +15 -12
- package/dist/evaluation/agents/prompt.cjs.map +1 -1
- package/dist/evaluation/agents/prompt.js +3 -0
- package/dist/evaluation/agents/prompt.js.map +1 -1
- package/dist/evaluation/agents/trajectory.cjs +5 -5
- package/dist/evaluation/agents/trajectory.cjs.map +1 -1
- package/dist/evaluation/agents/trajectory.d.cts +2 -2
- package/dist/evaluation/agents/trajectory.d.cts.map +1 -1
- package/dist/evaluation/agents/trajectory.d.ts +2 -2
- package/dist/evaluation/agents/trajectory.d.ts.map +1 -1
- package/dist/evaluation/agents/trajectory.js.map +1 -1
- package/dist/evaluation/base.cjs.map +1 -1
- package/dist/evaluation/base.d.cts.map +1 -1
- package/dist/evaluation/base.d.ts.map +1 -1
- package/dist/evaluation/base.js.map +1 -1
- package/dist/evaluation/comparison/index.js +2 -0
- package/dist/evaluation/comparison/pairwise.cjs +16 -21
- package/dist/evaluation/comparison/pairwise.cjs.map +1 -1
- package/dist/evaluation/comparison/pairwise.d.cts +3 -3
- package/dist/evaluation/comparison/pairwise.d.cts.map +1 -1
- package/dist/evaluation/comparison/pairwise.d.ts +3 -3
- package/dist/evaluation/comparison/pairwise.d.ts.map +1 -1
- package/dist/evaluation/comparison/pairwise.js +11 -16
- package/dist/evaluation/comparison/pairwise.js.map +1 -1
- package/dist/evaluation/comparison/prompt.cjs +11 -4
- package/dist/evaluation/comparison/prompt.cjs.map +1 -1
- package/dist/evaluation/comparison/prompt.js +7 -0
- package/dist/evaluation/comparison/prompt.js.map +1 -1
- package/dist/evaluation/criteria/criteria.cjs +7 -9
- package/dist/evaluation/criteria/criteria.cjs.map +1 -1
- package/dist/evaluation/criteria/criteria.d.cts +3 -3
- package/dist/evaluation/criteria/criteria.d.cts.map +1 -1
- package/dist/evaluation/criteria/criteria.d.ts +3 -3
- package/dist/evaluation/criteria/criteria.d.ts.map +1 -1
- package/dist/evaluation/criteria/criteria.js +2 -4
- package/dist/evaluation/criteria/criteria.js.map +1 -1
- package/dist/evaluation/criteria/index.js +2 -0
- package/dist/evaluation/criteria/prompt.cjs +4 -4
- package/dist/evaluation/criteria/prompt.cjs.map +1 -1
- package/dist/evaluation/criteria/prompt.js.map +1 -1
- package/dist/evaluation/embedding_distance/base.cjs +5 -9
- package/dist/evaluation/embedding_distance/base.cjs.map +1 -1
- package/dist/evaluation/embedding_distance/base.d.cts +0 -1
- package/dist/evaluation/embedding_distance/base.d.cts.map +1 -1
- package/dist/evaluation/embedding_distance/base.d.ts +0 -1
- package/dist/evaluation/embedding_distance/base.d.ts.map +1 -1
- package/dist/evaluation/embedding_distance/base.js +5 -9
- package/dist/evaluation/embedding_distance/base.js.map +1 -1
- package/dist/evaluation/embedding_distance/index.js +2 -0
- package/dist/evaluation/index.cjs +3 -3
- package/dist/evaluation/index.js +2 -3
- package/dist/evaluation/loader.cjs +3 -3
- package/dist/evaluation/loader.cjs.map +1 -1
- package/dist/evaluation/loader.d.cts.map +1 -1
- package/dist/evaluation/loader.d.ts.map +1 -1
- package/dist/evaluation/loader.js.map +1 -1
- package/dist/evaluation/qa/eval_chain.cjs +1 -2
- package/dist/evaluation/qa/eval_chain.cjs.map +1 -1
- package/dist/evaluation/qa/eval_chain.d.cts.map +1 -1
- package/dist/evaluation/qa/eval_chain.d.ts.map +1 -1
- package/dist/evaluation/qa/eval_chain.js +1 -2
- package/dist/evaluation/qa/eval_chain.js.map +1 -1
- package/dist/evaluation/qa/index.js +2 -0
- package/dist/evaluation/qa/prompt.cjs +3 -3
- package/dist/evaluation/qa/prompt.cjs.map +1 -1
- package/dist/evaluation/qa/prompt.js.map +1 -1
- package/dist/evaluation/types.d.cts.map +1 -1
- package/dist/evaluation/types.d.ts.map +1 -1
- package/dist/experimental/autogpt/agent.cjs +18 -21
- package/dist/experimental/autogpt/agent.cjs.map +1 -1
- package/dist/experimental/autogpt/agent.d.cts +0 -1
- package/dist/experimental/autogpt/agent.d.cts.map +1 -1
- package/dist/experimental/autogpt/agent.d.ts +1 -2
- package/dist/experimental/autogpt/agent.d.ts.map +1 -1
- package/dist/experimental/autogpt/agent.js +12 -15
- package/dist/experimental/autogpt/agent.js.map +1 -1
- package/dist/experimental/autogpt/index.cjs +3 -3
- package/dist/experimental/autogpt/index.js +2 -3
- package/dist/experimental/autogpt/output_parser.cjs +3 -3
- package/dist/experimental/autogpt/output_parser.cjs.map +1 -1
- package/dist/experimental/autogpt/output_parser.d.cts +0 -1
- package/dist/experimental/autogpt/output_parser.d.cts.map +1 -1
- package/dist/experimental/autogpt/output_parser.d.ts +0 -1
- package/dist/experimental/autogpt/output_parser.d.ts.map +1 -1
- package/dist/experimental/autogpt/output_parser.js.map +1 -1
- package/dist/experimental/autogpt/prompt.cjs +13 -18
- package/dist/experimental/autogpt/prompt.cjs.map +1 -1
- package/dist/experimental/autogpt/prompt.d.cts +2 -2
- package/dist/experimental/autogpt/prompt.d.cts.map +1 -1
- package/dist/experimental/autogpt/prompt.d.ts +3 -3
- package/dist/experimental/autogpt/prompt.d.ts.map +1 -1
- package/dist/experimental/autogpt/prompt.js +7 -12
- package/dist/experimental/autogpt/prompt.js.map +1 -1
- package/dist/experimental/autogpt/prompt_generator.cjs +7 -11
- package/dist/experimental/autogpt/prompt_generator.cjs.map +1 -1
- package/dist/experimental/autogpt/prompt_generator.js +3 -7
- package/dist/experimental/autogpt/prompt_generator.js.map +1 -1
- package/dist/experimental/autogpt/schema.d.cts +0 -1
- package/dist/experimental/autogpt/schema.d.cts.map +1 -1
- package/dist/experimental/autogpt/schema.d.ts +0 -1
- package/dist/experimental/autogpt/schema.d.ts.map +1 -1
- package/dist/experimental/babyagi/agent.cjs +16 -20
- package/dist/experimental/babyagi/agent.cjs.map +1 -1
- package/dist/experimental/babyagi/agent.d.cts +0 -1
- package/dist/experimental/babyagi/agent.d.cts.map +1 -1
- package/dist/experimental/babyagi/agent.d.ts +0 -1
- package/dist/experimental/babyagi/agent.d.ts.map +1 -1
- package/dist/experimental/babyagi/agent.js +13 -17
- package/dist/experimental/babyagi/agent.js.map +1 -1
- package/dist/experimental/babyagi/index.cjs +3 -3
- package/dist/experimental/babyagi/index.js +2 -3
- package/dist/experimental/babyagi/task_creation.cjs +11 -13
- package/dist/experimental/babyagi/task_creation.cjs.map +1 -1
- package/dist/experimental/babyagi/task_creation.d.cts.map +1 -1
- package/dist/experimental/babyagi/task_creation.d.ts.map +1 -1
- package/dist/experimental/babyagi/task_creation.js +9 -11
- package/dist/experimental/babyagi/task_creation.js.map +1 -1
- package/dist/experimental/babyagi/task_execution.cjs +10 -12
- package/dist/experimental/babyagi/task_execution.cjs.map +1 -1
- package/dist/experimental/babyagi/task_execution.d.cts.map +1 -1
- package/dist/experimental/babyagi/task_execution.d.ts.map +1 -1
- package/dist/experimental/babyagi/task_execution.js +8 -10
- package/dist/experimental/babyagi/task_execution.js.map +1 -1
- package/dist/experimental/babyagi/task_prioritization.cjs +10 -12
- package/dist/experimental/babyagi/task_prioritization.cjs.map +1 -1
- package/dist/experimental/babyagi/task_prioritization.d.cts.map +1 -1
- package/dist/experimental/babyagi/task_prioritization.d.ts.map +1 -1
- package/dist/experimental/babyagi/task_prioritization.js +8 -10
- package/dist/experimental/babyagi/task_prioritization.js.map +1 -1
- package/dist/experimental/chains/violation_of_expectations/index.cjs +3 -3
- package/dist/experimental/chains/violation_of_expectations/index.js +2 -3
- package/dist/experimental/chains/violation_of_expectations/types.cjs.map +1 -1
- package/dist/experimental/chains/violation_of_expectations/types.d.cts +0 -1
- package/dist/experimental/chains/violation_of_expectations/types.d.cts.map +1 -1
- package/dist/experimental/chains/violation_of_expectations/types.d.ts +0 -1
- package/dist/experimental/chains/violation_of_expectations/types.d.ts.map +1 -1
- package/dist/experimental/chains/violation_of_expectations/types.js.map +1 -1
- package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_chain.cjs +20 -30
- package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_chain.cjs.map +1 -1
- package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_chain.d.cts +0 -1
- package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_chain.d.cts.map +1 -1
- package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_chain.d.ts +1 -2
- package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_chain.d.ts.map +1 -1
- package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_chain.js +16 -26
- package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_chain.js.map +1 -1
- package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_prompt.cjs +6 -6
- package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_prompt.cjs.map +1 -1
- package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_prompt.js.map +1 -1
- package/dist/experimental/generative_agents/generative_agent.cjs +30 -43
- package/dist/experimental/generative_agents/generative_agent.cjs.map +1 -1
- package/dist/experimental/generative_agents/generative_agent.d.cts +0 -1
- package/dist/experimental/generative_agents/generative_agent.d.cts.map +1 -1
- package/dist/experimental/generative_agents/generative_agent.d.ts +0 -1
- package/dist/experimental/generative_agents/generative_agent.d.ts.map +1 -1
- package/dist/experimental/generative_agents/generative_agent.js +23 -36
- package/dist/experimental/generative_agents/generative_agent.js.map +1 -1
- package/dist/experimental/generative_agents/generative_agent_memory.cjs +17 -26
- package/dist/experimental/generative_agents/generative_agent_memory.cjs.map +1 -1
- package/dist/experimental/generative_agents/generative_agent_memory.d.cts.map +1 -1
- package/dist/experimental/generative_agents/generative_agent_memory.d.ts +1 -1
- package/dist/experimental/generative_agents/generative_agent_memory.d.ts.map +1 -1
- package/dist/experimental/generative_agents/generative_agent_memory.js +9 -18
- package/dist/experimental/generative_agents/generative_agent_memory.js.map +1 -1
- package/dist/experimental/generative_agents/index.cjs +3 -3
- package/dist/experimental/generative_agents/index.js +2 -3
- package/dist/experimental/masking/index.cjs +3 -3
- package/dist/experimental/masking/index.js +2 -3
- package/dist/experimental/masking/parser.cjs.map +1 -1
- package/dist/experimental/masking/parser.d.cts +0 -1
- package/dist/experimental/masking/parser.d.cts.map +1 -1
- package/dist/experimental/masking/parser.d.ts +0 -1
- package/dist/experimental/masking/parser.d.ts.map +1 -1
- package/dist/experimental/masking/parser.js.map +1 -1
- package/dist/experimental/masking/regex_masking_transformer.cjs +1 -2
- package/dist/experimental/masking/regex_masking_transformer.cjs.map +1 -1
- package/dist/experimental/masking/regex_masking_transformer.d.cts +0 -1
- package/dist/experimental/masking/regex_masking_transformer.d.cts.map +1 -1
- package/dist/experimental/masking/regex_masking_transformer.d.ts +0 -1
- package/dist/experimental/masking/regex_masking_transformer.d.ts.map +1 -1
- package/dist/experimental/masking/regex_masking_transformer.js +1 -2
- package/dist/experimental/masking/regex_masking_transformer.js.map +1 -1
- package/dist/experimental/masking/transformer.cjs.map +1 -1
- package/dist/experimental/masking/transformer.d.cts.map +1 -1
- package/dist/experimental/masking/transformer.d.ts.map +1 -1
- package/dist/experimental/masking/transformer.js.map +1 -1
- package/dist/experimental/masking/types.d.cts +0 -1
- package/dist/experimental/masking/types.d.cts.map +1 -1
- package/dist/experimental/masking/types.d.ts +0 -1
- package/dist/experimental/masking/types.d.ts.map +1 -1
- package/dist/experimental/openai_assistant/index.cjs +32 -40
- package/dist/experimental/openai_assistant/index.cjs.map +1 -1
- package/dist/experimental/openai_assistant/index.d.cts.map +1 -1
- package/dist/experimental/openai_assistant/index.d.ts.map +1 -1
- package/dist/experimental/openai_assistant/index.js +21 -30
- package/dist/experimental/openai_assistant/index.js.map +1 -1
- package/dist/experimental/openai_assistant/schema.d.cts.map +1 -1
- package/dist/experimental/openai_assistant/schema.d.ts.map +1 -1
- package/dist/experimental/openai_files/index.cjs +7 -7
- package/dist/experimental/openai_files/index.cjs.map +1 -1
- package/dist/experimental/openai_files/index.d.cts.map +1 -1
- package/dist/experimental/openai_files/index.d.ts.map +1 -1
- package/dist/experimental/openai_files/index.js +2 -3
- package/dist/experimental/openai_files/index.js.map +1 -1
- package/dist/experimental/plan_and_execute/agent_executor.cjs +3 -5
- package/dist/experimental/plan_and_execute/agent_executor.cjs.map +1 -1
- package/dist/experimental/plan_and_execute/agent_executor.d.cts +0 -1
- package/dist/experimental/plan_and_execute/agent_executor.d.cts.map +1 -1
- package/dist/experimental/plan_and_execute/agent_executor.d.ts +0 -1
- package/dist/experimental/plan_and_execute/agent_executor.d.ts.map +1 -1
- package/dist/experimental/plan_and_execute/agent_executor.js +3 -5
- package/dist/experimental/plan_and_execute/agent_executor.js.map +1 -1
- package/dist/experimental/plan_and_execute/base.cjs +1 -2
- package/dist/experimental/plan_and_execute/base.cjs.map +1 -1
- package/dist/experimental/plan_and_execute/base.d.cts +0 -1
- package/dist/experimental/plan_and_execute/base.d.cts.map +1 -1
- package/dist/experimental/plan_and_execute/base.d.ts +0 -1
- package/dist/experimental/plan_and_execute/base.d.ts.map +1 -1
- package/dist/experimental/plan_and_execute/base.js +1 -2
- package/dist/experimental/plan_and_execute/base.js.map +1 -1
- package/dist/experimental/plan_and_execute/index.cjs +3 -3
- package/dist/experimental/plan_and_execute/index.js +2 -3
- package/dist/experimental/plan_and_execute/outputParser.cjs +3 -3
- package/dist/experimental/plan_and_execute/outputParser.cjs.map +1 -1
- package/dist/experimental/plan_and_execute/outputParser.d.cts +0 -1
- package/dist/experimental/plan_and_execute/outputParser.d.cts.map +1 -1
- package/dist/experimental/plan_and_execute/outputParser.d.ts +0 -1
- package/dist/experimental/plan_and_execute/outputParser.d.ts.map +1 -1
- package/dist/experimental/plan_and_execute/outputParser.js.map +1 -1
- package/dist/experimental/plan_and_execute/prompt.cjs +3 -3
- package/dist/experimental/plan_and_execute/prompt.cjs.map +1 -1
- package/dist/experimental/plan_and_execute/prompt.js.map +1 -1
- package/dist/experimental/prompts/custom_format.cjs +6 -6
- package/dist/experimental/prompts/custom_format.cjs.map +1 -1
- package/dist/experimental/prompts/custom_format.d.cts.map +1 -1
- package/dist/experimental/prompts/custom_format.d.ts.map +1 -1
- package/dist/experimental/prompts/custom_format.js +3 -4
- package/dist/experimental/prompts/custom_format.js.map +1 -1
- package/dist/experimental/prompts/handlebars.cjs +6 -6
- package/dist/experimental/prompts/handlebars.cjs.map +1 -1
- package/dist/experimental/prompts/handlebars.d.cts.map +1 -1
- package/dist/experimental/prompts/handlebars.d.ts.map +1 -1
- package/dist/experimental/prompts/handlebars.js +3 -5
- package/dist/experimental/prompts/handlebars.js.map +1 -1
- package/dist/hub/base.cjs +2 -5
- package/dist/hub/base.cjs.map +1 -1
- package/dist/hub/base.d.cts +2 -5
- package/dist/hub/base.d.cts.map +1 -1
- package/dist/hub/base.d.ts +2 -5
- package/dist/hub/base.d.ts.map +1 -1
- package/dist/hub/base.js +2 -5
- package/dist/hub/base.js.map +1 -1
- package/dist/hub/index.cjs +2 -2
- package/dist/hub/index.cjs.map +1 -1
- package/dist/hub/index.d.cts +0 -1
- package/dist/hub/index.d.cts.map +1 -1
- package/dist/hub/index.d.ts +0 -1
- package/dist/hub/index.d.ts.map +1 -1
- package/dist/hub/index.js +1 -2
- package/dist/hub/index.js.map +1 -1
- package/dist/hub/node.cjs +7 -13
- package/dist/hub/node.cjs.map +1 -1
- package/dist/hub/node.d.cts +0 -1
- package/dist/hub/node.d.cts.map +1 -1
- package/dist/hub/node.d.ts +0 -1
- package/dist/hub/node.d.ts.map +1 -1
- package/dist/hub/node.js +6 -13
- package/dist/hub/node.js.map +1 -1
- package/dist/index.cjs +3 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/indexes/index.cjs +16 -16
- package/dist/indexes/index.js +2 -3
- package/dist/load/import_constants.cjs.map +1 -1
- package/dist/load/import_constants.js.map +1 -1
- package/dist/load/import_map.cjs +25 -26
- package/dist/load/import_map.cjs.map +1 -1
- package/dist/load/import_map.js +29 -30
- package/dist/load/import_map.js.map +1 -1
- package/dist/load/import_type.d.cts.map +1 -1
- package/dist/load/import_type.d.ts.map +1 -1
- package/dist/load/index.cjs +13 -3
- package/dist/load/index.cjs.map +1 -1
- package/dist/load/index.d.cts +9 -1
- package/dist/load/index.d.cts.map +1 -1
- package/dist/load/index.d.ts +9 -1
- package/dist/load/index.d.ts.map +1 -1
- package/dist/load/index.js +9 -0
- package/dist/load/index.js.map +1 -1
- package/dist/load/map_keys.d.cts.map +1 -1
- package/dist/load/map_keys.d.ts.map +1 -1
- package/dist/load/serializable.cjs +7 -6
- package/dist/load/serializable.js +4 -4
- package/dist/memory/buffer_memory.cjs +4 -8
- package/dist/memory/buffer_memory.cjs.map +1 -1
- package/dist/memory/buffer_memory.d.cts +0 -1
- package/dist/memory/buffer_memory.d.cts.map +1 -1
- package/dist/memory/buffer_memory.d.ts +0 -1
- package/dist/memory/buffer_memory.d.ts.map +1 -1
- package/dist/memory/buffer_memory.js +2 -6
- package/dist/memory/buffer_memory.js.map +1 -1
- package/dist/memory/buffer_token_memory.cjs +6 -10
- package/dist/memory/buffer_token_memory.cjs.map +1 -1
- package/dist/memory/buffer_token_memory.d.cts +0 -1
- package/dist/memory/buffer_token_memory.d.cts.map +1 -1
- package/dist/memory/buffer_token_memory.d.ts +0 -1
- package/dist/memory/buffer_token_memory.d.ts.map +1 -1
- package/dist/memory/buffer_token_memory.js +2 -6
- package/dist/memory/buffer_token_memory.js.map +1 -1
- package/dist/memory/buffer_window_memory.cjs +4 -8
- package/dist/memory/buffer_window_memory.cjs.map +1 -1
- package/dist/memory/buffer_window_memory.d.cts +0 -1
- package/dist/memory/buffer_window_memory.d.cts.map +1 -1
- package/dist/memory/buffer_window_memory.d.ts +0 -1
- package/dist/memory/buffer_window_memory.d.ts.map +1 -1
- package/dist/memory/buffer_window_memory.js +2 -6
- package/dist/memory/buffer_window_memory.js.map +1 -1
- package/dist/memory/chat_memory.cjs +9 -9
- package/dist/memory/chat_memory.cjs.map +1 -1
- package/dist/memory/chat_memory.d.cts +0 -1
- package/dist/memory/chat_memory.d.cts.map +1 -1
- package/dist/memory/chat_memory.d.ts +0 -1
- package/dist/memory/chat_memory.d.ts.map +1 -1
- package/dist/memory/chat_memory.js +2 -3
- package/dist/memory/chat_memory.js.map +1 -1
- package/dist/memory/combined_memory.cjs.map +1 -1
- package/dist/memory/combined_memory.d.cts +0 -1
- package/dist/memory/combined_memory.d.cts.map +1 -1
- package/dist/memory/combined_memory.d.ts +0 -1
- package/dist/memory/combined_memory.d.ts.map +1 -1
- package/dist/memory/combined_memory.js.map +1 -1
- package/dist/memory/entity_memory.cjs +7 -8
- package/dist/memory/entity_memory.cjs.map +1 -1
- package/dist/memory/entity_memory.d.cts +0 -1
- package/dist/memory/entity_memory.d.cts.map +1 -1
- package/dist/memory/entity_memory.d.ts +0 -1
- package/dist/memory/entity_memory.d.ts.map +1 -1
- package/dist/memory/entity_memory.js +1 -2
- package/dist/memory/entity_memory.js.map +1 -1
- package/dist/memory/index.cjs +16 -16
- package/dist/memory/index.js +2 -3
- package/dist/memory/prompt.cjs +6 -6
- package/dist/memory/prompt.cjs.map +1 -1
- package/dist/memory/prompt.d.cts +0 -1
- package/dist/memory/prompt.d.cts.map +1 -1
- package/dist/memory/prompt.d.ts +0 -1
- package/dist/memory/prompt.d.ts.map +1 -1
- package/dist/memory/prompt.js.map +1 -1
- package/dist/memory/stores/entity/base.cjs +3 -3
- package/dist/memory/stores/entity/base.cjs.map +1 -1
- package/dist/memory/stores/entity/base.d.cts +0 -1
- package/dist/memory/stores/entity/base.d.cts.map +1 -1
- package/dist/memory/stores/entity/base.d.ts +0 -1
- package/dist/memory/stores/entity/base.d.ts.map +1 -1
- package/dist/memory/stores/entity/base.js.map +1 -1
- package/dist/memory/stores/entity/in_memory.cjs.map +1 -1
- package/dist/memory/stores/entity/in_memory.js.map +1 -1
- package/dist/memory/summary.cjs +8 -13
- package/dist/memory/summary.cjs.map +1 -1
- package/dist/memory/summary.d.cts +0 -1
- package/dist/memory/summary.d.cts.map +1 -1
- package/dist/memory/summary.d.ts +1 -2
- package/dist/memory/summary.d.ts.map +1 -1
- package/dist/memory/summary.js +4 -9
- package/dist/memory/summary.js.map +1 -1
- package/dist/memory/summary_buffer.cjs +5 -5
- package/dist/memory/summary_buffer.cjs.map +1 -1
- package/dist/memory/summary_buffer.d.cts +0 -1
- package/dist/memory/summary_buffer.d.cts.map +1 -1
- package/dist/memory/summary_buffer.d.ts +0 -1
- package/dist/memory/summary_buffer.d.ts.map +1 -1
- package/dist/memory/summary_buffer.js.map +1 -1
- package/dist/memory/vector_store.cjs +6 -6
- package/dist/memory/vector_store.cjs.map +1 -1
- package/dist/memory/vector_store.d.cts.map +1 -1
- package/dist/memory/vector_store.d.ts.map +1 -1
- package/dist/memory/vector_store.js +1 -1
- package/dist/memory/vector_store.js.map +1 -1
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/client.d.cts +1242 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/client.d.cts.map +1 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/client.d.ts +1242 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/client.d.ts.map +1 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/_runner.d.cts +4 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/_runner.d.ts +4 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/evaluate_comparative.d.cts +2 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/evaluate_comparative.d.ts +2 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/evaluator.d.cts +66 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/evaluator.d.cts.map +1 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/evaluator.d.ts +66 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/evaluator.d.ts.map +1 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/index.d.cts +4 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/index.d.ts +4 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/string_evaluator.d.cts +1 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/string_evaluator.d.ts +1 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/index.d.cts +4 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/index.d.ts +4 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/run_trees.d.cts +145 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/run_trees.d.cts.map +1 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/run_trees.d.ts +145 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/run_trees.d.ts.map +1 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/schemas.d.cts +411 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/schemas.d.cts.map +1 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/schemas.d.ts +411 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/schemas.d.ts.map +1 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/singletons/traceable.d.cts +8 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/singletons/traceable.d.cts.map +1 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/singletons/traceable.d.ts +8 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/singletons/traceable.d.ts.map +1 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/singletons/types.d.cts +38 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/singletons/types.d.cts.map +1 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/singletons/types.d.ts +38 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/singletons/types.d.ts.map +1 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/async_caller.d.cts +27 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/async_caller.d.cts.map +1 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/async_caller.d.ts +27 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/async_caller.d.ts.map +1 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/p-queue.d.cts +1 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/p-queue.d.ts +1 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/prompt_cache/index.d.cts +129 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/prompt_cache/index.d.cts.map +1 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/prompt_cache/index.d.ts +129 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/prompt_cache/index.d.ts.map +1 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/evaluation.d.cts +2 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/evaluation.d.ts +2 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/singletons/traceable.d.cts +2 -0
- package/dist/node_modules/.pnpm/langsmith@0.5.3_@opentelemetry_api@1.9.0_openai@5.23.2_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/singletons/traceable.d.ts +2 -0
- package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/index.d.cts +1 -0
- package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/index.d.ts +1 -0
- package/dist/output_parsers/combining.cjs +4 -4
- package/dist/output_parsers/combining.cjs.map +1 -1
- package/dist/output_parsers/combining.d.cts +0 -1
- package/dist/output_parsers/combining.d.cts.map +1 -1
- package/dist/output_parsers/combining.d.ts +0 -1
- package/dist/output_parsers/combining.d.ts.map +1 -1
- package/dist/output_parsers/combining.js +1 -1
- package/dist/output_parsers/combining.js.map +1 -1
- package/dist/output_parsers/datetime.cjs +4 -4
- package/dist/output_parsers/datetime.cjs.map +1 -1
- package/dist/output_parsers/datetime.d.cts +0 -1
- package/dist/output_parsers/datetime.d.cts.map +1 -1
- package/dist/output_parsers/datetime.d.ts +0 -1
- package/dist/output_parsers/datetime.d.ts.map +1 -1
- package/dist/output_parsers/datetime.js.map +1 -1
- package/dist/output_parsers/expression.cjs +7 -9
- package/dist/output_parsers/expression.cjs.map +1 -1
- package/dist/output_parsers/expression.d.cts.map +1 -1
- package/dist/output_parsers/expression.d.ts.map +1 -1
- package/dist/output_parsers/expression.js +4 -7
- package/dist/output_parsers/expression.js.map +1 -1
- package/dist/output_parsers/expression_type_handlers/array_literal_expression_handler.cjs.map +1 -1
- package/dist/output_parsers/expression_type_handlers/array_literal_expression_handler.js.map +1 -1
- package/dist/output_parsers/expression_type_handlers/base.cjs +1 -2
- package/dist/output_parsers/expression_type_handlers/base.cjs.map +1 -1
- package/dist/output_parsers/expression_type_handlers/base.d.cts +0 -1
- package/dist/output_parsers/expression_type_handlers/base.d.cts.map +1 -1
- package/dist/output_parsers/expression_type_handlers/base.d.ts +0 -1
- package/dist/output_parsers/expression_type_handlers/base.d.ts.map +1 -1
- package/dist/output_parsers/expression_type_handlers/base.js +1 -2
- package/dist/output_parsers/expression_type_handlers/base.js.map +1 -1
- package/dist/output_parsers/expression_type_handlers/boolean_literal_handler.cjs.map +1 -1
- package/dist/output_parsers/expression_type_handlers/boolean_literal_handler.js.map +1 -1
- package/dist/output_parsers/expression_type_handlers/call_expression_handler.cjs.map +1 -1
- package/dist/output_parsers/expression_type_handlers/call_expression_handler.js.map +1 -1
- package/dist/output_parsers/expression_type_handlers/factory.cjs +1 -4
- package/dist/output_parsers/expression_type_handlers/factory.cjs.map +1 -1
- package/dist/output_parsers/expression_type_handlers/factory.d.cts +0 -1
- package/dist/output_parsers/expression_type_handlers/factory.d.cts.map +1 -1
- package/dist/output_parsers/expression_type_handlers/factory.d.ts +0 -1
- package/dist/output_parsers/expression_type_handlers/factory.d.ts.map +1 -1
- package/dist/output_parsers/expression_type_handlers/factory.js +1 -4
- package/dist/output_parsers/expression_type_handlers/factory.js.map +1 -1
- package/dist/output_parsers/expression_type_handlers/grammar/parser_grammar.cjs.map +1 -1
- package/dist/output_parsers/expression_type_handlers/grammar/parser_grammar.js.map +1 -1
- package/dist/output_parsers/expression_type_handlers/identifier_handler.cjs +1 -2
- package/dist/output_parsers/expression_type_handlers/identifier_handler.cjs.map +1 -1
- package/dist/output_parsers/expression_type_handlers/identifier_handler.js +1 -2
- package/dist/output_parsers/expression_type_handlers/identifier_handler.js.map +1 -1
- package/dist/output_parsers/expression_type_handlers/member_expression_handler.cjs.map +1 -1
- package/dist/output_parsers/expression_type_handlers/member_expression_handler.js.map +1 -1
- package/dist/output_parsers/expression_type_handlers/numeric_literal_handler.cjs.map +1 -1
- package/dist/output_parsers/expression_type_handlers/numeric_literal_handler.js.map +1 -1
- package/dist/output_parsers/expression_type_handlers/object_literal_expression_handler.cjs.map +1 -1
- package/dist/output_parsers/expression_type_handlers/object_literal_expression_handler.js.map +1 -1
- package/dist/output_parsers/expression_type_handlers/property_assignment_handler.cjs +2 -4
- package/dist/output_parsers/expression_type_handlers/property_assignment_handler.cjs.map +1 -1
- package/dist/output_parsers/expression_type_handlers/property_assignment_handler.js +2 -4
- package/dist/output_parsers/expression_type_handlers/property_assignment_handler.js.map +1 -1
- package/dist/output_parsers/expression_type_handlers/string_literal_handler.cjs +1 -2
- package/dist/output_parsers/expression_type_handlers/string_literal_handler.cjs.map +1 -1
- package/dist/output_parsers/expression_type_handlers/string_literal_handler.js +1 -2
- package/dist/output_parsers/expression_type_handlers/string_literal_handler.js.map +1 -1
- package/dist/output_parsers/expression_type_handlers/types.d.cts.map +1 -1
- package/dist/output_parsers/expression_type_handlers/types.d.ts.map +1 -1
- package/dist/output_parsers/fix.cjs +10 -16
- package/dist/output_parsers/fix.cjs.map +1 -1
- package/dist/output_parsers/fix.d.cts.map +1 -1
- package/dist/output_parsers/fix.d.ts.map +1 -1
- package/dist/output_parsers/fix.js +6 -12
- package/dist/output_parsers/fix.js.map +1 -1
- package/dist/output_parsers/http_response.cjs +5 -8
- package/dist/output_parsers/http_response.cjs.map +1 -1
- package/dist/output_parsers/http_response.d.cts.map +1 -1
- package/dist/output_parsers/http_response.d.ts +1 -1
- package/dist/output_parsers/http_response.d.ts.map +1 -1
- package/dist/output_parsers/http_response.js +1 -4
- package/dist/output_parsers/http_response.js.map +1 -1
- package/dist/output_parsers/index.cjs +10 -10
- package/dist/output_parsers/index.js +2 -3
- package/dist/output_parsers/noop.cjs +3 -3
- package/dist/output_parsers/noop.cjs.map +1 -1
- package/dist/output_parsers/noop.js.map +1 -1
- package/dist/output_parsers/openai_functions.cjs +15 -18
- package/dist/output_parsers/openai_functions.cjs.map +1 -1
- package/dist/output_parsers/openai_functions.d.cts +0 -1
- package/dist/output_parsers/openai_functions.d.cts.map +1 -1
- package/dist/output_parsers/openai_functions.d.ts +0 -1
- package/dist/output_parsers/openai_functions.d.ts.map +1 -1
- package/dist/output_parsers/openai_functions.js +6 -9
- package/dist/output_parsers/openai_functions.js.map +1 -1
- package/dist/output_parsers/openai_tools.cjs +5 -6
- package/dist/output_parsers/openai_tools.cjs.map +1 -1
- package/dist/output_parsers/openai_tools.d.cts +4 -9
- package/dist/output_parsers/openai_tools.d.cts.map +1 -1
- package/dist/output_parsers/openai_tools.d.ts +4 -9
- package/dist/output_parsers/openai_tools.d.ts.map +1 -1
- package/dist/output_parsers/openai_tools.js +1 -2
- package/dist/output_parsers/openai_tools.js.map +1 -1
- package/dist/output_parsers/prompts.cjs +3 -3
- package/dist/output_parsers/prompts.cjs.map +1 -1
- package/dist/output_parsers/prompts.js.map +1 -1
- package/dist/output_parsers/regex.cjs +4 -4
- package/dist/output_parsers/regex.cjs.map +1 -1
- package/dist/output_parsers/regex.d.cts.map +1 -1
- package/dist/output_parsers/regex.d.ts.map +1 -1
- package/dist/output_parsers/regex.js.map +1 -1
- package/dist/output_parsers/router.cjs +3 -3
- package/dist/output_parsers/router.cjs.map +1 -1
- package/dist/output_parsers/router.d.cts +0 -1
- package/dist/output_parsers/router.d.cts.map +1 -1
- package/dist/output_parsers/router.d.ts +0 -1
- package/dist/output_parsers/router.d.ts.map +1 -1
- package/dist/output_parsers/router.js.map +1 -1
- package/dist/output_parsers/structured.cjs +19 -20
- package/dist/output_parsers/structured.cjs.map +1 -1
- package/dist/output_parsers/structured.d.cts.map +1 -1
- package/dist/output_parsers/structured.d.ts.map +1 -1
- package/dist/output_parsers/structured.js +6 -7
- package/dist/output_parsers/structured.js.map +1 -1
- package/dist/retrievers/contextual_compression.cjs +6 -7
- package/dist/retrievers/contextual_compression.cjs.map +1 -1
- package/dist/retrievers/contextual_compression.d.cts +0 -1
- package/dist/retrievers/contextual_compression.d.cts.map +1 -1
- package/dist/retrievers/contextual_compression.d.ts +1 -2
- package/dist/retrievers/contextual_compression.d.ts.map +1 -1
- package/dist/retrievers/contextual_compression.js +3 -5
- package/dist/retrievers/contextual_compression.js.map +1 -1
- package/dist/retrievers/document_compressors/chain_extract.cjs +16 -19
- package/dist/retrievers/document_compressors/chain_extract.cjs.map +1 -1
- package/dist/retrievers/document_compressors/chain_extract.d.cts +0 -1
- package/dist/retrievers/document_compressors/chain_extract.d.cts.map +1 -1
- package/dist/retrievers/document_compressors/chain_extract.d.ts +1 -2
- package/dist/retrievers/document_compressors/chain_extract.d.ts.map +1 -1
- package/dist/retrievers/document_compressors/chain_extract.js +10 -14
- package/dist/retrievers/document_compressors/chain_extract.js.map +1 -1
- package/dist/retrievers/document_compressors/chain_extract_prompt.cjs.map +1 -1
- package/dist/retrievers/document_compressors/chain_extract_prompt.js.map +1 -1
- package/dist/retrievers/document_compressors/embeddings_filter.cjs +5 -5
- package/dist/retrievers/document_compressors/embeddings_filter.cjs.map +1 -1
- package/dist/retrievers/document_compressors/embeddings_filter.d.cts +0 -1
- package/dist/retrievers/document_compressors/embeddings_filter.d.cts.map +1 -1
- package/dist/retrievers/document_compressors/embeddings_filter.d.ts +0 -1
- package/dist/retrievers/document_compressors/embeddings_filter.d.ts.map +1 -1
- package/dist/retrievers/document_compressors/embeddings_filter.js +2 -3
- package/dist/retrievers/document_compressors/embeddings_filter.js.map +1 -1
- package/dist/retrievers/document_compressors/index.cjs +3 -3
- package/dist/retrievers/document_compressors/index.cjs.map +1 -1
- package/dist/retrievers/document_compressors/index.d.cts +0 -1
- package/dist/retrievers/document_compressors/index.d.cts.map +1 -1
- package/dist/retrievers/document_compressors/index.d.ts +1 -2
- package/dist/retrievers/document_compressors/index.d.ts.map +1 -1
- package/dist/retrievers/document_compressors/index.js +2 -3
- package/dist/retrievers/document_compressors/index.js.map +1 -1
- package/dist/retrievers/ensemble.cjs +7 -9
- package/dist/retrievers/ensemble.cjs.map +1 -1
- package/dist/retrievers/ensemble.d.cts.map +1 -1
- package/dist/retrievers/ensemble.d.ts +1 -1
- package/dist/retrievers/ensemble.d.ts.map +1 -1
- package/dist/retrievers/ensemble.js +4 -7
- package/dist/retrievers/ensemble.js.map +1 -1
- package/dist/retrievers/hyde.cjs +11 -13
- package/dist/retrievers/hyde.cjs.map +1 -1
- package/dist/retrievers/hyde.d.cts +0 -1
- package/dist/retrievers/hyde.d.cts.map +1 -1
- package/dist/retrievers/hyde.d.ts +1 -2
- package/dist/retrievers/hyde.d.ts.map +1 -1
- package/dist/retrievers/hyde.js +4 -7
- package/dist/retrievers/hyde.js.map +1 -1
- package/dist/retrievers/matryoshka_retriever.cjs +9 -9
- package/dist/retrievers/matryoshka_retriever.cjs.map +1 -1
- package/dist/retrievers/matryoshka_retriever.d.cts +0 -1
- package/dist/retrievers/matryoshka_retriever.d.cts.map +1 -1
- package/dist/retrievers/matryoshka_retriever.d.ts +0 -1
- package/dist/retrievers/matryoshka_retriever.d.ts.map +1 -1
- package/dist/retrievers/matryoshka_retriever.js +2 -3
- package/dist/retrievers/matryoshka_retriever.js.map +1 -1
- package/dist/retrievers/multi_query.cjs +15 -19
- package/dist/retrievers/multi_query.cjs.map +1 -1
- package/dist/retrievers/multi_query.d.cts.map +1 -1
- package/dist/retrievers/multi_query.d.ts +1 -1
- package/dist/retrievers/multi_query.d.ts.map +1 -1
- package/dist/retrievers/multi_query.js +8 -13
- package/dist/retrievers/multi_query.js.map +1 -1
- package/dist/retrievers/multi_vector.cjs +6 -7
- package/dist/retrievers/multi_vector.cjs.map +1 -1
- package/dist/retrievers/multi_vector.d.cts +0 -1
- package/dist/retrievers/multi_vector.d.cts.map +1 -1
- package/dist/retrievers/multi_vector.d.ts +0 -1
- package/dist/retrievers/multi_vector.d.ts.map +1 -1
- package/dist/retrievers/multi_vector.js +3 -5
- package/dist/retrievers/multi_vector.js.map +1 -1
- package/dist/retrievers/parent_document.cjs +8 -9
- package/dist/retrievers/parent_document.cjs.map +1 -1
- package/dist/retrievers/parent_document.d.cts.map +1 -1
- package/dist/retrievers/parent_document.d.ts +1 -1
- package/dist/retrievers/parent_document.d.ts.map +1 -1
- package/dist/retrievers/parent_document.js +4 -7
- package/dist/retrievers/parent_document.js.map +1 -1
- package/dist/retrievers/score_threshold.cjs +6 -7
- package/dist/retrievers/score_threshold.cjs.map +1 -1
- package/dist/retrievers/score_threshold.d.cts.map +1 -1
- package/dist/retrievers/score_threshold.d.ts.map +1 -1
- package/dist/retrievers/score_threshold.js +3 -5
- package/dist/retrievers/score_threshold.js.map +1 -1
- package/dist/retrievers/self_query/functional.cjs +5 -5
- package/dist/retrievers/self_query/functional.js +2 -3
- package/dist/retrievers/self_query/index.cjs +13 -13
- package/dist/retrievers/self_query/index.cjs.map +1 -1
- package/dist/retrievers/self_query/index.d.cts +0 -1
- package/dist/retrievers/self_query/index.d.cts.map +1 -1
- package/dist/retrievers/self_query/index.d.ts +1 -2
- package/dist/retrievers/self_query/index.d.ts.map +1 -1
- package/dist/retrievers/self_query/index.js +3 -4
- package/dist/retrievers/self_query/index.js.map +1 -1
- package/dist/retrievers/time_weighted.cjs +6 -7
- package/dist/retrievers/time_weighted.cjs.map +1 -1
- package/dist/retrievers/time_weighted.d.cts +0 -1
- package/dist/retrievers/time_weighted.d.cts.map +1 -1
- package/dist/retrievers/time_weighted.d.ts +1 -2
- package/dist/retrievers/time_weighted.d.ts.map +1 -1
- package/dist/retrievers/time_weighted.js +3 -5
- package/dist/retrievers/time_weighted.js.map +1 -1
- package/dist/schema/prompt_template.cjs +3 -3
- package/dist/schema/prompt_template.cjs.map +1 -1
- package/dist/schema/prompt_template.d.cts +0 -1
- package/dist/schema/prompt_template.d.cts.map +1 -1
- package/dist/schema/prompt_template.d.ts +1 -2
- package/dist/schema/prompt_template.d.ts.map +1 -1
- package/dist/schema/prompt_template.js +2 -3
- package/dist/schema/prompt_template.js.map +1 -1
- package/dist/schema/query_constructor.cjs +3 -3
- package/dist/schema/query_constructor.cjs.map +1 -1
- package/dist/schema/query_constructor.d.cts.map +1 -1
- package/dist/schema/query_constructor.d.ts.map +1 -1
- package/dist/schema/query_constructor.js +2 -3
- package/dist/schema/query_constructor.js.map +1 -1
- package/dist/smith/config.cjs.map +1 -1
- package/dist/smith/config.d.cts +10 -9
- package/dist/smith/config.d.cts.map +1 -1
- package/dist/smith/config.d.ts +10 -9
- package/dist/smith/config.d.ts.map +1 -1
- package/dist/smith/config.js.map +1 -1
- package/dist/smith/index.cjs +3 -3
- package/dist/smith/index.js +2 -3
- package/dist/smith/name_generation.cjs +1 -4
- package/dist/smith/name_generation.cjs.map +1 -1
- package/dist/smith/name_generation.js +1 -4
- package/dist/smith/name_generation.js.map +1 -1
- package/dist/smith/progress.cjs.map +1 -1
- package/dist/smith/progress.js.map +1 -1
- package/dist/smith/runner_utils.cjs +30 -37
- package/dist/smith/runner_utils.cjs.map +1 -1
- package/dist/smith/runner_utils.d.cts +2 -1
- package/dist/smith/runner_utils.d.cts.map +1 -1
- package/dist/smith/runner_utils.d.ts +2 -1
- package/dist/smith/runner_utils.d.ts.map +1 -1
- package/dist/smith/runner_utils.js +12 -19
- package/dist/smith/runner_utils.js.map +1 -1
- package/dist/sql_db.cjs +5 -5
- package/dist/sql_db.cjs.map +1 -1
- package/dist/sql_db.d.cts +0 -1
- package/dist/sql_db.d.cts.map +1 -1
- package/dist/sql_db.d.ts +0 -1
- package/dist/sql_db.d.ts.map +1 -1
- package/dist/sql_db.js +2 -3
- package/dist/sql_db.js.map +1 -1
- package/dist/storage/encoder_backed.cjs +9 -10
- package/dist/storage/encoder_backed.cjs.map +1 -1
- package/dist/storage/encoder_backed.d.cts +0 -1
- package/dist/storage/encoder_backed.d.cts.map +1 -1
- package/dist/storage/encoder_backed.d.ts +0 -1
- package/dist/storage/encoder_backed.d.ts.map +1 -1
- package/dist/storage/encoder_backed.js +4 -6
- package/dist/storage/encoder_backed.js.map +1 -1
- package/dist/storage/file_system.cjs +12 -11
- package/dist/storage/file_system.cjs.map +1 -1
- package/dist/storage/file_system.d.cts +0 -1
- package/dist/storage/file_system.d.cts.map +1 -1
- package/dist/storage/file_system.d.ts +0 -1
- package/dist/storage/file_system.d.ts.map +1 -1
- package/dist/storage/file_system.js +5 -7
- package/dist/storage/file_system.js.map +1 -1
- package/dist/storage/in_memory.cjs +5 -5
- package/dist/storage/in_memory.js +2 -3
- package/dist/stores/doc/base.cjs +3 -3
- package/dist/stores/doc/base.cjs.map +1 -1
- package/dist/stores/doc/base.d.cts +0 -1
- package/dist/stores/doc/base.d.cts.map +1 -1
- package/dist/stores/doc/base.d.ts +0 -1
- package/dist/stores/doc/base.d.ts.map +1 -1
- package/dist/stores/doc/base.js +2 -3
- package/dist/stores/doc/base.js.map +1 -1
- package/dist/stores/doc/in_memory.cjs +3 -3
- package/dist/stores/doc/in_memory.cjs.map +1 -1
- package/dist/stores/doc/in_memory.d.cts +0 -1
- package/dist/stores/doc/in_memory.d.cts.map +1 -1
- package/dist/stores/doc/in_memory.d.ts +0 -1
- package/dist/stores/doc/in_memory.d.ts.map +1 -1
- package/dist/stores/doc/in_memory.js +2 -3
- package/dist/stores/doc/in_memory.js.map +1 -1
- package/dist/stores/file/base.cjs +3 -3
- package/dist/stores/file/base.cjs.map +1 -1
- package/dist/stores/file/base.d.cts +0 -1
- package/dist/stores/file/base.d.cts.map +1 -1
- package/dist/stores/file/base.d.ts +0 -1
- package/dist/stores/file/base.d.ts.map +1 -1
- package/dist/stores/file/base.js.map +1 -1
- package/dist/stores/file/in_memory.cjs +3 -3
- package/dist/stores/file/in_memory.cjs.map +1 -1
- package/dist/stores/file/in_memory.d.cts +0 -1
- package/dist/stores/file/in_memory.d.cts.map +1 -1
- package/dist/stores/file/in_memory.d.ts +0 -1
- package/dist/stores/file/in_memory.d.ts.map +1 -1
- package/dist/stores/file/in_memory.js +2 -3
- package/dist/stores/file/in_memory.js.map +1 -1
- package/dist/stores/file/node.cjs +7 -6
- package/dist/stores/file/node.cjs.map +1 -1
- package/dist/stores/file/node.d.cts +0 -1
- package/dist/stores/file/node.d.cts.map +1 -1
- package/dist/stores/file/node.d.ts +0 -1
- package/dist/stores/file/node.d.ts.map +1 -1
- package/dist/stores/file/node.js +6 -7
- package/dist/stores/file/node.js.map +1 -1
- package/dist/stores/message/in_memory.cjs +5 -5
- package/dist/stores/message/in_memory.js +2 -3
- package/dist/text_splitter.cjs +7 -6
- package/dist/text_splitter.d.cts +3 -2
- package/dist/text_splitter.d.cts.map +1 -1
- package/dist/text_splitter.d.ts +3 -2
- package/dist/text_splitter.d.ts.map +1 -1
- package/dist/text_splitter.js +4 -4
- package/dist/tools/chain.cjs +6 -6
- package/dist/tools/chain.cjs.map +1 -1
- package/dist/tools/chain.d.cts +0 -1
- package/dist/tools/chain.d.cts.map +1 -1
- package/dist/tools/chain.d.ts +0 -1
- package/dist/tools/chain.d.ts.map +1 -1
- package/dist/tools/chain.js +3 -4
- package/dist/tools/chain.js.map +1 -1
- package/dist/tools/fs.cjs +6 -6
- package/dist/tools/fs.cjs.map +1 -1
- package/dist/tools/fs.d.cts +0 -1
- package/dist/tools/fs.d.cts.map +1 -1
- package/dist/tools/fs.d.ts +0 -1
- package/dist/tools/fs.d.ts.map +1 -1
- package/dist/tools/fs.js +1 -1
- package/dist/tools/fs.js.map +1 -1
- package/dist/tools/index.cjs +13 -13
- package/dist/tools/index.js +2 -3
- package/dist/tools/json.cjs +10 -11
- package/dist/tools/json.cjs.map +1 -1
- package/dist/tools/json.d.cts.map +1 -1
- package/dist/tools/json.d.ts.map +1 -1
- package/dist/tools/json.js +2 -4
- package/dist/tools/json.js.map +1 -1
- package/dist/tools/render.cjs +9 -9
- package/dist/tools/render.cjs.map +1 -1
- package/dist/tools/render.d.cts +0 -1
- package/dist/tools/render.d.cts.map +1 -1
- package/dist/tools/render.d.ts +0 -1
- package/dist/tools/render.d.ts.map +1 -1
- package/dist/tools/render.js +2 -3
- package/dist/tools/render.js.map +1 -1
- package/dist/tools/requests.cjs +7 -11
- package/dist/tools/requests.cjs.map +1 -1
- package/dist/tools/requests.d.cts.map +1 -1
- package/dist/tools/requests.d.ts.map +1 -1
- package/dist/tools/requests.js +3 -7
- package/dist/tools/requests.js.map +1 -1
- package/dist/tools/retriever.cjs +7 -8
- package/dist/tools/retriever.cjs.map +1 -1
- package/dist/tools/retriever.d.cts.map +1 -1
- package/dist/tools/retriever.d.ts.map +1 -1
- package/dist/tools/retriever.js +3 -5
- package/dist/tools/retriever.js.map +1 -1
- package/dist/tools/sql.cjs +11 -12
- package/dist/tools/sql.cjs.map +1 -1
- package/dist/tools/sql.d.cts +0 -1
- package/dist/tools/sql.d.cts.map +1 -1
- package/dist/tools/sql.d.ts +0 -1
- package/dist/tools/sql.d.ts.map +1 -1
- package/dist/tools/sql.js +3 -5
- package/dist/tools/sql.js.map +1 -1
- package/dist/tools/vectorstore.cjs +3 -3
- package/dist/tools/vectorstore.cjs.map +1 -1
- package/dist/tools/vectorstore.d.cts +0 -1
- package/dist/tools/vectorstore.d.cts.map +1 -1
- package/dist/tools/vectorstore.d.ts +0 -1
- package/dist/tools/vectorstore.d.ts.map +1 -1
- package/dist/tools/vectorstore.js.map +1 -1
- package/dist/tools/webbrowser.cjs +18 -23
- package/dist/tools/webbrowser.cjs.map +1 -1
- package/dist/tools/webbrowser.d.cts.map +1 -1
- package/dist/tools/webbrowser.d.ts +1 -1
- package/dist/tools/webbrowser.d.ts.map +1 -1
- package/dist/tools/webbrowser.js +9 -16
- package/dist/tools/webbrowser.js.map +1 -1
- package/dist/types/expression-parser.d.cts.map +1 -1
- package/dist/types/expression-parser.d.ts.map +1 -1
- package/dist/types/type-utils.d.cts.map +1 -1
- package/dist/types/type-utils.d.ts.map +1 -1
- package/dist/util/document.cjs +3 -3
- package/dist/util/document.cjs.map +1 -1
- package/dist/util/document.d.cts +0 -1
- package/dist/util/document.d.cts.map +1 -1
- package/dist/util/document.d.ts +0 -1
- package/dist/util/document.d.ts.map +1 -1
- package/dist/util/document.js +2 -3
- package/dist/util/document.js.map +1 -1
- package/dist/util/entrypoint_deprecation.js +2 -0
- package/dist/util/env.cjs +2 -2
- package/dist/util/env.js +2 -0
- package/dist/util/extname.cjs.map +1 -1
- package/dist/util/extname.js.map +1 -1
- package/dist/util/hub.cjs +9 -11
- package/dist/util/hub.cjs.map +1 -1
- package/dist/util/hub.js +5 -7
- package/dist/util/hub.js.map +1 -1
- package/dist/util/is-network-error/index.cjs +2 -3
- package/dist/util/is-network-error/index.cjs.map +1 -1
- package/dist/util/is-network-error/index.js +2 -3
- package/dist/util/is-network-error/index.js.map +1 -1
- package/dist/util/load.cjs +1 -2
- package/dist/util/load.cjs.map +1 -1
- package/dist/util/load.d.cts.map +1 -1
- package/dist/util/load.d.ts.map +1 -1
- package/dist/util/load.js +1 -2
- package/dist/util/load.js.map +1 -1
- package/dist/util/math.cjs +7 -6
- package/dist/util/math.js +4 -4
- package/dist/util/ml-distance/distances.cjs.map +1 -1
- package/dist/util/ml-distance/distances.js.map +1 -1
- package/dist/util/ml-distance/similarities.cjs.map +1 -1
- package/dist/util/ml-distance/similarities.d.cts.map +1 -1
- package/dist/util/ml-distance/similarities.d.ts.map +1 -1
- package/dist/util/ml-distance/similarities.js.map +1 -1
- package/dist/util/ml-distance-euclidean/euclidean.cjs.map +1 -1
- package/dist/util/ml-distance-euclidean/euclidean.js.map +1 -1
- package/dist/util/openapi.cjs +6 -7
- package/dist/util/openapi.cjs.map +1 -1
- package/dist/util/openapi.d.cts.map +1 -1
- package/dist/util/openapi.d.ts.map +1 -1
- package/dist/util/openapi.js +3 -5
- package/dist/util/openapi.js.map +1 -1
- package/dist/util/p-retry/index.cjs +2 -2
- package/dist/util/p-retry/index.cjs.map +1 -1
- package/dist/util/p-retry/index.js +2 -2
- package/dist/util/p-retry/index.js.map +1 -1
- package/dist/util/parse.cjs +3 -2
- package/dist/util/parse.cjs.map +1 -1
- package/dist/util/parse.js.map +1 -1
- package/dist/util/set.cjs.map +1 -1
- package/dist/util/set.js.map +1 -1
- package/dist/util/sql_utils.cjs +16 -28
- package/dist/util/sql_utils.cjs.map +1 -1
- package/dist/util/sql_utils.d.cts.map +1 -1
- package/dist/util/sql_utils.d.ts.map +1 -1
- package/dist/util/sql_utils.js +16 -28
- package/dist/util/sql_utils.js.map +1 -1
- package/dist/util/time.cjs +3 -3
- package/dist/util/time.cjs.map +1 -1
- package/dist/util/time.d.cts.map +1 -1
- package/dist/util/time.d.ts.map +1 -1
- package/dist/util/time.js +2 -3
- package/dist/util/time.js.map +1 -1
- package/dist/vectorstores/memory.cjs +15 -22
- package/dist/vectorstores/memory.cjs.map +1 -1
- package/dist/vectorstores/memory.d.cts +0 -1
- package/dist/vectorstores/memory.d.cts.map +1 -1
- package/dist/vectorstores/memory.d.ts +0 -1
- package/dist/vectorstores/memory.d.ts.map +1 -1
- package/dist/vectorstores/memory.js +9 -17
- package/dist/vectorstores/memory.js.map +1 -1
- package/package.json +18 -18
- package/dist/_virtual/rolldown_runtime.js +0 -25
package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_chain.cjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
const
|
|
1
|
+
const require_runtime = require('../../../_virtual/_rolldown/runtime.cjs');
|
|
2
2
|
const require_base = require('../../../chains/base.cjs');
|
|
3
3
|
const require_openai_functions = require('../../../output_parsers/openai_functions.cjs');
|
|
4
4
|
const require_types = require('./types.cjs');
|
|
5
5
|
const require_violation_of_expectations_prompt = require('./violation_of_expectations_prompt.cjs');
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
let _langchain_core_messages = require("@langchain/core/messages");
|
|
7
|
+
let _langchain_core_output_parsers = require("@langchain/core/output_parsers");
|
|
8
8
|
|
|
9
9
|
//#region src/experimental/chains/violation_of_expectations/violation_of_expectations_chain.ts
|
|
10
10
|
/**
|
|
@@ -35,7 +35,7 @@ var ViolationOfExpectationsChain = class extends require_base.BaseChain {
|
|
|
35
35
|
this.retriever = fields.retriever;
|
|
36
36
|
this.llm = fields.llm;
|
|
37
37
|
this.jsonOutputParser = new require_openai_functions.JsonOutputFunctionsParser();
|
|
38
|
-
this.stringOutputParser = new
|
|
38
|
+
this.stringOutputParser = new _langchain_core_output_parsers.StringOutputParser();
|
|
39
39
|
}
|
|
40
40
|
getChatHistoryString(chatHistory) {
|
|
41
41
|
return chatHistory.map((chatMessage) => {
|
|
@@ -73,7 +73,7 @@ var ViolationOfExpectationsChain = class extends require_base.BaseChain {
|
|
|
73
73
|
if (!userResponse || userResponse._getType() !== "human") userResponse = void 0;
|
|
74
74
|
newArray.push({
|
|
75
75
|
chunkedMessages: tempArray,
|
|
76
|
-
userResponse: userResponse ? new
|
|
76
|
+
userResponse: userResponse ? new _langchain_core_messages.HumanMessage(userResponse) : void 0
|
|
77
77
|
});
|
|
78
78
|
}
|
|
79
79
|
});
|
|
@@ -101,8 +101,7 @@ var ViolationOfExpectationsChain = class extends require_base.BaseChain {
|
|
|
101
101
|
async _call(values, runManager) {
|
|
102
102
|
if (!(this.chatHistoryKey in values)) throw new Error(`Chat history key ${this.chatHistoryKey} not found`);
|
|
103
103
|
const chatHistory = values[this.chatHistoryKey];
|
|
104
|
-
|
|
105
|
-
if (!isEveryMessageBaseMessage) throw new Error("Chat history must be an array of BaseMessages");
|
|
104
|
+
if (!chatHistory.every((message) => (0, _langchain_core_messages.isBaseMessage)(message))) throw new Error("Chat history must be an array of BaseMessages");
|
|
106
105
|
const messageChunks = this.chunkMessagesByAIResponse(chatHistory);
|
|
107
106
|
const userPredictions = await Promise.all(messageChunks.map(async (chatHistoryChunk) => ({
|
|
108
107
|
userPredictions: await this.predictNextUserMessage(chatHistoryChunk.chunkedMessages),
|
|
@@ -114,14 +113,13 @@ var ViolationOfExpectationsChain = class extends require_base.BaseChain {
|
|
|
114
113
|
userResponse: prediction.userResponse,
|
|
115
114
|
runManager
|
|
116
115
|
})));
|
|
117
|
-
|
|
116
|
+
return { insights: await Promise.all(predictionViolations.map((violation) => this.generateFacts({
|
|
118
117
|
userResponse: violation.userResponse,
|
|
119
118
|
predictions: {
|
|
120
119
|
revisedPrediction: violation.revisedPrediction,
|
|
121
120
|
explainedPredictionErrors: violation.explainedPredictionErrors
|
|
122
121
|
}
|
|
123
|
-
})));
|
|
124
|
-
return { insights };
|
|
122
|
+
}))) };
|
|
125
123
|
}
|
|
126
124
|
/**
|
|
127
125
|
* This method predicts the next user message based on the chat history.
|
|
@@ -136,8 +134,7 @@ var ViolationOfExpectationsChain = class extends require_base.BaseChain {
|
|
|
136
134
|
async predictNextUserMessage(chatHistory, runManager) {
|
|
137
135
|
const messageString = this.getChatHistoryString(chatHistory);
|
|
138
136
|
const llmWithFunctions = this.llm.bindTools([require_types.PREDICT_NEXT_USER_MESSAGE_FUNCTION]).withConfig({ function_call: { name: require_types.PREDICT_NEXT_USER_MESSAGE_FUNCTION.name } });
|
|
139
|
-
const
|
|
140
|
-
const res = await chain.invoke({ chat_history: messageString }, runManager?.getChild("prediction"));
|
|
137
|
+
const res = await require_violation_of_expectations_prompt.PREDICT_NEXT_USER_MESSAGE_PROMPT.pipe(llmWithFunctions).pipe(this.jsonOutputParser).invoke({ chat_history: messageString }, runManager?.getChild("prediction"));
|
|
141
138
|
if (!("userState" in res && "predictedUserMessage" in res && "insights" in res)) throw new Error(`Invalid response from LLM: ${JSON.stringify(res)}`);
|
|
142
139
|
const predictionResponse = res;
|
|
143
140
|
const retrievedDocs = await this.retrieveRelevantInsights(predictionResponse.insights);
|
|
@@ -155,12 +152,9 @@ var ViolationOfExpectationsChain = class extends require_base.BaseChain {
|
|
|
155
152
|
* @returns {Promise<Array<string>>} A promise that resolves to an array of relevant insights content.
|
|
156
153
|
*/
|
|
157
154
|
async retrieveRelevantInsights(insights) {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
}));
|
|
162
|
-
const relevantInsightsContent = relevantInsightsDocuments.map((document) => document.pageContent);
|
|
163
|
-
return relevantInsightsContent;
|
|
155
|
+
return (await Promise.all(insights.map(async (insight) => {
|
|
156
|
+
return (await this.retriever.invoke(insight))[0];
|
|
157
|
+
}))).map((document) => document.pageContent);
|
|
164
158
|
}
|
|
165
159
|
/**
|
|
166
160
|
* This method generates prediction violations based on the predicted and actual user responses.
|
|
@@ -184,15 +178,14 @@ var ViolationOfExpectationsChain = class extends require_base.BaseChain {
|
|
|
184
178
|
actual_output: userResponse?.content ?? "",
|
|
185
179
|
user_insights: userPredictions.insights.join("\n")
|
|
186
180
|
}, runManager?.getChild("prediction_violations"));
|
|
187
|
-
const revisedPrediction = await this.generateRevisedPrediction({
|
|
188
|
-
originalPrediction: userPredictions.predictedUserMessage,
|
|
189
|
-
explainedPredictionErrors: res.explainedPredictionErrors,
|
|
190
|
-
userInsights: userPredictions.insights,
|
|
191
|
-
runManager
|
|
192
|
-
});
|
|
193
181
|
return {
|
|
194
182
|
userResponse,
|
|
195
|
-
revisedPrediction
|
|
183
|
+
revisedPrediction: await this.generateRevisedPrediction({
|
|
184
|
+
originalPrediction: userPredictions.predictedUserMessage,
|
|
185
|
+
explainedPredictionErrors: res.explainedPredictionErrors,
|
|
186
|
+
userInsights: userPredictions.insights,
|
|
187
|
+
runManager
|
|
188
|
+
}),
|
|
196
189
|
explainedPredictionErrors: res.explainedPredictionErrors
|
|
197
190
|
};
|
|
198
191
|
}
|
|
@@ -208,13 +201,11 @@ var ViolationOfExpectationsChain = class extends require_base.BaseChain {
|
|
|
208
201
|
* @returns {Promise<string>} A promise that resolves to a revised prediction.
|
|
209
202
|
*/
|
|
210
203
|
async generateRevisedPrediction({ originalPrediction, explainedPredictionErrors, userInsights, runManager }) {
|
|
211
|
-
|
|
212
|
-
const revisedPredictionRes = await revisedPredictionChain.invoke({
|
|
204
|
+
return await require_violation_of_expectations_prompt.GENERATE_REVISED_PREDICTION_PROMPT.pipe(this.llm).pipe(this.stringOutputParser).invoke({
|
|
213
205
|
prediction: originalPrediction,
|
|
214
206
|
explained_prediction_errors: explainedPredictionErrors.join("\n"),
|
|
215
207
|
user_insights: userInsights.join("\n")
|
|
216
208
|
}, runManager?.getChild("prediction_revision"));
|
|
217
|
-
return revisedPredictionRes;
|
|
218
209
|
}
|
|
219
210
|
/**
|
|
220
211
|
* This method generates facts or insights about the user based on the revised prediction, explained prediction errors, and the user's response.
|
|
@@ -231,12 +222,11 @@ var ViolationOfExpectationsChain = class extends require_base.BaseChain {
|
|
|
231
222
|
async generateFacts({ userResponse, predictions, runManager }) {
|
|
232
223
|
const chain = require_violation_of_expectations_prompt.GENERATE_FACTS_PROMPT.pipe(this.llm).pipe(this.stringOutputParser);
|
|
233
224
|
if (typeof userResponse?.content !== "string") throw new Error("This chain does not support non-string model output.");
|
|
234
|
-
|
|
225
|
+
return await chain.invoke({
|
|
235
226
|
prediction_violations: predictions.explainedPredictionErrors.join("\n"),
|
|
236
227
|
prediction: predictions.revisedPrediction,
|
|
237
228
|
user_message: userResponse?.content ?? ""
|
|
238
229
|
}, runManager?.getChild("generate_facts"));
|
|
239
|
-
return res;
|
|
240
230
|
}
|
|
241
231
|
/**
|
|
242
232
|
* Static method that creates a ViolationOfExpectationsChain instance from a
|
package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_chain.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"violation_of_expectations_chain.cjs","names":["BaseChain","fields: ViolationOfExpectationsChainInput","JsonOutputFunctionsParser","StringOutputParser","chatHistory: BaseMessage[]","strings: Array<string>","newArray: MessageChunkResult[]","tempArray: BaseMessage[]","userResponse: BaseMessage | undefined","HumanMessage","values: ChainValues","runManager?: CallbackManagerForChainRun","chatHistory: unknown[]","PREDICT_NEXT_USER_MESSAGE_FUNCTION","PREDICT_NEXT_USER_MESSAGE_PROMPT","insights: Array<string>","PREDICTION_VIOLATIONS_FUNCTION","PREDICTION_VIOLATIONS_PROMPT","GENERATE_REVISED_PREDICTION_PROMPT","GENERATE_FACTS_PROMPT","llm: ChatOpenAI","retriever: BaseRetrieverInterface","options?: Partial<\n Omit<ViolationOfExpectationsChainInput, \"llm\" | \"retriever\">\n >"],"sources":["../../../../src/experimental/chains/violation_of_expectations/violation_of_expectations_chain.ts"],"sourcesContent":["import type { BaseRetrieverInterface } from \"@langchain/core/retrievers\";\nimport { ChatOpenAI } from \"@langchain/openai\";\nimport {\n BaseMessage,\n HumanMessage,\n isBaseMessage,\n} from \"@langchain/core/messages\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { StringOutputParser } from \"@langchain/core/output_parsers\";\nimport { CallbackManagerForChainRun } from \"@langchain/core/callbacks/manager\";\nimport { JsonOutputFunctionsParser } from \"../../../output_parsers/openai_functions.js\";\nimport { BaseChain, ChainInputs } from \"../../../chains/base.js\";\nimport {\n GetPredictionViolationsResponse,\n MessageChunkResult,\n PREDICTION_VIOLATIONS_FUNCTION,\n PREDICT_NEXT_USER_MESSAGE_FUNCTION,\n PredictNextUserMessageResponse,\n} from \"./types.js\";\nimport {\n GENERATE_FACTS_PROMPT,\n GENERATE_REVISED_PREDICTION_PROMPT,\n PREDICTION_VIOLATIONS_PROMPT,\n PREDICT_NEXT_USER_MESSAGE_PROMPT,\n} from \"./violation_of_expectations_prompt.js\";\n\n/**\n * Interface for the input parameters of the ViolationOfExpectationsChain class.\n */\nexport interface ViolationOfExpectationsChainInput extends ChainInputs {\n /**\n * The retriever to use for retrieving stored\n * thoughts and insights.\n */\n retriever: BaseRetrieverInterface;\n /**\n * The LLM to use\n */\n llm: ChatOpenAI;\n}\n\n/**\n * Chain that generates key insights/facts of a user based on a\n * a chat conversation with an AI.\n */\nexport class ViolationOfExpectationsChain\n extends BaseChain\n implements ViolationOfExpectationsChainInput\n{\n static lc_name() {\n return \"ViolationOfExpectationsChain\";\n }\n\n _chainType(): string {\n return \"violation_of_expectation_chain\";\n }\n\n chatHistoryKey = \"chat_history\";\n\n thoughtsKey = \"thoughts\";\n\n get inputKeys() {\n return [this.chatHistoryKey];\n }\n\n get outputKeys() {\n return [this.thoughtsKey];\n }\n\n retriever: BaseRetrieverInterface;\n\n llm: ChatOpenAI;\n\n jsonOutputParser: JsonOutputFunctionsParser;\n\n stringOutputParser: StringOutputParser;\n\n constructor(fields: ViolationOfExpectationsChainInput) {\n super(fields);\n this.retriever = fields.retriever;\n this.llm = fields.llm;\n this.jsonOutputParser = new JsonOutputFunctionsParser();\n this.stringOutputParser = new StringOutputParser();\n }\n\n getChatHistoryString(chatHistory: BaseMessage[]): string {\n return chatHistory\n .map((chatMessage) => {\n if (chatMessage._getType() === \"human\") {\n return `Human: ${chatMessage.content}`;\n } else if (chatMessage._getType() === \"ai\") {\n return `AI: ${chatMessage.content}`;\n } else {\n return `${chatMessage.content}`;\n }\n })\n .join(\"\\n\");\n }\n\n removeDuplicateStrings(strings: Array<string>): Array<string> {\n return [...new Set(strings)];\n }\n\n /**\n * This method breaks down the chat history into chunks of messages.\n * Each chunk consists of a sequence of messages ending with an AI message and the subsequent user response, if any.\n *\n * @param {BaseMessage[]} chatHistory - The chat history to be chunked.\n *\n * @returns {MessageChunkResult[]} An array of message chunks. Each chunk includes a sequence of messages and the subsequent user response.\n *\n * @description\n * The method iterates over the chat history and pushes each message into a temporary array.\n * When it encounters an AI message, it checks for a subsequent user message.\n * If a user message is found, it is considered as the user response to the AI message.\n * If no user message is found after the AI message, the user response is undefined.\n * The method then pushes the chunk (sequence of messages and user response) into the result array.\n * This process continues until all messages in the chat history have been processed.\n */\n chunkMessagesByAIResponse(chatHistory: BaseMessage[]): MessageChunkResult[] {\n const newArray: MessageChunkResult[] = [];\n const tempArray: BaseMessage[] = [];\n\n chatHistory.forEach((item, index) => {\n tempArray.push(item);\n if (item._getType() === \"ai\") {\n let userResponse: BaseMessage | undefined = chatHistory[index + 1];\n if (!userResponse || userResponse._getType() !== \"human\") {\n userResponse = undefined;\n }\n\n newArray.push({\n chunkedMessages: tempArray,\n userResponse: userResponse\n ? new HumanMessage(userResponse)\n : undefined,\n });\n }\n });\n\n return newArray;\n }\n\n /**\n * This method processes a chat history to generate insights about the user.\n *\n * @param {ChainValues} values - The input values for the chain. It should contain a key for chat history.\n * @param {CallbackManagerForChainRun} [runManager] - Optional callback manager for the chain run.\n *\n * @returns {Promise<ChainValues>} A promise that resolves to a list of insights about the user.\n *\n * @throws {Error} If the chat history key is not found in the input values or if the chat history is not an array of BaseMessages.\n *\n * @description\n * The method performs the following steps:\n * 1. Checks if the chat history key is present in the input values and if the chat history is an array of BaseMessages.\n * 2. Breaks the chat history into chunks of messages.\n * 3. For each chunk, it generates an initial prediction for the user's next message.\n * 4. For each prediction, it generates insights and prediction violations, and regenerates the prediction based on the violations.\n * 5. For each set of messages, it generates a fact/insight about the user.\n * The method returns a list of these insights.\n */\n async _call(\n values: ChainValues,\n runManager?: CallbackManagerForChainRun\n ): Promise<ChainValues> {\n if (!(this.chatHistoryKey in values)) {\n throw new Error(`Chat history key ${this.chatHistoryKey} not found`);\n }\n\n const chatHistory: unknown[] = values[this.chatHistoryKey];\n\n const isEveryMessageBaseMessage = chatHistory.every((message) =>\n isBaseMessage(message)\n );\n if (!isEveryMessageBaseMessage) {\n throw new Error(\"Chat history must be an array of BaseMessages\");\n }\n\n const messageChunks = this.chunkMessagesByAIResponse(\n chatHistory as BaseMessage[]\n );\n\n // Generate the initial prediction for every user message.\n const userPredictions = await Promise.all(\n messageChunks.map(async (chatHistoryChunk) => ({\n userPredictions: await this.predictNextUserMessage(\n chatHistoryChunk.chunkedMessages\n ),\n userResponse: chatHistoryChunk.userResponse,\n runManager,\n }))\n );\n\n // Generate insights, and prediction violations for every user message.\n // This call also regenerates the prediction based on the violations.\n const predictionViolations = await Promise.all(\n userPredictions.map((prediction) =>\n this.getPredictionViolations({\n userPredictions: prediction.userPredictions,\n userResponse: prediction.userResponse,\n runManager,\n })\n )\n );\n\n // Generate a fact/insight about the user for every set of messages.\n const insights = await Promise.all(\n predictionViolations.map((violation) =>\n this.generateFacts({\n userResponse: violation.userResponse,\n predictions: {\n revisedPrediction: violation.revisedPrediction,\n explainedPredictionErrors: violation.explainedPredictionErrors,\n },\n })\n )\n );\n\n return {\n insights,\n };\n }\n\n /**\n * This method predicts the next user message based on the chat history.\n *\n * @param {BaseMessage[]} chatHistory - The chat history based on which the next user message is predicted.\n * @param {CallbackManagerForChainRun} [runManager] - Optional callback manager for the chain run.\n *\n * @returns {Promise<PredictNextUserMessageResponse>} A promise that resolves to the predicted next user message, the user state, and any insights.\n *\n * @throws {Error} If the response from the language model does not contain the expected keys: 'userState', 'predictedUserMessage', and 'insights'.\n */\n private async predictNextUserMessage(\n chatHistory: BaseMessage[],\n runManager?: CallbackManagerForChainRun\n ): Promise<PredictNextUserMessageResponse> {\n const messageString = this.getChatHistoryString(chatHistory);\n\n const llmWithFunctions = this.llm\n .bindTools([PREDICT_NEXT_USER_MESSAGE_FUNCTION])\n .withConfig({\n function_call: { name: PREDICT_NEXT_USER_MESSAGE_FUNCTION.name },\n });\n\n const chain = PREDICT_NEXT_USER_MESSAGE_PROMPT.pipe(llmWithFunctions).pipe(\n this.jsonOutputParser\n );\n\n const res = await chain.invoke(\n {\n chat_history: messageString,\n },\n runManager?.getChild(\"prediction\")\n );\n\n if (\n !(\n \"userState\" in res &&\n \"predictedUserMessage\" in res &&\n \"insights\" in res\n )\n ) {\n throw new Error(`Invalid response from LLM: ${JSON.stringify(res)}`);\n }\n\n const predictionResponse = res as PredictNextUserMessageResponse;\n\n // Query the retriever for relevant insights. Use the generates insights as a query.\n const retrievedDocs = await this.retrieveRelevantInsights(\n predictionResponse.insights\n );\n const relevantDocs = this.removeDuplicateStrings([\n ...predictionResponse.insights,\n ...retrievedDocs,\n ]);\n\n return {\n ...predictionResponse,\n insights: relevantDocs,\n };\n }\n\n /**\n * Retrieves relevant insights based on the provided insights.\n *\n * @param {Array<string>} insights - An array of insights to be used for retrieving relevant documents.\n *\n * @returns {Promise<Array<string>>} A promise that resolves to an array of relevant insights content.\n */\n private async retrieveRelevantInsights(\n insights: Array<string>\n ): Promise<Array<string>> {\n // Only extract the first relevant doc from the retriever. We don't need more than one.\n const relevantInsightsDocuments = await Promise.all(\n insights.map(async (insight) => {\n const relevantInsight = await this.retriever.invoke(insight);\n return relevantInsight[0];\n })\n );\n\n const relevantInsightsContent = relevantInsightsDocuments.map(\n (document) => document.pageContent\n );\n\n return relevantInsightsContent;\n }\n\n /**\n * This method generates prediction violations based on the predicted and actual user responses.\n * It also generates a revised prediction based on the identified violations.\n *\n * @param {Object} params - The parameters for the method.\n * @param {PredictNextUserMessageResponse} params.userPredictions - The predicted user message, user state, and insights.\n * @param {BaseMessage} [params.userResponse] - The actual user response.\n * @param {CallbackManagerForChainRun} [params.runManager] - Optional callback manager for the chain run.\n *\n * @returns {Promise<{ userResponse: BaseMessage | undefined; revisedPrediction: string; explainedPredictionErrors: Array<string>; }>} A promise that resolves to an object containing the actual user response, the revised prediction, and the explained prediction errors.\n *\n * @throws {Error} If the response from the language model does not contain the expected keys: 'violationExplanation', 'explainedPredictionErrors', and 'accuratePrediction'.\n */\n private async getPredictionViolations({\n userPredictions,\n userResponse,\n runManager,\n }: {\n userPredictions: PredictNextUserMessageResponse;\n userResponse?: BaseMessage;\n runManager?: CallbackManagerForChainRun;\n }): Promise<GetPredictionViolationsResponse> {\n const llmWithFunctions = this.llm\n .bindTools([PREDICTION_VIOLATIONS_FUNCTION])\n .withConfig({\n function_call: { name: PREDICTION_VIOLATIONS_FUNCTION.name },\n });\n\n const chain = PREDICTION_VIOLATIONS_PROMPT.pipe(llmWithFunctions).pipe(\n this.jsonOutputParser\n );\n\n if (typeof userResponse?.content !== \"string\") {\n throw new Error(\"This chain does not support non-string model output.\");\n }\n const res = (await chain.invoke(\n {\n predicted_output: userPredictions.predictedUserMessage,\n actual_output: userResponse?.content ?? \"\",\n user_insights: userPredictions.insights.join(\"\\n\"),\n },\n runManager?.getChild(\"prediction_violations\")\n )) as Awaited<{\n violationExplanation: string;\n explainedPredictionErrors: Array<string>;\n accuratePrediction: boolean;\n }>;\n\n // Generate a revised prediction based on violations.\n const revisedPrediction = await this.generateRevisedPrediction({\n originalPrediction: userPredictions.predictedUserMessage,\n explainedPredictionErrors: res.explainedPredictionErrors,\n userInsights: userPredictions.insights,\n runManager,\n });\n\n return {\n userResponse,\n revisedPrediction,\n explainedPredictionErrors: res.explainedPredictionErrors,\n };\n }\n\n /**\n * This method generates a revised prediction based on the original prediction, explained prediction errors, and user insights.\n *\n * @param {Object} params - The parameters for the method.\n * @param {string} params.originalPrediction - The original prediction made by the model.\n * @param {Array<string>} params.explainedPredictionErrors - An array of explained prediction errors.\n * @param {Array<string>} params.userInsights - An array of insights about the user.\n * @param {CallbackManagerForChainRun} [params.runManager] - Optional callback manager for the chain run.\n *\n * @returns {Promise<string>} A promise that resolves to a revised prediction.\n */\n private async generateRevisedPrediction({\n originalPrediction,\n explainedPredictionErrors,\n userInsights,\n runManager,\n }: {\n originalPrediction: string;\n explainedPredictionErrors: Array<string>;\n userInsights: Array<string>;\n runManager?: CallbackManagerForChainRun;\n }): Promise<string> {\n const revisedPredictionChain = GENERATE_REVISED_PREDICTION_PROMPT.pipe(\n this.llm\n ).pipe(this.stringOutputParser);\n\n const revisedPredictionRes = await revisedPredictionChain.invoke(\n {\n prediction: originalPrediction,\n explained_prediction_errors: explainedPredictionErrors.join(\"\\n\"),\n user_insights: userInsights.join(\"\\n\"),\n },\n runManager?.getChild(\"prediction_revision\")\n );\n\n return revisedPredictionRes;\n }\n\n /**\n * This method generates facts or insights about the user based on the revised prediction, explained prediction errors, and the user's response.\n *\n * @param {Object} params - The parameters for the method.\n * @param {BaseMessage} [params.userResponse] - The actual user response.\n * @param {Object} params.predictions - The revised prediction and explained prediction errors.\n * @param {string} params.predictions.revisedPrediction - The revised prediction made by the model.\n * @param {Array<string>} params.predictions.explainedPredictionErrors - An array of explained prediction errors.\n * @param {CallbackManagerForChainRun} [params.runManager] - Optional callback manager for the chain run.\n *\n * @returns {Promise<string>} A promise that resolves to a string containing the generated facts or insights about the user.\n */\n private async generateFacts({\n userResponse,\n predictions,\n runManager,\n }: {\n userResponse?: BaseMessage;\n /**\n * Optional if the prediction was accurate.\n */\n predictions: {\n revisedPrediction: string;\n explainedPredictionErrors: Array<string>;\n };\n runManager?: CallbackManagerForChainRun;\n }): Promise<string> {\n const chain = GENERATE_FACTS_PROMPT.pipe(this.llm).pipe(\n this.stringOutputParser\n );\n\n if (typeof userResponse?.content !== \"string\") {\n throw new Error(\"This chain does not support non-string model output.\");\n }\n const res = await chain.invoke(\n {\n prediction_violations: predictions.explainedPredictionErrors.join(\"\\n\"),\n prediction: predictions.revisedPrediction,\n user_message: userResponse?.content ?? \"\",\n },\n runManager?.getChild(\"generate_facts\")\n );\n\n return res;\n }\n\n /**\n * Static method that creates a ViolationOfExpectationsChain instance from a\n * ChatOpenAI and retriever. It also accepts optional options\n * to customize the chain.\n *\n * @param llm The ChatOpenAI instance.\n * @param retriever The retriever used for similarity search.\n * @param options Optional options to customize the chain.\n *\n * @returns A new instance of ViolationOfExpectationsChain.\n */\n static fromLLM(\n llm: ChatOpenAI,\n retriever: BaseRetrieverInterface,\n options?: Partial<\n Omit<ViolationOfExpectationsChainInput, \"llm\" | \"retriever\">\n >\n ): ViolationOfExpectationsChain {\n return new this({\n retriever,\n llm,\n ...options,\n });\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"violation_of_expectations_chain.cjs","names":["BaseChain","JsonOutputFunctionsParser","StringOutputParser","HumanMessage","PREDICT_NEXT_USER_MESSAGE_FUNCTION","PREDICT_NEXT_USER_MESSAGE_PROMPT","PREDICTION_VIOLATIONS_FUNCTION","PREDICTION_VIOLATIONS_PROMPT","GENERATE_REVISED_PREDICTION_PROMPT","GENERATE_FACTS_PROMPT"],"sources":["../../../../src/experimental/chains/violation_of_expectations/violation_of_expectations_chain.ts"],"sourcesContent":["import type { BaseRetrieverInterface } from \"@langchain/core/retrievers\";\nimport { ChatOpenAI } from \"@langchain/openai\";\nimport {\n BaseMessage,\n HumanMessage,\n isBaseMessage,\n} from \"@langchain/core/messages\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { StringOutputParser } from \"@langchain/core/output_parsers\";\nimport { CallbackManagerForChainRun } from \"@langchain/core/callbacks/manager\";\nimport { JsonOutputFunctionsParser } from \"../../../output_parsers/openai_functions.js\";\nimport { BaseChain, ChainInputs } from \"../../../chains/base.js\";\nimport {\n GetPredictionViolationsResponse,\n MessageChunkResult,\n PREDICTION_VIOLATIONS_FUNCTION,\n PREDICT_NEXT_USER_MESSAGE_FUNCTION,\n PredictNextUserMessageResponse,\n} from \"./types.js\";\nimport {\n GENERATE_FACTS_PROMPT,\n GENERATE_REVISED_PREDICTION_PROMPT,\n PREDICTION_VIOLATIONS_PROMPT,\n PREDICT_NEXT_USER_MESSAGE_PROMPT,\n} from \"./violation_of_expectations_prompt.js\";\n\n/**\n * Interface for the input parameters of the ViolationOfExpectationsChain class.\n */\nexport interface ViolationOfExpectationsChainInput extends ChainInputs {\n /**\n * The retriever to use for retrieving stored\n * thoughts and insights.\n */\n retriever: BaseRetrieverInterface;\n /**\n * The LLM to use\n */\n llm: ChatOpenAI;\n}\n\n/**\n * Chain that generates key insights/facts of a user based on a\n * a chat conversation with an AI.\n */\nexport class ViolationOfExpectationsChain\n extends BaseChain\n implements ViolationOfExpectationsChainInput\n{\n static lc_name() {\n return \"ViolationOfExpectationsChain\";\n }\n\n _chainType(): string {\n return \"violation_of_expectation_chain\";\n }\n\n chatHistoryKey = \"chat_history\";\n\n thoughtsKey = \"thoughts\";\n\n get inputKeys() {\n return [this.chatHistoryKey];\n }\n\n get outputKeys() {\n return [this.thoughtsKey];\n }\n\n retriever: BaseRetrieverInterface;\n\n llm: ChatOpenAI;\n\n jsonOutputParser: JsonOutputFunctionsParser;\n\n stringOutputParser: StringOutputParser;\n\n constructor(fields: ViolationOfExpectationsChainInput) {\n super(fields);\n this.retriever = fields.retriever;\n this.llm = fields.llm;\n this.jsonOutputParser = new JsonOutputFunctionsParser();\n this.stringOutputParser = new StringOutputParser();\n }\n\n getChatHistoryString(chatHistory: BaseMessage[]): string {\n return chatHistory\n .map((chatMessage) => {\n if (chatMessage._getType() === \"human\") {\n return `Human: ${chatMessage.content}`;\n } else if (chatMessage._getType() === \"ai\") {\n return `AI: ${chatMessage.content}`;\n } else {\n return `${chatMessage.content}`;\n }\n })\n .join(\"\\n\");\n }\n\n removeDuplicateStrings(strings: Array<string>): Array<string> {\n return [...new Set(strings)];\n }\n\n /**\n * This method breaks down the chat history into chunks of messages.\n * Each chunk consists of a sequence of messages ending with an AI message and the subsequent user response, if any.\n *\n * @param {BaseMessage[]} chatHistory - The chat history to be chunked.\n *\n * @returns {MessageChunkResult[]} An array of message chunks. Each chunk includes a sequence of messages and the subsequent user response.\n *\n * @description\n * The method iterates over the chat history and pushes each message into a temporary array.\n * When it encounters an AI message, it checks for a subsequent user message.\n * If a user message is found, it is considered as the user response to the AI message.\n * If no user message is found after the AI message, the user response is undefined.\n * The method then pushes the chunk (sequence of messages and user response) into the result array.\n * This process continues until all messages in the chat history have been processed.\n */\n chunkMessagesByAIResponse(chatHistory: BaseMessage[]): MessageChunkResult[] {\n const newArray: MessageChunkResult[] = [];\n const tempArray: BaseMessage[] = [];\n\n chatHistory.forEach((item, index) => {\n tempArray.push(item);\n if (item._getType() === \"ai\") {\n let userResponse: BaseMessage | undefined = chatHistory[index + 1];\n if (!userResponse || userResponse._getType() !== \"human\") {\n userResponse = undefined;\n }\n\n newArray.push({\n chunkedMessages: tempArray,\n userResponse: userResponse\n ? new HumanMessage(userResponse)\n : undefined,\n });\n }\n });\n\n return newArray;\n }\n\n /**\n * This method processes a chat history to generate insights about the user.\n *\n * @param {ChainValues} values - The input values for the chain. It should contain a key for chat history.\n * @param {CallbackManagerForChainRun} [runManager] - Optional callback manager for the chain run.\n *\n * @returns {Promise<ChainValues>} A promise that resolves to a list of insights about the user.\n *\n * @throws {Error} If the chat history key is not found in the input values or if the chat history is not an array of BaseMessages.\n *\n * @description\n * The method performs the following steps:\n * 1. Checks if the chat history key is present in the input values and if the chat history is an array of BaseMessages.\n * 2. Breaks the chat history into chunks of messages.\n * 3. For each chunk, it generates an initial prediction for the user's next message.\n * 4. For each prediction, it generates insights and prediction violations, and regenerates the prediction based on the violations.\n * 5. For each set of messages, it generates a fact/insight about the user.\n * The method returns a list of these insights.\n */\n async _call(\n values: ChainValues,\n runManager?: CallbackManagerForChainRun\n ): Promise<ChainValues> {\n if (!(this.chatHistoryKey in values)) {\n throw new Error(`Chat history key ${this.chatHistoryKey} not found`);\n }\n\n const chatHistory: unknown[] = values[this.chatHistoryKey];\n\n const isEveryMessageBaseMessage = chatHistory.every((message) =>\n isBaseMessage(message)\n );\n if (!isEveryMessageBaseMessage) {\n throw new Error(\"Chat history must be an array of BaseMessages\");\n }\n\n const messageChunks = this.chunkMessagesByAIResponse(\n chatHistory as BaseMessage[]\n );\n\n // Generate the initial prediction for every user message.\n const userPredictions = await Promise.all(\n messageChunks.map(async (chatHistoryChunk) => ({\n userPredictions: await this.predictNextUserMessage(\n chatHistoryChunk.chunkedMessages\n ),\n userResponse: chatHistoryChunk.userResponse,\n runManager,\n }))\n );\n\n // Generate insights, and prediction violations for every user message.\n // This call also regenerates the prediction based on the violations.\n const predictionViolations = await Promise.all(\n userPredictions.map((prediction) =>\n this.getPredictionViolations({\n userPredictions: prediction.userPredictions,\n userResponse: prediction.userResponse,\n runManager,\n })\n )\n );\n\n // Generate a fact/insight about the user for every set of messages.\n const insights = await Promise.all(\n predictionViolations.map((violation) =>\n this.generateFacts({\n userResponse: violation.userResponse,\n predictions: {\n revisedPrediction: violation.revisedPrediction,\n explainedPredictionErrors: violation.explainedPredictionErrors,\n },\n })\n )\n );\n\n return {\n insights,\n };\n }\n\n /**\n * This method predicts the next user message based on the chat history.\n *\n * @param {BaseMessage[]} chatHistory - The chat history based on which the next user message is predicted.\n * @param {CallbackManagerForChainRun} [runManager] - Optional callback manager for the chain run.\n *\n * @returns {Promise<PredictNextUserMessageResponse>} A promise that resolves to the predicted next user message, the user state, and any insights.\n *\n * @throws {Error} If the response from the language model does not contain the expected keys: 'userState', 'predictedUserMessage', and 'insights'.\n */\n private async predictNextUserMessage(\n chatHistory: BaseMessage[],\n runManager?: CallbackManagerForChainRun\n ): Promise<PredictNextUserMessageResponse> {\n const messageString = this.getChatHistoryString(chatHistory);\n\n const llmWithFunctions = this.llm\n .bindTools([PREDICT_NEXT_USER_MESSAGE_FUNCTION])\n .withConfig({\n function_call: { name: PREDICT_NEXT_USER_MESSAGE_FUNCTION.name },\n });\n\n const chain = PREDICT_NEXT_USER_MESSAGE_PROMPT.pipe(llmWithFunctions).pipe(\n this.jsonOutputParser\n );\n\n const res = await chain.invoke(\n {\n chat_history: messageString,\n },\n runManager?.getChild(\"prediction\")\n );\n\n if (\n !(\n \"userState\" in res &&\n \"predictedUserMessage\" in res &&\n \"insights\" in res\n )\n ) {\n throw new Error(`Invalid response from LLM: ${JSON.stringify(res)}`);\n }\n\n const predictionResponse = res as PredictNextUserMessageResponse;\n\n // Query the retriever for relevant insights. Use the generates insights as a query.\n const retrievedDocs = await this.retrieveRelevantInsights(\n predictionResponse.insights\n );\n const relevantDocs = this.removeDuplicateStrings([\n ...predictionResponse.insights,\n ...retrievedDocs,\n ]);\n\n return {\n ...predictionResponse,\n insights: relevantDocs,\n };\n }\n\n /**\n * Retrieves relevant insights based on the provided insights.\n *\n * @param {Array<string>} insights - An array of insights to be used for retrieving relevant documents.\n *\n * @returns {Promise<Array<string>>} A promise that resolves to an array of relevant insights content.\n */\n private async retrieveRelevantInsights(\n insights: Array<string>\n ): Promise<Array<string>> {\n // Only extract the first relevant doc from the retriever. We don't need more than one.\n const relevantInsightsDocuments = await Promise.all(\n insights.map(async (insight) => {\n const relevantInsight = await this.retriever.invoke(insight);\n return relevantInsight[0];\n })\n );\n\n const relevantInsightsContent = relevantInsightsDocuments.map(\n (document) => document.pageContent\n );\n\n return relevantInsightsContent;\n }\n\n /**\n * This method generates prediction violations based on the predicted and actual user responses.\n * It also generates a revised prediction based on the identified violations.\n *\n * @param {Object} params - The parameters for the method.\n * @param {PredictNextUserMessageResponse} params.userPredictions - The predicted user message, user state, and insights.\n * @param {BaseMessage} [params.userResponse] - The actual user response.\n * @param {CallbackManagerForChainRun} [params.runManager] - Optional callback manager for the chain run.\n *\n * @returns {Promise<{ userResponse: BaseMessage | undefined; revisedPrediction: string; explainedPredictionErrors: Array<string>; }>} A promise that resolves to an object containing the actual user response, the revised prediction, and the explained prediction errors.\n *\n * @throws {Error} If the response from the language model does not contain the expected keys: 'violationExplanation', 'explainedPredictionErrors', and 'accuratePrediction'.\n */\n private async getPredictionViolations({\n userPredictions,\n userResponse,\n runManager,\n }: {\n userPredictions: PredictNextUserMessageResponse;\n userResponse?: BaseMessage;\n runManager?: CallbackManagerForChainRun;\n }): Promise<GetPredictionViolationsResponse> {\n const llmWithFunctions = this.llm\n .bindTools([PREDICTION_VIOLATIONS_FUNCTION])\n .withConfig({\n function_call: { name: PREDICTION_VIOLATIONS_FUNCTION.name },\n });\n\n const chain = PREDICTION_VIOLATIONS_PROMPT.pipe(llmWithFunctions).pipe(\n this.jsonOutputParser\n );\n\n if (typeof userResponse?.content !== \"string\") {\n throw new Error(\"This chain does not support non-string model output.\");\n }\n const res = (await chain.invoke(\n {\n predicted_output: userPredictions.predictedUserMessage,\n actual_output: userResponse?.content ?? \"\",\n user_insights: userPredictions.insights.join(\"\\n\"),\n },\n runManager?.getChild(\"prediction_violations\")\n )) as Awaited<{\n violationExplanation: string;\n explainedPredictionErrors: Array<string>;\n accuratePrediction: boolean;\n }>;\n\n // Generate a revised prediction based on violations.\n const revisedPrediction = await this.generateRevisedPrediction({\n originalPrediction: userPredictions.predictedUserMessage,\n explainedPredictionErrors: res.explainedPredictionErrors,\n userInsights: userPredictions.insights,\n runManager,\n });\n\n return {\n userResponse,\n revisedPrediction,\n explainedPredictionErrors: res.explainedPredictionErrors,\n };\n }\n\n /**\n * This method generates a revised prediction based on the original prediction, explained prediction errors, and user insights.\n *\n * @param {Object} params - The parameters for the method.\n * @param {string} params.originalPrediction - The original prediction made by the model.\n * @param {Array<string>} params.explainedPredictionErrors - An array of explained prediction errors.\n * @param {Array<string>} params.userInsights - An array of insights about the user.\n * @param {CallbackManagerForChainRun} [params.runManager] - Optional callback manager for the chain run.\n *\n * @returns {Promise<string>} A promise that resolves to a revised prediction.\n */\n private async generateRevisedPrediction({\n originalPrediction,\n explainedPredictionErrors,\n userInsights,\n runManager,\n }: {\n originalPrediction: string;\n explainedPredictionErrors: Array<string>;\n userInsights: Array<string>;\n runManager?: CallbackManagerForChainRun;\n }): Promise<string> {\n const revisedPredictionChain = GENERATE_REVISED_PREDICTION_PROMPT.pipe(\n this.llm\n ).pipe(this.stringOutputParser);\n\n const revisedPredictionRes = await revisedPredictionChain.invoke(\n {\n prediction: originalPrediction,\n explained_prediction_errors: explainedPredictionErrors.join(\"\\n\"),\n user_insights: userInsights.join(\"\\n\"),\n },\n runManager?.getChild(\"prediction_revision\")\n );\n\n return revisedPredictionRes;\n }\n\n /**\n * This method generates facts or insights about the user based on the revised prediction, explained prediction errors, and the user's response.\n *\n * @param {Object} params - The parameters for the method.\n * @param {BaseMessage} [params.userResponse] - The actual user response.\n * @param {Object} params.predictions - The revised prediction and explained prediction errors.\n * @param {string} params.predictions.revisedPrediction - The revised prediction made by the model.\n * @param {Array<string>} params.predictions.explainedPredictionErrors - An array of explained prediction errors.\n * @param {CallbackManagerForChainRun} [params.runManager] - Optional callback manager for the chain run.\n *\n * @returns {Promise<string>} A promise that resolves to a string containing the generated facts or insights about the user.\n */\n private async generateFacts({\n userResponse,\n predictions,\n runManager,\n }: {\n userResponse?: BaseMessage;\n /**\n * Optional if the prediction was accurate.\n */\n predictions: {\n revisedPrediction: string;\n explainedPredictionErrors: Array<string>;\n };\n runManager?: CallbackManagerForChainRun;\n }): Promise<string> {\n const chain = GENERATE_FACTS_PROMPT.pipe(this.llm).pipe(\n this.stringOutputParser\n );\n\n if (typeof userResponse?.content !== \"string\") {\n throw new Error(\"This chain does not support non-string model output.\");\n }\n const res = await chain.invoke(\n {\n prediction_violations: predictions.explainedPredictionErrors.join(\"\\n\"),\n prediction: predictions.revisedPrediction,\n user_message: userResponse?.content ?? \"\",\n },\n runManager?.getChild(\"generate_facts\")\n );\n\n return res;\n }\n\n /**\n * Static method that creates a ViolationOfExpectationsChain instance from a\n * ChatOpenAI and retriever. It also accepts optional options\n * to customize the chain.\n *\n * @param llm The ChatOpenAI instance.\n * @param retriever The retriever used for similarity search.\n * @param options Optional options to customize the chain.\n *\n * @returns A new instance of ViolationOfExpectationsChain.\n */\n static fromLLM(\n llm: ChatOpenAI,\n retriever: BaseRetrieverInterface,\n options?: Partial<\n Omit<ViolationOfExpectationsChainInput, \"llm\" | \"retriever\">\n >\n ): ViolationOfExpectationsChain {\n return new this({\n retriever,\n llm,\n ...options,\n });\n }\n}\n"],"mappings":"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"}
|
package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_chain.d.cts
CHANGED
|
@@ -9,7 +9,6 @@ import { BaseRetrieverInterface } from "@langchain/core/retrievers";
|
|
|
9
9
|
import { ChatOpenAI } from "@langchain/openai";
|
|
10
10
|
|
|
11
11
|
//#region src/experimental/chains/violation_of_expectations/violation_of_expectations_chain.d.ts
|
|
12
|
-
|
|
13
12
|
/**
|
|
14
13
|
* Interface for the input parameters of the ViolationOfExpectationsChain class.
|
|
15
14
|
*/
|
package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_chain.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"violation_of_expectations_chain.d.cts","names":[
|
|
1
|
+
{"version":3,"file":"violation_of_expectations_chain.d.cts","names":[],"sources":["../../../../src/experimental/chains/violation_of_expectations/violation_of_expectations_chain.ts"],"mappings":";;;;;;;;;;;;;AA6BA;UAAiB,iCAAA,SAA0C,WAAA;;;;;EAKzD,SAAA,EAAW,sBAAA;EALyD;;;EASpE,GAAA,EAAK,UAAA;AAAA;;;;AAOP;cAAa,4BAAA,SACH,SAAA,YACG,iCAAA;EAAA,OAEJ,OAAA,CAAA;EAIP,UAAA,CAAA;EAIA,cAAA;EAEA,WAAA;EAAA,IAEI,SAAA,CAAA;EAAA,IAIA,UAAA,CAAA;EAIJ,SAAA,EAAW,sBAAA;EAEX,GAAA,EAAK,UAAA;EAEL,gBAAA,EAAkB,yBAAA;EAElB,kBAAA,EAAoB,kBAAA;EAEpB,WAAA,CAAY,MAAA,EAAQ,iCAAA;EAQpB,oBAAA,CAAqB,WAAA,EAAa,WAAA;EAclC,sBAAA,CAAuB,OAAA,EAAS,KAAA,WAAgB,KAAA;EAkErC;;;;;;;;;;;;;;;;EA9CX,yBAAA,CAA0B,WAAA,EAAa,WAAA,KAAgB,kBAAA;EA5DvD;;;;;;;;;;;;;;;;;;;EAuGM,KAAA,CACJ,MAAA,EAAQ,WAAA,EACR,UAAA,GAAa,0BAAA,GACZ,OAAA,CAAQ,WAAA;EAAA,QAqEG,sBAAA;EAAA,QAyDA,wBAAA;EAAA,QA+BA,uBAAA;EAAA,QA6DA,yBAAA;EAAA,QAuCA,aAAA;EApQR;;;;;;;;;;;EAAA,OAiTC,OAAA,CACL,GAAA,EAAK,UAAA,EACL,SAAA,EAAW,sBAAA,EACX,OAAA,GAAU,OAAA,CACR,IAAA,CAAK,iCAAA,0BAEN,4BAAA;AAAA"}
|
package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_chain.d.ts
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { BaseChain, ChainInputs } from "../../../chains/base.js";
|
|
2
2
|
import { JsonOutputFunctionsParser } from "../../../output_parsers/openai_functions.js";
|
|
3
3
|
import { MessageChunkResult } from "./types.js";
|
|
4
|
+
import { BaseMessage } from "@langchain/core/messages";
|
|
4
5
|
import { CallbackManagerForChainRun } from "@langchain/core/callbacks/manager";
|
|
5
6
|
import { StringOutputParser } from "@langchain/core/output_parsers";
|
|
6
|
-
import { BaseMessage } from "@langchain/core/messages";
|
|
7
7
|
import { ChainValues } from "@langchain/core/utils/types";
|
|
8
8
|
import { ChatOpenAI } from "@langchain/openai";
|
|
9
9
|
import { BaseRetrieverInterface } from "@langchain/core/retrievers";
|
|
10
10
|
|
|
11
11
|
//#region src/experimental/chains/violation_of_expectations/violation_of_expectations_chain.d.ts
|
|
12
|
-
|
|
13
12
|
/**
|
|
14
13
|
* Interface for the input parameters of the ViolationOfExpectationsChain class.
|
|
15
14
|
*/
|
package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_chain.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"violation_of_expectations_chain.d.ts","names":[
|
|
1
|
+
{"version":3,"file":"violation_of_expectations_chain.d.ts","names":[],"sources":["../../../../src/experimental/chains/violation_of_expectations/violation_of_expectations_chain.ts"],"mappings":";;;;;;;;;;;;;AA6BA;UAAiB,iCAAA,SAA0C,WAAA;;;;;EAKzD,SAAA,EAAW,sBAAA;EALyD;;;EASpE,GAAA,EAAK,UAAA;AAAA;;;;AAOP;cAAa,4BAAA,SACH,SAAA,YACG,iCAAA;EAAA,OAEJ,OAAA,CAAA;EAIP,UAAA,CAAA;EAIA,cAAA;EAEA,WAAA;EAAA,IAEI,SAAA,CAAA;EAAA,IAIA,UAAA,CAAA;EAIJ,SAAA,EAAW,sBAAA;EAEX,GAAA,EAAK,UAAA;EAEL,gBAAA,EAAkB,yBAAA;EAElB,kBAAA,EAAoB,kBAAA;EAEpB,WAAA,CAAY,MAAA,EAAQ,iCAAA;EAQpB,oBAAA,CAAqB,WAAA,EAAa,WAAA;EAclC,sBAAA,CAAuB,OAAA,EAAS,KAAA,WAAgB,KAAA;EAkErC;;;;;;;;;;;;;;;;EA9CX,yBAAA,CAA0B,WAAA,EAAa,WAAA,KAAgB,kBAAA;EA5DvD;;;;;;;;;;;;;;;;;;;EAuGM,KAAA,CACJ,MAAA,EAAQ,WAAA,EACR,UAAA,GAAa,0BAAA,GACZ,OAAA,CAAQ,WAAA;EAAA,QAqEG,sBAAA;EAAA,QAyDA,wBAAA;EAAA,QA+BA,uBAAA;EAAA,QA6DA,yBAAA;EAAA,QAuCA,aAAA;EApQR;;;;;;;;;;;EAAA,OAiTC,OAAA,CACL,GAAA,EAAK,UAAA,EACL,SAAA,EAAW,sBAAA,EACX,OAAA,GAAU,OAAA,CACR,IAAA,CAAK,iCAAA,0BAEN,4BAAA;AAAA"}
|
package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_chain.js
CHANGED
|
@@ -2,8 +2,8 @@ import { BaseChain } from "../../../chains/base.js";
|
|
|
2
2
|
import { JsonOutputFunctionsParser } from "../../../output_parsers/openai_functions.js";
|
|
3
3
|
import { PREDICTION_VIOLATIONS_FUNCTION, PREDICT_NEXT_USER_MESSAGE_FUNCTION } from "./types.js";
|
|
4
4
|
import { GENERATE_FACTS_PROMPT, GENERATE_REVISED_PREDICTION_PROMPT, PREDICTION_VIOLATIONS_PROMPT, PREDICT_NEXT_USER_MESSAGE_PROMPT } from "./violation_of_expectations_prompt.js";
|
|
5
|
-
import { StringOutputParser } from "@langchain/core/output_parsers";
|
|
6
5
|
import { HumanMessage, isBaseMessage } from "@langchain/core/messages";
|
|
6
|
+
import { StringOutputParser } from "@langchain/core/output_parsers";
|
|
7
7
|
|
|
8
8
|
//#region src/experimental/chains/violation_of_expectations/violation_of_expectations_chain.ts
|
|
9
9
|
/**
|
|
@@ -100,8 +100,7 @@ var ViolationOfExpectationsChain = class extends BaseChain {
|
|
|
100
100
|
async _call(values, runManager) {
|
|
101
101
|
if (!(this.chatHistoryKey in values)) throw new Error(`Chat history key ${this.chatHistoryKey} not found`);
|
|
102
102
|
const chatHistory = values[this.chatHistoryKey];
|
|
103
|
-
|
|
104
|
-
if (!isEveryMessageBaseMessage) throw new Error("Chat history must be an array of BaseMessages");
|
|
103
|
+
if (!chatHistory.every((message) => isBaseMessage(message))) throw new Error("Chat history must be an array of BaseMessages");
|
|
105
104
|
const messageChunks = this.chunkMessagesByAIResponse(chatHistory);
|
|
106
105
|
const userPredictions = await Promise.all(messageChunks.map(async (chatHistoryChunk) => ({
|
|
107
106
|
userPredictions: await this.predictNextUserMessage(chatHistoryChunk.chunkedMessages),
|
|
@@ -113,14 +112,13 @@ var ViolationOfExpectationsChain = class extends BaseChain {
|
|
|
113
112
|
userResponse: prediction.userResponse,
|
|
114
113
|
runManager
|
|
115
114
|
})));
|
|
116
|
-
|
|
115
|
+
return { insights: await Promise.all(predictionViolations.map((violation) => this.generateFacts({
|
|
117
116
|
userResponse: violation.userResponse,
|
|
118
117
|
predictions: {
|
|
119
118
|
revisedPrediction: violation.revisedPrediction,
|
|
120
119
|
explainedPredictionErrors: violation.explainedPredictionErrors
|
|
121
120
|
}
|
|
122
|
-
})));
|
|
123
|
-
return { insights };
|
|
121
|
+
}))) };
|
|
124
122
|
}
|
|
125
123
|
/**
|
|
126
124
|
* This method predicts the next user message based on the chat history.
|
|
@@ -135,8 +133,7 @@ var ViolationOfExpectationsChain = class extends BaseChain {
|
|
|
135
133
|
async predictNextUserMessage(chatHistory, runManager) {
|
|
136
134
|
const messageString = this.getChatHistoryString(chatHistory);
|
|
137
135
|
const llmWithFunctions = this.llm.bindTools([PREDICT_NEXT_USER_MESSAGE_FUNCTION]).withConfig({ function_call: { name: PREDICT_NEXT_USER_MESSAGE_FUNCTION.name } });
|
|
138
|
-
const
|
|
139
|
-
const res = await chain.invoke({ chat_history: messageString }, runManager?.getChild("prediction"));
|
|
136
|
+
const res = await PREDICT_NEXT_USER_MESSAGE_PROMPT.pipe(llmWithFunctions).pipe(this.jsonOutputParser).invoke({ chat_history: messageString }, runManager?.getChild("prediction"));
|
|
140
137
|
if (!("userState" in res && "predictedUserMessage" in res && "insights" in res)) throw new Error(`Invalid response from LLM: ${JSON.stringify(res)}`);
|
|
141
138
|
const predictionResponse = res;
|
|
142
139
|
const retrievedDocs = await this.retrieveRelevantInsights(predictionResponse.insights);
|
|
@@ -154,12 +151,9 @@ var ViolationOfExpectationsChain = class extends BaseChain {
|
|
|
154
151
|
* @returns {Promise<Array<string>>} A promise that resolves to an array of relevant insights content.
|
|
155
152
|
*/
|
|
156
153
|
async retrieveRelevantInsights(insights) {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
}));
|
|
161
|
-
const relevantInsightsContent = relevantInsightsDocuments.map((document) => document.pageContent);
|
|
162
|
-
return relevantInsightsContent;
|
|
154
|
+
return (await Promise.all(insights.map(async (insight) => {
|
|
155
|
+
return (await this.retriever.invoke(insight))[0];
|
|
156
|
+
}))).map((document) => document.pageContent);
|
|
163
157
|
}
|
|
164
158
|
/**
|
|
165
159
|
* This method generates prediction violations based on the predicted and actual user responses.
|
|
@@ -183,15 +177,14 @@ var ViolationOfExpectationsChain = class extends BaseChain {
|
|
|
183
177
|
actual_output: userResponse?.content ?? "",
|
|
184
178
|
user_insights: userPredictions.insights.join("\n")
|
|
185
179
|
}, runManager?.getChild("prediction_violations"));
|
|
186
|
-
const revisedPrediction = await this.generateRevisedPrediction({
|
|
187
|
-
originalPrediction: userPredictions.predictedUserMessage,
|
|
188
|
-
explainedPredictionErrors: res.explainedPredictionErrors,
|
|
189
|
-
userInsights: userPredictions.insights,
|
|
190
|
-
runManager
|
|
191
|
-
});
|
|
192
180
|
return {
|
|
193
181
|
userResponse,
|
|
194
|
-
revisedPrediction
|
|
182
|
+
revisedPrediction: await this.generateRevisedPrediction({
|
|
183
|
+
originalPrediction: userPredictions.predictedUserMessage,
|
|
184
|
+
explainedPredictionErrors: res.explainedPredictionErrors,
|
|
185
|
+
userInsights: userPredictions.insights,
|
|
186
|
+
runManager
|
|
187
|
+
}),
|
|
195
188
|
explainedPredictionErrors: res.explainedPredictionErrors
|
|
196
189
|
};
|
|
197
190
|
}
|
|
@@ -207,13 +200,11 @@ var ViolationOfExpectationsChain = class extends BaseChain {
|
|
|
207
200
|
* @returns {Promise<string>} A promise that resolves to a revised prediction.
|
|
208
201
|
*/
|
|
209
202
|
async generateRevisedPrediction({ originalPrediction, explainedPredictionErrors, userInsights, runManager }) {
|
|
210
|
-
|
|
211
|
-
const revisedPredictionRes = await revisedPredictionChain.invoke({
|
|
203
|
+
return await GENERATE_REVISED_PREDICTION_PROMPT.pipe(this.llm).pipe(this.stringOutputParser).invoke({
|
|
212
204
|
prediction: originalPrediction,
|
|
213
205
|
explained_prediction_errors: explainedPredictionErrors.join("\n"),
|
|
214
206
|
user_insights: userInsights.join("\n")
|
|
215
207
|
}, runManager?.getChild("prediction_revision"));
|
|
216
|
-
return revisedPredictionRes;
|
|
217
208
|
}
|
|
218
209
|
/**
|
|
219
210
|
* This method generates facts or insights about the user based on the revised prediction, explained prediction errors, and the user's response.
|
|
@@ -230,12 +221,11 @@ var ViolationOfExpectationsChain = class extends BaseChain {
|
|
|
230
221
|
async generateFacts({ userResponse, predictions, runManager }) {
|
|
231
222
|
const chain = GENERATE_FACTS_PROMPT.pipe(this.llm).pipe(this.stringOutputParser);
|
|
232
223
|
if (typeof userResponse?.content !== "string") throw new Error("This chain does not support non-string model output.");
|
|
233
|
-
|
|
224
|
+
return await chain.invoke({
|
|
234
225
|
prediction_violations: predictions.explainedPredictionErrors.join("\n"),
|
|
235
226
|
prediction: predictions.revisedPrediction,
|
|
236
227
|
user_message: userResponse?.content ?? ""
|
|
237
228
|
}, runManager?.getChild("generate_facts"));
|
|
238
|
-
return res;
|
|
239
229
|
}
|
|
240
230
|
/**
|
|
241
231
|
* Static method that creates a ViolationOfExpectationsChain instance from a
|
package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_chain.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"violation_of_expectations_chain.js","names":["fields: ViolationOfExpectationsChainInput","chatHistory: BaseMessage[]","strings: Array<string>","newArray: MessageChunkResult[]","tempArray: BaseMessage[]","userResponse: BaseMessage | undefined","values: ChainValues","runManager?: CallbackManagerForChainRun","chatHistory: unknown[]","insights: Array<string>","llm: ChatOpenAI","retriever: BaseRetrieverInterface","options?: Partial<\n Omit<ViolationOfExpectationsChainInput, \"llm\" | \"retriever\">\n >"],"sources":["../../../../src/experimental/chains/violation_of_expectations/violation_of_expectations_chain.ts"],"sourcesContent":["import type { BaseRetrieverInterface } from \"@langchain/core/retrievers\";\nimport { ChatOpenAI } from \"@langchain/openai\";\nimport {\n BaseMessage,\n HumanMessage,\n isBaseMessage,\n} from \"@langchain/core/messages\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { StringOutputParser } from \"@langchain/core/output_parsers\";\nimport { CallbackManagerForChainRun } from \"@langchain/core/callbacks/manager\";\nimport { JsonOutputFunctionsParser } from \"../../../output_parsers/openai_functions.js\";\nimport { BaseChain, ChainInputs } from \"../../../chains/base.js\";\nimport {\n GetPredictionViolationsResponse,\n MessageChunkResult,\n PREDICTION_VIOLATIONS_FUNCTION,\n PREDICT_NEXT_USER_MESSAGE_FUNCTION,\n PredictNextUserMessageResponse,\n} from \"./types.js\";\nimport {\n GENERATE_FACTS_PROMPT,\n GENERATE_REVISED_PREDICTION_PROMPT,\n PREDICTION_VIOLATIONS_PROMPT,\n PREDICT_NEXT_USER_MESSAGE_PROMPT,\n} from \"./violation_of_expectations_prompt.js\";\n\n/**\n * Interface for the input parameters of the ViolationOfExpectationsChain class.\n */\nexport interface ViolationOfExpectationsChainInput extends ChainInputs {\n /**\n * The retriever to use for retrieving stored\n * thoughts and insights.\n */\n retriever: BaseRetrieverInterface;\n /**\n * The LLM to use\n */\n llm: ChatOpenAI;\n}\n\n/**\n * Chain that generates key insights/facts of a user based on a\n * a chat conversation with an AI.\n */\nexport class ViolationOfExpectationsChain\n extends BaseChain\n implements ViolationOfExpectationsChainInput\n{\n static lc_name() {\n return \"ViolationOfExpectationsChain\";\n }\n\n _chainType(): string {\n return \"violation_of_expectation_chain\";\n }\n\n chatHistoryKey = \"chat_history\";\n\n thoughtsKey = \"thoughts\";\n\n get inputKeys() {\n return [this.chatHistoryKey];\n }\n\n get outputKeys() {\n return [this.thoughtsKey];\n }\n\n retriever: BaseRetrieverInterface;\n\n llm: ChatOpenAI;\n\n jsonOutputParser: JsonOutputFunctionsParser;\n\n stringOutputParser: StringOutputParser;\n\n constructor(fields: ViolationOfExpectationsChainInput) {\n super(fields);\n this.retriever = fields.retriever;\n this.llm = fields.llm;\n this.jsonOutputParser = new JsonOutputFunctionsParser();\n this.stringOutputParser = new StringOutputParser();\n }\n\n getChatHistoryString(chatHistory: BaseMessage[]): string {\n return chatHistory\n .map((chatMessage) => {\n if (chatMessage._getType() === \"human\") {\n return `Human: ${chatMessage.content}`;\n } else if (chatMessage._getType() === \"ai\") {\n return `AI: ${chatMessage.content}`;\n } else {\n return `${chatMessage.content}`;\n }\n })\n .join(\"\\n\");\n }\n\n removeDuplicateStrings(strings: Array<string>): Array<string> {\n return [...new Set(strings)];\n }\n\n /**\n * This method breaks down the chat history into chunks of messages.\n * Each chunk consists of a sequence of messages ending with an AI message and the subsequent user response, if any.\n *\n * @param {BaseMessage[]} chatHistory - The chat history to be chunked.\n *\n * @returns {MessageChunkResult[]} An array of message chunks. Each chunk includes a sequence of messages and the subsequent user response.\n *\n * @description\n * The method iterates over the chat history and pushes each message into a temporary array.\n * When it encounters an AI message, it checks for a subsequent user message.\n * If a user message is found, it is considered as the user response to the AI message.\n * If no user message is found after the AI message, the user response is undefined.\n * The method then pushes the chunk (sequence of messages and user response) into the result array.\n * This process continues until all messages in the chat history have been processed.\n */\n chunkMessagesByAIResponse(chatHistory: BaseMessage[]): MessageChunkResult[] {\n const newArray: MessageChunkResult[] = [];\n const tempArray: BaseMessage[] = [];\n\n chatHistory.forEach((item, index) => {\n tempArray.push(item);\n if (item._getType() === \"ai\") {\n let userResponse: BaseMessage | undefined = chatHistory[index + 1];\n if (!userResponse || userResponse._getType() !== \"human\") {\n userResponse = undefined;\n }\n\n newArray.push({\n chunkedMessages: tempArray,\n userResponse: userResponse\n ? new HumanMessage(userResponse)\n : undefined,\n });\n }\n });\n\n return newArray;\n }\n\n /**\n * This method processes a chat history to generate insights about the user.\n *\n * @param {ChainValues} values - The input values for the chain. It should contain a key for chat history.\n * @param {CallbackManagerForChainRun} [runManager] - Optional callback manager for the chain run.\n *\n * @returns {Promise<ChainValues>} A promise that resolves to a list of insights about the user.\n *\n * @throws {Error} If the chat history key is not found in the input values or if the chat history is not an array of BaseMessages.\n *\n * @description\n * The method performs the following steps:\n * 1. Checks if the chat history key is present in the input values and if the chat history is an array of BaseMessages.\n * 2. Breaks the chat history into chunks of messages.\n * 3. For each chunk, it generates an initial prediction for the user's next message.\n * 4. For each prediction, it generates insights and prediction violations, and regenerates the prediction based on the violations.\n * 5. For each set of messages, it generates a fact/insight about the user.\n * The method returns a list of these insights.\n */\n async _call(\n values: ChainValues,\n runManager?: CallbackManagerForChainRun\n ): Promise<ChainValues> {\n if (!(this.chatHistoryKey in values)) {\n throw new Error(`Chat history key ${this.chatHistoryKey} not found`);\n }\n\n const chatHistory: unknown[] = values[this.chatHistoryKey];\n\n const isEveryMessageBaseMessage = chatHistory.every((message) =>\n isBaseMessage(message)\n );\n if (!isEveryMessageBaseMessage) {\n throw new Error(\"Chat history must be an array of BaseMessages\");\n }\n\n const messageChunks = this.chunkMessagesByAIResponse(\n chatHistory as BaseMessage[]\n );\n\n // Generate the initial prediction for every user message.\n const userPredictions = await Promise.all(\n messageChunks.map(async (chatHistoryChunk) => ({\n userPredictions: await this.predictNextUserMessage(\n chatHistoryChunk.chunkedMessages\n ),\n userResponse: chatHistoryChunk.userResponse,\n runManager,\n }))\n );\n\n // Generate insights, and prediction violations for every user message.\n // This call also regenerates the prediction based on the violations.\n const predictionViolations = await Promise.all(\n userPredictions.map((prediction) =>\n this.getPredictionViolations({\n userPredictions: prediction.userPredictions,\n userResponse: prediction.userResponse,\n runManager,\n })\n )\n );\n\n // Generate a fact/insight about the user for every set of messages.\n const insights = await Promise.all(\n predictionViolations.map((violation) =>\n this.generateFacts({\n userResponse: violation.userResponse,\n predictions: {\n revisedPrediction: violation.revisedPrediction,\n explainedPredictionErrors: violation.explainedPredictionErrors,\n },\n })\n )\n );\n\n return {\n insights,\n };\n }\n\n /**\n * This method predicts the next user message based on the chat history.\n *\n * @param {BaseMessage[]} chatHistory - The chat history based on which the next user message is predicted.\n * @param {CallbackManagerForChainRun} [runManager] - Optional callback manager for the chain run.\n *\n * @returns {Promise<PredictNextUserMessageResponse>} A promise that resolves to the predicted next user message, the user state, and any insights.\n *\n * @throws {Error} If the response from the language model does not contain the expected keys: 'userState', 'predictedUserMessage', and 'insights'.\n */\n private async predictNextUserMessage(\n chatHistory: BaseMessage[],\n runManager?: CallbackManagerForChainRun\n ): Promise<PredictNextUserMessageResponse> {\n const messageString = this.getChatHistoryString(chatHistory);\n\n const llmWithFunctions = this.llm\n .bindTools([PREDICT_NEXT_USER_MESSAGE_FUNCTION])\n .withConfig({\n function_call: { name: PREDICT_NEXT_USER_MESSAGE_FUNCTION.name },\n });\n\n const chain = PREDICT_NEXT_USER_MESSAGE_PROMPT.pipe(llmWithFunctions).pipe(\n this.jsonOutputParser\n );\n\n const res = await chain.invoke(\n {\n chat_history: messageString,\n },\n runManager?.getChild(\"prediction\")\n );\n\n if (\n !(\n \"userState\" in res &&\n \"predictedUserMessage\" in res &&\n \"insights\" in res\n )\n ) {\n throw new Error(`Invalid response from LLM: ${JSON.stringify(res)}`);\n }\n\n const predictionResponse = res as PredictNextUserMessageResponse;\n\n // Query the retriever for relevant insights. Use the generates insights as a query.\n const retrievedDocs = await this.retrieveRelevantInsights(\n predictionResponse.insights\n );\n const relevantDocs = this.removeDuplicateStrings([\n ...predictionResponse.insights,\n ...retrievedDocs,\n ]);\n\n return {\n ...predictionResponse,\n insights: relevantDocs,\n };\n }\n\n /**\n * Retrieves relevant insights based on the provided insights.\n *\n * @param {Array<string>} insights - An array of insights to be used for retrieving relevant documents.\n *\n * @returns {Promise<Array<string>>} A promise that resolves to an array of relevant insights content.\n */\n private async retrieveRelevantInsights(\n insights: Array<string>\n ): Promise<Array<string>> {\n // Only extract the first relevant doc from the retriever. We don't need more than one.\n const relevantInsightsDocuments = await Promise.all(\n insights.map(async (insight) => {\n const relevantInsight = await this.retriever.invoke(insight);\n return relevantInsight[0];\n })\n );\n\n const relevantInsightsContent = relevantInsightsDocuments.map(\n (document) => document.pageContent\n );\n\n return relevantInsightsContent;\n }\n\n /**\n * This method generates prediction violations based on the predicted and actual user responses.\n * It also generates a revised prediction based on the identified violations.\n *\n * @param {Object} params - The parameters for the method.\n * @param {PredictNextUserMessageResponse} params.userPredictions - The predicted user message, user state, and insights.\n * @param {BaseMessage} [params.userResponse] - The actual user response.\n * @param {CallbackManagerForChainRun} [params.runManager] - Optional callback manager for the chain run.\n *\n * @returns {Promise<{ userResponse: BaseMessage | undefined; revisedPrediction: string; explainedPredictionErrors: Array<string>; }>} A promise that resolves to an object containing the actual user response, the revised prediction, and the explained prediction errors.\n *\n * @throws {Error} If the response from the language model does not contain the expected keys: 'violationExplanation', 'explainedPredictionErrors', and 'accuratePrediction'.\n */\n private async getPredictionViolations({\n userPredictions,\n userResponse,\n runManager,\n }: {\n userPredictions: PredictNextUserMessageResponse;\n userResponse?: BaseMessage;\n runManager?: CallbackManagerForChainRun;\n }): Promise<GetPredictionViolationsResponse> {\n const llmWithFunctions = this.llm\n .bindTools([PREDICTION_VIOLATIONS_FUNCTION])\n .withConfig({\n function_call: { name: PREDICTION_VIOLATIONS_FUNCTION.name },\n });\n\n const chain = PREDICTION_VIOLATIONS_PROMPT.pipe(llmWithFunctions).pipe(\n this.jsonOutputParser\n );\n\n if (typeof userResponse?.content !== \"string\") {\n throw new Error(\"This chain does not support non-string model output.\");\n }\n const res = (await chain.invoke(\n {\n predicted_output: userPredictions.predictedUserMessage,\n actual_output: userResponse?.content ?? \"\",\n user_insights: userPredictions.insights.join(\"\\n\"),\n },\n runManager?.getChild(\"prediction_violations\")\n )) as Awaited<{\n violationExplanation: string;\n explainedPredictionErrors: Array<string>;\n accuratePrediction: boolean;\n }>;\n\n // Generate a revised prediction based on violations.\n const revisedPrediction = await this.generateRevisedPrediction({\n originalPrediction: userPredictions.predictedUserMessage,\n explainedPredictionErrors: res.explainedPredictionErrors,\n userInsights: userPredictions.insights,\n runManager,\n });\n\n return {\n userResponse,\n revisedPrediction,\n explainedPredictionErrors: res.explainedPredictionErrors,\n };\n }\n\n /**\n * This method generates a revised prediction based on the original prediction, explained prediction errors, and user insights.\n *\n * @param {Object} params - The parameters for the method.\n * @param {string} params.originalPrediction - The original prediction made by the model.\n * @param {Array<string>} params.explainedPredictionErrors - An array of explained prediction errors.\n * @param {Array<string>} params.userInsights - An array of insights about the user.\n * @param {CallbackManagerForChainRun} [params.runManager] - Optional callback manager for the chain run.\n *\n * @returns {Promise<string>} A promise that resolves to a revised prediction.\n */\n private async generateRevisedPrediction({\n originalPrediction,\n explainedPredictionErrors,\n userInsights,\n runManager,\n }: {\n originalPrediction: string;\n explainedPredictionErrors: Array<string>;\n userInsights: Array<string>;\n runManager?: CallbackManagerForChainRun;\n }): Promise<string> {\n const revisedPredictionChain = GENERATE_REVISED_PREDICTION_PROMPT.pipe(\n this.llm\n ).pipe(this.stringOutputParser);\n\n const revisedPredictionRes = await revisedPredictionChain.invoke(\n {\n prediction: originalPrediction,\n explained_prediction_errors: explainedPredictionErrors.join(\"\\n\"),\n user_insights: userInsights.join(\"\\n\"),\n },\n runManager?.getChild(\"prediction_revision\")\n );\n\n return revisedPredictionRes;\n }\n\n /**\n * This method generates facts or insights about the user based on the revised prediction, explained prediction errors, and the user's response.\n *\n * @param {Object} params - The parameters for the method.\n * @param {BaseMessage} [params.userResponse] - The actual user response.\n * @param {Object} params.predictions - The revised prediction and explained prediction errors.\n * @param {string} params.predictions.revisedPrediction - The revised prediction made by the model.\n * @param {Array<string>} params.predictions.explainedPredictionErrors - An array of explained prediction errors.\n * @param {CallbackManagerForChainRun} [params.runManager] - Optional callback manager for the chain run.\n *\n * @returns {Promise<string>} A promise that resolves to a string containing the generated facts or insights about the user.\n */\n private async generateFacts({\n userResponse,\n predictions,\n runManager,\n }: {\n userResponse?: BaseMessage;\n /**\n * Optional if the prediction was accurate.\n */\n predictions: {\n revisedPrediction: string;\n explainedPredictionErrors: Array<string>;\n };\n runManager?: CallbackManagerForChainRun;\n }): Promise<string> {\n const chain = GENERATE_FACTS_PROMPT.pipe(this.llm).pipe(\n this.stringOutputParser\n );\n\n if (typeof userResponse?.content !== \"string\") {\n throw new Error(\"This chain does not support non-string model output.\");\n }\n const res = await chain.invoke(\n {\n prediction_violations: predictions.explainedPredictionErrors.join(\"\\n\"),\n prediction: predictions.revisedPrediction,\n user_message: userResponse?.content ?? \"\",\n },\n runManager?.getChild(\"generate_facts\")\n );\n\n return res;\n }\n\n /**\n * Static method that creates a ViolationOfExpectationsChain instance from a\n * ChatOpenAI and retriever. It also accepts optional options\n * to customize the chain.\n *\n * @param llm The ChatOpenAI instance.\n * @param retriever The retriever used for similarity search.\n * @param options Optional options to customize the chain.\n *\n * @returns A new instance of ViolationOfExpectationsChain.\n */\n static fromLLM(\n llm: ChatOpenAI,\n retriever: BaseRetrieverInterface,\n options?: Partial<\n Omit<ViolationOfExpectationsChainInput, \"llm\" | \"retriever\">\n >\n ): ViolationOfExpectationsChain {\n return new this({\n retriever,\n llm,\n ...options,\n });\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"violation_of_expectations_chain.js","names":[],"sources":["../../../../src/experimental/chains/violation_of_expectations/violation_of_expectations_chain.ts"],"sourcesContent":["import type { BaseRetrieverInterface } from \"@langchain/core/retrievers\";\nimport { ChatOpenAI } from \"@langchain/openai\";\nimport {\n BaseMessage,\n HumanMessage,\n isBaseMessage,\n} from \"@langchain/core/messages\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { StringOutputParser } from \"@langchain/core/output_parsers\";\nimport { CallbackManagerForChainRun } from \"@langchain/core/callbacks/manager\";\nimport { JsonOutputFunctionsParser } from \"../../../output_parsers/openai_functions.js\";\nimport { BaseChain, ChainInputs } from \"../../../chains/base.js\";\nimport {\n GetPredictionViolationsResponse,\n MessageChunkResult,\n PREDICTION_VIOLATIONS_FUNCTION,\n PREDICT_NEXT_USER_MESSAGE_FUNCTION,\n PredictNextUserMessageResponse,\n} from \"./types.js\";\nimport {\n GENERATE_FACTS_PROMPT,\n GENERATE_REVISED_PREDICTION_PROMPT,\n PREDICTION_VIOLATIONS_PROMPT,\n PREDICT_NEXT_USER_MESSAGE_PROMPT,\n} from \"./violation_of_expectations_prompt.js\";\n\n/**\n * Interface for the input parameters of the ViolationOfExpectationsChain class.\n */\nexport interface ViolationOfExpectationsChainInput extends ChainInputs {\n /**\n * The retriever to use for retrieving stored\n * thoughts and insights.\n */\n retriever: BaseRetrieverInterface;\n /**\n * The LLM to use\n */\n llm: ChatOpenAI;\n}\n\n/**\n * Chain that generates key insights/facts of a user based on a\n * a chat conversation with an AI.\n */\nexport class ViolationOfExpectationsChain\n extends BaseChain\n implements ViolationOfExpectationsChainInput\n{\n static lc_name() {\n return \"ViolationOfExpectationsChain\";\n }\n\n _chainType(): string {\n return \"violation_of_expectation_chain\";\n }\n\n chatHistoryKey = \"chat_history\";\n\n thoughtsKey = \"thoughts\";\n\n get inputKeys() {\n return [this.chatHistoryKey];\n }\n\n get outputKeys() {\n return [this.thoughtsKey];\n }\n\n retriever: BaseRetrieverInterface;\n\n llm: ChatOpenAI;\n\n jsonOutputParser: JsonOutputFunctionsParser;\n\n stringOutputParser: StringOutputParser;\n\n constructor(fields: ViolationOfExpectationsChainInput) {\n super(fields);\n this.retriever = fields.retriever;\n this.llm = fields.llm;\n this.jsonOutputParser = new JsonOutputFunctionsParser();\n this.stringOutputParser = new StringOutputParser();\n }\n\n getChatHistoryString(chatHistory: BaseMessage[]): string {\n return chatHistory\n .map((chatMessage) => {\n if (chatMessage._getType() === \"human\") {\n return `Human: ${chatMessage.content}`;\n } else if (chatMessage._getType() === \"ai\") {\n return `AI: ${chatMessage.content}`;\n } else {\n return `${chatMessage.content}`;\n }\n })\n .join(\"\\n\");\n }\n\n removeDuplicateStrings(strings: Array<string>): Array<string> {\n return [...new Set(strings)];\n }\n\n /**\n * This method breaks down the chat history into chunks of messages.\n * Each chunk consists of a sequence of messages ending with an AI message and the subsequent user response, if any.\n *\n * @param {BaseMessage[]} chatHistory - The chat history to be chunked.\n *\n * @returns {MessageChunkResult[]} An array of message chunks. Each chunk includes a sequence of messages and the subsequent user response.\n *\n * @description\n * The method iterates over the chat history and pushes each message into a temporary array.\n * When it encounters an AI message, it checks for a subsequent user message.\n * If a user message is found, it is considered as the user response to the AI message.\n * If no user message is found after the AI message, the user response is undefined.\n * The method then pushes the chunk (sequence of messages and user response) into the result array.\n * This process continues until all messages in the chat history have been processed.\n */\n chunkMessagesByAIResponse(chatHistory: BaseMessage[]): MessageChunkResult[] {\n const newArray: MessageChunkResult[] = [];\n const tempArray: BaseMessage[] = [];\n\n chatHistory.forEach((item, index) => {\n tempArray.push(item);\n if (item._getType() === \"ai\") {\n let userResponse: BaseMessage | undefined = chatHistory[index + 1];\n if (!userResponse || userResponse._getType() !== \"human\") {\n userResponse = undefined;\n }\n\n newArray.push({\n chunkedMessages: tempArray,\n userResponse: userResponse\n ? new HumanMessage(userResponse)\n : undefined,\n });\n }\n });\n\n return newArray;\n }\n\n /**\n * This method processes a chat history to generate insights about the user.\n *\n * @param {ChainValues} values - The input values for the chain. It should contain a key for chat history.\n * @param {CallbackManagerForChainRun} [runManager] - Optional callback manager for the chain run.\n *\n * @returns {Promise<ChainValues>} A promise that resolves to a list of insights about the user.\n *\n * @throws {Error} If the chat history key is not found in the input values or if the chat history is not an array of BaseMessages.\n *\n * @description\n * The method performs the following steps:\n * 1. Checks if the chat history key is present in the input values and if the chat history is an array of BaseMessages.\n * 2. Breaks the chat history into chunks of messages.\n * 3. For each chunk, it generates an initial prediction for the user's next message.\n * 4. For each prediction, it generates insights and prediction violations, and regenerates the prediction based on the violations.\n * 5. For each set of messages, it generates a fact/insight about the user.\n * The method returns a list of these insights.\n */\n async _call(\n values: ChainValues,\n runManager?: CallbackManagerForChainRun\n ): Promise<ChainValues> {\n if (!(this.chatHistoryKey in values)) {\n throw new Error(`Chat history key ${this.chatHistoryKey} not found`);\n }\n\n const chatHistory: unknown[] = values[this.chatHistoryKey];\n\n const isEveryMessageBaseMessage = chatHistory.every((message) =>\n isBaseMessage(message)\n );\n if (!isEveryMessageBaseMessage) {\n throw new Error(\"Chat history must be an array of BaseMessages\");\n }\n\n const messageChunks = this.chunkMessagesByAIResponse(\n chatHistory as BaseMessage[]\n );\n\n // Generate the initial prediction for every user message.\n const userPredictions = await Promise.all(\n messageChunks.map(async (chatHistoryChunk) => ({\n userPredictions: await this.predictNextUserMessage(\n chatHistoryChunk.chunkedMessages\n ),\n userResponse: chatHistoryChunk.userResponse,\n runManager,\n }))\n );\n\n // Generate insights, and prediction violations for every user message.\n // This call also regenerates the prediction based on the violations.\n const predictionViolations = await Promise.all(\n userPredictions.map((prediction) =>\n this.getPredictionViolations({\n userPredictions: prediction.userPredictions,\n userResponse: prediction.userResponse,\n runManager,\n })\n )\n );\n\n // Generate a fact/insight about the user for every set of messages.\n const insights = await Promise.all(\n predictionViolations.map((violation) =>\n this.generateFacts({\n userResponse: violation.userResponse,\n predictions: {\n revisedPrediction: violation.revisedPrediction,\n explainedPredictionErrors: violation.explainedPredictionErrors,\n },\n })\n )\n );\n\n return {\n insights,\n };\n }\n\n /**\n * This method predicts the next user message based on the chat history.\n *\n * @param {BaseMessage[]} chatHistory - The chat history based on which the next user message is predicted.\n * @param {CallbackManagerForChainRun} [runManager] - Optional callback manager for the chain run.\n *\n * @returns {Promise<PredictNextUserMessageResponse>} A promise that resolves to the predicted next user message, the user state, and any insights.\n *\n * @throws {Error} If the response from the language model does not contain the expected keys: 'userState', 'predictedUserMessage', and 'insights'.\n */\n private async predictNextUserMessage(\n chatHistory: BaseMessage[],\n runManager?: CallbackManagerForChainRun\n ): Promise<PredictNextUserMessageResponse> {\n const messageString = this.getChatHistoryString(chatHistory);\n\n const llmWithFunctions = this.llm\n .bindTools([PREDICT_NEXT_USER_MESSAGE_FUNCTION])\n .withConfig({\n function_call: { name: PREDICT_NEXT_USER_MESSAGE_FUNCTION.name },\n });\n\n const chain = PREDICT_NEXT_USER_MESSAGE_PROMPT.pipe(llmWithFunctions).pipe(\n this.jsonOutputParser\n );\n\n const res = await chain.invoke(\n {\n chat_history: messageString,\n },\n runManager?.getChild(\"prediction\")\n );\n\n if (\n !(\n \"userState\" in res &&\n \"predictedUserMessage\" in res &&\n \"insights\" in res\n )\n ) {\n throw new Error(`Invalid response from LLM: ${JSON.stringify(res)}`);\n }\n\n const predictionResponse = res as PredictNextUserMessageResponse;\n\n // Query the retriever for relevant insights. Use the generates insights as a query.\n const retrievedDocs = await this.retrieveRelevantInsights(\n predictionResponse.insights\n );\n const relevantDocs = this.removeDuplicateStrings([\n ...predictionResponse.insights,\n ...retrievedDocs,\n ]);\n\n return {\n ...predictionResponse,\n insights: relevantDocs,\n };\n }\n\n /**\n * Retrieves relevant insights based on the provided insights.\n *\n * @param {Array<string>} insights - An array of insights to be used for retrieving relevant documents.\n *\n * @returns {Promise<Array<string>>} A promise that resolves to an array of relevant insights content.\n */\n private async retrieveRelevantInsights(\n insights: Array<string>\n ): Promise<Array<string>> {\n // Only extract the first relevant doc from the retriever. We don't need more than one.\n const relevantInsightsDocuments = await Promise.all(\n insights.map(async (insight) => {\n const relevantInsight = await this.retriever.invoke(insight);\n return relevantInsight[0];\n })\n );\n\n const relevantInsightsContent = relevantInsightsDocuments.map(\n (document) => document.pageContent\n );\n\n return relevantInsightsContent;\n }\n\n /**\n * This method generates prediction violations based on the predicted and actual user responses.\n * It also generates a revised prediction based on the identified violations.\n *\n * @param {Object} params - The parameters for the method.\n * @param {PredictNextUserMessageResponse} params.userPredictions - The predicted user message, user state, and insights.\n * @param {BaseMessage} [params.userResponse] - The actual user response.\n * @param {CallbackManagerForChainRun} [params.runManager] - Optional callback manager for the chain run.\n *\n * @returns {Promise<{ userResponse: BaseMessage | undefined; revisedPrediction: string; explainedPredictionErrors: Array<string>; }>} A promise that resolves to an object containing the actual user response, the revised prediction, and the explained prediction errors.\n *\n * @throws {Error} If the response from the language model does not contain the expected keys: 'violationExplanation', 'explainedPredictionErrors', and 'accuratePrediction'.\n */\n private async getPredictionViolations({\n userPredictions,\n userResponse,\n runManager,\n }: {\n userPredictions: PredictNextUserMessageResponse;\n userResponse?: BaseMessage;\n runManager?: CallbackManagerForChainRun;\n }): Promise<GetPredictionViolationsResponse> {\n const llmWithFunctions = this.llm\n .bindTools([PREDICTION_VIOLATIONS_FUNCTION])\n .withConfig({\n function_call: { name: PREDICTION_VIOLATIONS_FUNCTION.name },\n });\n\n const chain = PREDICTION_VIOLATIONS_PROMPT.pipe(llmWithFunctions).pipe(\n this.jsonOutputParser\n );\n\n if (typeof userResponse?.content !== \"string\") {\n throw new Error(\"This chain does not support non-string model output.\");\n }\n const res = (await chain.invoke(\n {\n predicted_output: userPredictions.predictedUserMessage,\n actual_output: userResponse?.content ?? \"\",\n user_insights: userPredictions.insights.join(\"\\n\"),\n },\n runManager?.getChild(\"prediction_violations\")\n )) as Awaited<{\n violationExplanation: string;\n explainedPredictionErrors: Array<string>;\n accuratePrediction: boolean;\n }>;\n\n // Generate a revised prediction based on violations.\n const revisedPrediction = await this.generateRevisedPrediction({\n originalPrediction: userPredictions.predictedUserMessage,\n explainedPredictionErrors: res.explainedPredictionErrors,\n userInsights: userPredictions.insights,\n runManager,\n });\n\n return {\n userResponse,\n revisedPrediction,\n explainedPredictionErrors: res.explainedPredictionErrors,\n };\n }\n\n /**\n * This method generates a revised prediction based on the original prediction, explained prediction errors, and user insights.\n *\n * @param {Object} params - The parameters for the method.\n * @param {string} params.originalPrediction - The original prediction made by the model.\n * @param {Array<string>} params.explainedPredictionErrors - An array of explained prediction errors.\n * @param {Array<string>} params.userInsights - An array of insights about the user.\n * @param {CallbackManagerForChainRun} [params.runManager] - Optional callback manager for the chain run.\n *\n * @returns {Promise<string>} A promise that resolves to a revised prediction.\n */\n private async generateRevisedPrediction({\n originalPrediction,\n explainedPredictionErrors,\n userInsights,\n runManager,\n }: {\n originalPrediction: string;\n explainedPredictionErrors: Array<string>;\n userInsights: Array<string>;\n runManager?: CallbackManagerForChainRun;\n }): Promise<string> {\n const revisedPredictionChain = GENERATE_REVISED_PREDICTION_PROMPT.pipe(\n this.llm\n ).pipe(this.stringOutputParser);\n\n const revisedPredictionRes = await revisedPredictionChain.invoke(\n {\n prediction: originalPrediction,\n explained_prediction_errors: explainedPredictionErrors.join(\"\\n\"),\n user_insights: userInsights.join(\"\\n\"),\n },\n runManager?.getChild(\"prediction_revision\")\n );\n\n return revisedPredictionRes;\n }\n\n /**\n * This method generates facts or insights about the user based on the revised prediction, explained prediction errors, and the user's response.\n *\n * @param {Object} params - The parameters for the method.\n * @param {BaseMessage} [params.userResponse] - The actual user response.\n * @param {Object} params.predictions - The revised prediction and explained prediction errors.\n * @param {string} params.predictions.revisedPrediction - The revised prediction made by the model.\n * @param {Array<string>} params.predictions.explainedPredictionErrors - An array of explained prediction errors.\n * @param {CallbackManagerForChainRun} [params.runManager] - Optional callback manager for the chain run.\n *\n * @returns {Promise<string>} A promise that resolves to a string containing the generated facts or insights about the user.\n */\n private async generateFacts({\n userResponse,\n predictions,\n runManager,\n }: {\n userResponse?: BaseMessage;\n /**\n * Optional if the prediction was accurate.\n */\n predictions: {\n revisedPrediction: string;\n explainedPredictionErrors: Array<string>;\n };\n runManager?: CallbackManagerForChainRun;\n }): Promise<string> {\n const chain = GENERATE_FACTS_PROMPT.pipe(this.llm).pipe(\n this.stringOutputParser\n );\n\n if (typeof userResponse?.content !== \"string\") {\n throw new Error(\"This chain does not support non-string model output.\");\n }\n const res = await chain.invoke(\n {\n prediction_violations: predictions.explainedPredictionErrors.join(\"\\n\"),\n prediction: predictions.revisedPrediction,\n user_message: userResponse?.content ?? \"\",\n },\n runManager?.getChild(\"generate_facts\")\n );\n\n return res;\n }\n\n /**\n * Static method that creates a ViolationOfExpectationsChain instance from a\n * ChatOpenAI and retriever. It also accepts optional options\n * to customize the chain.\n *\n * @param llm The ChatOpenAI instance.\n * @param retriever The retriever used for similarity search.\n * @param options Optional options to customize the chain.\n *\n * @returns A new instance of ViolationOfExpectationsChain.\n */\n static fromLLM(\n llm: ChatOpenAI,\n retriever: BaseRetrieverInterface,\n options?: Partial<\n Omit<ViolationOfExpectationsChainInput, \"llm\" | \"retriever\">\n >\n ): ViolationOfExpectationsChain {\n return new this({\n retriever,\n llm,\n ...options,\n });\n }\n}\n"],"mappings":"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"}
|
package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_prompt.cjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
const
|
|
2
|
-
|
|
1
|
+
const require_runtime = require('../../../_virtual/_rolldown/runtime.cjs');
|
|
2
|
+
let _langchain_core_prompts = require("@langchain/core/prompts");
|
|
3
3
|
|
|
4
4
|
//#region src/experimental/chains/violation_of_expectations/violation_of_expectations_prompt.ts
|
|
5
|
-
const PREDICT_NEXT_USER_MESSAGE_PROMPT = /* @__PURE__ */
|
|
5
|
+
const PREDICT_NEXT_USER_MESSAGE_PROMPT = /* @__PURE__ */ _langchain_core_prompts.PromptTemplate.fromTemplate(`
|
|
6
6
|
You have been tasked with coming up with insights and data-points based on a chat history between a human and an AI.
|
|
7
7
|
Given the user's chat history provide the following:
|
|
8
8
|
- Concise reasoning about the users internal mental state.
|
|
@@ -10,7 +10,7 @@ Given the user's chat history provide the following:
|
|
|
10
10
|
- A concise list of any additional insights that would be useful to improve prediction.
|
|
11
11
|
--------
|
|
12
12
|
Chat History: {chat_history}`);
|
|
13
|
-
const PREDICTION_VIOLATIONS_PROMPT = /* @__PURE__ */
|
|
13
|
+
const PREDICTION_VIOLATIONS_PROMPT = /* @__PURE__ */ _langchain_core_prompts.PromptTemplate.fromTemplate(`You have been given a prediction and an actual message from a human and AI conversation.
|
|
14
14
|
Using the prediction, actual message, and additional user insights, generate the following:
|
|
15
15
|
- How exactly was the original prediction violated? Which parts were wrong? State the exact differences.
|
|
16
16
|
- If there were errors with the prediction, what were they and why?
|
|
@@ -22,7 +22,7 @@ Actual Output: {actual_output}
|
|
|
22
22
|
User Insights: {user_insights}
|
|
23
23
|
--------
|
|
24
24
|
`);
|
|
25
|
-
const GENERATE_REVISED_PREDICTION_PROMPT = /* @__PURE__ */
|
|
25
|
+
const GENERATE_REVISED_PREDICTION_PROMPT = /* @__PURE__ */ _langchain_core_prompts.PromptTemplate.fromTemplate(`
|
|
26
26
|
You have been tasked with revising a prediction on what a user might say in a chat conversation.
|
|
27
27
|
--------
|
|
28
28
|
Your previous prediction: {prediction}
|
|
@@ -33,7 +33,7 @@ Key insights to the user: {user_insights}
|
|
|
33
33
|
--------
|
|
34
34
|
Given the above, revise your prediction to be more accurate.
|
|
35
35
|
Revised Prediction:`);
|
|
36
|
-
const GENERATE_FACTS_PROMPT = /* @__PURE__ */
|
|
36
|
+
const GENERATE_FACTS_PROMPT = /* @__PURE__ */ _langchain_core_prompts.PromptTemplate.fromTemplate(`
|
|
37
37
|
Given a user message, an LLM generated prediction of what that message might be, and a list of violations which the prediction made compared to the actual message, generate a fact about the user, relevant to the users message.
|
|
38
38
|
--------
|
|
39
39
|
Prediction violations: {prediction_violations}
|
package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_prompt.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"violation_of_expectations_prompt.cjs","names":[
|
|
1
|
+
{"version":3,"file":"violation_of_expectations_prompt.cjs","names":[],"sources":["../../../../src/experimental/chains/violation_of_expectations/violation_of_expectations_prompt.ts"],"sourcesContent":["import { PromptTemplate } from \"@langchain/core/prompts\";\n\nexport const PREDICT_NEXT_USER_MESSAGE_PROMPT =\n /* #__PURE__ */ PromptTemplate.fromTemplate(`\nYou have been tasked with coming up with insights and data-points based on a chat history between a human and an AI.\nGiven the user's chat history provide the following:\n- Concise reasoning about the users internal mental state.\n- Your prediction on how they will respond to the AI's most recent message.\n- A concise list of any additional insights that would be useful to improve prediction.\n--------\nChat History: {chat_history}`);\n\nexport const PREDICTION_VIOLATIONS_PROMPT =\n /* #__PURE__ */ PromptTemplate.fromTemplate(`You have been given a prediction and an actual message from a human and AI conversation.\nUsing the prediction, actual message, and additional user insights, generate the following:\n- How exactly was the original prediction violated? Which parts were wrong? State the exact differences.\n- If there were errors with the prediction, what were they and why?\n--------\nPredicted Output: {predicted_output}\n--------\nActual Output: {actual_output}\n--------\nUser Insights: {user_insights}\n--------\n`);\n\nexport const GENERATE_REVISED_PREDICTION_PROMPT =\n /* #__PURE__ */ PromptTemplate.fromTemplate(`\nYou have been tasked with revising a prediction on what a user might say in a chat conversation.\n--------\nYour previous prediction: {prediction}\n--------\nWays in which your prediction was off: {explained_prediction_errors}\n--------\nKey insights to the user: {user_insights}\n--------\nGiven the above, revise your prediction to be more accurate.\nRevised Prediction:`);\n\nexport const GENERATE_FACTS_PROMPT =\n /* #__PURE__ */ PromptTemplate.fromTemplate(`\nGiven a user message, an LLM generated prediction of what that message might be, and a list of violations which the prediction made compared to the actual message, generate a fact about the user, relevant to the users message.\n--------\nPrediction violations: {prediction_violations}\n--------\nRevised prediction: {prediction}\n--------\nActual user message: {user_message}\n--------\nRelevant fact:`);\n"],"mappings":";;;;AAEA,MAAa,mCACK,uDAAe,aAAa;;;;;;;8BAOhB;AAE9B,MAAa,+BACK,uDAAe,aAAa;;;;;;;;;;;EAW5C;AAEF,MAAa,qCACK,uDAAe,aAAa;;;;;;;;;;qBAUzB;AAErB,MAAa,wBACK,uDAAe,aAAa;;;;;;;;;gBAS9B"}
|