@langchain/classic 1.0.23 → 1.0.24-dev-1773698445534
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/dist/_virtual/_rolldown/runtime.cjs +12 -22
- package/dist/_virtual/_rolldown/runtime.js +12 -21
- package/dist/agents/agent.cjs +2 -3
- package/dist/agents/agent.cjs.map +1 -1
- package/dist/agents/agent.js +1 -2
- package/dist/agents/agent.js.map +1 -1
- package/dist/agents/chat/index.cjs +6 -7
- package/dist/agents/chat/index.cjs.map +1 -1
- package/dist/agents/chat/index.js +1 -2
- package/dist/agents/chat/index.js.map +1 -1
- package/dist/agents/chat/outputParser.cjs +5 -6
- package/dist/agents/chat/outputParser.cjs.map +1 -1
- package/dist/agents/chat/outputParser.js +2 -3
- package/dist/agents/chat/outputParser.js.map +1 -1
- package/dist/agents/chat/prompt.cjs +1 -2
- package/dist/agents/chat/prompt.cjs.map +1 -1
- package/dist/agents/chat/prompt.js +1 -1
- package/dist/agents/chat_convo/index.cjs +6 -7
- package/dist/agents/chat_convo/index.cjs.map +1 -1
- package/dist/agents/chat_convo/index.js +1 -2
- package/dist/agents/chat_convo/index.js.map +1 -1
- package/dist/agents/chat_convo/outputParser.cjs +5 -6
- package/dist/agents/chat_convo/outputParser.cjs.map +1 -1
- package/dist/agents/chat_convo/outputParser.js +1 -2
- package/dist/agents/chat_convo/outputParser.js.map +1 -1
- package/dist/agents/chat_convo/prompt.cjs +1 -2
- package/dist/agents/chat_convo/prompt.cjs.map +1 -1
- package/dist/agents/chat_convo/prompt.js +1 -1
- package/dist/agents/executor.cjs +4 -5
- package/dist/agents/executor.cjs.map +1 -1
- package/dist/agents/executor.js +1 -2
- package/dist/agents/executor.js.map +1 -1
- package/dist/agents/format_scratchpad/log.cjs +8 -10
- package/dist/agents/format_scratchpad/log.cjs.map +1 -1
- package/dist/agents/format_scratchpad/log.js +1 -2
- 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.js +1 -2
- package/dist/agents/format_scratchpad/log_to_message.js.map +1 -1
- package/dist/agents/format_scratchpad/openai_functions.cjs +9 -10
- package/dist/agents/format_scratchpad/openai_functions.cjs.map +1 -1
- package/dist/agents/format_scratchpad/openai_functions.js +1 -2
- package/dist/agents/format_scratchpad/openai_functions.js.map +1 -1
- package/dist/agents/format_scratchpad/openai_tools.cjs +9 -10
- package/dist/agents/format_scratchpad/openai_tools.js +1 -2
- package/dist/agents/format_scratchpad/tool_calling.cjs +2 -3
- package/dist/agents/format_scratchpad/tool_calling.cjs.map +1 -1
- package/dist/agents/format_scratchpad/tool_calling.js +1 -2
- package/dist/agents/format_scratchpad/tool_calling.js.map +1 -1
- package/dist/agents/format_scratchpad/xml.cjs +8 -10
- package/dist/agents/format_scratchpad/xml.cjs.map +1 -1
- package/dist/agents/format_scratchpad/xml.js +1 -2
- package/dist/agents/format_scratchpad/xml.js.map +1 -1
- package/dist/agents/helpers.cjs +2 -3
- package/dist/agents/helpers.cjs.map +1 -1
- package/dist/agents/helpers.js +1 -2
- package/dist/agents/helpers.js.map +1 -1
- package/dist/agents/index.cjs +35 -36
- package/dist/agents/index.d.ts +0 -1
- package/dist/agents/index.js +1 -2
- package/dist/agents/initialize.cjs +9 -10
- package/dist/agents/initialize.cjs.map +1 -1
- package/dist/agents/initialize.js +1 -2
- package/dist/agents/initialize.js.map +1 -1
- package/dist/agents/load.cjs +12 -13
- package/dist/agents/load.cjs.map +1 -1
- package/dist/agents/load.js +1 -2
- package/dist/agents/load.js.map +1 -1
- package/dist/agents/mrkl/index.cjs +7 -8
- package/dist/agents/mrkl/index.cjs.map +1 -1
- package/dist/agents/mrkl/index.js +1 -2
- package/dist/agents/mrkl/index.js.map +1 -1
- package/dist/agents/mrkl/outputParser.cjs +5 -8
- package/dist/agents/mrkl/outputParser.cjs.map +1 -1
- package/dist/agents/mrkl/outputParser.d.cts +1 -1
- package/dist/agents/mrkl/outputParser.js +2 -5
- package/dist/agents/mrkl/outputParser.js.map +1 -1
- package/dist/agents/mrkl/prompt.cjs +1 -2
- package/dist/agents/mrkl/prompt.cjs.map +1 -1
- package/dist/agents/mrkl/prompt.js +1 -1
- package/dist/agents/openai/output_parser.cjs +10 -11
- package/dist/agents/openai/output_parser.js +1 -2
- package/dist/agents/openai_functions/index.cjs +8 -9
- package/dist/agents/openai_functions/index.cjs.map +1 -1
- package/dist/agents/openai_functions/index.d.ts +0 -1
- package/dist/agents/openai_functions/index.d.ts.map +1 -1
- package/dist/agents/openai_functions/index.js +1 -2
- package/dist/agents/openai_functions/index.js.map +1 -1
- package/dist/agents/openai_functions/output_parser.cjs +3 -4
- package/dist/agents/openai_functions/output_parser.cjs.map +1 -1
- package/dist/agents/openai_functions/output_parser.js +1 -2
- package/dist/agents/openai_functions/output_parser.js.map +1 -1
- package/dist/agents/openai_functions/prompt.cjs +1 -2
- package/dist/agents/openai_functions/prompt.cjs.map +1 -1
- package/dist/agents/openai_functions/prompt.js +1 -1
- package/dist/agents/openai_tools/index.cjs +6 -7
- package/dist/agents/openai_tools/index.cjs.map +1 -1
- package/dist/agents/openai_tools/index.js +1 -2
- package/dist/agents/openai_tools/index.js.map +1 -1
- package/dist/agents/openai_tools/output_parser.cjs +3 -4
- package/dist/agents/openai_tools/output_parser.cjs.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 +6 -7
- package/dist/agents/react/index.cjs.map +1 -1
- package/dist/agents/react/index.js +1 -2
- package/dist/agents/react/index.js.map +1 -1
- package/dist/agents/react/output_parser.cjs +10 -11
- package/dist/agents/react/output_parser.cjs.map +1 -1
- package/dist/agents/react/output_parser.js +1 -2
- package/dist/agents/react/output_parser.js.map +1 -1
- package/dist/agents/react/prompt.cjs +1 -2
- package/dist/agents/react/prompt.cjs.map +1 -1
- package/dist/agents/react/prompt.js +1 -1
- package/dist/agents/structured_chat/index.cjs +8 -9
- package/dist/agents/structured_chat/index.cjs.map +1 -1
- package/dist/agents/structured_chat/index.js +1 -2
- package/dist/agents/structured_chat/index.js.map +1 -1
- package/dist/agents/structured_chat/outputParser.cjs +5 -6
- package/dist/agents/structured_chat/outputParser.cjs.map +1 -1
- package/dist/agents/structured_chat/outputParser.js +1 -2
- package/dist/agents/structured_chat/outputParser.js.map +1 -1
- package/dist/agents/structured_chat/prompt.cjs +1 -2
- package/dist/agents/structured_chat/prompt.cjs.map +1 -1
- package/dist/agents/structured_chat/prompt.js +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.js +1 -2
- package/dist/agents/tool_calling/index.js.map +1 -1
- package/dist/agents/tool_calling/output_parser.cjs +3 -4
- package/dist/agents/tool_calling/output_parser.cjs.map +1 -1
- package/dist/agents/tool_calling/output_parser.d.ts +0 -1
- package/dist/agents/tool_calling/output_parser.d.ts.map +1 -1
- package/dist/agents/tool_calling/output_parser.js +1 -2
- package/dist/agents/tool_calling/output_parser.js.map +1 -1
- package/dist/agents/toolkits/base.cjs +2 -2
- package/dist/agents/toolkits/base.js +1 -2
- package/dist/agents/toolkits/conversational_retrieval/openai_functions.cjs +4 -5
- package/dist/agents/toolkits/conversational_retrieval/openai_functions.cjs.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 +4 -5
- package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.cjs.map +1 -1
- package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.js +1 -2
- package/dist/agents/toolkits/conversational_retrieval/token_buffer_memory.js.map +1 -1
- package/dist/agents/toolkits/conversational_retrieval/tool.cjs +3 -4
- package/dist/agents/toolkits/conversational_retrieval/tool.cjs.map +1 -1
- package/dist/agents/toolkits/conversational_retrieval/tool.js +1 -2
- package/dist/agents/toolkits/conversational_retrieval/tool.js.map +1 -1
- package/dist/agents/toolkits/index.cjs +14 -15
- package/dist/agents/toolkits/index.js +1 -2
- package/dist/agents/toolkits/json/json.cjs +7 -8
- package/dist/agents/toolkits/json/json.cjs.map +1 -1
- package/dist/agents/toolkits/json/json.js +1 -2
- package/dist/agents/toolkits/json/json.js.map +1 -1
- package/dist/agents/toolkits/json/prompt.cjs +1 -2
- package/dist/agents/toolkits/json/prompt.cjs.map +1 -1
- package/dist/agents/toolkits/json/prompt.js +1 -1
- package/dist/agents/toolkits/openapi/openapi.cjs +8 -9
- package/dist/agents/toolkits/openapi/openapi.cjs.map +1 -1
- package/dist/agents/toolkits/openapi/openapi.js +1 -2
- package/dist/agents/toolkits/openapi/openapi.js.map +1 -1
- package/dist/agents/toolkits/openapi/prompt.cjs +1 -2
- package/dist/agents/toolkits/openapi/prompt.cjs.map +1 -1
- package/dist/agents/toolkits/openapi/prompt.js +1 -1
- package/dist/agents/toolkits/sql/index.cjs +10 -11
- package/dist/agents/toolkits/sql/index.js +1 -2
- package/dist/agents/toolkits/sql/prompt.cjs +1 -2
- package/dist/agents/toolkits/sql/prompt.cjs.map +1 -1
- package/dist/agents/toolkits/sql/prompt.js +1 -1
- package/dist/agents/toolkits/sql/sql.cjs +7 -8
- package/dist/agents/toolkits/sql/sql.cjs.map +1 -1
- package/dist/agents/toolkits/sql/sql.js +1 -2
- package/dist/agents/toolkits/sql/sql.js.map +1 -1
- package/dist/agents/toolkits/vectorstore/prompt.cjs +1 -2
- package/dist/agents/toolkits/vectorstore/prompt.cjs.map +1 -1
- package/dist/agents/toolkits/vectorstore/prompt.js +1 -1
- package/dist/agents/toolkits/vectorstore/vectorstore.cjs +8 -9
- package/dist/agents/toolkits/vectorstore/vectorstore.cjs.map +1 -1
- package/dist/agents/toolkits/vectorstore/vectorstore.js +1 -2
- package/dist/agents/toolkits/vectorstore/vectorstore.js.map +1 -1
- package/dist/agents/types.cjs +2 -3
- package/dist/agents/types.cjs.map +1 -1
- package/dist/agents/types.js +1 -2
- package/dist/agents/types.js.map +1 -1
- package/dist/agents/xml/index.cjs +8 -9
- package/dist/agents/xml/index.cjs.map +1 -1
- package/dist/agents/xml/index.js +1 -2
- package/dist/agents/xml/index.js.map +1 -1
- package/dist/agents/xml/output_parser.cjs +9 -10
- package/dist/agents/xml/output_parser.cjs.map +1 -1
- package/dist/agents/xml/output_parser.js +1 -2
- package/dist/agents/xml/output_parser.js.map +1 -1
- package/dist/agents/xml/prompt.cjs +1 -2
- package/dist/agents/xml/prompt.cjs.map +1 -1
- package/dist/agents/xml/prompt.js +1 -1
- package/dist/cache/file_system.cjs +8 -9
- package/dist/cache/file_system.cjs.map +1 -1
- package/dist/cache/file_system.js +1 -2
- package/dist/cache/file_system.js.map +1 -1
- package/dist/callbacks/handlers/console.cjs +13 -13
- package/dist/callbacks/handlers/console.d.cts +0 -1
- package/dist/callbacks/handlers/console.d.ts +0 -1
- package/dist/callbacks/handlers/console.js +2 -4
- package/dist/callbacks/handlers/run_collector.cjs +13 -13
- package/dist/callbacks/handlers/run_collector.d.cts +0 -1
- package/dist/callbacks/handlers/run_collector.d.ts +0 -1
- package/dist/callbacks/handlers/run_collector.js +2 -4
- package/dist/callbacks/handlers/tracer.cjs +13 -13
- package/dist/callbacks/handlers/tracer.d.cts +0 -1
- package/dist/callbacks/handlers/tracer.d.ts +0 -1
- package/dist/callbacks/handlers/tracer.js +2 -4
- package/dist/callbacks/handlers/tracer_langchain.cjs +13 -13
- package/dist/callbacks/handlers/tracer_langchain.d.cts +0 -1
- package/dist/callbacks/handlers/tracer_langchain.d.ts +0 -1
- package/dist/callbacks/handlers/tracer_langchain.js +2 -4
- package/dist/callbacks/index.cjs +49 -50
- package/dist/callbacks/index.js +1 -2
- package/dist/callbacks/promises.cjs +13 -13
- package/dist/callbacks/promises.d.cts +0 -1
- package/dist/callbacks/promises.d.ts +0 -1
- package/dist/callbacks/promises.js +2 -4
- package/dist/chains/analyze_documents_chain.cjs +3 -4
- package/dist/chains/analyze_documents_chain.cjs.map +1 -1
- package/dist/chains/analyze_documents_chain.js +1 -2
- package/dist/chains/analyze_documents_chain.js.map +1 -1
- package/dist/chains/api/api_chain.cjs +4 -5
- package/dist/chains/api/api_chain.cjs.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 +2 -3
- package/dist/chains/api/prompts.cjs.map +1 -1
- package/dist/chains/api/prompts.js +10 -12
- package/dist/chains/api/prompts.js.map +1 -1
- package/dist/chains/base.cjs +2 -3
- package/dist/chains/base.cjs.map +1 -1
- package/dist/chains/base.js +1 -2
- package/dist/chains/base.js.map +1 -1
- package/dist/chains/chat_vector_db_chain.cjs +5 -6
- package/dist/chains/chat_vector_db_chain.cjs.map +1 -1
- package/dist/chains/chat_vector_db_chain.js +1 -2
- package/dist/chains/chat_vector_db_chain.js.map +1 -1
- package/dist/chains/combine_docs_chain.cjs +4 -5
- package/dist/chains/combine_docs_chain.cjs.map +1 -1
- package/dist/chains/combine_docs_chain.js +1 -2
- package/dist/chains/combine_docs_chain.js.map +1 -1
- package/dist/chains/combine_documents/base.cjs +2 -5
- package/dist/chains/combine_documents/base.cjs.map +1 -1
- package/dist/chains/combine_documents/base.js +2 -4
- package/dist/chains/combine_documents/base.js.map +1 -1
- package/dist/chains/combine_documents/index.cjs +9 -10
- package/dist/chains/combine_documents/index.js +1 -2
- package/dist/chains/combine_documents/reduce.cjs +8 -10
- package/dist/chains/combine_documents/reduce.cjs.map +1 -1
- package/dist/chains/combine_documents/reduce.js +1 -2
- package/dist/chains/combine_documents/reduce.js.map +1 -1
- package/dist/chains/combine_documents/stuff.cjs +5 -6
- package/dist/chains/combine_documents/stuff.cjs.map +1 -1
- package/dist/chains/combine_documents/stuff.js +4 -5
- package/dist/chains/combine_documents/stuff.js.map +1 -1
- package/dist/chains/constitutional_ai/constitutional_chain.cjs +5 -6
- package/dist/chains/constitutional_ai/constitutional_chain.cjs.map +1 -1
- package/dist/chains/constitutional_ai/constitutional_chain.js +1 -2
- package/dist/chains/constitutional_ai/constitutional_chain.js.map +1 -1
- package/dist/chains/constitutional_ai/constitutional_principle.cjs +1 -2
- package/dist/chains/constitutional_ai/constitutional_principle.cjs.map +1 -1
- package/dist/chains/constitutional_ai/constitutional_principle.js +1 -1
- package/dist/chains/constitutional_ai/constitutional_prompts.cjs +5 -8
- package/dist/chains/constitutional_ai/constitutional_prompts.cjs.map +1 -1
- package/dist/chains/constitutional_ai/constitutional_prompts.js +4 -7
- package/dist/chains/constitutional_ai/constitutional_prompts.js.map +1 -1
- package/dist/chains/conversation.cjs +4 -5
- package/dist/chains/conversation.cjs.map +1 -1
- package/dist/chains/conversation.js +1 -2
- package/dist/chains/conversation.js.map +1 -1
- package/dist/chains/conversational_retrieval_chain.cjs +5 -6
- package/dist/chains/conversational_retrieval_chain.cjs.map +1 -1
- package/dist/chains/conversational_retrieval_chain.js +1 -2
- package/dist/chains/conversational_retrieval_chain.js.map +1 -1
- package/dist/chains/graph_qa/cypher.cjs +12 -13
- package/dist/chains/graph_qa/cypher.cjs.map +1 -1
- package/dist/chains/graph_qa/cypher.js +1 -2
- package/dist/chains/graph_qa/cypher.js.map +1 -1
- package/dist/chains/graph_qa/prompts.cjs +8 -12
- package/dist/chains/graph_qa/prompts.cjs.map +1 -1
- package/dist/chains/graph_qa/prompts.js +7 -11
- package/dist/chains/graph_qa/prompts.js.map +1 -1
- package/dist/chains/history_aware_retriever.cjs +8 -9
- package/dist/chains/history_aware_retriever.cjs.map +1 -1
- package/dist/chains/history_aware_retriever.js +1 -2
- package/dist/chains/history_aware_retriever.js.map +1 -1
- package/dist/chains/index.cjs +32 -33
- package/dist/chains/index.js +1 -2
- package/dist/chains/llm_chain.cjs +4 -5
- package/dist/chains/llm_chain.cjs.map +1 -1
- package/dist/chains/llm_chain.js +1 -2
- package/dist/chains/llm_chain.js.map +1 -1
- package/dist/chains/load.cjs +12 -13
- package/dist/chains/load.cjs.map +1 -1
- package/dist/chains/load.js +1 -2
- package/dist/chains/load.js.map +1 -1
- package/dist/chains/openai_functions/base.cjs +3 -4
- package/dist/chains/openai_functions/base.cjs.map +1 -1
- package/dist/chains/openai_functions/base.js +1 -2
- package/dist/chains/openai_functions/base.js.map +1 -1
- package/dist/chains/openai_functions/extraction.cjs +4 -5
- package/dist/chains/openai_functions/extraction.cjs.map +1 -1
- package/dist/chains/openai_functions/extraction.js +1 -2
- package/dist/chains/openai_functions/extraction.js.map +1 -1
- package/dist/chains/openai_functions/index.cjs +12 -13
- package/dist/chains/openai_functions/index.js +1 -2
- package/dist/chains/openai_functions/openapi.cjs +7 -8
- package/dist/chains/openai_functions/openapi.cjs.map +1 -1
- package/dist/chains/openai_functions/openapi.js +1 -2
- package/dist/chains/openai_functions/openapi.js.map +1 -1
- package/dist/chains/openai_functions/tagging.cjs +4 -5
- package/dist/chains/openai_functions/tagging.cjs.map +1 -1
- package/dist/chains/openai_functions/tagging.js +1 -2
- package/dist/chains/openai_functions/tagging.js.map +1 -1
- package/dist/chains/openai_moderation.cjs +3 -4
- package/dist/chains/openai_moderation.cjs.map +1 -1
- package/dist/chains/openai_moderation.js +1 -2
- package/dist/chains/openai_moderation.js.map +1 -1
- package/dist/chains/query_constructor/index.cjs +11 -12
- package/dist/chains/query_constructor/index.cjs.map +1 -1
- package/dist/chains/query_constructor/index.js +1 -2
- package/dist/chains/query_constructor/index.js.map +1 -1
- package/dist/chains/query_constructor/ir.cjs +14 -14
- package/dist/chains/query_constructor/ir.js +2 -4
- package/dist/chains/query_constructor/parser.cjs +3 -4
- package/dist/chains/query_constructor/parser.cjs.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 +23 -27
- package/dist/chains/query_constructor/prompt.cjs.map +1 -1
- package/dist/chains/query_constructor/prompt.js +22 -26
- package/dist/chains/query_constructor/prompt.js.map +1 -1
- package/dist/chains/question_answering/load.cjs +6 -7
- package/dist/chains/question_answering/load.cjs.map +1 -1
- package/dist/chains/question_answering/load.js +1 -2
- package/dist/chains/question_answering/load.js.map +1 -1
- package/dist/chains/question_answering/map_reduce_prompts.cjs +6 -10
- package/dist/chains/question_answering/map_reduce_prompts.cjs.map +1 -1
- package/dist/chains/question_answering/map_reduce_prompts.js +7 -13
- package/dist/chains/question_answering/map_reduce_prompts.js.map +1 -1
- package/dist/chains/question_answering/refine_prompts.cjs +14 -18
- package/dist/chains/question_answering/refine_prompts.cjs.map +1 -1
- package/dist/chains/question_answering/refine_prompts.js +15 -21
- package/dist/chains/question_answering/refine_prompts.js.map +1 -1
- package/dist/chains/question_answering/stuff_prompts.cjs +2 -3
- package/dist/chains/question_answering/stuff_prompts.cjs.map +1 -1
- package/dist/chains/question_answering/stuff_prompts.js +2 -4
- package/dist/chains/question_answering/stuff_prompts.js.map +1 -1
- package/dist/chains/retrieval.cjs +8 -9
- package/dist/chains/retrieval.cjs.map +1 -1
- package/dist/chains/retrieval.js +1 -2
- package/dist/chains/retrieval.js.map +1 -1
- package/dist/chains/retrieval_qa.cjs +3 -4
- package/dist/chains/retrieval_qa.cjs.map +1 -1
- package/dist/chains/retrieval_qa.js +1 -2
- package/dist/chains/retrieval_qa.js.map +1 -1
- package/dist/chains/router/llm_router.cjs +3 -4
- package/dist/chains/router/llm_router.cjs.map +1 -1
- package/dist/chains/router/llm_router.js +1 -2
- package/dist/chains/router/llm_router.js.map +1 -1
- package/dist/chains/router/multi_prompt.cjs +9 -10
- package/dist/chains/router/multi_prompt.cjs.map +1 -1
- package/dist/chains/router/multi_prompt.js +1 -2
- package/dist/chains/router/multi_prompt.js.map +1 -1
- package/dist/chains/router/multi_prompt_prompt.cjs +1 -2
- package/dist/chains/router/multi_prompt_prompt.cjs.map +1 -1
- package/dist/chains/router/multi_prompt_prompt.js +1 -1
- package/dist/chains/router/multi_retrieval_prompt.cjs +1 -2
- package/dist/chains/router/multi_retrieval_prompt.cjs.map +1 -1
- package/dist/chains/router/multi_retrieval_prompt.js +1 -1
- package/dist/chains/router/multi_retrieval_qa.cjs +9 -10
- package/dist/chains/router/multi_retrieval_qa.cjs.map +1 -1
- package/dist/chains/router/multi_retrieval_qa.js +1 -2
- package/dist/chains/router/multi_retrieval_qa.js.map +1 -1
- package/dist/chains/router/multi_route.cjs +2 -3
- package/dist/chains/router/multi_route.cjs.map +1 -1
- package/dist/chains/router/multi_route.js +1 -2
- package/dist/chains/router/multi_route.js.map +1 -1
- package/dist/chains/router/utils.cjs +1 -2
- package/dist/chains/router/utils.cjs.map +1 -1
- package/dist/chains/router/utils.js +1 -1
- package/dist/chains/sequential_chain.cjs +3 -4
- package/dist/chains/sequential_chain.cjs.map +1 -1
- package/dist/chains/sequential_chain.js +1 -2
- package/dist/chains/sequential_chain.js.map +1 -1
- package/dist/chains/sql_db/index.cjs +10 -11
- package/dist/chains/sql_db/index.js +1 -2
- package/dist/chains/sql_db/sql_db_chain.cjs +6 -7
- package/dist/chains/sql_db/sql_db_chain.cjs.map +1 -1
- package/dist/chains/sql_db/sql_db_chain.js +1 -2
- package/dist/chains/sql_db/sql_db_chain.js.map +1 -1
- package/dist/chains/sql_db/sql_db_prompt.cjs +2 -3
- package/dist/chains/sql_db/sql_db_prompt.cjs.map +1 -1
- package/dist/chains/sql_db/sql_db_prompt.js +1 -2
- package/dist/chains/sql_db/sql_db_prompt.js.map +1 -1
- package/dist/chains/summarization/load.cjs +5 -6
- package/dist/chains/summarization/load.cjs.map +1 -1
- package/dist/chains/summarization/load.js +1 -2
- package/dist/chains/summarization/load.js.map +1 -1
- package/dist/chains/summarization/refine_prompts.cjs +5 -9
- package/dist/chains/summarization/refine_prompts.cjs.map +1 -1
- package/dist/chains/summarization/refine_prompts.js +4 -7
- package/dist/chains/summarization/refine_prompts.js.map +1 -1
- package/dist/chains/summarization/stuff_prompts.cjs +5 -9
- package/dist/chains/summarization/stuff_prompts.cjs.map +1 -1
- package/dist/chains/summarization/stuff_prompts.js +4 -7
- package/dist/chains/summarization/stuff_prompts.js.map +1 -1
- package/dist/chains/transform.cjs +2 -3
- package/dist/chains/transform.cjs.map +1 -1
- package/dist/chains/transform.js +1 -2
- package/dist/chains/transform.js.map +1 -1
- package/dist/chains/vector_db_qa.cjs +3 -4
- package/dist/chains/vector_db_qa.cjs.map +1 -1
- package/dist/chains/vector_db_qa.js +1 -2
- package/dist/chains/vector_db_qa.js.map +1 -1
- package/dist/chat_models/universal.cjs +8 -9
- package/dist/chat_models/universal.cjs.map +1 -1
- package/dist/chat_models/universal.js +1 -2
- package/dist/chat_models/universal.js.map +1 -1
- package/dist/document.cjs +13 -14
- package/dist/document.js +1 -2
- package/dist/document_loaders/base.cjs +14 -14
- package/dist/document_loaders/base.js +2 -4
- package/dist/document_loaders/fs/buffer.cjs +8 -9
- package/dist/document_loaders/fs/buffer.cjs.map +1 -1
- package/dist/document_loaders/fs/buffer.js +1 -2
- package/dist/document_loaders/fs/buffer.js.map +1 -1
- package/dist/document_loaders/fs/directory.cjs +8 -9
- package/dist/document_loaders/fs/directory.cjs.map +1 -1
- package/dist/document_loaders/fs/directory.js +1 -2
- package/dist/document_loaders/fs/directory.js.map +1 -1
- package/dist/document_loaders/fs/json.cjs +9 -10
- package/dist/document_loaders/fs/json.cjs.map +1 -1
- package/dist/document_loaders/fs/json.js +1 -2
- package/dist/document_loaders/fs/json.js.map +1 -1
- package/dist/document_loaders/fs/multi_file.cjs +9 -10
- package/dist/document_loaders/fs/multi_file.cjs.map +1 -1
- package/dist/document_loaders/fs/multi_file.js +1 -2
- package/dist/document_loaders/fs/multi_file.js.map +1 -1
- package/dist/document_loaders/fs/text.cjs +8 -9
- package/dist/document_loaders/fs/text.cjs.map +1 -1
- package/dist/document_loaders/fs/text.js +1 -2
- package/dist/document_loaders/fs/text.js.map +1 -1
- package/dist/document_transformers/openai_functions.cjs +10 -11
- package/dist/document_transformers/openai_functions.cjs.map +1 -1
- package/dist/document_transformers/openai_functions.d.ts +0 -1
- package/dist/document_transformers/openai_functions.d.ts.map +1 -1
- package/dist/document_transformers/openai_functions.js +1 -2
- package/dist/document_transformers/openai_functions.js.map +1 -1
- package/dist/embeddings/cache_backed.cjs +9 -10
- package/dist/embeddings/cache_backed.cjs.map +1 -1
- package/dist/embeddings/cache_backed.js +1 -2
- package/dist/embeddings/cache_backed.js.map +1 -1
- package/dist/embeddings/fake.cjs +14 -14
- package/dist/embeddings/fake.js +2 -4
- package/dist/evaluation/agents/index.cjs +1 -1
- package/dist/evaluation/agents/index.js +2 -3
- package/dist/evaluation/agents/prompt.cjs +8 -10
- package/dist/evaluation/agents/prompt.cjs.map +1 -1
- package/dist/evaluation/agents/prompt.js +7 -9
- package/dist/evaluation/agents/prompt.js.map +1 -1
- package/dist/evaluation/agents/trajectory.cjs +4 -5
- package/dist/evaluation/agents/trajectory.cjs.map +1 -1
- package/dist/evaluation/agents/trajectory.js +1 -2
- package/dist/evaluation/agents/trajectory.js.map +1 -1
- package/dist/evaluation/base.cjs +4 -5
- package/dist/evaluation/base.cjs.map +1 -1
- package/dist/evaluation/base.d.ts +0 -1
- package/dist/evaluation/base.d.ts.map +1 -1
- package/dist/evaluation/base.js +1 -2
- package/dist/evaluation/base.js.map +1 -1
- package/dist/evaluation/comparison/index.cjs +1 -1
- package/dist/evaluation/comparison/index.js +2 -3
- package/dist/evaluation/comparison/pairwise.cjs +6 -7
- package/dist/evaluation/comparison/pairwise.cjs.map +1 -1
- package/dist/evaluation/comparison/pairwise.js +1 -2
- package/dist/evaluation/comparison/pairwise.js.map +1 -1
- package/dist/evaluation/comparison/prompt.cjs +16 -27
- package/dist/evaluation/comparison/prompt.cjs.map +1 -1
- package/dist/evaluation/comparison/prompt.js +15 -26
- package/dist/evaluation/comparison/prompt.js.map +1 -1
- package/dist/evaluation/criteria/criteria.cjs +5 -6
- package/dist/evaluation/criteria/criteria.cjs.map +1 -1
- package/dist/evaluation/criteria/criteria.js +1 -2
- package/dist/evaluation/criteria/criteria.js.map +1 -1
- package/dist/evaluation/criteria/index.cjs +1 -1
- package/dist/evaluation/criteria/index.js +2 -3
- package/dist/evaluation/criteria/prompt.cjs +16 -20
- package/dist/evaluation/criteria/prompt.cjs.map +1 -1
- package/dist/evaluation/criteria/prompt.js +15 -19
- package/dist/evaluation/criteria/prompt.js.map +1 -1
- package/dist/evaluation/embedding_distance/base.cjs +5 -6
- package/dist/evaluation/embedding_distance/base.cjs.map +1 -1
- package/dist/evaluation/embedding_distance/base.js +1 -2
- package/dist/evaluation/embedding_distance/base.js.map +1 -1
- package/dist/evaluation/embedding_distance/index.cjs +1 -1
- package/dist/evaluation/embedding_distance/index.js +2 -3
- package/dist/evaluation/index.cjs +19 -20
- package/dist/evaluation/index.d.ts +0 -5
- package/dist/evaluation/index.js +1 -2
- package/dist/evaluation/loader.cjs +10 -11
- package/dist/evaluation/loader.cjs.map +1 -1
- package/dist/evaluation/loader.d.ts +0 -2
- package/dist/evaluation/loader.d.ts.map +1 -1
- package/dist/evaluation/loader.js +1 -2
- package/dist/evaluation/loader.js.map +1 -1
- package/dist/evaluation/qa/eval_chain.cjs +3 -4
- package/dist/evaluation/qa/eval_chain.cjs.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.cjs +1 -1
- package/dist/evaluation/qa/index.js +2 -3
- package/dist/evaluation/qa/prompt.cjs +10 -14
- package/dist/evaluation/qa/prompt.cjs.map +1 -1
- package/dist/evaluation/qa/prompt.js +9 -12
- package/dist/evaluation/qa/prompt.js.map +1 -1
- package/dist/experimental/autogpt/agent.cjs +8 -9
- package/dist/experimental/autogpt/agent.cjs.map +1 -1
- package/dist/experimental/autogpt/agent.js +3 -4
- package/dist/experimental/autogpt/agent.js.map +1 -1
- package/dist/experimental/autogpt/index.cjs +11 -12
- package/dist/experimental/autogpt/index.js +1 -2
- package/dist/experimental/autogpt/output_parser.cjs +2 -3
- package/dist/experimental/autogpt/output_parser.cjs.map +1 -1
- package/dist/experimental/autogpt/output_parser.js +1 -2
- package/dist/experimental/autogpt/output_parser.js.map +1 -1
- package/dist/experimental/autogpt/prompt.cjs +3 -4
- package/dist/experimental/autogpt/prompt.cjs.map +1 -1
- package/dist/experimental/autogpt/prompt.js +1 -2
- package/dist/experimental/autogpt/prompt.js.map +1 -1
- package/dist/experimental/autogpt/prompt_generator.cjs +3 -4
- package/dist/experimental/autogpt/prompt_generator.cjs.map +1 -1
- package/dist/experimental/autogpt/prompt_generator.js +1 -2
- package/dist/experimental/autogpt/prompt_generator.js.map +1 -1
- package/dist/experimental/autogpt/schema.cjs +1 -2
- package/dist/experimental/autogpt/schema.cjs.map +1 -1
- package/dist/experimental/autogpt/schema.js +1 -1
- package/dist/experimental/babyagi/agent.cjs +6 -7
- package/dist/experimental/babyagi/agent.cjs.map +1 -1
- package/dist/experimental/babyagi/agent.js +1 -2
- package/dist/experimental/babyagi/agent.js.map +1 -1
- package/dist/experimental/babyagi/index.cjs +12 -13
- package/dist/experimental/babyagi/index.js +1 -2
- package/dist/experimental/babyagi/task_creation.cjs +3 -4
- package/dist/experimental/babyagi/task_creation.cjs.map +1 -1
- package/dist/experimental/babyagi/task_creation.js +1 -2
- package/dist/experimental/babyagi/task_creation.js.map +1 -1
- package/dist/experimental/babyagi/task_execution.cjs +3 -4
- package/dist/experimental/babyagi/task_execution.cjs.map +1 -1
- package/dist/experimental/babyagi/task_execution.js +1 -2
- package/dist/experimental/babyagi/task_execution.js.map +1 -1
- package/dist/experimental/babyagi/task_prioritization.cjs +3 -4
- package/dist/experimental/babyagi/task_prioritization.cjs.map +1 -1
- package/dist/experimental/babyagi/task_prioritization.js +1 -2
- package/dist/experimental/babyagi/task_prioritization.js.map +1 -1
- package/dist/experimental/chains/violation_of_expectations/index.cjs +9 -10
- package/dist/experimental/chains/violation_of_expectations/index.js +1 -2
- package/dist/experimental/chains/violation_of_expectations/types.cjs +1 -2
- package/dist/experimental/chains/violation_of_expectations/types.cjs.map +1 -1
- package/dist/experimental/chains/violation_of_expectations/types.js +1 -1
- package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_chain.cjs +6 -7
- 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.js +1 -2
- 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 +2 -3
- 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 +1 -2
- package/dist/experimental/chains/violation_of_expectations/violation_of_expectations_prompt.js.map +1 -1
- package/dist/experimental/generative_agents/generative_agent.cjs +4 -5
- package/dist/experimental/generative_agents/generative_agent.cjs.map +1 -1
- package/dist/experimental/generative_agents/generative_agent.js +1 -2
- package/dist/experimental/generative_agents/generative_agent.js.map +1 -1
- package/dist/experimental/generative_agents/generative_agent_memory.cjs +4 -5
- package/dist/experimental/generative_agents/generative_agent_memory.cjs.map +1 -1
- package/dist/experimental/generative_agents/generative_agent_memory.js +1 -2
- package/dist/experimental/generative_agents/generative_agent_memory.js.map +1 -1
- package/dist/experimental/generative_agents/index.cjs +10 -11
- package/dist/experimental/generative_agents/index.js +1 -2
- package/dist/experimental/masking/index.cjs +11 -12
- package/dist/experimental/masking/index.js +1 -2
- package/dist/experimental/masking/parser.cjs +1 -2
- package/dist/experimental/masking/parser.cjs.map +1 -1
- package/dist/experimental/masking/parser.js +1 -1
- package/dist/experimental/masking/parser.js.map +1 -1
- package/dist/experimental/masking/regex_masking_transformer.cjs +2 -3
- package/dist/experimental/masking/regex_masking_transformer.cjs.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 +1 -2
- package/dist/experimental/masking/transformer.cjs.map +1 -1
- package/dist/experimental/masking/transformer.js +1 -1
- package/dist/experimental/openai_assistant/index.cjs +9 -10
- package/dist/experimental/openai_assistant/index.cjs.map +1 -1
- package/dist/experimental/openai_assistant/index.js +1 -2
- package/dist/experimental/openai_assistant/index.js.map +1 -1
- package/dist/experimental/openai_files/index.cjs +8 -9
- package/dist/experimental/openai_files/index.cjs.map +1 -1
- package/dist/experimental/openai_files/index.js +1 -2
- package/dist/experimental/openai_files/index.js.map +1 -1
- package/dist/experimental/plan_and_execute/agent_executor.cjs +10 -11
- package/dist/experimental/plan_and_execute/agent_executor.cjs.map +1 -1
- package/dist/experimental/plan_and_execute/agent_executor.js +1 -2
- 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.js +1 -1
- package/dist/experimental/plan_and_execute/base.js.map +1 -1
- package/dist/experimental/plan_and_execute/index.cjs +11 -12
- package/dist/experimental/plan_and_execute/index.js +1 -2
- package/dist/experimental/plan_and_execute/outputParser.cjs +3 -4
- package/dist/experimental/plan_and_execute/outputParser.cjs.map +1 -1
- package/dist/experimental/plan_and_execute/outputParser.js +1 -2
- package/dist/experimental/plan_and_execute/outputParser.js.map +1 -1
- package/dist/experimental/plan_and_execute/prompt.cjs +2 -3
- package/dist/experimental/plan_and_execute/prompt.cjs.map +1 -1
- package/dist/experimental/plan_and_execute/prompt.js +1 -2
- package/dist/experimental/plan_and_execute/prompt.js.map +1 -1
- package/dist/experimental/prompts/custom_format.cjs +8 -9
- package/dist/experimental/prompts/custom_format.cjs.map +1 -1
- package/dist/experimental/prompts/custom_format.js +1 -2
- package/dist/experimental/prompts/custom_format.js.map +1 -1
- package/dist/experimental/prompts/handlebars.cjs +9 -10
- package/dist/experimental/prompts/handlebars.cjs.map +1 -1
- package/dist/experimental/prompts/handlebars.js +1 -2
- package/dist/experimental/prompts/handlebars.js.map +1 -1
- package/dist/hub/base.cjs +1 -2
- package/dist/hub/base.cjs.map +1 -1
- package/dist/hub/base.js +1 -1
- package/dist/hub/base.js.map +1 -1
- package/dist/hub/index.cjs +4 -5
- package/dist/hub/index.cjs.map +1 -1
- package/dist/hub/index.js +1 -2
- package/dist/hub/index.js.map +1 -1
- package/dist/hub/node.cjs +5 -6
- package/dist/hub/node.cjs.map +1 -1
- package/dist/hub/node.js +1 -2
- package/dist/hub/node.js.map +1 -1
- package/dist/index.cjs +8 -10
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/indexes/index.cjs +8 -9
- package/dist/indexes/index.js +1 -2
- package/dist/load/import_constants.cjs +1 -2
- package/dist/load/import_constants.cjs.map +1 -1
- package/dist/load/import_constants.js +1 -1
- package/dist/load/import_map.cjs +98 -99
- package/dist/load/import_map.cjs.map +1 -1
- package/dist/load/import_map.js +1 -2
- package/dist/load/import_map.js.map +1 -1
- package/dist/load/index.cjs +5 -6
- package/dist/load/index.cjs.map +1 -1
- package/dist/load/index.js +1 -2
- package/dist/load/index.js.map +1 -1
- package/dist/load/serializable.cjs +14 -14
- package/dist/load/serializable.js +2 -4
- package/dist/memory/buffer_memory.cjs +3 -4
- package/dist/memory/buffer_memory.cjs.map +1 -1
- package/dist/memory/buffer_memory.js +1 -2
- package/dist/memory/buffer_memory.js.map +1 -1
- package/dist/memory/buffer_token_memory.cjs +3 -4
- package/dist/memory/buffer_token_memory.cjs.map +1 -1
- package/dist/memory/buffer_token_memory.js +1 -2
- package/dist/memory/buffer_token_memory.js.map +1 -1
- package/dist/memory/buffer_window_memory.cjs +3 -4
- package/dist/memory/buffer_window_memory.cjs.map +1 -1
- package/dist/memory/buffer_window_memory.js +1 -2
- package/dist/memory/buffer_window_memory.js.map +1 -1
- package/dist/memory/chat_memory.cjs +8 -9
- package/dist/memory/chat_memory.cjs.map +1 -1
- package/dist/memory/chat_memory.js +1 -2
- package/dist/memory/chat_memory.js.map +1 -1
- package/dist/memory/combined_memory.cjs +2 -3
- package/dist/memory/combined_memory.cjs.map +1 -1
- package/dist/memory/combined_memory.js +1 -2
- package/dist/memory/combined_memory.js.map +1 -1
- package/dist/memory/entity_memory.cjs +6 -7
- package/dist/memory/entity_memory.cjs.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 +43 -44
- package/dist/memory/index.js +1 -2
- package/dist/memory/prompt.cjs +27 -33
- package/dist/memory/prompt.cjs.map +1 -1
- package/dist/memory/prompt.js +26 -32
- package/dist/memory/prompt.js.map +1 -1
- package/dist/memory/stores/entity/base.cjs +2 -3
- package/dist/memory/stores/entity/base.cjs.map +1 -1
- package/dist/memory/stores/entity/base.js +1 -2
- package/dist/memory/stores/entity/base.js.map +1 -1
- package/dist/memory/stores/entity/in_memory.cjs +2 -3
- package/dist/memory/stores/entity/in_memory.cjs.map +1 -1
- package/dist/memory/stores/entity/in_memory.js +1 -2
- package/dist/memory/stores/entity/in_memory.js.map +1 -1
- package/dist/memory/summary.cjs +5 -6
- package/dist/memory/summary.cjs.map +1 -1
- package/dist/memory/summary.js +1 -2
- package/dist/memory/summary.js.map +1 -1
- package/dist/memory/summary_buffer.cjs +3 -4
- package/dist/memory/summary_buffer.cjs.map +1 -1
- package/dist/memory/summary_buffer.js +1 -2
- package/dist/memory/summary_buffer.js.map +1 -1
- package/dist/memory/vector_store.cjs +3 -4
- package/dist/memory/vector_store.cjs.map +1 -1
- package/dist/memory/vector_store.js +1 -2
- package/dist/memory/vector_store.js.map +1 -1
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/_runner.d.cts +1 -4
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/_runner.d.ts +1 -4
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/evaluate_comparative.d.cts +1 -2
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/evaluate_comparative.d.ts +1 -2
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/index.d.cts +1 -4
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/index.d.ts +1 -4
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/string_evaluator.d.cts +1 -1
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/evaluation/string_evaluator.d.ts +1 -1
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/singletons/traceable.d.cts +0 -1
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/singletons/traceable.d.cts.map +1 -1
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/singletons/traceable.d.ts +0 -1
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/singletons/traceable.d.ts.map +1 -1
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/async_caller.d.cts +0 -2
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/async_caller.d.cts.map +1 -1
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/async_caller.d.ts +0 -2
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/async_caller.d.ts.map +1 -1
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/p-queue.d.cts +1 -1
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/dist/utils/p-queue.d.ts +1 -1
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/evaluation.d.cts +1 -2
- package/dist/node_modules/.pnpm/langsmith@0.5.9_@opentelemetry_api@1.9.0_openai@6.22.0_ws@8.19.0_bufferutil@4.1.0__zod@4.3.6_/node_modules/langsmith/evaluation.d.ts +1 -2
- package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/index.d.cts +1 -1
- package/dist/node_modules/.pnpm/p-queue@6.6.2/node_modules/p-queue/dist/index.d.ts +1 -1
- package/dist/output_parsers/combining.cjs +2 -3
- package/dist/output_parsers/combining.cjs.map +1 -1
- package/dist/output_parsers/combining.js +1 -2
- package/dist/output_parsers/combining.js.map +1 -1
- package/dist/output_parsers/datetime.cjs +2 -3
- package/dist/output_parsers/datetime.cjs.map +1 -1
- package/dist/output_parsers/datetime.js +1 -2
- package/dist/output_parsers/datetime.js.map +1 -1
- package/dist/output_parsers/expression.cjs +10 -11
- package/dist/output_parsers/expression.cjs.map +1 -1
- package/dist/output_parsers/expression.js +1 -2
- package/dist/output_parsers/expression.js.map +1 -1
- package/dist/output_parsers/expression_type_handlers/array_literal_expression_handler.cjs +2 -3
- 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 +1 -2
- package/dist/output_parsers/expression_type_handlers/array_literal_expression_handler.js.map +1 -1
- package/dist/output_parsers/expression_type_handlers/base.cjs +2 -3
- package/dist/output_parsers/expression_type_handlers/base.cjs.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 +2 -3
- 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 +1 -2
- 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 +2 -3
- 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 +1 -2
- package/dist/output_parsers/expression_type_handlers/call_expression_handler.js.map +1 -1
- package/dist/output_parsers/expression_type_handlers/factory.cjs +11 -12
- package/dist/output_parsers/expression_type_handlers/factory.cjs.map +1 -1
- package/dist/output_parsers/expression_type_handlers/factory.js +1 -2
- package/dist/output_parsers/expression_type_handlers/factory.js.map +1 -1
- package/dist/output_parsers/expression_type_handlers/grammar/parser_grammar.cjs +1 -2
- 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 +1 -1
- package/dist/output_parsers/expression_type_handlers/identifier_handler.cjs +2 -3
- 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 +2 -3
- 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 +1 -2
- 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 +2 -3
- 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 +1 -2
- 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 +3 -4
- 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 +1 -2
- 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 -3
- 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 +1 -2
- 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 +2 -3
- 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/fix.cjs +4 -5
- package/dist/output_parsers/fix.cjs.map +1 -1
- package/dist/output_parsers/fix.js +1 -2
- package/dist/output_parsers/fix.js.map +1 -1
- package/dist/output_parsers/http_response.cjs +2 -3
- package/dist/output_parsers/http_response.cjs.map +1 -1
- package/dist/output_parsers/http_response.js +1 -2
- package/dist/output_parsers/http_response.js.map +1 -1
- package/dist/output_parsers/index.cjs +32 -33
- package/dist/output_parsers/index.js +1 -2
- package/dist/output_parsers/noop.cjs +2 -3
- package/dist/output_parsers/noop.cjs.map +1 -1
- package/dist/output_parsers/noop.js +1 -2
- package/dist/output_parsers/noop.js.map +1 -1
- package/dist/output_parsers/openai_functions.cjs +2 -3
- package/dist/output_parsers/openai_functions.cjs.map +1 -1
- package/dist/output_parsers/openai_functions.js +1 -2
- package/dist/output_parsers/openai_functions.js.map +1 -1
- package/dist/output_parsers/openai_tools.cjs +2 -3
- package/dist/output_parsers/openai_tools.cjs.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 +4 -8
- package/dist/output_parsers/prompts.cjs.map +1 -1
- package/dist/output_parsers/prompts.js +3 -6
- package/dist/output_parsers/prompts.js.map +1 -1
- package/dist/output_parsers/regex.cjs +2 -3
- package/dist/output_parsers/regex.cjs.map +1 -1
- package/dist/output_parsers/regex.js +1 -2
- package/dist/output_parsers/regex.js.map +1 -1
- package/dist/output_parsers/router.cjs +3 -4
- package/dist/output_parsers/router.cjs.map +1 -1
- package/dist/output_parsers/router.js +1 -2
- package/dist/output_parsers/router.js.map +1 -1
- package/dist/output_parsers/structured.cjs +2 -3
- package/dist/output_parsers/structured.cjs.map +1 -1
- package/dist/output_parsers/structured.js +1 -2
- package/dist/output_parsers/structured.js.map +1 -1
- package/dist/retrievers/contextual_compression.cjs +8 -9
- package/dist/retrievers/contextual_compression.cjs.map +1 -1
- package/dist/retrievers/contextual_compression.js +1 -2
- package/dist/retrievers/contextual_compression.js.map +1 -1
- package/dist/retrievers/document_compressors/chain_extract.cjs +11 -12
- package/dist/retrievers/document_compressors/chain_extract.cjs.map +1 -1
- package/dist/retrievers/document_compressors/chain_extract.js +1 -2
- package/dist/retrievers/document_compressors/chain_extract.js.map +1 -1
- package/dist/retrievers/document_compressors/chain_extract_prompt.cjs +1 -2
- package/dist/retrievers/document_compressors/chain_extract_prompt.cjs.map +1 -1
- package/dist/retrievers/document_compressors/chain_extract_prompt.js +1 -1
- package/dist/retrievers/document_compressors/embeddings_filter.cjs +9 -10
- package/dist/retrievers/document_compressors/embeddings_filter.cjs.map +1 -1
- package/dist/retrievers/document_compressors/embeddings_filter.js +1 -2
- package/dist/retrievers/document_compressors/embeddings_filter.js.map +1 -1
- package/dist/retrievers/document_compressors/index.cjs +8 -10
- package/dist/retrievers/document_compressors/index.cjs.map +1 -1
- package/dist/retrievers/document_compressors/index.js +1 -2
- package/dist/retrievers/document_compressors/index.js.map +1 -1
- package/dist/retrievers/ensemble.cjs +8 -9
- package/dist/retrievers/ensemble.cjs.map +1 -1
- package/dist/retrievers/ensemble.js +1 -2
- package/dist/retrievers/ensemble.js.map +1 -1
- package/dist/retrievers/hyde.cjs +8 -9
- package/dist/retrievers/hyde.cjs.map +1 -1
- package/dist/retrievers/hyde.js +1 -2
- package/dist/retrievers/hyde.js.map +1 -1
- package/dist/retrievers/matryoshka_retriever.cjs +8 -9
- package/dist/retrievers/matryoshka_retriever.cjs.map +1 -1
- package/dist/retrievers/matryoshka_retriever.js +1 -2
- package/dist/retrievers/matryoshka_retriever.js.map +1 -1
- package/dist/retrievers/multi_query.cjs +9 -10
- package/dist/retrievers/multi_query.cjs.map +1 -1
- package/dist/retrievers/multi_query.js +1 -2
- package/dist/retrievers/multi_query.js.map +1 -1
- package/dist/retrievers/multi_vector.cjs +9 -10
- package/dist/retrievers/multi_vector.cjs.map +1 -1
- package/dist/retrievers/multi_vector.js +1 -2
- package/dist/retrievers/multi_vector.js.map +1 -1
- package/dist/retrievers/parent_document.cjs +9 -10
- package/dist/retrievers/parent_document.cjs.map +1 -1
- package/dist/retrievers/parent_document.js +1 -2
- package/dist/retrievers/parent_document.js.map +1 -1
- package/dist/retrievers/score_threshold.cjs +8 -9
- package/dist/retrievers/score_threshold.cjs.map +1 -1
- package/dist/retrievers/score_threshold.js +1 -2
- package/dist/retrievers/score_threshold.js.map +1 -1
- package/dist/retrievers/self_query/functional.cjs +13 -14
- package/dist/retrievers/self_query/functional.js +1 -2
- package/dist/retrievers/self_query/index.cjs +24 -25
- package/dist/retrievers/self_query/index.cjs.map +1 -1
- package/dist/retrievers/self_query/index.js +1 -2
- package/dist/retrievers/self_query/index.js.map +1 -1
- package/dist/retrievers/time_weighted.cjs +9 -10
- package/dist/retrievers/time_weighted.cjs.map +1 -1
- package/dist/retrievers/time_weighted.js +2 -3
- package/dist/retrievers/time_weighted.js.map +1 -1
- package/dist/schema/prompt_template.cjs +8 -10
- package/dist/schema/prompt_template.cjs.map +1 -1
- package/dist/schema/prompt_template.js +1 -2
- package/dist/schema/prompt_template.js.map +1 -1
- package/dist/schema/query_constructor.cjs +8 -10
- package/dist/schema/query_constructor.cjs.map +1 -1
- package/dist/schema/query_constructor.js +1 -2
- package/dist/schema/query_constructor.js.map +1 -1
- package/dist/smith/config.cjs +1 -2
- package/dist/smith/config.cjs.map +1 -1
- package/dist/smith/config.d.cts +0 -1
- package/dist/smith/config.d.cts.map +1 -1
- package/dist/smith/config.d.ts +0 -2
- package/dist/smith/config.d.ts.map +1 -1
- package/dist/smith/config.js +1 -1
- package/dist/smith/index.cjs +10 -11
- package/dist/smith/index.js +1 -2
- package/dist/smith/name_generation.cjs +1 -2
- package/dist/smith/name_generation.cjs.map +1 -1
- package/dist/smith/name_generation.js +1 -1
- package/dist/smith/progress.cjs +1 -2
- package/dist/smith/progress.cjs.map +1 -1
- package/dist/smith/progress.js +1 -1
- package/dist/smith/progress.js.map +1 -1
- package/dist/smith/runner_utils.cjs +6 -7
- package/dist/smith/runner_utils.cjs.map +1 -1
- package/dist/smith/runner_utils.d.cts +0 -1
- package/dist/smith/runner_utils.d.cts.map +1 -1
- package/dist/smith/runner_utils.d.ts +0 -1
- package/dist/smith/runner_utils.d.ts.map +1 -1
- package/dist/smith/runner_utils.js +1 -2
- package/dist/smith/runner_utils.js.map +1 -1
- package/dist/sql_db.cjs +9 -10
- package/dist/sql_db.cjs.map +1 -1
- package/dist/sql_db.js +1 -2
- package/dist/sql_db.js.map +1 -1
- package/dist/storage/encoder_backed.cjs +8 -9
- package/dist/storage/encoder_backed.cjs.map +1 -1
- package/dist/storage/encoder_backed.js +1 -2
- package/dist/storage/encoder_backed.js.map +1 -1
- package/dist/storage/file_system.cjs +8 -9
- package/dist/storage/file_system.cjs.map +1 -1
- package/dist/storage/file_system.js +1 -2
- package/dist/storage/file_system.js.map +1 -1
- package/dist/storage/in_memory.cjs +13 -14
- package/dist/storage/in_memory.js +1 -2
- package/dist/stores/doc/base.cjs +8 -10
- package/dist/stores/doc/base.cjs.map +1 -1
- package/dist/stores/doc/base.js +1 -2
- package/dist/stores/doc/base.js.map +1 -1
- package/dist/stores/doc/in_memory.cjs +9 -10
- package/dist/stores/doc/in_memory.cjs.map +1 -1
- package/dist/stores/doc/in_memory.js +1 -2
- package/dist/stores/doc/in_memory.js.map +1 -1
- package/dist/stores/file/base.cjs +2 -3
- package/dist/stores/file/base.cjs.map +1 -1
- package/dist/stores/file/base.js +1 -2
- package/dist/stores/file/base.js.map +1 -1
- package/dist/stores/file/in_memory.cjs +9 -10
- package/dist/stores/file/in_memory.cjs.map +1 -1
- package/dist/stores/file/in_memory.js +1 -2
- package/dist/stores/file/in_memory.js.map +1 -1
- package/dist/stores/file/node.cjs +9 -10
- package/dist/stores/file/node.cjs.map +1 -1
- package/dist/stores/file/node.js +1 -2
- package/dist/stores/file/node.js.map +1 -1
- package/dist/stores/message/in_memory.cjs +13 -14
- package/dist/stores/message/in_memory.js +1 -2
- package/dist/text_splitter.cjs +14 -14
- package/dist/text_splitter.d.cts +0 -1
- package/dist/text_splitter.d.ts +0 -1
- package/dist/text_splitter.js +2 -4
- package/dist/tools/chain.cjs +8 -9
- package/dist/tools/chain.cjs.map +1 -1
- package/dist/tools/chain.js +1 -2
- package/dist/tools/chain.js.map +1 -1
- package/dist/tools/fs.cjs +2 -3
- package/dist/tools/fs.cjs.map +1 -1
- package/dist/tools/fs.js +1 -2
- package/dist/tools/fs.js.map +1 -1
- package/dist/tools/index.cjs +33 -34
- package/dist/tools/index.js +1 -2
- package/dist/tools/json.cjs +2 -3
- package/dist/tools/json.cjs.map +1 -1
- package/dist/tools/json.js +1 -2
- package/dist/tools/json.js.map +1 -1
- package/dist/tools/render.cjs +8 -9
- package/dist/tools/render.cjs.map +1 -1
- package/dist/tools/render.js +1 -2
- package/dist/tools/render.js.map +1 -1
- package/dist/tools/requests.cjs +2 -3
- package/dist/tools/requests.cjs.map +1 -1
- package/dist/tools/requests.js +1 -2
- package/dist/tools/requests.js.map +1 -1
- package/dist/tools/retriever.cjs +9 -10
- package/dist/tools/retriever.cjs.map +1 -1
- package/dist/tools/retriever.js +1 -2
- package/dist/tools/retriever.js.map +1 -1
- package/dist/tools/sql.cjs +9 -10
- package/dist/tools/sql.cjs.map +1 -1
- package/dist/tools/sql.js +1 -2
- package/dist/tools/sql.js.map +1 -1
- package/dist/tools/vectorstore.cjs +3 -4
- package/dist/tools/vectorstore.cjs.map +1 -1
- package/dist/tools/vectorstore.js +1 -2
- package/dist/tools/vectorstore.js.map +1 -1
- package/dist/tools/webbrowser.cjs +10 -11
- package/dist/tools/webbrowser.cjs.map +1 -1
- package/dist/tools/webbrowser.js +1 -2
- package/dist/tools/webbrowser.js.map +1 -1
- package/dist/util/document.cjs +8 -10
- package/dist/util/document.cjs.map +1 -1
- package/dist/util/document.js +1 -2
- package/dist/util/document.js.map +1 -1
- package/dist/util/entrypoint_deprecation.cjs +1 -1
- package/dist/util/entrypoint_deprecation.js +1 -2
- package/dist/util/env.cjs +2 -2
- package/dist/util/env.js +1 -2
- package/dist/util/extname.cjs +1 -2
- package/dist/util/extname.cjs.map +1 -1
- package/dist/util/extname.js +1 -1
- package/dist/util/hub.cjs +4 -5
- package/dist/util/hub.cjs.map +1 -1
- package/dist/util/hub.js +1 -2
- package/dist/util/hub.js.map +1 -1
- package/dist/util/is-network-error/index.cjs +1 -2
- package/dist/util/is-network-error/index.cjs.map +1 -1
- package/dist/util/is-network-error/index.js +1 -1
- 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.js +1 -1
- package/dist/util/math.cjs +14 -14
- package/dist/util/math.js +2 -4
- package/dist/util/ml-distance/distances.cjs +1 -2
- package/dist/util/ml-distance/distances.cjs.map +1 -1
- package/dist/util/ml-distance/distances.js +1 -1
- package/dist/util/ml-distance/similarities.cjs +1 -2
- package/dist/util/ml-distance/similarities.cjs.map +1 -1
- package/dist/util/ml-distance/similarities.js +1 -1
- package/dist/util/ml-distance-euclidean/euclidean.cjs +1 -2
- package/dist/util/ml-distance-euclidean/euclidean.cjs.map +1 -1
- package/dist/util/ml-distance-euclidean/euclidean.js +1 -1
- package/dist/util/openapi.cjs +2 -3
- package/dist/util/openapi.cjs.map +1 -1
- package/dist/util/openapi.js +1 -2
- package/dist/util/openapi.js.map +1 -1
- package/dist/util/p-retry/index.cjs +2 -3
- package/dist/util/p-retry/index.cjs.map +1 -1
- package/dist/util/p-retry/index.js +1 -2
- package/dist/util/p-retry/index.js.map +1 -1
- package/dist/util/parse.cjs +3 -4
- package/dist/util/parse.cjs.map +1 -1
- package/dist/util/parse.js +1 -2
- package/dist/util/parse.js.map +1 -1
- package/dist/util/set.cjs +1 -2
- package/dist/util/set.cjs.map +1 -1
- package/dist/util/set.js +1 -1
- package/dist/util/sql_utils.cjs +2 -3
- package/dist/util/sql_utils.cjs.map +1 -1
- package/dist/util/sql_utils.js +1 -2
- package/dist/util/sql_utils.js.map +1 -1
- package/dist/util/time.cjs +8 -10
- package/dist/util/time.cjs.map +1 -1
- package/dist/util/time.js +1 -2
- package/dist/util/time.js.map +1 -1
- package/dist/vectorstores/memory.cjs +9 -10
- package/dist/vectorstores/memory.cjs.map +1 -1
- package/dist/vectorstores/memory.js +1 -2
- package/dist/vectorstores/memory.js.map +1 -1
- package/package.json +21 -17
- package/agents/format_scratchpad/log.cjs +0 -1
- package/agents/format_scratchpad/log.d.cts +0 -1
- package/agents/format_scratchpad/log.d.ts +0 -1
- package/agents/format_scratchpad/log.js +0 -1
- package/agents/format_scratchpad/log_to_message.cjs +0 -1
- package/agents/format_scratchpad/log_to_message.d.cts +0 -1
- package/agents/format_scratchpad/log_to_message.d.ts +0 -1
- package/agents/format_scratchpad/log_to_message.js +0 -1
- package/agents/format_scratchpad/openai_functions.cjs +0 -1
- package/agents/format_scratchpad/openai_functions.d.cts +0 -1
- package/agents/format_scratchpad/openai_functions.d.ts +0 -1
- package/agents/format_scratchpad/openai_functions.js +0 -1
- package/agents/format_scratchpad/openai_tools.cjs +0 -1
- package/agents/format_scratchpad/openai_tools.d.cts +0 -1
- package/agents/format_scratchpad/openai_tools.d.ts +0 -1
- package/agents/format_scratchpad/openai_tools.js +0 -1
- package/agents/format_scratchpad/xml.cjs +0 -1
- package/agents/format_scratchpad/xml.d.cts +0 -1
- package/agents/format_scratchpad/xml.d.ts +0 -1
- package/agents/format_scratchpad/xml.js +0 -1
- package/agents/load.cjs +0 -1
- package/agents/load.d.cts +0 -1
- package/agents/load.d.ts +0 -1
- package/agents/load.js +0 -1
- package/agents/openai/output_parser.cjs +0 -1
- package/agents/openai/output_parser.d.cts +0 -1
- package/agents/openai/output_parser.d.ts +0 -1
- package/agents/openai/output_parser.js +0 -1
- package/agents/react/output_parser.cjs +0 -1
- package/agents/react/output_parser.d.cts +0 -1
- package/agents/react/output_parser.d.ts +0 -1
- package/agents/react/output_parser.js +0 -1
- package/agents/toolkits/sql.cjs +0 -1
- package/agents/toolkits/sql.d.cts +0 -1
- package/agents/toolkits/sql.d.ts +0 -1
- package/agents/toolkits/sql.js +0 -1
- package/agents/toolkits.cjs +0 -1
- package/agents/toolkits.d.cts +0 -1
- package/agents/toolkits.d.ts +0 -1
- package/agents/toolkits.js +0 -1
- package/agents/xml/output_parser.cjs +0 -1
- package/agents/xml/output_parser.d.cts +0 -1
- package/agents/xml/output_parser.d.ts +0 -1
- package/agents/xml/output_parser.js +0 -1
- package/agents.cjs +0 -1
- package/agents.d.cts +0 -1
- package/agents.d.ts +0 -1
- package/agents.js +0 -1
- package/cache/file_system.cjs +0 -1
- package/cache/file_system.d.cts +0 -1
- package/cache/file_system.d.ts +0 -1
- package/cache/file_system.js +0 -1
- package/callbacks.cjs +0 -1
- package/callbacks.d.cts +0 -1
- package/callbacks.d.ts +0 -1
- package/callbacks.js +0 -1
- package/chains/combine_documents/reduce.cjs +0 -1
- package/chains/combine_documents/reduce.d.cts +0 -1
- package/chains/combine_documents/reduce.d.ts +0 -1
- package/chains/combine_documents/reduce.js +0 -1
- package/chains/combine_documents.cjs +0 -1
- package/chains/combine_documents.d.cts +0 -1
- package/chains/combine_documents.d.ts +0 -1
- package/chains/combine_documents.js +0 -1
- package/chains/graph_qa/cypher.cjs +0 -1
- package/chains/graph_qa/cypher.d.cts +0 -1
- package/chains/graph_qa/cypher.d.ts +0 -1
- package/chains/graph_qa/cypher.js +0 -1
- package/chains/history_aware_retriever.cjs +0 -1
- package/chains/history_aware_retriever.d.cts +0 -1
- package/chains/history_aware_retriever.d.ts +0 -1
- package/chains/history_aware_retriever.js +0 -1
- package/chains/load.cjs +0 -1
- package/chains/load.d.cts +0 -1
- package/chains/load.d.ts +0 -1
- package/chains/load.js +0 -1
- package/chains/openai_functions.cjs +0 -1
- package/chains/openai_functions.d.cts +0 -1
- package/chains/openai_functions.d.ts +0 -1
- package/chains/openai_functions.js +0 -1
- package/chains/query_constructor/ir.cjs +0 -1
- package/chains/query_constructor/ir.d.cts +0 -1
- package/chains/query_constructor/ir.d.ts +0 -1
- package/chains/query_constructor/ir.js +0 -1
- package/chains/query_constructor.cjs +0 -1
- package/chains/query_constructor.d.cts +0 -1
- package/chains/query_constructor.d.ts +0 -1
- package/chains/query_constructor.js +0 -1
- package/chains/retrieval.cjs +0 -1
- package/chains/retrieval.d.cts +0 -1
- package/chains/retrieval.d.ts +0 -1
- package/chains/retrieval.js +0 -1
- package/chains/sql_db.cjs +0 -1
- package/chains/sql_db.d.cts +0 -1
- package/chains/sql_db.d.ts +0 -1
- package/chains/sql_db.js +0 -1
- package/chains.cjs +0 -1
- package/chains.d.cts +0 -1
- package/chains.d.ts +0 -1
- package/chains.js +0 -1
- package/chat_models/universal.cjs +0 -1
- package/chat_models/universal.d.cts +0 -1
- package/chat_models/universal.d.ts +0 -1
- package/chat_models/universal.js +0 -1
- package/document.cjs +0 -1
- package/document.d.cts +0 -1
- package/document.d.ts +0 -1
- package/document.js +0 -1
- package/document_loaders/base.cjs +0 -1
- package/document_loaders/base.d.cts +0 -1
- package/document_loaders/base.d.ts +0 -1
- package/document_loaders/base.js +0 -1
- package/document_loaders/fs/buffer.cjs +0 -1
- package/document_loaders/fs/buffer.d.cts +0 -1
- package/document_loaders/fs/buffer.d.ts +0 -1
- package/document_loaders/fs/buffer.js +0 -1
- package/document_loaders/fs/directory.cjs +0 -1
- package/document_loaders/fs/directory.d.cts +0 -1
- package/document_loaders/fs/directory.d.ts +0 -1
- package/document_loaders/fs/directory.js +0 -1
- package/document_loaders/fs/json.cjs +0 -1
- package/document_loaders/fs/json.d.cts +0 -1
- package/document_loaders/fs/json.d.ts +0 -1
- package/document_loaders/fs/json.js +0 -1
- package/document_loaders/fs/multi_file.cjs +0 -1
- package/document_loaders/fs/multi_file.d.cts +0 -1
- package/document_loaders/fs/multi_file.d.ts +0 -1
- package/document_loaders/fs/multi_file.js +0 -1
- package/document_loaders/fs/text.cjs +0 -1
- package/document_loaders/fs/text.d.cts +0 -1
- package/document_loaders/fs/text.d.ts +0 -1
- package/document_loaders/fs/text.js +0 -1
- package/document_transformers/openai_functions.cjs +0 -1
- package/document_transformers/openai_functions.d.cts +0 -1
- package/document_transformers/openai_functions.d.ts +0 -1
- package/document_transformers/openai_functions.js +0 -1
- package/embeddings/cache_backed.cjs +0 -1
- package/embeddings/cache_backed.d.cts +0 -1
- package/embeddings/cache_backed.d.ts +0 -1
- package/embeddings/cache_backed.js +0 -1
- package/embeddings/fake.cjs +0 -1
- package/embeddings/fake.d.cts +0 -1
- package/embeddings/fake.d.ts +0 -1
- package/embeddings/fake.js +0 -1
- package/evaluation.cjs +0 -1
- package/evaluation.d.cts +0 -1
- package/evaluation.d.ts +0 -1
- package/evaluation.js +0 -1
- package/experimental/autogpt.cjs +0 -1
- package/experimental/autogpt.d.cts +0 -1
- package/experimental/autogpt.d.ts +0 -1
- package/experimental/autogpt.js +0 -1
- package/experimental/babyagi.cjs +0 -1
- package/experimental/babyagi.d.cts +0 -1
- package/experimental/babyagi.d.ts +0 -1
- package/experimental/babyagi.js +0 -1
- package/experimental/chains/violation_of_expectations.cjs +0 -1
- package/experimental/chains/violation_of_expectations.d.cts +0 -1
- package/experimental/chains/violation_of_expectations.d.ts +0 -1
- package/experimental/chains/violation_of_expectations.js +0 -1
- package/experimental/generative_agents.cjs +0 -1
- package/experimental/generative_agents.d.cts +0 -1
- package/experimental/generative_agents.d.ts +0 -1
- package/experimental/generative_agents.js +0 -1
- package/experimental/masking.cjs +0 -1
- package/experimental/masking.d.cts +0 -1
- package/experimental/masking.d.ts +0 -1
- package/experimental/masking.js +0 -1
- package/experimental/openai_assistant.cjs +0 -1
- package/experimental/openai_assistant.d.cts +0 -1
- package/experimental/openai_assistant.d.ts +0 -1
- package/experimental/openai_assistant.js +0 -1
- package/experimental/openai_files.cjs +0 -1
- package/experimental/openai_files.d.cts +0 -1
- package/experimental/openai_files.d.ts +0 -1
- package/experimental/openai_files.js +0 -1
- package/experimental/plan_and_execute.cjs +0 -1
- package/experimental/plan_and_execute.d.cts +0 -1
- package/experimental/plan_and_execute.d.ts +0 -1
- package/experimental/plan_and_execute.js +0 -1
- package/experimental/prompts/custom_format.cjs +0 -1
- package/experimental/prompts/custom_format.d.cts +0 -1
- package/experimental/prompts/custom_format.d.ts +0 -1
- package/experimental/prompts/custom_format.js +0 -1
- package/experimental/prompts/handlebars.cjs +0 -1
- package/experimental/prompts/handlebars.d.cts +0 -1
- package/experimental/prompts/handlebars.d.ts +0 -1
- package/experimental/prompts/handlebars.js +0 -1
- package/hub/node.cjs +0 -1
- package/hub/node.d.cts +0 -1
- package/hub/node.d.ts +0 -1
- package/hub/node.js +0 -1
- package/hub.cjs +0 -1
- package/hub.d.cts +0 -1
- package/hub.d.ts +0 -1
- package/hub.js +0 -1
- package/indexes.cjs +0 -1
- package/indexes.d.cts +0 -1
- package/indexes.d.ts +0 -1
- package/indexes.js +0 -1
- package/load/serializable.cjs +0 -1
- package/load/serializable.d.cts +0 -1
- package/load/serializable.d.ts +0 -1
- package/load/serializable.js +0 -1
- package/load.cjs +0 -1
- package/load.d.cts +0 -1
- package/load.d.ts +0 -1
- package/load.js +0 -1
- package/memory/chat_memory.cjs +0 -1
- package/memory/chat_memory.d.cts +0 -1
- package/memory/chat_memory.d.ts +0 -1
- package/memory/chat_memory.js +0 -1
- package/memory.cjs +0 -1
- package/memory.d.cts +0 -1
- package/memory.d.ts +0 -1
- package/memory.js +0 -1
- package/output_parsers/expression.cjs +0 -1
- package/output_parsers/expression.d.cts +0 -1
- package/output_parsers/expression.d.ts +0 -1
- package/output_parsers/expression.js +0 -1
- package/output_parsers.cjs +0 -1
- package/output_parsers.d.cts +0 -1
- package/output_parsers.d.ts +0 -1
- package/output_parsers.js +0 -1
- package/retrievers/contextual_compression.cjs +0 -1
- package/retrievers/contextual_compression.d.cts +0 -1
- package/retrievers/contextual_compression.d.ts +0 -1
- package/retrievers/contextual_compression.js +0 -1
- package/retrievers/document_compressors/chain_extract.cjs +0 -1
- package/retrievers/document_compressors/chain_extract.d.cts +0 -1
- package/retrievers/document_compressors/chain_extract.d.ts +0 -1
- package/retrievers/document_compressors/chain_extract.js +0 -1
- package/retrievers/document_compressors/embeddings_filter.cjs +0 -1
- package/retrievers/document_compressors/embeddings_filter.d.cts +0 -1
- package/retrievers/document_compressors/embeddings_filter.d.ts +0 -1
- package/retrievers/document_compressors/embeddings_filter.js +0 -1
- package/retrievers/document_compressors.cjs +0 -1
- package/retrievers/document_compressors.d.cts +0 -1
- package/retrievers/document_compressors.d.ts +0 -1
- package/retrievers/document_compressors.js +0 -1
- package/retrievers/ensemble.cjs +0 -1
- package/retrievers/ensemble.d.cts +0 -1
- package/retrievers/ensemble.d.ts +0 -1
- package/retrievers/ensemble.js +0 -1
- package/retrievers/hyde.cjs +0 -1
- package/retrievers/hyde.d.cts +0 -1
- package/retrievers/hyde.d.ts +0 -1
- package/retrievers/hyde.js +0 -1
- package/retrievers/matryoshka_retriever.cjs +0 -1
- package/retrievers/matryoshka_retriever.d.cts +0 -1
- package/retrievers/matryoshka_retriever.d.ts +0 -1
- package/retrievers/matryoshka_retriever.js +0 -1
- package/retrievers/multi_query.cjs +0 -1
- package/retrievers/multi_query.d.cts +0 -1
- package/retrievers/multi_query.d.ts +0 -1
- package/retrievers/multi_query.js +0 -1
- package/retrievers/multi_vector.cjs +0 -1
- package/retrievers/multi_vector.d.cts +0 -1
- package/retrievers/multi_vector.d.ts +0 -1
- package/retrievers/multi_vector.js +0 -1
- package/retrievers/parent_document.cjs +0 -1
- package/retrievers/parent_document.d.cts +0 -1
- package/retrievers/parent_document.d.ts +0 -1
- package/retrievers/parent_document.js +0 -1
- package/retrievers/score_threshold.cjs +0 -1
- package/retrievers/score_threshold.d.cts +0 -1
- package/retrievers/score_threshold.d.ts +0 -1
- package/retrievers/score_threshold.js +0 -1
- package/retrievers/self_query/functional.cjs +0 -1
- package/retrievers/self_query/functional.d.cts +0 -1
- package/retrievers/self_query/functional.d.ts +0 -1
- package/retrievers/self_query/functional.js +0 -1
- package/retrievers/self_query.cjs +0 -1
- package/retrievers/self_query.d.cts +0 -1
- package/retrievers/self_query.d.ts +0 -1
- package/retrievers/self_query.js +0 -1
- package/retrievers/time_weighted.cjs +0 -1
- package/retrievers/time_weighted.d.cts +0 -1
- package/retrievers/time_weighted.d.ts +0 -1
- package/retrievers/time_weighted.js +0 -1
- package/schema/prompt_template.cjs +0 -1
- package/schema/prompt_template.d.cts +0 -1
- package/schema/prompt_template.d.ts +0 -1
- package/schema/prompt_template.js +0 -1
- package/schema/query_constructor.cjs +0 -1
- package/schema/query_constructor.d.cts +0 -1
- package/schema/query_constructor.d.ts +0 -1
- package/schema/query_constructor.js +0 -1
- package/smith.cjs +0 -1
- package/smith.d.cts +0 -1
- package/smith.d.ts +0 -1
- package/smith.js +0 -1
- package/sql_db.cjs +0 -1
- package/sql_db.d.cts +0 -1
- package/sql_db.d.ts +0 -1
- package/sql_db.js +0 -1
- package/storage/encoder_backed.cjs +0 -1
- package/storage/encoder_backed.d.cts +0 -1
- package/storage/encoder_backed.d.ts +0 -1
- package/storage/encoder_backed.js +0 -1
- package/storage/file_system.cjs +0 -1
- package/storage/file_system.d.cts +0 -1
- package/storage/file_system.d.ts +0 -1
- package/storage/file_system.js +0 -1
- package/storage/in_memory.cjs +0 -1
- package/storage/in_memory.d.cts +0 -1
- package/storage/in_memory.d.ts +0 -1
- package/storage/in_memory.js +0 -1
- package/stores/doc/base.cjs +0 -1
- package/stores/doc/base.d.cts +0 -1
- package/stores/doc/base.d.ts +0 -1
- package/stores/doc/base.js +0 -1
- package/stores/doc/in_memory.cjs +0 -1
- package/stores/doc/in_memory.d.cts +0 -1
- package/stores/doc/in_memory.d.ts +0 -1
- package/stores/doc/in_memory.js +0 -1
- package/stores/file/in_memory.cjs +0 -1
- package/stores/file/in_memory.d.cts +0 -1
- package/stores/file/in_memory.d.ts +0 -1
- package/stores/file/in_memory.js +0 -1
- package/stores/file/node.cjs +0 -1
- package/stores/file/node.d.cts +0 -1
- package/stores/file/node.d.ts +0 -1
- package/stores/file/node.js +0 -1
- package/stores/message/in_memory.cjs +0 -1
- package/stores/message/in_memory.d.cts +0 -1
- package/stores/message/in_memory.d.ts +0 -1
- package/stores/message/in_memory.js +0 -1
- package/text_splitter.cjs +0 -1
- package/text_splitter.d.cts +0 -1
- package/text_splitter.d.ts +0 -1
- package/text_splitter.js +0 -1
- package/tools/chain.cjs +0 -1
- package/tools/chain.d.cts +0 -1
- package/tools/chain.d.ts +0 -1
- package/tools/chain.js +0 -1
- package/tools/render.cjs +0 -1
- package/tools/render.d.cts +0 -1
- package/tools/render.d.ts +0 -1
- package/tools/render.js +0 -1
- package/tools/retriever.cjs +0 -1
- package/tools/retriever.d.cts +0 -1
- package/tools/retriever.d.ts +0 -1
- package/tools/retriever.js +0 -1
- package/tools/sql.cjs +0 -1
- package/tools/sql.d.cts +0 -1
- package/tools/sql.d.ts +0 -1
- package/tools/sql.js +0 -1
- package/tools/webbrowser.cjs +0 -1
- package/tools/webbrowser.d.cts +0 -1
- package/tools/webbrowser.d.ts +0 -1
- package/tools/webbrowser.js +0 -1
- package/tools.cjs +0 -1
- package/tools.d.cts +0 -1
- package/tools.d.ts +0 -1
- package/tools.js +0 -1
- package/util/document.cjs +0 -1
- package/util/document.d.cts +0 -1
- package/util/document.d.ts +0 -1
- package/util/document.js +0 -1
- package/util/math.cjs +0 -1
- package/util/math.d.cts +0 -1
- package/util/math.d.ts +0 -1
- package/util/math.js +0 -1
- package/util/time.cjs +0 -1
- package/util/time.d.cts +0 -1
- package/util/time.d.ts +0 -1
- package/util/time.js +0 -1
- package/vectorstores/memory.cjs +0 -1
- package/vectorstores/memory.d.cts +0 -1
- package/vectorstores/memory.d.ts +0 -1
- package/vectorstores/memory.js +0 -1
package/dist/chains/retrieval.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { __exportAll } from "../_virtual/_rolldown/runtime.js";
|
|
2
2
|
import { RunnablePassthrough, RunnableSequence } from "@langchain/core/runnables";
|
|
3
|
-
|
|
4
3
|
//#region src/chains/retrieval.ts
|
|
5
4
|
var retrieval_exports = /* @__PURE__ */ __exportAll({ createRetrievalChain: () => createRetrievalChain });
|
|
6
5
|
function isBaseRetriever(x) {
|
|
@@ -41,7 +40,7 @@ async function createRetrievalChain({ retriever, combineDocsChain }) {
|
|
|
41
40
|
chat_history: (input) => input.chat_history ?? []
|
|
42
41
|
}), RunnablePassthrough.assign({ answer: combineDocsChain })]).withConfig({ runName: "retrieval_chain" });
|
|
43
42
|
}
|
|
44
|
-
|
|
45
43
|
//#endregion
|
|
46
44
|
export { createRetrievalChain, retrieval_exports };
|
|
45
|
+
|
|
47
46
|
//# sourceMappingURL=retrieval.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retrieval.js","names":[],"sources":["../../src/chains/retrieval.ts"],"sourcesContent":["import type { BaseRetrieverInterface } from \"@langchain/core/retrievers\";\nimport {\n type Runnable,\n RunnableSequence,\n type RunnableInterface,\n RunnablePassthrough,\n} from \"@langchain/core/runnables\";\nimport type { BaseMessage } from \"@langchain/core/messages\";\nimport type { DocumentInterface, Document } from \"@langchain/core/documents\";\n\n/**\n * Parameters for the createRetrievalChain method.\n */\nexport type CreateRetrievalChainParams<RunOutput> = {\n /**\n * Retriever-like object that returns list of documents. Should\n * either be a subclass of BaseRetriever or a Runnable that returns\n * a list of documents. If a subclass of BaseRetriever, then it\n * is expected that an `input` key be passed in - this is what\n * is will be used to pass into the retriever. If this is NOT a\n * subclass of BaseRetriever, then all the inputs will be passed\n * into this runnable, meaning that runnable should take a object\n * as input.\n */\n retriever:\n | BaseRetrieverInterface\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | RunnableInterface<Record<string, any>, DocumentInterface[]>;\n /**\n * Runnable that takes inputs and produces a string output.\n * The inputs to this will be any original inputs to this chain, a new\n * context key with the retrieved documents, and chat_history (if not present\n * in the inputs) with a value of `[]` (to easily enable conversational\n * retrieval).\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n combineDocsChain: RunnableInterface<Record<string, any>, RunOutput>;\n};\n\nfunction isBaseRetriever(x: unknown): x is BaseRetrieverInterface {\n return !!x && typeof (x as BaseRetrieverInterface).invoke === \"function\";\n}\n\n/**\n * Create a retrieval chain that retrieves documents and then passes them on.\n * @param {CreateRetrievalChainParams} params A params object\n * containing a retriever and a combineDocsChain.\n * @returns An LCEL Runnable which returns a an object\n * containing at least `context` and `answer` keys.\n * @example\n * ```typescript\n * // pnpm add langchain @langchain/openai\n *\n * import { ChatOpenAI } from \"@langchain/openai\";\n * import { pull } from \"langchain/hub\";\n * import { createRetrievalChain } from \"@langchain/classic/chains/retrieval\";\n * import { createStuffDocumentsChain } from \"@langchain/classic/chains/combine_documents\";\n *\n * const retrievalQAChatPrompt = await pull(\"langchain-ai/retrieval-qa-chat\");\n * const llm = new ChatOpenAI({ model: \"gpt-4o-mini\" });\n * const retriever = ...\n * const combineDocsChain = await createStuffDocumentsChain(...);\n * const retrievalChain = await createRetrievalChain({\n * retriever,\n * combineDocsChain,\n * });\n * const response = await chain.invoke({ input: \"...\" });\n * ```\n */\nexport async function createRetrievalChain<RunOutput>({\n retriever,\n combineDocsChain,\n}: CreateRetrievalChainParams<RunOutput>): Promise<\n Runnable<\n { input: string; chat_history?: BaseMessage[] | string } & {\n [key: string]: unknown;\n },\n { context: Document[]; answer: RunOutput } & { [key: string]: unknown }\n >\n> {\n let retrieveDocumentsChain: Runnable<{ input: string }, DocumentInterface[]>;\n if (isBaseRetriever(retriever)) {\n retrieveDocumentsChain = RunnableSequence.from([\n (input) => input.input,\n retriever,\n ]);\n } else {\n // TODO: Fix typing by adding withConfig to core RunnableInterface\n retrieveDocumentsChain = retriever as Runnable;\n }\n const retrievalChain = RunnableSequence.from<{\n input: string;\n chat_history?: BaseMessage[] | string;\n }>([\n RunnablePassthrough.assign({\n context: retrieveDocumentsChain.withConfig({\n runName: \"retrieve_documents\",\n }),\n chat_history: (input) => input.chat_history ?? [],\n }),\n RunnablePassthrough.assign({\n answer: combineDocsChain,\n }),\n ]).withConfig({ runName: \"retrieval_chain\" });\n return retrievalChain;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"retrieval.js","names":[],"sources":["../../src/chains/retrieval.ts"],"sourcesContent":["import type { BaseRetrieverInterface } from \"@langchain/core/retrievers\";\nimport {\n type Runnable,\n RunnableSequence,\n type RunnableInterface,\n RunnablePassthrough,\n} from \"@langchain/core/runnables\";\nimport type { BaseMessage } from \"@langchain/core/messages\";\nimport type { DocumentInterface, Document } from \"@langchain/core/documents\";\n\n/**\n * Parameters for the createRetrievalChain method.\n */\nexport type CreateRetrievalChainParams<RunOutput> = {\n /**\n * Retriever-like object that returns list of documents. Should\n * either be a subclass of BaseRetriever or a Runnable that returns\n * a list of documents. If a subclass of BaseRetriever, then it\n * is expected that an `input` key be passed in - this is what\n * is will be used to pass into the retriever. If this is NOT a\n * subclass of BaseRetriever, then all the inputs will be passed\n * into this runnable, meaning that runnable should take a object\n * as input.\n */\n retriever:\n | BaseRetrieverInterface\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n | RunnableInterface<Record<string, any>, DocumentInterface[]>;\n /**\n * Runnable that takes inputs and produces a string output.\n * The inputs to this will be any original inputs to this chain, a new\n * context key with the retrieved documents, and chat_history (if not present\n * in the inputs) with a value of `[]` (to easily enable conversational\n * retrieval).\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n combineDocsChain: RunnableInterface<Record<string, any>, RunOutput>;\n};\n\nfunction isBaseRetriever(x: unknown): x is BaseRetrieverInterface {\n return !!x && typeof (x as BaseRetrieverInterface).invoke === \"function\";\n}\n\n/**\n * Create a retrieval chain that retrieves documents and then passes them on.\n * @param {CreateRetrievalChainParams} params A params object\n * containing a retriever and a combineDocsChain.\n * @returns An LCEL Runnable which returns a an object\n * containing at least `context` and `answer` keys.\n * @example\n * ```typescript\n * // pnpm add langchain @langchain/openai\n *\n * import { ChatOpenAI } from \"@langchain/openai\";\n * import { pull } from \"langchain/hub\";\n * import { createRetrievalChain } from \"@langchain/classic/chains/retrieval\";\n * import { createStuffDocumentsChain } from \"@langchain/classic/chains/combine_documents\";\n *\n * const retrievalQAChatPrompt = await pull(\"langchain-ai/retrieval-qa-chat\");\n * const llm = new ChatOpenAI({ model: \"gpt-4o-mini\" });\n * const retriever = ...\n * const combineDocsChain = await createStuffDocumentsChain(...);\n * const retrievalChain = await createRetrievalChain({\n * retriever,\n * combineDocsChain,\n * });\n * const response = await chain.invoke({ input: \"...\" });\n * ```\n */\nexport async function createRetrievalChain<RunOutput>({\n retriever,\n combineDocsChain,\n}: CreateRetrievalChainParams<RunOutput>): Promise<\n Runnable<\n { input: string; chat_history?: BaseMessage[] | string } & {\n [key: string]: unknown;\n },\n { context: Document[]; answer: RunOutput } & { [key: string]: unknown }\n >\n> {\n let retrieveDocumentsChain: Runnable<{ input: string }, DocumentInterface[]>;\n if (isBaseRetriever(retriever)) {\n retrieveDocumentsChain = RunnableSequence.from([\n (input) => input.input,\n retriever,\n ]);\n } else {\n // TODO: Fix typing by adding withConfig to core RunnableInterface\n retrieveDocumentsChain = retriever as Runnable;\n }\n const retrievalChain = RunnableSequence.from<{\n input: string;\n chat_history?: BaseMessage[] | string;\n }>([\n RunnablePassthrough.assign({\n context: retrieveDocumentsChain.withConfig({\n runName: \"retrieve_documents\",\n }),\n chat_history: (input) => input.chat_history ?? [],\n }),\n RunnablePassthrough.assign({\n answer: combineDocsChain,\n }),\n ]).withConfig({ runName: \"retrieval_chain\" });\n return retrievalChain;\n}\n"],"mappings":";;;;AAuCA,SAAS,gBAAgB,GAAyC;AAChE,QAAO,CAAC,CAAC,KAAK,OAAQ,EAA6B,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6BhE,eAAsB,qBAAgC,EACpD,WACA,oBAQA;CACA,IAAI;AACJ,KAAI,gBAAgB,UAAU,CAC5B,0BAAyB,iBAAiB,KAAK,EAC5C,UAAU,MAAM,OACjB,UACD,CAAC;KAGF,0BAAyB;AAgB3B,QAduB,iBAAiB,KAGrC,CACD,oBAAoB,OAAO;EACzB,SAAS,uBAAuB,WAAW,EACzC,SAAS,sBACV,CAAC;EACF,eAAe,UAAU,MAAM,gBAAgB,EAAE;EAClD,CAAC,EACF,oBAAoB,OAAO,EACzB,QAAQ,kBACT,CAAC,CACH,CAAC,CAAC,WAAW,EAAE,SAAS,mBAAmB,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
const require_base = require(
|
|
2
|
-
const require_load = require(
|
|
3
|
-
|
|
1
|
+
const require_base = require("./base.cjs");
|
|
2
|
+
const require_load = require("./question_answering/load.cjs");
|
|
4
3
|
//#region src/chains/retrieval_qa.ts
|
|
5
4
|
/**
|
|
6
5
|
* Class representing a chain for performing question-answering tasks with
|
|
@@ -98,7 +97,7 @@ var RetrievalQAChain = class extends require_base.BaseChain {
|
|
|
98
97
|
});
|
|
99
98
|
}
|
|
100
99
|
};
|
|
101
|
-
|
|
102
100
|
//#endregion
|
|
103
101
|
exports.RetrievalQAChain = RetrievalQAChain;
|
|
102
|
+
|
|
104
103
|
//# sourceMappingURL=retrieval_qa.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retrieval_qa.cjs","names":["BaseChain","loadQAStuffChain"],"sources":["../../src/chains/retrieval_qa.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport type { BaseRetrieverInterface } from \"@langchain/core/retrievers\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { CallbackManagerForChainRun } from \"@langchain/core/callbacks/manager\";\nimport { BaseChain, ChainInputs } from \"./base.js\";\nimport { SerializedVectorDBQAChain } from \"./serde.js\";\nimport {\n StuffQAChainParams,\n loadQAStuffChain,\n} from \"./question_answering/load.js\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type LoadValues = Record<string, any>;\n\n/**\n * Interface for the input parameters of the RetrievalQAChain class.\n */\nexport interface RetrievalQAChainInput extends Omit<ChainInputs, \"memory\"> {\n retriever: BaseRetrieverInterface;\n combineDocumentsChain: BaseChain;\n inputKey?: string;\n returnSourceDocuments?: boolean;\n}\n\n/**\n * Class representing a chain for performing question-answering tasks with\n * a retrieval component.\n * @example\n * ```typescript\n * import { createStuffDocumentsChain } from \"@langchain/classic/chains/combine_documents\";\n * import { ChatPromptTemplate } from \"@langchain/core/prompts\";\n * import { createRetrievalChain } from \"@langchain/classic/chains/retrieval\";\n * import { MemoryVectorStore } from \"@langchain/classic/vectorstores/memory\";\n *\n * const documents = [...your documents here];\n * const embeddings = ...your embeddings model;\n * const llm = ...your LLM model;\n *\n * const vectorstore = await MemoryVectorStore.fromDocuments(\n * documents,\n * embeddings\n * );\n * const prompt = ChatPromptTemplate.fromTemplate(`Answer the user's question: {input} based on the following context {context}`);\n *\n * const combineDocsChain = await createStuffDocumentsChain({\n * llm,\n * prompt,\n * });\n * const retriever = vectorstore.asRetriever();\n *\n * const retrievalChain = await createRetrievalChain({\n * combineDocsChain,\n * retriever,\n * });\n * ```\n */\nexport class RetrievalQAChain\n extends BaseChain\n implements RetrievalQAChainInput\n{\n static lc_name() {\n return \"RetrievalQAChain\";\n }\n\n inputKey = \"query\";\n\n get inputKeys() {\n return [this.inputKey];\n }\n\n get outputKeys() {\n return this.combineDocumentsChain.outputKeys.concat(\n this.returnSourceDocuments ? [\"sourceDocuments\"] : []\n );\n }\n\n retriever: BaseRetrieverInterface;\n\n combineDocumentsChain: BaseChain;\n\n returnSourceDocuments = false;\n\n constructor(fields: RetrievalQAChainInput) {\n super(fields);\n this.retriever = fields.retriever;\n this.combineDocumentsChain = fields.combineDocumentsChain;\n this.inputKey = fields.inputKey ?? this.inputKey;\n this.returnSourceDocuments =\n fields.returnSourceDocuments ?? this.returnSourceDocuments;\n }\n\n /** @ignore */\n async _call(\n values: ChainValues,\n runManager?: CallbackManagerForChainRun\n ): Promise<ChainValues> {\n if (!(this.inputKey in values)) {\n throw new Error(`Question key \"${this.inputKey}\" not found.`);\n }\n const question: string = values[this.inputKey];\n const docs = await this.retriever.invoke(\n question,\n runManager?.getChild(\"retriever\")\n );\n const inputs = { question, input_documents: docs, ...values };\n const result = await this.combineDocumentsChain.call(\n inputs,\n runManager?.getChild(\"combine_documents\")\n );\n if (this.returnSourceDocuments) {\n return {\n ...result,\n sourceDocuments: docs,\n };\n }\n return result;\n }\n\n _chainType() {\n return \"retrieval_qa\" as const;\n }\n\n static async deserialize(\n _data: SerializedVectorDBQAChain,\n _values: LoadValues\n ): Promise<RetrievalQAChain> {\n throw new Error(\"Not implemented\");\n }\n\n serialize(): SerializedVectorDBQAChain {\n throw new Error(\"Not implemented\");\n }\n\n /**\n * Creates a new instance of RetrievalQAChain using a BaseLanguageModel\n * and a BaseRetriever.\n * @param llm The BaseLanguageModel used to generate a new question.\n * @param retriever The BaseRetriever used to retrieve relevant documents.\n * @param options Optional parameters for the RetrievalQAChain.\n * @returns A new instance of RetrievalQAChain.\n */\n static fromLLM(\n llm: BaseLanguageModelInterface,\n retriever: BaseRetrieverInterface,\n options?: Partial<\n Omit<\n RetrievalQAChainInput,\n \"retriever\" | \"combineDocumentsChain\" | \"index\"\n >\n > &\n StuffQAChainParams\n ): RetrievalQAChain {\n const qaChain = loadQAStuffChain(llm, {\n prompt: options?.prompt,\n });\n return new this({\n ...options,\n retriever,\n combineDocumentsChain: qaChain,\n });\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"retrieval_qa.cjs","names":["BaseChain","loadQAStuffChain"],"sources":["../../src/chains/retrieval_qa.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport type { BaseRetrieverInterface } from \"@langchain/core/retrievers\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { CallbackManagerForChainRun } from \"@langchain/core/callbacks/manager\";\nimport { BaseChain, ChainInputs } from \"./base.js\";\nimport { SerializedVectorDBQAChain } from \"./serde.js\";\nimport {\n StuffQAChainParams,\n loadQAStuffChain,\n} from \"./question_answering/load.js\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type LoadValues = Record<string, any>;\n\n/**\n * Interface for the input parameters of the RetrievalQAChain class.\n */\nexport interface RetrievalQAChainInput extends Omit<ChainInputs, \"memory\"> {\n retriever: BaseRetrieverInterface;\n combineDocumentsChain: BaseChain;\n inputKey?: string;\n returnSourceDocuments?: boolean;\n}\n\n/**\n * Class representing a chain for performing question-answering tasks with\n * a retrieval component.\n * @example\n * ```typescript\n * import { createStuffDocumentsChain } from \"@langchain/classic/chains/combine_documents\";\n * import { ChatPromptTemplate } from \"@langchain/core/prompts\";\n * import { createRetrievalChain } from \"@langchain/classic/chains/retrieval\";\n * import { MemoryVectorStore } from \"@langchain/classic/vectorstores/memory\";\n *\n * const documents = [...your documents here];\n * const embeddings = ...your embeddings model;\n * const llm = ...your LLM model;\n *\n * const vectorstore = await MemoryVectorStore.fromDocuments(\n * documents,\n * embeddings\n * );\n * const prompt = ChatPromptTemplate.fromTemplate(`Answer the user's question: {input} based on the following context {context}`);\n *\n * const combineDocsChain = await createStuffDocumentsChain({\n * llm,\n * prompt,\n * });\n * const retriever = vectorstore.asRetriever();\n *\n * const retrievalChain = await createRetrievalChain({\n * combineDocsChain,\n * retriever,\n * });\n * ```\n */\nexport class RetrievalQAChain\n extends BaseChain\n implements RetrievalQAChainInput\n{\n static lc_name() {\n return \"RetrievalQAChain\";\n }\n\n inputKey = \"query\";\n\n get inputKeys() {\n return [this.inputKey];\n }\n\n get outputKeys() {\n return this.combineDocumentsChain.outputKeys.concat(\n this.returnSourceDocuments ? [\"sourceDocuments\"] : []\n );\n }\n\n retriever: BaseRetrieverInterface;\n\n combineDocumentsChain: BaseChain;\n\n returnSourceDocuments = false;\n\n constructor(fields: RetrievalQAChainInput) {\n super(fields);\n this.retriever = fields.retriever;\n this.combineDocumentsChain = fields.combineDocumentsChain;\n this.inputKey = fields.inputKey ?? this.inputKey;\n this.returnSourceDocuments =\n fields.returnSourceDocuments ?? this.returnSourceDocuments;\n }\n\n /** @ignore */\n async _call(\n values: ChainValues,\n runManager?: CallbackManagerForChainRun\n ): Promise<ChainValues> {\n if (!(this.inputKey in values)) {\n throw new Error(`Question key \"${this.inputKey}\" not found.`);\n }\n const question: string = values[this.inputKey];\n const docs = await this.retriever.invoke(\n question,\n runManager?.getChild(\"retriever\")\n );\n const inputs = { question, input_documents: docs, ...values };\n const result = await this.combineDocumentsChain.call(\n inputs,\n runManager?.getChild(\"combine_documents\")\n );\n if (this.returnSourceDocuments) {\n return {\n ...result,\n sourceDocuments: docs,\n };\n }\n return result;\n }\n\n _chainType() {\n return \"retrieval_qa\" as const;\n }\n\n static async deserialize(\n _data: SerializedVectorDBQAChain,\n _values: LoadValues\n ): Promise<RetrievalQAChain> {\n throw new Error(\"Not implemented\");\n }\n\n serialize(): SerializedVectorDBQAChain {\n throw new Error(\"Not implemented\");\n }\n\n /**\n * Creates a new instance of RetrievalQAChain using a BaseLanguageModel\n * and a BaseRetriever.\n * @param llm The BaseLanguageModel used to generate a new question.\n * @param retriever The BaseRetriever used to retrieve relevant documents.\n * @param options Optional parameters for the RetrievalQAChain.\n * @returns A new instance of RetrievalQAChain.\n */\n static fromLLM(\n llm: BaseLanguageModelInterface,\n retriever: BaseRetrieverInterface,\n options?: Partial<\n Omit<\n RetrievalQAChainInput,\n \"retriever\" | \"combineDocumentsChain\" | \"index\"\n >\n > &\n StuffQAChainParams\n ): RetrievalQAChain {\n const qaChain = loadQAStuffChain(llm, {\n prompt: options?.prompt,\n });\n return new this({\n ...options,\n retriever,\n combineDocumentsChain: qaChain,\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA,IAAa,mBAAb,cACUA,aAAAA,UAEV;CACE,OAAO,UAAU;AACf,SAAO;;CAGT,WAAW;CAEX,IAAI,YAAY;AACd,SAAO,CAAC,KAAK,SAAS;;CAGxB,IAAI,aAAa;AACf,SAAO,KAAK,sBAAsB,WAAW,OAC3C,KAAK,wBAAwB,CAAC,kBAAkB,GAAG,EAAE,CACtD;;CAGH;CAEA;CAEA,wBAAwB;CAExB,YAAY,QAA+B;AACzC,QAAM,OAAO;AACb,OAAK,YAAY,OAAO;AACxB,OAAK,wBAAwB,OAAO;AACpC,OAAK,WAAW,OAAO,YAAY,KAAK;AACxC,OAAK,wBACH,OAAO,yBAAyB,KAAK;;;CAIzC,MAAM,MACJ,QACA,YACsB;AACtB,MAAI,EAAE,KAAK,YAAY,QACrB,OAAM,IAAI,MAAM,iBAAiB,KAAK,SAAS,cAAc;EAE/D,MAAM,WAAmB,OAAO,KAAK;EACrC,MAAM,OAAO,MAAM,KAAK,UAAU,OAChC,UACA,YAAY,SAAS,YAAY,CAClC;EACD,MAAM,SAAS;GAAE;GAAU,iBAAiB;GAAM,GAAG;GAAQ;EAC7D,MAAM,SAAS,MAAM,KAAK,sBAAsB,KAC9C,QACA,YAAY,SAAS,oBAAoB,CAC1C;AACD,MAAI,KAAK,sBACP,QAAO;GACL,GAAG;GACH,iBAAiB;GAClB;AAEH,SAAO;;CAGT,aAAa;AACX,SAAO;;CAGT,aAAa,YACX,OACA,SAC2B;AAC3B,QAAM,IAAI,MAAM,kBAAkB;;CAGpC,YAAuC;AACrC,QAAM,IAAI,MAAM,kBAAkB;;;;;;;;;;CAWpC,OAAO,QACL,KACA,WACA,SAOkB;EAClB,MAAM,UAAUC,aAAAA,iBAAiB,KAAK,EACpC,QAAQ,SAAS,QAClB,CAAC;AACF,SAAO,IAAI,KAAK;GACd,GAAG;GACH;GACA,uBAAuB;GACxB,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { BaseChain } from "./base.js";
|
|
2
2
|
import { loadQAStuffChain } from "./question_answering/load.js";
|
|
3
|
-
|
|
4
3
|
//#region src/chains/retrieval_qa.ts
|
|
5
4
|
/**
|
|
6
5
|
* Class representing a chain for performing question-answering tasks with
|
|
@@ -98,7 +97,7 @@ var RetrievalQAChain = class extends BaseChain {
|
|
|
98
97
|
});
|
|
99
98
|
}
|
|
100
99
|
};
|
|
101
|
-
|
|
102
100
|
//#endregion
|
|
103
101
|
export { RetrievalQAChain };
|
|
102
|
+
|
|
104
103
|
//# sourceMappingURL=retrieval_qa.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retrieval_qa.js","names":[],"sources":["../../src/chains/retrieval_qa.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport type { BaseRetrieverInterface } from \"@langchain/core/retrievers\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { CallbackManagerForChainRun } from \"@langchain/core/callbacks/manager\";\nimport { BaseChain, ChainInputs } from \"./base.js\";\nimport { SerializedVectorDBQAChain } from \"./serde.js\";\nimport {\n StuffQAChainParams,\n loadQAStuffChain,\n} from \"./question_answering/load.js\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type LoadValues = Record<string, any>;\n\n/**\n * Interface for the input parameters of the RetrievalQAChain class.\n */\nexport interface RetrievalQAChainInput extends Omit<ChainInputs, \"memory\"> {\n retriever: BaseRetrieverInterface;\n combineDocumentsChain: BaseChain;\n inputKey?: string;\n returnSourceDocuments?: boolean;\n}\n\n/**\n * Class representing a chain for performing question-answering tasks with\n * a retrieval component.\n * @example\n * ```typescript\n * import { createStuffDocumentsChain } from \"@langchain/classic/chains/combine_documents\";\n * import { ChatPromptTemplate } from \"@langchain/core/prompts\";\n * import { createRetrievalChain } from \"@langchain/classic/chains/retrieval\";\n * import { MemoryVectorStore } from \"@langchain/classic/vectorstores/memory\";\n *\n * const documents = [...your documents here];\n * const embeddings = ...your embeddings model;\n * const llm = ...your LLM model;\n *\n * const vectorstore = await MemoryVectorStore.fromDocuments(\n * documents,\n * embeddings\n * );\n * const prompt = ChatPromptTemplate.fromTemplate(`Answer the user's question: {input} based on the following context {context}`);\n *\n * const combineDocsChain = await createStuffDocumentsChain({\n * llm,\n * prompt,\n * });\n * const retriever = vectorstore.asRetriever();\n *\n * const retrievalChain = await createRetrievalChain({\n * combineDocsChain,\n * retriever,\n * });\n * ```\n */\nexport class RetrievalQAChain\n extends BaseChain\n implements RetrievalQAChainInput\n{\n static lc_name() {\n return \"RetrievalQAChain\";\n }\n\n inputKey = \"query\";\n\n get inputKeys() {\n return [this.inputKey];\n }\n\n get outputKeys() {\n return this.combineDocumentsChain.outputKeys.concat(\n this.returnSourceDocuments ? [\"sourceDocuments\"] : []\n );\n }\n\n retriever: BaseRetrieverInterface;\n\n combineDocumentsChain: BaseChain;\n\n returnSourceDocuments = false;\n\n constructor(fields: RetrievalQAChainInput) {\n super(fields);\n this.retriever = fields.retriever;\n this.combineDocumentsChain = fields.combineDocumentsChain;\n this.inputKey = fields.inputKey ?? this.inputKey;\n this.returnSourceDocuments =\n fields.returnSourceDocuments ?? this.returnSourceDocuments;\n }\n\n /** @ignore */\n async _call(\n values: ChainValues,\n runManager?: CallbackManagerForChainRun\n ): Promise<ChainValues> {\n if (!(this.inputKey in values)) {\n throw new Error(`Question key \"${this.inputKey}\" not found.`);\n }\n const question: string = values[this.inputKey];\n const docs = await this.retriever.invoke(\n question,\n runManager?.getChild(\"retriever\")\n );\n const inputs = { question, input_documents: docs, ...values };\n const result = await this.combineDocumentsChain.call(\n inputs,\n runManager?.getChild(\"combine_documents\")\n );\n if (this.returnSourceDocuments) {\n return {\n ...result,\n sourceDocuments: docs,\n };\n }\n return result;\n }\n\n _chainType() {\n return \"retrieval_qa\" as const;\n }\n\n static async deserialize(\n _data: SerializedVectorDBQAChain,\n _values: LoadValues\n ): Promise<RetrievalQAChain> {\n throw new Error(\"Not implemented\");\n }\n\n serialize(): SerializedVectorDBQAChain {\n throw new Error(\"Not implemented\");\n }\n\n /**\n * Creates a new instance of RetrievalQAChain using a BaseLanguageModel\n * and a BaseRetriever.\n * @param llm The BaseLanguageModel used to generate a new question.\n * @param retriever The BaseRetriever used to retrieve relevant documents.\n * @param options Optional parameters for the RetrievalQAChain.\n * @returns A new instance of RetrievalQAChain.\n */\n static fromLLM(\n llm: BaseLanguageModelInterface,\n retriever: BaseRetrieverInterface,\n options?: Partial<\n Omit<\n RetrievalQAChainInput,\n \"retriever\" | \"combineDocumentsChain\" | \"index\"\n >\n > &\n StuffQAChainParams\n ): RetrievalQAChain {\n const qaChain = loadQAStuffChain(llm, {\n prompt: options?.prompt,\n });\n return new this({\n ...options,\n retriever,\n combineDocumentsChain: qaChain,\n });\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"retrieval_qa.js","names":[],"sources":["../../src/chains/retrieval_qa.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport type { BaseRetrieverInterface } from \"@langchain/core/retrievers\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { CallbackManagerForChainRun } from \"@langchain/core/callbacks/manager\";\nimport { BaseChain, ChainInputs } from \"./base.js\";\nimport { SerializedVectorDBQAChain } from \"./serde.js\";\nimport {\n StuffQAChainParams,\n loadQAStuffChain,\n} from \"./question_answering/load.js\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type LoadValues = Record<string, any>;\n\n/**\n * Interface for the input parameters of the RetrievalQAChain class.\n */\nexport interface RetrievalQAChainInput extends Omit<ChainInputs, \"memory\"> {\n retriever: BaseRetrieverInterface;\n combineDocumentsChain: BaseChain;\n inputKey?: string;\n returnSourceDocuments?: boolean;\n}\n\n/**\n * Class representing a chain for performing question-answering tasks with\n * a retrieval component.\n * @example\n * ```typescript\n * import { createStuffDocumentsChain } from \"@langchain/classic/chains/combine_documents\";\n * import { ChatPromptTemplate } from \"@langchain/core/prompts\";\n * import { createRetrievalChain } from \"@langchain/classic/chains/retrieval\";\n * import { MemoryVectorStore } from \"@langchain/classic/vectorstores/memory\";\n *\n * const documents = [...your documents here];\n * const embeddings = ...your embeddings model;\n * const llm = ...your LLM model;\n *\n * const vectorstore = await MemoryVectorStore.fromDocuments(\n * documents,\n * embeddings\n * );\n * const prompt = ChatPromptTemplate.fromTemplate(`Answer the user's question: {input} based on the following context {context}`);\n *\n * const combineDocsChain = await createStuffDocumentsChain({\n * llm,\n * prompt,\n * });\n * const retriever = vectorstore.asRetriever();\n *\n * const retrievalChain = await createRetrievalChain({\n * combineDocsChain,\n * retriever,\n * });\n * ```\n */\nexport class RetrievalQAChain\n extends BaseChain\n implements RetrievalQAChainInput\n{\n static lc_name() {\n return \"RetrievalQAChain\";\n }\n\n inputKey = \"query\";\n\n get inputKeys() {\n return [this.inputKey];\n }\n\n get outputKeys() {\n return this.combineDocumentsChain.outputKeys.concat(\n this.returnSourceDocuments ? [\"sourceDocuments\"] : []\n );\n }\n\n retriever: BaseRetrieverInterface;\n\n combineDocumentsChain: BaseChain;\n\n returnSourceDocuments = false;\n\n constructor(fields: RetrievalQAChainInput) {\n super(fields);\n this.retriever = fields.retriever;\n this.combineDocumentsChain = fields.combineDocumentsChain;\n this.inputKey = fields.inputKey ?? this.inputKey;\n this.returnSourceDocuments =\n fields.returnSourceDocuments ?? this.returnSourceDocuments;\n }\n\n /** @ignore */\n async _call(\n values: ChainValues,\n runManager?: CallbackManagerForChainRun\n ): Promise<ChainValues> {\n if (!(this.inputKey in values)) {\n throw new Error(`Question key \"${this.inputKey}\" not found.`);\n }\n const question: string = values[this.inputKey];\n const docs = await this.retriever.invoke(\n question,\n runManager?.getChild(\"retriever\")\n );\n const inputs = { question, input_documents: docs, ...values };\n const result = await this.combineDocumentsChain.call(\n inputs,\n runManager?.getChild(\"combine_documents\")\n );\n if (this.returnSourceDocuments) {\n return {\n ...result,\n sourceDocuments: docs,\n };\n }\n return result;\n }\n\n _chainType() {\n return \"retrieval_qa\" as const;\n }\n\n static async deserialize(\n _data: SerializedVectorDBQAChain,\n _values: LoadValues\n ): Promise<RetrievalQAChain> {\n throw new Error(\"Not implemented\");\n }\n\n serialize(): SerializedVectorDBQAChain {\n throw new Error(\"Not implemented\");\n }\n\n /**\n * Creates a new instance of RetrievalQAChain using a BaseLanguageModel\n * and a BaseRetriever.\n * @param llm The BaseLanguageModel used to generate a new question.\n * @param retriever The BaseRetriever used to retrieve relevant documents.\n * @param options Optional parameters for the RetrievalQAChain.\n * @returns A new instance of RetrievalQAChain.\n */\n static fromLLM(\n llm: BaseLanguageModelInterface,\n retriever: BaseRetrieverInterface,\n options?: Partial<\n Omit<\n RetrievalQAChainInput,\n \"retriever\" | \"combineDocumentsChain\" | \"index\"\n >\n > &\n StuffQAChainParams\n ): RetrievalQAChain {\n const qaChain = loadQAStuffChain(llm, {\n prompt: options?.prompt,\n });\n return new this({\n ...options,\n retriever,\n combineDocumentsChain: qaChain,\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwDA,IAAa,mBAAb,cACU,UAEV;CACE,OAAO,UAAU;AACf,SAAO;;CAGT,WAAW;CAEX,IAAI,YAAY;AACd,SAAO,CAAC,KAAK,SAAS;;CAGxB,IAAI,aAAa;AACf,SAAO,KAAK,sBAAsB,WAAW,OAC3C,KAAK,wBAAwB,CAAC,kBAAkB,GAAG,EAAE,CACtD;;CAGH;CAEA;CAEA,wBAAwB;CAExB,YAAY,QAA+B;AACzC,QAAM,OAAO;AACb,OAAK,YAAY,OAAO;AACxB,OAAK,wBAAwB,OAAO;AACpC,OAAK,WAAW,OAAO,YAAY,KAAK;AACxC,OAAK,wBACH,OAAO,yBAAyB,KAAK;;;CAIzC,MAAM,MACJ,QACA,YACsB;AACtB,MAAI,EAAE,KAAK,YAAY,QACrB,OAAM,IAAI,MAAM,iBAAiB,KAAK,SAAS,cAAc;EAE/D,MAAM,WAAmB,OAAO,KAAK;EACrC,MAAM,OAAO,MAAM,KAAK,UAAU,OAChC,UACA,YAAY,SAAS,YAAY,CAClC;EACD,MAAM,SAAS;GAAE;GAAU,iBAAiB;GAAM,GAAG;GAAQ;EAC7D,MAAM,SAAS,MAAM,KAAK,sBAAsB,KAC9C,QACA,YAAY,SAAS,oBAAoB,CAC1C;AACD,MAAI,KAAK,sBACP,QAAO;GACL,GAAG;GACH,iBAAiB;GAClB;AAEH,SAAO;;CAGT,aAAa;AACX,SAAO;;CAGT,aAAa,YACX,OACA,SAC2B;AAC3B,QAAM,IAAI,MAAM,kBAAkB;;CAGpC,YAAuC;AACrC,QAAM,IAAI,MAAM,kBAAkB;;;;;;;;;;CAWpC,OAAO,QACL,KACA,WACA,SAOkB;EAClB,MAAM,UAAU,iBAAiB,KAAK,EACpC,QAAQ,SAAS,QAClB,CAAC;AACF,SAAO,IAAI,KAAK;GACd,GAAG;GACH;GACA,uBAAuB;GACxB,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
const require_llm_chain = require(
|
|
2
|
-
const require_multi_route = require(
|
|
3
|
-
|
|
1
|
+
const require_llm_chain = require("../llm_chain.cjs");
|
|
2
|
+
const require_multi_route = require("./multi_route.cjs");
|
|
4
3
|
//#region src/chains/router/llm_router.ts
|
|
5
4
|
/**
|
|
6
5
|
* A class that represents an LLM router chain in the LangChain framework.
|
|
@@ -44,7 +43,7 @@ var LLMRouterChain = class LLMRouterChain extends require_multi_route.RouterChai
|
|
|
44
43
|
});
|
|
45
44
|
}
|
|
46
45
|
};
|
|
47
|
-
|
|
48
46
|
//#endregion
|
|
49
47
|
exports.LLMRouterChain = LLMRouterChain;
|
|
48
|
+
|
|
50
49
|
//# sourceMappingURL=llm_router.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm_router.cjs","names":["RouterChain","LLMChain"],"sources":["../../../src/chains/router/llm_router.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { BasePromptTemplate } from \"@langchain/core/prompts\";\nimport { CallbackManagerForChainRun } from \"@langchain/core/callbacks/manager\";\nimport { LLMChain } from \"../../chains/llm_chain.js\";\nimport { RouterChain } from \"./multi_route.js\";\nimport { ChainInputs } from \"../../chains/base.js\";\n\n/**\n * A type that represents the output schema of a router chain. It defines\n * the structure of the output data returned by the router chain.\n */\nexport type RouterOutputSchema = {\n destination: string;\n next_inputs: { [key: string]: string };\n};\n\n/**\n * An interface that extends the default ChainInputs interface and adds an\n * additional \"llmChain\" property.\n */\nexport interface LLMRouterChainInput extends ChainInputs {\n llmChain: LLMChain<RouterOutputSchema>;\n}\n\n/**\n * A class that represents an LLM router chain in the LangChain framework.\n * It extends the RouterChain class and implements the LLMRouterChainInput\n * interface. It provides additional functionality specific to LLMs and\n * routing based on LLM predictions.\n */\nexport class LLMRouterChain extends RouterChain implements LLMRouterChainInput {\n llmChain: LLMChain<RouterOutputSchema>;\n\n constructor(fields: LLMRouterChainInput) {\n super(fields);\n this.llmChain = fields.llmChain;\n }\n\n get inputKeys(): string[] {\n return this.llmChain.inputKeys;\n }\n\n async _call(\n values: ChainValues,\n runManager?: CallbackManagerForChainRun | undefined\n ): Promise<RouterOutputSchema> {\n return this.llmChain.predict(values, runManager?.getChild());\n }\n\n _chainType(): string {\n return \"llm_router_chain\";\n }\n\n /**\n * A static method that creates an instance of LLMRouterChain from a\n * BaseLanguageModel and a BasePromptTemplate. It takes in an optional\n * options object and returns an instance of LLMRouterChain with the\n * specified LLMChain.\n * @param llm A BaseLanguageModel instance.\n * @param prompt A BasePromptTemplate instance.\n * @param options Optional LLMRouterChainInput object, excluding \"llmChain\".\n * @returns An instance of LLMRouterChain.\n */\n static fromLLM(\n llm: BaseLanguageModelInterface,\n prompt: BasePromptTemplate,\n options?: Omit<LLMRouterChainInput, \"llmChain\">\n ) {\n const llmChain = new LLMChain<RouterOutputSchema>({ llm, prompt });\n return new LLMRouterChain({ ...options, llmChain });\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"llm_router.cjs","names":["RouterChain","LLMChain"],"sources":["../../../src/chains/router/llm_router.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { BasePromptTemplate } from \"@langchain/core/prompts\";\nimport { CallbackManagerForChainRun } from \"@langchain/core/callbacks/manager\";\nimport { LLMChain } from \"../../chains/llm_chain.js\";\nimport { RouterChain } from \"./multi_route.js\";\nimport { ChainInputs } from \"../../chains/base.js\";\n\n/**\n * A type that represents the output schema of a router chain. It defines\n * the structure of the output data returned by the router chain.\n */\nexport type RouterOutputSchema = {\n destination: string;\n next_inputs: { [key: string]: string };\n};\n\n/**\n * An interface that extends the default ChainInputs interface and adds an\n * additional \"llmChain\" property.\n */\nexport interface LLMRouterChainInput extends ChainInputs {\n llmChain: LLMChain<RouterOutputSchema>;\n}\n\n/**\n * A class that represents an LLM router chain in the LangChain framework.\n * It extends the RouterChain class and implements the LLMRouterChainInput\n * interface. It provides additional functionality specific to LLMs and\n * routing based on LLM predictions.\n */\nexport class LLMRouterChain extends RouterChain implements LLMRouterChainInput {\n llmChain: LLMChain<RouterOutputSchema>;\n\n constructor(fields: LLMRouterChainInput) {\n super(fields);\n this.llmChain = fields.llmChain;\n }\n\n get inputKeys(): string[] {\n return this.llmChain.inputKeys;\n }\n\n async _call(\n values: ChainValues,\n runManager?: CallbackManagerForChainRun | undefined\n ): Promise<RouterOutputSchema> {\n return this.llmChain.predict(values, runManager?.getChild());\n }\n\n _chainType(): string {\n return \"llm_router_chain\";\n }\n\n /**\n * A static method that creates an instance of LLMRouterChain from a\n * BaseLanguageModel and a BasePromptTemplate. It takes in an optional\n * options object and returns an instance of LLMRouterChain with the\n * specified LLMChain.\n * @param llm A BaseLanguageModel instance.\n * @param prompt A BasePromptTemplate instance.\n * @param options Optional LLMRouterChainInput object, excluding \"llmChain\".\n * @returns An instance of LLMRouterChain.\n */\n static fromLLM(\n llm: BaseLanguageModelInterface,\n prompt: BasePromptTemplate,\n options?: Omit<LLMRouterChainInput, \"llmChain\">\n ) {\n const llmChain = new LLMChain<RouterOutputSchema>({ llm, prompt });\n return new LLMRouterChain({ ...options, llmChain });\n }\n}\n"],"mappings":";;;;;;;;;AA+BA,IAAa,iBAAb,MAAa,uBAAuBA,oBAAAA,YAA2C;CAC7E;CAEA,YAAY,QAA6B;AACvC,QAAM,OAAO;AACb,OAAK,WAAW,OAAO;;CAGzB,IAAI,YAAsB;AACxB,SAAO,KAAK,SAAS;;CAGvB,MAAM,MACJ,QACA,YAC6B;AAC7B,SAAO,KAAK,SAAS,QAAQ,QAAQ,YAAY,UAAU,CAAC;;CAG9D,aAAqB;AACnB,SAAO;;;;;;;;;;;;CAaT,OAAO,QACL,KACA,QACA,SACA;EACA,MAAM,WAAW,IAAIC,kBAAAA,SAA6B;GAAE;GAAK;GAAQ,CAAC;AAClE,SAAO,IAAI,eAAe;GAAE,GAAG;GAAS;GAAU,CAAC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { LLMChain } from "../llm_chain.js";
|
|
2
2
|
import { RouterChain } from "./multi_route.js";
|
|
3
|
-
|
|
4
3
|
//#region src/chains/router/llm_router.ts
|
|
5
4
|
/**
|
|
6
5
|
* A class that represents an LLM router chain in the LangChain framework.
|
|
@@ -44,7 +43,7 @@ var LLMRouterChain = class LLMRouterChain extends RouterChain {
|
|
|
44
43
|
});
|
|
45
44
|
}
|
|
46
45
|
};
|
|
47
|
-
|
|
48
46
|
//#endregion
|
|
49
47
|
export { LLMRouterChain };
|
|
48
|
+
|
|
50
49
|
//# sourceMappingURL=llm_router.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"llm_router.js","names":[],"sources":["../../../src/chains/router/llm_router.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { BasePromptTemplate } from \"@langchain/core/prompts\";\nimport { CallbackManagerForChainRun } from \"@langchain/core/callbacks/manager\";\nimport { LLMChain } from \"../../chains/llm_chain.js\";\nimport { RouterChain } from \"./multi_route.js\";\nimport { ChainInputs } from \"../../chains/base.js\";\n\n/**\n * A type that represents the output schema of a router chain. It defines\n * the structure of the output data returned by the router chain.\n */\nexport type RouterOutputSchema = {\n destination: string;\n next_inputs: { [key: string]: string };\n};\n\n/**\n * An interface that extends the default ChainInputs interface and adds an\n * additional \"llmChain\" property.\n */\nexport interface LLMRouterChainInput extends ChainInputs {\n llmChain: LLMChain<RouterOutputSchema>;\n}\n\n/**\n * A class that represents an LLM router chain in the LangChain framework.\n * It extends the RouterChain class and implements the LLMRouterChainInput\n * interface. It provides additional functionality specific to LLMs and\n * routing based on LLM predictions.\n */\nexport class LLMRouterChain extends RouterChain implements LLMRouterChainInput {\n llmChain: LLMChain<RouterOutputSchema>;\n\n constructor(fields: LLMRouterChainInput) {\n super(fields);\n this.llmChain = fields.llmChain;\n }\n\n get inputKeys(): string[] {\n return this.llmChain.inputKeys;\n }\n\n async _call(\n values: ChainValues,\n runManager?: CallbackManagerForChainRun | undefined\n ): Promise<RouterOutputSchema> {\n return this.llmChain.predict(values, runManager?.getChild());\n }\n\n _chainType(): string {\n return \"llm_router_chain\";\n }\n\n /**\n * A static method that creates an instance of LLMRouterChain from a\n * BaseLanguageModel and a BasePromptTemplate. It takes in an optional\n * options object and returns an instance of LLMRouterChain with the\n * specified LLMChain.\n * @param llm A BaseLanguageModel instance.\n * @param prompt A BasePromptTemplate instance.\n * @param options Optional LLMRouterChainInput object, excluding \"llmChain\".\n * @returns An instance of LLMRouterChain.\n */\n static fromLLM(\n llm: BaseLanguageModelInterface,\n prompt: BasePromptTemplate,\n options?: Omit<LLMRouterChainInput, \"llmChain\">\n ) {\n const llmChain = new LLMChain<RouterOutputSchema>({ llm, prompt });\n return new LLMRouterChain({ ...options, llmChain });\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"llm_router.js","names":[],"sources":["../../../src/chains/router/llm_router.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport { ChainValues } from \"@langchain/core/utils/types\";\nimport { BasePromptTemplate } from \"@langchain/core/prompts\";\nimport { CallbackManagerForChainRun } from \"@langchain/core/callbacks/manager\";\nimport { LLMChain } from \"../../chains/llm_chain.js\";\nimport { RouterChain } from \"./multi_route.js\";\nimport { ChainInputs } from \"../../chains/base.js\";\n\n/**\n * A type that represents the output schema of a router chain. It defines\n * the structure of the output data returned by the router chain.\n */\nexport type RouterOutputSchema = {\n destination: string;\n next_inputs: { [key: string]: string };\n};\n\n/**\n * An interface that extends the default ChainInputs interface and adds an\n * additional \"llmChain\" property.\n */\nexport interface LLMRouterChainInput extends ChainInputs {\n llmChain: LLMChain<RouterOutputSchema>;\n}\n\n/**\n * A class that represents an LLM router chain in the LangChain framework.\n * It extends the RouterChain class and implements the LLMRouterChainInput\n * interface. It provides additional functionality specific to LLMs and\n * routing based on LLM predictions.\n */\nexport class LLMRouterChain extends RouterChain implements LLMRouterChainInput {\n llmChain: LLMChain<RouterOutputSchema>;\n\n constructor(fields: LLMRouterChainInput) {\n super(fields);\n this.llmChain = fields.llmChain;\n }\n\n get inputKeys(): string[] {\n return this.llmChain.inputKeys;\n }\n\n async _call(\n values: ChainValues,\n runManager?: CallbackManagerForChainRun | undefined\n ): Promise<RouterOutputSchema> {\n return this.llmChain.predict(values, runManager?.getChild());\n }\n\n _chainType(): string {\n return \"llm_router_chain\";\n }\n\n /**\n * A static method that creates an instance of LLMRouterChain from a\n * BaseLanguageModel and a BasePromptTemplate. It takes in an optional\n * options object and returns an instance of LLMRouterChain with the\n * specified LLMChain.\n * @param llm A BaseLanguageModel instance.\n * @param prompt A BasePromptTemplate instance.\n * @param options Optional LLMRouterChainInput object, excluding \"llmChain\".\n * @returns An instance of LLMRouterChain.\n */\n static fromLLM(\n llm: BaseLanguageModelInterface,\n prompt: BasePromptTemplate,\n options?: Omit<LLMRouterChainInput, \"llmChain\">\n ) {\n const llmChain = new LLMChain<RouterOutputSchema>({ llm, prompt });\n return new LLMRouterChain({ ...options, llmChain });\n }\n}\n"],"mappings":";;;;;;;;;AA+BA,IAAa,iBAAb,MAAa,uBAAuB,YAA2C;CAC7E;CAEA,YAAY,QAA6B;AACvC,QAAM,OAAO;AACb,OAAK,WAAW,OAAO;;CAGzB,IAAI,YAAsB;AACxB,SAAO,KAAK,SAAS;;CAGvB,MAAM,MACJ,QACA,YAC6B;AAC7B,SAAO,KAAK,SAAS,QAAQ,QAAQ,YAAY,UAAU,CAAC;;CAG9D,aAAqB;AACnB,SAAO;;;;;;;;;;;;CAaT,OAAO,QACL,KACA,QACA,SACA;EACA,MAAM,WAAW,IAAI,SAA6B;GAAE;GAAK;GAAQ,CAAC;AAClE,SAAO,IAAI,eAAe;GAAE,GAAG;GAAS;GAAU,CAAC"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
const require_llm_chain = require(
|
|
3
|
-
const require_conversation = require(
|
|
4
|
-
const require_multi_route = require(
|
|
5
|
-
const require_llm_router = require(
|
|
6
|
-
const require_multi_prompt_prompt = require(
|
|
7
|
-
const require_utils = require(
|
|
8
|
-
const require_router = require(
|
|
1
|
+
require("../../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
const require_llm_chain = require("../llm_chain.cjs");
|
|
3
|
+
const require_conversation = require("../conversation.cjs");
|
|
4
|
+
const require_multi_route = require("./multi_route.cjs");
|
|
5
|
+
const require_llm_router = require("./llm_router.cjs");
|
|
6
|
+
const require_multi_prompt_prompt = require("./multi_prompt_prompt.cjs");
|
|
7
|
+
const require_utils = require("./utils.cjs");
|
|
8
|
+
const require_router = require("../../output_parsers/router.cjs");
|
|
9
9
|
let _langchain_core_prompts = require("@langchain/core/prompts");
|
|
10
10
|
let zod_v3 = require("zod/v3");
|
|
11
|
-
|
|
12
11
|
//#region src/chains/router/multi_prompt.ts
|
|
13
12
|
/**
|
|
14
13
|
* A class that represents a multi-prompt chain in the LangChain
|
|
@@ -108,7 +107,7 @@ var MultiPromptChain = class MultiPromptChain extends require_multi_route.MultiR
|
|
|
108
107
|
return "multi_prompt_chain";
|
|
109
108
|
}
|
|
110
109
|
};
|
|
111
|
-
|
|
112
110
|
//#endregion
|
|
113
111
|
exports.MultiPromptChain = MultiPromptChain;
|
|
112
|
+
|
|
114
113
|
//# sourceMappingURL=multi_prompt.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi_prompt.cjs","names":["MultiRouteChain","zipEntries","RouterOutputParser","z","PromptTemplate","STRUCTURED_MULTI_PROMPT_ROUTER_TEMPLATE","LLMRouterChain","LLMChain","ConversationChain"],"sources":["../../../src/chains/router/multi_prompt.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport { z } from \"zod/v3\";\nimport { interpolateFString, PromptTemplate } from \"@langchain/core/prompts\";\nimport { MultiRouteChain, MultiRouteChainInput } from \"./multi_route.js\";\nimport { STRUCTURED_MULTI_PROMPT_ROUTER_TEMPLATE } from \"./multi_prompt_prompt.js\";\nimport { BaseChain } from \"../../chains/base.js\";\nimport { LLMChain, LLMChainInput } from \"../../chains/llm_chain.js\";\nimport { LLMRouterChain } from \"./llm_router.js\";\nimport { ConversationChain } from \"../../chains/conversation.js\";\nimport { zipEntries } from \"./utils.js\";\nimport { RouterOutputParser } from \"../../output_parsers/router.js\";\n\n/**\n * A class that represents a multi-prompt chain in the LangChain\n * framework. It extends the MultiRouteChain class and provides additional\n * functionality specific to multi-prompt chains.\n * @example\n * ```typescript\n * const multiPromptChain = MultiPromptChain.fromLLMAndPrompts(\n * new ChatOpenAI({ model: \"gpt-4o-mini\" }),\n * {\n * promptNames: [\"physics\", \"math\", \"history\"],\n * promptDescriptions: [\n * \"Good for answering questions about physics\",\n * \"Good for answering math questions\",\n * \"Good for answering questions about history\",\n * ],\n * promptTemplates: [\n * `You are a very smart physics professor. Here is a question:\\n{input}\\n`,\n * `You are a very good mathematician. Here is a question:\\n{input}\\n`,\n * `You are a very smart history professor. Here is a question:\\n{input}\\n`,\n * ],\n * }\n * );\n * const result = await multiPromptChain.call({\n * input: \"What is the speed of light?\",\n * });\n * ```\n */\nexport class MultiPromptChain extends MultiRouteChain {\n /**\n * @deprecated Use `fromLLMAndPrompts` instead\n */\n static fromPrompts(\n llm: BaseLanguageModelInterface,\n promptNames: string[],\n promptDescriptions: string[],\n promptTemplates: string[] | PromptTemplate[],\n defaultChain?: BaseChain,\n options?: Omit<MultiRouteChainInput, \"defaultChain\">\n ) {\n return MultiPromptChain.fromLLMAndPrompts(llm, {\n promptNames,\n promptDescriptions,\n promptTemplates,\n defaultChain,\n multiRouteChainOpts: options,\n });\n }\n\n /**\n * A static method that creates an instance of MultiPromptChain from a\n * BaseLanguageModel and a set of prompts. It takes in optional parameters\n * for the default chain and additional options.\n * @param llm A BaseLanguageModel instance.\n * @param promptNames An array of prompt names.\n * @param promptDescriptions An array of prompt descriptions.\n * @param promptTemplates An array of prompt templates.\n * @param defaultChain An optional BaseChain instance to be used as the default chain.\n * @param llmChainOpts Optional parameters for the LLMChainInput, excluding 'llm' and 'prompt'.\n * @param conversationChainOpts Optional parameters for the LLMChainInput, excluding 'llm' and 'outputKey'.\n * @param multiRouteChainOpts Optional parameters for the MultiRouteChainInput, excluding 'defaultChain'.\n * @returns An instance of MultiPromptChain.\n */\n static fromLLMAndPrompts(\n llm: BaseLanguageModelInterface,\n {\n promptNames,\n promptDescriptions,\n promptTemplates,\n defaultChain,\n llmChainOpts,\n conversationChainOpts,\n multiRouteChainOpts,\n }: {\n promptNames: string[];\n promptDescriptions: string[];\n promptTemplates: string[] | PromptTemplate[];\n defaultChain?: BaseChain;\n llmChainOpts?: Omit<LLMChainInput, \"llm\" | \"prompt\">;\n conversationChainOpts?: Omit<LLMChainInput, \"llm\" | \"outputKey\">;\n multiRouteChainOpts?: Omit<MultiRouteChainInput, \"defaultChain\">;\n }\n ): MultiPromptChain {\n const destinations = zipEntries(promptNames, promptDescriptions).map(\n ([name, desc]) => `${name}: ${desc}`\n );\n\n const structuredOutputParserSchema = z.object({\n destination: z\n .string()\n .optional()\n .describe('name of the question answering system to use or \"DEFAULT\"'),\n next_inputs: z\n .object({\n input: z\n .string()\n .describe(\"a potentially modified version of the original input\"),\n })\n .describe(\"input to be fed to the next model\"),\n });\n\n const outputParser = new RouterOutputParser(structuredOutputParserSchema);\n\n const destinationsStr = destinations.join(\"\\n\");\n const routerTemplate = interpolateFString(\n STRUCTURED_MULTI_PROMPT_ROUTER_TEMPLATE(\n outputParser.getFormatInstructions({ interpolationDepth: 4 })\n ),\n {\n destinations: destinationsStr,\n }\n );\n\n const routerPrompt = new PromptTemplate({\n template: routerTemplate,\n inputVariables: [\"input\"],\n outputParser,\n });\n\n const routerChain = LLMRouterChain.fromLLM(llm, routerPrompt);\n const destinationChains = zipEntries<[string, string | PromptTemplate]>(\n promptNames,\n promptTemplates\n ).reduce(\n (acc, [name, template]) => {\n let myPrompt: string | PromptTemplate;\n if (typeof template === \"object\") {\n myPrompt = template;\n } else if (typeof template === \"string\") {\n myPrompt = new PromptTemplate({\n template: template as string,\n inputVariables: [\"input\"],\n });\n } else {\n throw new Error(\"Invalid prompt template\");\n }\n acc[name as string] = new LLMChain({\n ...llmChainOpts,\n llm,\n prompt: myPrompt,\n });\n return acc;\n },\n {} as { [name: string]: LLMChain }\n );\n\n const convChain = new ConversationChain({\n ...conversationChainOpts,\n llm,\n outputKey: \"text\",\n });\n\n return new MultiPromptChain({\n ...multiRouteChainOpts,\n routerChain,\n destinationChains,\n defaultChain: defaultChain ?? convChain,\n });\n }\n\n _chainType(): string {\n return \"multi_prompt_chain\";\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"multi_prompt.cjs","names":["MultiRouteChain","zipEntries","RouterOutputParser","z","PromptTemplate","STRUCTURED_MULTI_PROMPT_ROUTER_TEMPLATE","LLMRouterChain","LLMChain","ConversationChain"],"sources":["../../../src/chains/router/multi_prompt.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport { z } from \"zod/v3\";\nimport { interpolateFString, PromptTemplate } from \"@langchain/core/prompts\";\nimport { MultiRouteChain, MultiRouteChainInput } from \"./multi_route.js\";\nimport { STRUCTURED_MULTI_PROMPT_ROUTER_TEMPLATE } from \"./multi_prompt_prompt.js\";\nimport { BaseChain } from \"../../chains/base.js\";\nimport { LLMChain, LLMChainInput } from \"../../chains/llm_chain.js\";\nimport { LLMRouterChain } from \"./llm_router.js\";\nimport { ConversationChain } from \"../../chains/conversation.js\";\nimport { zipEntries } from \"./utils.js\";\nimport { RouterOutputParser } from \"../../output_parsers/router.js\";\n\n/**\n * A class that represents a multi-prompt chain in the LangChain\n * framework. It extends the MultiRouteChain class and provides additional\n * functionality specific to multi-prompt chains.\n * @example\n * ```typescript\n * const multiPromptChain = MultiPromptChain.fromLLMAndPrompts(\n * new ChatOpenAI({ model: \"gpt-4o-mini\" }),\n * {\n * promptNames: [\"physics\", \"math\", \"history\"],\n * promptDescriptions: [\n * \"Good for answering questions about physics\",\n * \"Good for answering math questions\",\n * \"Good for answering questions about history\",\n * ],\n * promptTemplates: [\n * `You are a very smart physics professor. Here is a question:\\n{input}\\n`,\n * `You are a very good mathematician. Here is a question:\\n{input}\\n`,\n * `You are a very smart history professor. Here is a question:\\n{input}\\n`,\n * ],\n * }\n * );\n * const result = await multiPromptChain.call({\n * input: \"What is the speed of light?\",\n * });\n * ```\n */\nexport class MultiPromptChain extends MultiRouteChain {\n /**\n * @deprecated Use `fromLLMAndPrompts` instead\n */\n static fromPrompts(\n llm: BaseLanguageModelInterface,\n promptNames: string[],\n promptDescriptions: string[],\n promptTemplates: string[] | PromptTemplate[],\n defaultChain?: BaseChain,\n options?: Omit<MultiRouteChainInput, \"defaultChain\">\n ) {\n return MultiPromptChain.fromLLMAndPrompts(llm, {\n promptNames,\n promptDescriptions,\n promptTemplates,\n defaultChain,\n multiRouteChainOpts: options,\n });\n }\n\n /**\n * A static method that creates an instance of MultiPromptChain from a\n * BaseLanguageModel and a set of prompts. It takes in optional parameters\n * for the default chain and additional options.\n * @param llm A BaseLanguageModel instance.\n * @param promptNames An array of prompt names.\n * @param promptDescriptions An array of prompt descriptions.\n * @param promptTemplates An array of prompt templates.\n * @param defaultChain An optional BaseChain instance to be used as the default chain.\n * @param llmChainOpts Optional parameters for the LLMChainInput, excluding 'llm' and 'prompt'.\n * @param conversationChainOpts Optional parameters for the LLMChainInput, excluding 'llm' and 'outputKey'.\n * @param multiRouteChainOpts Optional parameters for the MultiRouteChainInput, excluding 'defaultChain'.\n * @returns An instance of MultiPromptChain.\n */\n static fromLLMAndPrompts(\n llm: BaseLanguageModelInterface,\n {\n promptNames,\n promptDescriptions,\n promptTemplates,\n defaultChain,\n llmChainOpts,\n conversationChainOpts,\n multiRouteChainOpts,\n }: {\n promptNames: string[];\n promptDescriptions: string[];\n promptTemplates: string[] | PromptTemplate[];\n defaultChain?: BaseChain;\n llmChainOpts?: Omit<LLMChainInput, \"llm\" | \"prompt\">;\n conversationChainOpts?: Omit<LLMChainInput, \"llm\" | \"outputKey\">;\n multiRouteChainOpts?: Omit<MultiRouteChainInput, \"defaultChain\">;\n }\n ): MultiPromptChain {\n const destinations = zipEntries(promptNames, promptDescriptions).map(\n ([name, desc]) => `${name}: ${desc}`\n );\n\n const structuredOutputParserSchema = z.object({\n destination: z\n .string()\n .optional()\n .describe('name of the question answering system to use or \"DEFAULT\"'),\n next_inputs: z\n .object({\n input: z\n .string()\n .describe(\"a potentially modified version of the original input\"),\n })\n .describe(\"input to be fed to the next model\"),\n });\n\n const outputParser = new RouterOutputParser(structuredOutputParserSchema);\n\n const destinationsStr = destinations.join(\"\\n\");\n const routerTemplate = interpolateFString(\n STRUCTURED_MULTI_PROMPT_ROUTER_TEMPLATE(\n outputParser.getFormatInstructions({ interpolationDepth: 4 })\n ),\n {\n destinations: destinationsStr,\n }\n );\n\n const routerPrompt = new PromptTemplate({\n template: routerTemplate,\n inputVariables: [\"input\"],\n outputParser,\n });\n\n const routerChain = LLMRouterChain.fromLLM(llm, routerPrompt);\n const destinationChains = zipEntries<[string, string | PromptTemplate]>(\n promptNames,\n promptTemplates\n ).reduce(\n (acc, [name, template]) => {\n let myPrompt: string | PromptTemplate;\n if (typeof template === \"object\") {\n myPrompt = template;\n } else if (typeof template === \"string\") {\n myPrompt = new PromptTemplate({\n template: template as string,\n inputVariables: [\"input\"],\n });\n } else {\n throw new Error(\"Invalid prompt template\");\n }\n acc[name as string] = new LLMChain({\n ...llmChainOpts,\n llm,\n prompt: myPrompt,\n });\n return acc;\n },\n {} as { [name: string]: LLMChain }\n );\n\n const convChain = new ConversationChain({\n ...conversationChainOpts,\n llm,\n outputKey: \"text\",\n });\n\n return new MultiPromptChain({\n ...multiRouteChainOpts,\n routerChain,\n destinationChains,\n defaultChain: defaultChain ?? convChain,\n });\n }\n\n _chainType(): string {\n return \"multi_prompt_chain\";\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,IAAa,mBAAb,MAAa,yBAAyBA,oBAAAA,gBAAgB;;;;CAIpD,OAAO,YACL,KACA,aACA,oBACA,iBACA,cACA,SACA;AACA,SAAO,iBAAiB,kBAAkB,KAAK;GAC7C;GACA;GACA;GACA;GACA,qBAAqB;GACtB,CAAC;;;;;;;;;;;;;;;;CAiBJ,OAAO,kBACL,KACA,EACE,aACA,oBACA,iBACA,cACA,cACA,uBACA,uBAUgB;EAClB,MAAM,eAAeC,cAAAA,WAAW,aAAa,mBAAmB,CAAC,KAC9D,CAAC,MAAM,UAAU,GAAG,KAAK,IAAI,OAC/B;EAgBD,MAAM,eAAe,IAAIC,eAAAA,mBAdYC,OAAAA,EAAE,OAAO;GAC5C,aAAaA,OAAAA,EACV,QAAQ,CACR,UAAU,CACV,SAAS,8DAA4D;GACxE,aAAaA,OAAAA,EACV,OAAO,EACN,OAAOA,OAAAA,EACJ,QAAQ,CACR,SAAS,uDAAuD,EACpE,CAAC,CACD,SAAS,oCAAoC;GACjD,CAAC,CAEuE;EAEzE,MAAM,kBAAkB,aAAa,KAAK,KAAK;EAU/C,MAAM,eAAe,IAAIC,wBAAAA,eAAe;GACtC,WAAA,GAAA,wBAAA,oBATAC,4BAAAA,wCACE,aAAa,sBAAsB,EAAE,oBAAoB,GAAG,CAAC,CAC9D,EACD,EACE,cAAc,iBACf,CACF;GAIC,gBAAgB,CAAC,QAAQ;GACzB;GACD,CAAC;EAEF,MAAM,cAAcC,mBAAAA,eAAe,QAAQ,KAAK,aAAa;EAC7D,MAAM,oBAAoBL,cAAAA,WACxB,aACA,gBACD,CAAC,QACC,KAAK,CAAC,MAAM,cAAc;GACzB,IAAI;AACJ,OAAI,OAAO,aAAa,SACtB,YAAW;YACF,OAAO,aAAa,SAC7B,YAAW,IAAIG,wBAAAA,eAAe;IAClB;IACV,gBAAgB,CAAC,QAAQ;IAC1B,CAAC;OAEF,OAAM,IAAI,MAAM,0BAA0B;AAE5C,OAAI,QAAkB,IAAIG,kBAAAA,SAAS;IACjC,GAAG;IACH;IACA,QAAQ;IACT,CAAC;AACF,UAAO;KAET,EAAE,CACH;EAED,MAAM,YAAY,IAAIC,qBAAAA,kBAAkB;GACtC,GAAG;GACH;GACA,WAAW;GACZ,CAAC;AAEF,SAAO,IAAI,iBAAiB;GAC1B,GAAG;GACH;GACA;GACA,cAAc,gBAAgB;GAC/B,CAAC;;CAGJ,aAAqB;AACnB,SAAO"}
|
|
@@ -7,7 +7,6 @@ import { zipEntries } from "./utils.js";
|
|
|
7
7
|
import { RouterOutputParser } from "../../output_parsers/router.js";
|
|
8
8
|
import { PromptTemplate, interpolateFString } from "@langchain/core/prompts";
|
|
9
9
|
import { z } from "zod/v3";
|
|
10
|
-
|
|
11
10
|
//#region src/chains/router/multi_prompt.ts
|
|
12
11
|
/**
|
|
13
12
|
* A class that represents a multi-prompt chain in the LangChain
|
|
@@ -107,7 +106,7 @@ var MultiPromptChain = class MultiPromptChain extends MultiRouteChain {
|
|
|
107
106
|
return "multi_prompt_chain";
|
|
108
107
|
}
|
|
109
108
|
};
|
|
110
|
-
|
|
111
109
|
//#endregion
|
|
112
110
|
export { MultiPromptChain };
|
|
111
|
+
|
|
113
112
|
//# sourceMappingURL=multi_prompt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi_prompt.js","names":[],"sources":["../../../src/chains/router/multi_prompt.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport { z } from \"zod/v3\";\nimport { interpolateFString, PromptTemplate } from \"@langchain/core/prompts\";\nimport { MultiRouteChain, MultiRouteChainInput } from \"./multi_route.js\";\nimport { STRUCTURED_MULTI_PROMPT_ROUTER_TEMPLATE } from \"./multi_prompt_prompt.js\";\nimport { BaseChain } from \"../../chains/base.js\";\nimport { LLMChain, LLMChainInput } from \"../../chains/llm_chain.js\";\nimport { LLMRouterChain } from \"./llm_router.js\";\nimport { ConversationChain } from \"../../chains/conversation.js\";\nimport { zipEntries } from \"./utils.js\";\nimport { RouterOutputParser } from \"../../output_parsers/router.js\";\n\n/**\n * A class that represents a multi-prompt chain in the LangChain\n * framework. It extends the MultiRouteChain class and provides additional\n * functionality specific to multi-prompt chains.\n * @example\n * ```typescript\n * const multiPromptChain = MultiPromptChain.fromLLMAndPrompts(\n * new ChatOpenAI({ model: \"gpt-4o-mini\" }),\n * {\n * promptNames: [\"physics\", \"math\", \"history\"],\n * promptDescriptions: [\n * \"Good for answering questions about physics\",\n * \"Good for answering math questions\",\n * \"Good for answering questions about history\",\n * ],\n * promptTemplates: [\n * `You are a very smart physics professor. Here is a question:\\n{input}\\n`,\n * `You are a very good mathematician. Here is a question:\\n{input}\\n`,\n * `You are a very smart history professor. Here is a question:\\n{input}\\n`,\n * ],\n * }\n * );\n * const result = await multiPromptChain.call({\n * input: \"What is the speed of light?\",\n * });\n * ```\n */\nexport class MultiPromptChain extends MultiRouteChain {\n /**\n * @deprecated Use `fromLLMAndPrompts` instead\n */\n static fromPrompts(\n llm: BaseLanguageModelInterface,\n promptNames: string[],\n promptDescriptions: string[],\n promptTemplates: string[] | PromptTemplate[],\n defaultChain?: BaseChain,\n options?: Omit<MultiRouteChainInput, \"defaultChain\">\n ) {\n return MultiPromptChain.fromLLMAndPrompts(llm, {\n promptNames,\n promptDescriptions,\n promptTemplates,\n defaultChain,\n multiRouteChainOpts: options,\n });\n }\n\n /**\n * A static method that creates an instance of MultiPromptChain from a\n * BaseLanguageModel and a set of prompts. It takes in optional parameters\n * for the default chain and additional options.\n * @param llm A BaseLanguageModel instance.\n * @param promptNames An array of prompt names.\n * @param promptDescriptions An array of prompt descriptions.\n * @param promptTemplates An array of prompt templates.\n * @param defaultChain An optional BaseChain instance to be used as the default chain.\n * @param llmChainOpts Optional parameters for the LLMChainInput, excluding 'llm' and 'prompt'.\n * @param conversationChainOpts Optional parameters for the LLMChainInput, excluding 'llm' and 'outputKey'.\n * @param multiRouteChainOpts Optional parameters for the MultiRouteChainInput, excluding 'defaultChain'.\n * @returns An instance of MultiPromptChain.\n */\n static fromLLMAndPrompts(\n llm: BaseLanguageModelInterface,\n {\n promptNames,\n promptDescriptions,\n promptTemplates,\n defaultChain,\n llmChainOpts,\n conversationChainOpts,\n multiRouteChainOpts,\n }: {\n promptNames: string[];\n promptDescriptions: string[];\n promptTemplates: string[] | PromptTemplate[];\n defaultChain?: BaseChain;\n llmChainOpts?: Omit<LLMChainInput, \"llm\" | \"prompt\">;\n conversationChainOpts?: Omit<LLMChainInput, \"llm\" | \"outputKey\">;\n multiRouteChainOpts?: Omit<MultiRouteChainInput, \"defaultChain\">;\n }\n ): MultiPromptChain {\n const destinations = zipEntries(promptNames, promptDescriptions).map(\n ([name, desc]) => `${name}: ${desc}`\n );\n\n const structuredOutputParserSchema = z.object({\n destination: z\n .string()\n .optional()\n .describe('name of the question answering system to use or \"DEFAULT\"'),\n next_inputs: z\n .object({\n input: z\n .string()\n .describe(\"a potentially modified version of the original input\"),\n })\n .describe(\"input to be fed to the next model\"),\n });\n\n const outputParser = new RouterOutputParser(structuredOutputParserSchema);\n\n const destinationsStr = destinations.join(\"\\n\");\n const routerTemplate = interpolateFString(\n STRUCTURED_MULTI_PROMPT_ROUTER_TEMPLATE(\n outputParser.getFormatInstructions({ interpolationDepth: 4 })\n ),\n {\n destinations: destinationsStr,\n }\n );\n\n const routerPrompt = new PromptTemplate({\n template: routerTemplate,\n inputVariables: [\"input\"],\n outputParser,\n });\n\n const routerChain = LLMRouterChain.fromLLM(llm, routerPrompt);\n const destinationChains = zipEntries<[string, string | PromptTemplate]>(\n promptNames,\n promptTemplates\n ).reduce(\n (acc, [name, template]) => {\n let myPrompt: string | PromptTemplate;\n if (typeof template === \"object\") {\n myPrompt = template;\n } else if (typeof template === \"string\") {\n myPrompt = new PromptTemplate({\n template: template as string,\n inputVariables: [\"input\"],\n });\n } else {\n throw new Error(\"Invalid prompt template\");\n }\n acc[name as string] = new LLMChain({\n ...llmChainOpts,\n llm,\n prompt: myPrompt,\n });\n return acc;\n },\n {} as { [name: string]: LLMChain }\n );\n\n const convChain = new ConversationChain({\n ...conversationChainOpts,\n llm,\n outputKey: \"text\",\n });\n\n return new MultiPromptChain({\n ...multiRouteChainOpts,\n routerChain,\n destinationChains,\n defaultChain: defaultChain ?? convChain,\n });\n }\n\n _chainType(): string {\n return \"multi_prompt_chain\";\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"multi_prompt.js","names":[],"sources":["../../../src/chains/router/multi_prompt.ts"],"sourcesContent":["import type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport { z } from \"zod/v3\";\nimport { interpolateFString, PromptTemplate } from \"@langchain/core/prompts\";\nimport { MultiRouteChain, MultiRouteChainInput } from \"./multi_route.js\";\nimport { STRUCTURED_MULTI_PROMPT_ROUTER_TEMPLATE } from \"./multi_prompt_prompt.js\";\nimport { BaseChain } from \"../../chains/base.js\";\nimport { LLMChain, LLMChainInput } from \"../../chains/llm_chain.js\";\nimport { LLMRouterChain } from \"./llm_router.js\";\nimport { ConversationChain } from \"../../chains/conversation.js\";\nimport { zipEntries } from \"./utils.js\";\nimport { RouterOutputParser } from \"../../output_parsers/router.js\";\n\n/**\n * A class that represents a multi-prompt chain in the LangChain\n * framework. It extends the MultiRouteChain class and provides additional\n * functionality specific to multi-prompt chains.\n * @example\n * ```typescript\n * const multiPromptChain = MultiPromptChain.fromLLMAndPrompts(\n * new ChatOpenAI({ model: \"gpt-4o-mini\" }),\n * {\n * promptNames: [\"physics\", \"math\", \"history\"],\n * promptDescriptions: [\n * \"Good for answering questions about physics\",\n * \"Good for answering math questions\",\n * \"Good for answering questions about history\",\n * ],\n * promptTemplates: [\n * `You are a very smart physics professor. Here is a question:\\n{input}\\n`,\n * `You are a very good mathematician. Here is a question:\\n{input}\\n`,\n * `You are a very smart history professor. Here is a question:\\n{input}\\n`,\n * ],\n * }\n * );\n * const result = await multiPromptChain.call({\n * input: \"What is the speed of light?\",\n * });\n * ```\n */\nexport class MultiPromptChain extends MultiRouteChain {\n /**\n * @deprecated Use `fromLLMAndPrompts` instead\n */\n static fromPrompts(\n llm: BaseLanguageModelInterface,\n promptNames: string[],\n promptDescriptions: string[],\n promptTemplates: string[] | PromptTemplate[],\n defaultChain?: BaseChain,\n options?: Omit<MultiRouteChainInput, \"defaultChain\">\n ) {\n return MultiPromptChain.fromLLMAndPrompts(llm, {\n promptNames,\n promptDescriptions,\n promptTemplates,\n defaultChain,\n multiRouteChainOpts: options,\n });\n }\n\n /**\n * A static method that creates an instance of MultiPromptChain from a\n * BaseLanguageModel and a set of prompts. It takes in optional parameters\n * for the default chain and additional options.\n * @param llm A BaseLanguageModel instance.\n * @param promptNames An array of prompt names.\n * @param promptDescriptions An array of prompt descriptions.\n * @param promptTemplates An array of prompt templates.\n * @param defaultChain An optional BaseChain instance to be used as the default chain.\n * @param llmChainOpts Optional parameters for the LLMChainInput, excluding 'llm' and 'prompt'.\n * @param conversationChainOpts Optional parameters for the LLMChainInput, excluding 'llm' and 'outputKey'.\n * @param multiRouteChainOpts Optional parameters for the MultiRouteChainInput, excluding 'defaultChain'.\n * @returns An instance of MultiPromptChain.\n */\n static fromLLMAndPrompts(\n llm: BaseLanguageModelInterface,\n {\n promptNames,\n promptDescriptions,\n promptTemplates,\n defaultChain,\n llmChainOpts,\n conversationChainOpts,\n multiRouteChainOpts,\n }: {\n promptNames: string[];\n promptDescriptions: string[];\n promptTemplates: string[] | PromptTemplate[];\n defaultChain?: BaseChain;\n llmChainOpts?: Omit<LLMChainInput, \"llm\" | \"prompt\">;\n conversationChainOpts?: Omit<LLMChainInput, \"llm\" | \"outputKey\">;\n multiRouteChainOpts?: Omit<MultiRouteChainInput, \"defaultChain\">;\n }\n ): MultiPromptChain {\n const destinations = zipEntries(promptNames, promptDescriptions).map(\n ([name, desc]) => `${name}: ${desc}`\n );\n\n const structuredOutputParserSchema = z.object({\n destination: z\n .string()\n .optional()\n .describe('name of the question answering system to use or \"DEFAULT\"'),\n next_inputs: z\n .object({\n input: z\n .string()\n .describe(\"a potentially modified version of the original input\"),\n })\n .describe(\"input to be fed to the next model\"),\n });\n\n const outputParser = new RouterOutputParser(structuredOutputParserSchema);\n\n const destinationsStr = destinations.join(\"\\n\");\n const routerTemplate = interpolateFString(\n STRUCTURED_MULTI_PROMPT_ROUTER_TEMPLATE(\n outputParser.getFormatInstructions({ interpolationDepth: 4 })\n ),\n {\n destinations: destinationsStr,\n }\n );\n\n const routerPrompt = new PromptTemplate({\n template: routerTemplate,\n inputVariables: [\"input\"],\n outputParser,\n });\n\n const routerChain = LLMRouterChain.fromLLM(llm, routerPrompt);\n const destinationChains = zipEntries<[string, string | PromptTemplate]>(\n promptNames,\n promptTemplates\n ).reduce(\n (acc, [name, template]) => {\n let myPrompt: string | PromptTemplate;\n if (typeof template === \"object\") {\n myPrompt = template;\n } else if (typeof template === \"string\") {\n myPrompt = new PromptTemplate({\n template: template as string,\n inputVariables: [\"input\"],\n });\n } else {\n throw new Error(\"Invalid prompt template\");\n }\n acc[name as string] = new LLMChain({\n ...llmChainOpts,\n llm,\n prompt: myPrompt,\n });\n return acc;\n },\n {} as { [name: string]: LLMChain }\n );\n\n const convChain = new ConversationChain({\n ...conversationChainOpts,\n llm,\n outputKey: \"text\",\n });\n\n return new MultiPromptChain({\n ...multiRouteChainOpts,\n routerChain,\n destinationChains,\n defaultChain: defaultChain ?? convChain,\n });\n }\n\n _chainType(): string {\n return \"multi_prompt_chain\";\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,IAAa,mBAAb,MAAa,yBAAyB,gBAAgB;;;;CAIpD,OAAO,YACL,KACA,aACA,oBACA,iBACA,cACA,SACA;AACA,SAAO,iBAAiB,kBAAkB,KAAK;GAC7C;GACA;GACA;GACA;GACA,qBAAqB;GACtB,CAAC;;;;;;;;;;;;;;;;CAiBJ,OAAO,kBACL,KACA,EACE,aACA,oBACA,iBACA,cACA,cACA,uBACA,uBAUgB;EAClB,MAAM,eAAe,WAAW,aAAa,mBAAmB,CAAC,KAC9D,CAAC,MAAM,UAAU,GAAG,KAAK,IAAI,OAC/B;EAgBD,MAAM,eAAe,IAAI,mBAdY,EAAE,OAAO;GAC5C,aAAa,EACV,QAAQ,CACR,UAAU,CACV,SAAS,8DAA4D;GACxE,aAAa,EACV,OAAO,EACN,OAAO,EACJ,QAAQ,CACR,SAAS,uDAAuD,EACpE,CAAC,CACD,SAAS,oCAAoC;GACjD,CAAC,CAEuE;EAEzE,MAAM,kBAAkB,aAAa,KAAK,KAAK;EAU/C,MAAM,eAAe,IAAI,eAAe;GACtC,UAVqB,mBACrB,wCACE,aAAa,sBAAsB,EAAE,oBAAoB,GAAG,CAAC,CAC9D,EACD,EACE,cAAc,iBACf,CACF;GAIC,gBAAgB,CAAC,QAAQ;GACzB;GACD,CAAC;EAEF,MAAM,cAAc,eAAe,QAAQ,KAAK,aAAa;EAC7D,MAAM,oBAAoB,WACxB,aACA,gBACD,CAAC,QACC,KAAK,CAAC,MAAM,cAAc;GACzB,IAAI;AACJ,OAAI,OAAO,aAAa,SACtB,YAAW;YACF,OAAO,aAAa,SAC7B,YAAW,IAAI,eAAe;IAClB;IACV,gBAAgB,CAAC,QAAQ;IAC1B,CAAC;OAEF,OAAM,IAAI,MAAM,0BAA0B;AAE5C,OAAI,QAAkB,IAAI,SAAS;IACjC,GAAG;IACH;IACA,QAAQ;IACT,CAAC;AACF,UAAO;KAET,EAAE,CACH;EAED,MAAM,YAAY,IAAI,kBAAkB;GACtC,GAAG;GACH;GACA,WAAW;GACZ,CAAC;AAEF,SAAO,IAAI,iBAAiB;GAC1B,GAAG;GACH;GACA;GACA,cAAc,gBAAgB;GAC/B,CAAC;;CAGJ,aAAqB;AACnB,SAAO"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
//#region src/chains/router/multi_prompt_prompt.ts
|
|
3
2
|
const STRUCTURED_MULTI_PROMPT_ROUTER_TEMPLATE = (formatting) => `Given a raw text input to a language model, select the model prompt best suited for the input. You will be given the names of the available prompts and a description of what the prompt is best suited for. You may also revise the original input if you think that revising it will ultimately lead to a better response from the language model.
|
|
4
3
|
|
|
@@ -16,7 +15,7 @@ REMEMBER: "next_inputs.input" can just be the original input if you don't think
|
|
|
16
15
|
|
|
17
16
|
<< OUTPUT >>
|
|
18
17
|
`;
|
|
19
|
-
|
|
20
18
|
//#endregion
|
|
21
19
|
exports.STRUCTURED_MULTI_PROMPT_ROUTER_TEMPLATE = STRUCTURED_MULTI_PROMPT_ROUTER_TEMPLATE;
|
|
20
|
+
|
|
22
21
|
//# sourceMappingURL=multi_prompt_prompt.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi_prompt_prompt.cjs","names":[],"sources":["../../../src/chains/router/multi_prompt_prompt.ts"],"sourcesContent":["export const MULTI_PROMPT_ROUTER_TEMPLATE = `Given a raw text input to a language model, select the model prompt best suited for the input. You will be given the names of the available prompts and a description of what the prompt is best suited for. You may also revise the original input if you think that revising it will ultimately lead to a better response from the language model.\n\n<< FORMATTING >>\nReturn a markdown code snippet with a JSON object formatted to look like:\n\\`\\`\\`json\n{{{{\n \"destination\": string \\\\ name of the prompt to use or \"DEFAULT\"\n \"next_inputs\": string \\\\ a potentially modified version of the original input\n}}}}\n\\`\\`\\`\n\nREMEMBER: \"destination\" MUST be one of the candidate prompt names specified below OR it can be \"DEFAULT\" if the input is not well suited for any of the candidate prompts.\nREMEMBER: \"next_inputs\" can just be the original input if you don't think any modifications are needed.\n\n<< CANDIDATE PROMPTS >>\n{destinations}\n\n<< INPUT >>\n{{input}}\n\n<< OUTPUT >>\n`;\n\nexport const STRUCTURED_MULTI_PROMPT_ROUTER_TEMPLATE = (\n formatting: string\n) => `Given a raw text input to a language model, select the model prompt best suited for the input. You will be given the names of the available prompts and a description of what the prompt is best suited for. You may also revise the original input if you think that revising it will ultimately lead to a better response from the language model.\n\n<< FORMATTING >>\n${formatting}\n\nREMEMBER: \"destination\" MUST be one of the candidate prompt names specified below OR it can be \"DEFAULT\" if the input is not well suited for any of the candidate prompts.\nREMEMBER: \"next_inputs.input\" can just be the original input if you don't think any modifications are needed.\n\n<< CANDIDATE PROMPTS >>\n{destinations}\n\n<< INPUT >>\n{{input}}\n\n<< OUTPUT >>\n`;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"multi_prompt_prompt.cjs","names":[],"sources":["../../../src/chains/router/multi_prompt_prompt.ts"],"sourcesContent":["export const MULTI_PROMPT_ROUTER_TEMPLATE = `Given a raw text input to a language model, select the model prompt best suited for the input. You will be given the names of the available prompts and a description of what the prompt is best suited for. You may also revise the original input if you think that revising it will ultimately lead to a better response from the language model.\n\n<< FORMATTING >>\nReturn a markdown code snippet with a JSON object formatted to look like:\n\\`\\`\\`json\n{{{{\n \"destination\": string \\\\ name of the prompt to use or \"DEFAULT\"\n \"next_inputs\": string \\\\ a potentially modified version of the original input\n}}}}\n\\`\\`\\`\n\nREMEMBER: \"destination\" MUST be one of the candidate prompt names specified below OR it can be \"DEFAULT\" if the input is not well suited for any of the candidate prompts.\nREMEMBER: \"next_inputs\" can just be the original input if you don't think any modifications are needed.\n\n<< CANDIDATE PROMPTS >>\n{destinations}\n\n<< INPUT >>\n{{input}}\n\n<< OUTPUT >>\n`;\n\nexport const STRUCTURED_MULTI_PROMPT_ROUTER_TEMPLATE = (\n formatting: string\n) => `Given a raw text input to a language model, select the model prompt best suited for the input. You will be given the names of the available prompts and a description of what the prompt is best suited for. You may also revise the original input if you think that revising it will ultimately lead to a better response from the language model.\n\n<< FORMATTING >>\n${formatting}\n\nREMEMBER: \"destination\" MUST be one of the candidate prompt names specified below OR it can be \"DEFAULT\" if the input is not well suited for any of the candidate prompts.\nREMEMBER: \"next_inputs.input\" can just be the original input if you don't think any modifications are needed.\n\n<< CANDIDATE PROMPTS >>\n{destinations}\n\n<< INPUT >>\n{{input}}\n\n<< OUTPUT >>\n`;\n"],"mappings":";AAuBA,MAAa,2CACX,eACG;;;EAGH,WAAW"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
|
|
2
1
|
//#region src/chains/router/multi_retrieval_prompt.ts
|
|
3
2
|
const STRUCTURED_MULTI_RETRIEVAL_ROUTER_TEMPLATE = (formatting) => `Given a query to a question answering system, select the system best suited for the input. You will be given the names of the available systems and a description of what questions the system is best suited for. You may also revise the original input if you think that revising it will ultimately lead to a better response.
|
|
4
3
|
|
|
@@ -16,7 +15,7 @@ REMEMBER: "next_inputs.query" can just be the original input if you don't think
|
|
|
16
15
|
|
|
17
16
|
<< OUTPUT >>
|
|
18
17
|
`;
|
|
19
|
-
|
|
20
18
|
//#endregion
|
|
21
19
|
exports.STRUCTURED_MULTI_RETRIEVAL_ROUTER_TEMPLATE = STRUCTURED_MULTI_RETRIEVAL_ROUTER_TEMPLATE;
|
|
20
|
+
|
|
22
21
|
//# sourceMappingURL=multi_retrieval_prompt.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi_retrieval_prompt.cjs","names":[],"sources":["../../../src/chains/router/multi_retrieval_prompt.ts"],"sourcesContent":["export const MULTI_RETRIEVAL_ROUTER_TEMPLATE = `Given a query to a question answering system, select the system best suited for the input. You will be given the names of the available systems and a description of what questions the system is best suited for. You may also revise the original input if you think that revising it will ultimately lead to a better response.\n\n<< FORMATTING >>\nReturn a markdown code snippet with a JSON object formatted to look like:\n\\`\\`\\`json\n{{{{\n \"destination\": string \\\\ name of the question answering system to use or \"DEFAULT\"\n \"next_inputs\": string \\\\ a potentially modified version of the original input\n}}}}\n\\`\\`\\`\n\nREMEMBER: \"destination\" MUST be one of the candidate prompt names specified below OR it can be \"DEFAULT\" if the input is not well suited for any of the candidate prompts.\nREMEMBER: \"next_inputs\" can just be the original input if you don't think any modifications are needed.\n\n<< CANDIDATE PROMPTS >>\n{destinations}\n\n<< INPUT >>\n{{input}}\n\n<< OUTPUT >>\n`;\n\nexport const STRUCTURED_MULTI_RETRIEVAL_ROUTER_TEMPLATE = (\n formatting: string\n) => `Given a query to a question answering system, select the system best suited for the input. You will be given the names of the available systems and a description of what questions the system is best suited for. You may also revise the original input if you think that revising it will ultimately lead to a better response.\n\n<< FORMATTING >>\n${formatting}\n\nREMEMBER: \"destination\" MUST be one of the candidate prompt names specified below OR it can be \"DEFAULT\" if the input is not well suited for any of the candidate prompts.\nREMEMBER: \"next_inputs.query\" can just be the original input if you don't think any modifications are needed.\n\n<< CANDIDATE PROMPTS >>\n{destinations}\n\n<< INPUT >>\n{{input}}\n\n<< OUTPUT >>\n`;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"multi_retrieval_prompt.cjs","names":[],"sources":["../../../src/chains/router/multi_retrieval_prompt.ts"],"sourcesContent":["export const MULTI_RETRIEVAL_ROUTER_TEMPLATE = `Given a query to a question answering system, select the system best suited for the input. You will be given the names of the available systems and a description of what questions the system is best suited for. You may also revise the original input if you think that revising it will ultimately lead to a better response.\n\n<< FORMATTING >>\nReturn a markdown code snippet with a JSON object formatted to look like:\n\\`\\`\\`json\n{{{{\n \"destination\": string \\\\ name of the question answering system to use or \"DEFAULT\"\n \"next_inputs\": string \\\\ a potentially modified version of the original input\n}}}}\n\\`\\`\\`\n\nREMEMBER: \"destination\" MUST be one of the candidate prompt names specified below OR it can be \"DEFAULT\" if the input is not well suited for any of the candidate prompts.\nREMEMBER: \"next_inputs\" can just be the original input if you don't think any modifications are needed.\n\n<< CANDIDATE PROMPTS >>\n{destinations}\n\n<< INPUT >>\n{{input}}\n\n<< OUTPUT >>\n`;\n\nexport const STRUCTURED_MULTI_RETRIEVAL_ROUTER_TEMPLATE = (\n formatting: string\n) => `Given a query to a question answering system, select the system best suited for the input. You will be given the names of the available systems and a description of what questions the system is best suited for. You may also revise the original input if you think that revising it will ultimately lead to a better response.\n\n<< FORMATTING >>\n${formatting}\n\nREMEMBER: \"destination\" MUST be one of the candidate prompt names specified below OR it can be \"DEFAULT\" if the input is not well suited for any of the candidate prompts.\nREMEMBER: \"next_inputs.query\" can just be the original input if you don't think any modifications are needed.\n\n<< CANDIDATE PROMPTS >>\n{destinations}\n\n<< INPUT >>\n{{input}}\n\n<< OUTPUT >>\n`;\n"],"mappings":";AAuBA,MAAa,8CACX,eACG;;;EAGH,WAAW"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
const require_conversation = require(
|
|
3
|
-
const require_retrieval_qa = require(
|
|
4
|
-
const require_multi_route = require(
|
|
5
|
-
const require_llm_router = require(
|
|
6
|
-
const require_utils = require(
|
|
7
|
-
const require_router = require(
|
|
8
|
-
const require_multi_retrieval_prompt = require(
|
|
1
|
+
require("../../_virtual/_rolldown/runtime.cjs");
|
|
2
|
+
const require_conversation = require("../conversation.cjs");
|
|
3
|
+
const require_retrieval_qa = require("../retrieval_qa.cjs");
|
|
4
|
+
const require_multi_route = require("./multi_route.cjs");
|
|
5
|
+
const require_llm_router = require("./llm_router.cjs");
|
|
6
|
+
const require_utils = require("./utils.cjs");
|
|
7
|
+
const require_router = require("../../output_parsers/router.cjs");
|
|
8
|
+
const require_multi_retrieval_prompt = require("./multi_retrieval_prompt.cjs");
|
|
9
9
|
let _langchain_core_prompts = require("@langchain/core/prompts");
|
|
10
10
|
let zod_v3 = require("zod/v3");
|
|
11
|
-
|
|
12
11
|
//#region src/chains/router/multi_retrieval_qa.ts
|
|
13
12
|
/**
|
|
14
13
|
* A class that represents a multi-retrieval question answering chain in
|
|
@@ -124,7 +123,7 @@ var MultiRetrievalQAChain = class MultiRetrievalQAChain extends require_multi_ro
|
|
|
124
123
|
return "multi_retrieval_qa_chain";
|
|
125
124
|
}
|
|
126
125
|
};
|
|
127
|
-
|
|
128
126
|
//#endregion
|
|
129
127
|
exports.MultiRetrievalQAChain = MultiRetrievalQAChain;
|
|
128
|
+
|
|
130
129
|
//# sourceMappingURL=multi_retrieval_qa.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi_retrieval_qa.cjs","names":["MultiRouteChain","zipEntries","RouterOutputParser","z","PromptTemplate","STRUCTURED_MULTI_RETRIEVAL_ROUTER_TEMPLATE","LLMRouterChain","RetrievalQAChain","ConversationChain","DEFAULT_TEMPLATE"],"sources":["../../../src/chains/router/multi_retrieval_qa.ts"],"sourcesContent":["import { z } from \"zod/v3\";\nimport type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport type { BaseRetrieverInterface } from \"@langchain/core/retrievers\";\nimport { interpolateFString, PromptTemplate } from \"@langchain/core/prompts\";\nimport { MultiRouteChain, MultiRouteChainInput } from \"./multi_route.js\";\nimport { BaseChain } from \"../../chains/base.js\";\nimport { LLMRouterChain } from \"./llm_router.js\";\nimport {\n ConversationChain,\n DEFAULT_TEMPLATE,\n} from \"../../chains/conversation.js\";\nimport { STRUCTURED_MULTI_RETRIEVAL_ROUTER_TEMPLATE } from \"./multi_retrieval_prompt.js\";\nimport { zipEntries } from \"./utils.js\";\nimport {\n RetrievalQAChain,\n RetrievalQAChainInput,\n} from \"../../chains/retrieval_qa.js\";\nimport { RouterOutputParser } from \"../../output_parsers/router.js\";\n\n/**\n * A type that represents the default values for the MultiRetrievalQAChain\n * class. It includes optional properties for the default retriever,\n * default prompt, and default chain.\n */\nexport type MultiRetrievalDefaults = {\n defaultRetriever?: BaseRetrieverInterface;\n defaultPrompt?: PromptTemplate;\n defaultChain?: BaseChain;\n};\n\n/**\n * A class that represents a multi-retrieval question answering chain in\n * the LangChain framework. It extends the MultiRouteChain class and\n * provides additional functionality specific to multi-retrieval QA\n * chains.\n * @example\n * ```typescript\n * const multiRetrievalQAChain = MultiRetrievalQAChain.fromLLMAndRetrievers(\n * new ChatOpenAI({ model: \"gpt-4o-mini\" }),\n * {\n * retrieverNames: [\"aqua teen\", \"mst3k\", \"animaniacs\"],\n * retrieverDescriptions: [\n * \"Good for answering questions about Aqua Teen Hunger Force theme song\",\n * \"Good for answering questions about Mystery Science Theater 3000 theme song\",\n * \"Good for answering questions about Animaniacs theme song\",\n * ],\n * retrievers: [\n * new MemoryVectorStore().asRetriever(3),\n * new MemoryVectorStore().asRetriever(3),\n * new MemoryVectorStore().asRetriever(3),\n * ],\n * retrievalQAChainOpts: {\n * returnSourceDocuments: true,\n * },\n * },\n * );\n *\n * const result = await multiRetrievalQAChain.call({\n * input:\n * \"In the Aqua Teen Hunger Force theme song, who calls himself the mike rula?\",\n * });\n *\n * console.log(result.sourceDocuments, result.text);\n * ```\n */\nexport class MultiRetrievalQAChain extends MultiRouteChain {\n get outputKeys(): string[] {\n return [\"result\"];\n }\n\n /**\n * @deprecated Use `fromRetrieversAndPrompts` instead\n */\n static fromRetrievers(\n llm: BaseLanguageModelInterface,\n retrieverNames: string[],\n retrieverDescriptions: string[],\n retrievers: BaseRetrieverInterface[],\n retrieverPrompts?: PromptTemplate[],\n defaults?: MultiRetrievalDefaults,\n options?: Omit<MultiRouteChainInput, \"defaultChain\">\n ) {\n return MultiRetrievalQAChain.fromLLMAndRetrievers(llm, {\n retrieverNames,\n retrieverDescriptions,\n retrievers,\n retrieverPrompts,\n defaults,\n multiRetrievalChainOpts: options,\n });\n }\n\n /**\n * A static method that creates an instance of MultiRetrievalQAChain from\n * a BaseLanguageModel and a set of retrievers. It takes in optional\n * parameters for the retriever names, descriptions, prompts, defaults,\n * and additional options. It is an alternative method to fromRetrievers\n * and provides more flexibility in configuring the underlying chains.\n * @param llm A BaseLanguageModel instance.\n * @param retrieverNames An array of retriever names.\n * @param retrieverDescriptions An array of retriever descriptions.\n * @param retrievers An array of BaseRetrieverInterface instances.\n * @param retrieverPrompts An optional array of PromptTemplate instances for the retrievers.\n * @param defaults An optional MultiRetrievalDefaults instance.\n * @param multiRetrievalChainOpts Additional optional parameters for the multi-retrieval chain.\n * @param retrievalQAChainOpts Additional optional parameters for the retrieval QA chain.\n * @returns A new instance of MultiRetrievalQAChain.\n */\n static fromLLMAndRetrievers(\n llm: BaseLanguageModelInterface,\n {\n retrieverNames,\n retrieverDescriptions,\n retrievers,\n retrieverPrompts,\n defaults,\n multiRetrievalChainOpts,\n retrievalQAChainOpts,\n }: {\n retrieverNames: string[];\n retrieverDescriptions: string[];\n retrievers: BaseRetrieverInterface[];\n retrieverPrompts?: PromptTemplate[];\n defaults?: MultiRetrievalDefaults;\n multiRetrievalChainOpts?: Omit<MultiRouteChainInput, \"defaultChain\">;\n retrievalQAChainOpts?: Partial<\n Omit<RetrievalQAChainInput, \"retriever\" | \"combineDocumentsChain\">\n > & {\n prompt?: PromptTemplate;\n };\n }\n ): MultiRetrievalQAChain {\n const { defaultRetriever, defaultPrompt, defaultChain } = defaults ?? {};\n if (defaultPrompt && !defaultRetriever) {\n throw new Error(\n \"`default_retriever` must be specified if `default_prompt` is \\nprovided. Received only `default_prompt`.\"\n );\n }\n const destinations = zipEntries<[string, string]>(\n retrieverNames,\n retrieverDescriptions\n ).map(([name, desc]) => `${name}: ${desc}`);\n\n const structuredOutputParserSchema = z.object({\n destination: z\n .string()\n .optional()\n .describe('name of the question answering system to use or \"DEFAULT\"'),\n next_inputs: z\n .object({\n query: z\n .string()\n .describe(\"a potentially modified version of the original input\"),\n })\n .describe(\"input to be fed to the next model\"),\n });\n\n const outputParser = new RouterOutputParser<\n typeof structuredOutputParserSchema\n >(structuredOutputParserSchema);\n\n const destinationsStr = destinations.join(\"\\n\");\n const routerTemplate = interpolateFString(\n STRUCTURED_MULTI_RETRIEVAL_ROUTER_TEMPLATE(\n outputParser.getFormatInstructions({ interpolationDepth: 4 })\n ),\n {\n destinations: destinationsStr,\n }\n );\n const routerPrompt = new PromptTemplate({\n template: routerTemplate,\n inputVariables: [\"input\"],\n outputParser,\n });\n\n const routerChain = LLMRouterChain.fromLLM(llm, routerPrompt);\n const prompts = retrieverPrompts ?? retrievers.map(() => null);\n const destinationChains = zipEntries<\n [string, BaseRetrieverInterface, PromptTemplate | null]\n >(retrieverNames, retrievers, prompts).reduce(\n (acc, [name, retriever, prompt]) => {\n const opt: Partial<RetrievalQAChainInput> & {\n prompt?: PromptTemplate;\n } = retrievalQAChainOpts ?? {};\n if (prompt) {\n opt.prompt = prompt;\n }\n acc[name] = RetrievalQAChain.fromLLM(llm, retriever, opt);\n return acc;\n },\n {} as { [name: string]: RetrievalQAChain }\n );\n\n let _defaultChain;\n if (defaultChain) {\n _defaultChain = defaultChain;\n } else if (defaultRetriever) {\n _defaultChain = RetrievalQAChain.fromLLM(llm, defaultRetriever, {\n ...retrievalQAChainOpts,\n prompt: defaultPrompt,\n });\n } else {\n const promptTemplate = DEFAULT_TEMPLATE.replace(\"input\", \"query\");\n const prompt = new PromptTemplate({\n template: promptTemplate,\n inputVariables: [\"history\", \"query\"],\n });\n _defaultChain = new ConversationChain({\n llm,\n prompt,\n outputKey: \"result\",\n });\n }\n\n return new MultiRetrievalQAChain({\n ...multiRetrievalChainOpts,\n routerChain,\n destinationChains,\n defaultChain: _defaultChain,\n });\n }\n\n _chainType(): string {\n return \"multi_retrieval_qa_chain\";\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiEA,IAAa,wBAAb,MAAa,8BAA8BA,oCAAgB;CACzD,IAAI,aAAuB;AACzB,SAAO,CAAC,SAAS;;;;;CAMnB,OAAO,eACL,KACA,gBACA,uBACA,YACA,kBACA,UACA,SACA;AACA,SAAO,sBAAsB,qBAAqB,KAAK;GACrD;GACA;GACA;GACA;GACA;GACA,yBAAyB;GAC1B,CAAC;;;;;;;;;;;;;;;;;;CAmBJ,OAAO,qBACL,KACA,EACE,gBACA,uBACA,YACA,kBACA,UACA,yBACA,wBAcqB;EACvB,MAAM,EAAE,kBAAkB,eAAe,iBAAiB,YAAY,EAAE;AACxE,MAAI,iBAAiB,CAAC,iBACpB,OAAM,IAAI,MACR,2GACD;EAEH,MAAM,eAAeC,yBACnB,gBACA,sBACD,CAAC,KAAK,CAAC,MAAM,UAAU,GAAG,KAAK,IAAI,OAAO;EAgB3C,MAAM,eAAe,IAAIC,kCAdYC,SAAE,OAAO;GAC5C,aAAaA,SACV,QAAQ,CACR,UAAU,CACV,SAAS,8DAA4D;GACxE,aAAaA,SACV,OAAO,EACN,OAAOA,SACJ,QAAQ,CACR,SAAS,uDAAuD,EACpE,CAAC,CACD,SAAS,oCAAoC;GACjD,CAAC,CAI6B;EAE/B,MAAM,kBAAkB,aAAa,KAAK,KAAK;EAS/C,MAAM,eAAe,IAAIC,uCAAe;GACtC,0DARAC,0EACE,aAAa,sBAAsB,EAAE,oBAAoB,GAAG,CAAC,CAC9D,EACD,EACE,cAAc,iBACf,CACF;GAGC,gBAAgB,CAAC,QAAQ;GACzB;GACD,CAAC;EAEF,MAAM,cAAcC,kCAAe,QAAQ,KAAK,aAAa;EAE7D,MAAM,oBAAoBL,yBAExB,gBAAgB,YAHF,oBAAoB,WAAW,UAAU,KAAK,CAGxB,CAAC,QACpC,KAAK,CAAC,MAAM,WAAW,YAAY;GAClC,MAAM,MAEF,wBAAwB,EAAE;AAC9B,OAAI,OACF,KAAI,SAAS;AAEf,OAAI,QAAQM,sCAAiB,QAAQ,KAAK,WAAW,IAAI;AACzD,UAAO;KAET,EAAE,CACH;EAED,IAAI;AACJ,MAAI,aACF,iBAAgB;WACP,iBACT,iBAAgBA,sCAAiB,QAAQ,KAAK,kBAAkB;GAC9D,GAAG;GACH,QAAQ;GACT,CAAC;MAOF,iBAAgB,IAAIC,uCAAkB;GACpC;GACA,QANa,IAAIJ,uCAAe;IAChC,UAFqBK,sCAAiB,QAAQ,SAAS,QAAQ;IAG/D,gBAAgB,CAAC,WAAW,QAAQ;IACrC,CAAC;GAIA,WAAW;GACZ,CAAC;AAGJ,SAAO,IAAI,sBAAsB;GAC/B,GAAG;GACH;GACA;GACA,cAAc;GACf,CAAC;;CAGJ,aAAqB;AACnB,SAAO"}
|
|
1
|
+
{"version":3,"file":"multi_retrieval_qa.cjs","names":["MultiRouteChain","zipEntries","RouterOutputParser","z","PromptTemplate","STRUCTURED_MULTI_RETRIEVAL_ROUTER_TEMPLATE","LLMRouterChain","RetrievalQAChain","ConversationChain","DEFAULT_TEMPLATE"],"sources":["../../../src/chains/router/multi_retrieval_qa.ts"],"sourcesContent":["import { z } from \"zod/v3\";\nimport type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport type { BaseRetrieverInterface } from \"@langchain/core/retrievers\";\nimport { interpolateFString, PromptTemplate } from \"@langchain/core/prompts\";\nimport { MultiRouteChain, MultiRouteChainInput } from \"./multi_route.js\";\nimport { BaseChain } from \"../../chains/base.js\";\nimport { LLMRouterChain } from \"./llm_router.js\";\nimport {\n ConversationChain,\n DEFAULT_TEMPLATE,\n} from \"../../chains/conversation.js\";\nimport { STRUCTURED_MULTI_RETRIEVAL_ROUTER_TEMPLATE } from \"./multi_retrieval_prompt.js\";\nimport { zipEntries } from \"./utils.js\";\nimport {\n RetrievalQAChain,\n RetrievalQAChainInput,\n} from \"../../chains/retrieval_qa.js\";\nimport { RouterOutputParser } from \"../../output_parsers/router.js\";\n\n/**\n * A type that represents the default values for the MultiRetrievalQAChain\n * class. It includes optional properties for the default retriever,\n * default prompt, and default chain.\n */\nexport type MultiRetrievalDefaults = {\n defaultRetriever?: BaseRetrieverInterface;\n defaultPrompt?: PromptTemplate;\n defaultChain?: BaseChain;\n};\n\n/**\n * A class that represents a multi-retrieval question answering chain in\n * the LangChain framework. It extends the MultiRouteChain class and\n * provides additional functionality specific to multi-retrieval QA\n * chains.\n * @example\n * ```typescript\n * const multiRetrievalQAChain = MultiRetrievalQAChain.fromLLMAndRetrievers(\n * new ChatOpenAI({ model: \"gpt-4o-mini\" }),\n * {\n * retrieverNames: [\"aqua teen\", \"mst3k\", \"animaniacs\"],\n * retrieverDescriptions: [\n * \"Good for answering questions about Aqua Teen Hunger Force theme song\",\n * \"Good for answering questions about Mystery Science Theater 3000 theme song\",\n * \"Good for answering questions about Animaniacs theme song\",\n * ],\n * retrievers: [\n * new MemoryVectorStore().asRetriever(3),\n * new MemoryVectorStore().asRetriever(3),\n * new MemoryVectorStore().asRetriever(3),\n * ],\n * retrievalQAChainOpts: {\n * returnSourceDocuments: true,\n * },\n * },\n * );\n *\n * const result = await multiRetrievalQAChain.call({\n * input:\n * \"In the Aqua Teen Hunger Force theme song, who calls himself the mike rula?\",\n * });\n *\n * console.log(result.sourceDocuments, result.text);\n * ```\n */\nexport class MultiRetrievalQAChain extends MultiRouteChain {\n get outputKeys(): string[] {\n return [\"result\"];\n }\n\n /**\n * @deprecated Use `fromRetrieversAndPrompts` instead\n */\n static fromRetrievers(\n llm: BaseLanguageModelInterface,\n retrieverNames: string[],\n retrieverDescriptions: string[],\n retrievers: BaseRetrieverInterface[],\n retrieverPrompts?: PromptTemplate[],\n defaults?: MultiRetrievalDefaults,\n options?: Omit<MultiRouteChainInput, \"defaultChain\">\n ) {\n return MultiRetrievalQAChain.fromLLMAndRetrievers(llm, {\n retrieverNames,\n retrieverDescriptions,\n retrievers,\n retrieverPrompts,\n defaults,\n multiRetrievalChainOpts: options,\n });\n }\n\n /**\n * A static method that creates an instance of MultiRetrievalQAChain from\n * a BaseLanguageModel and a set of retrievers. It takes in optional\n * parameters for the retriever names, descriptions, prompts, defaults,\n * and additional options. It is an alternative method to fromRetrievers\n * and provides more flexibility in configuring the underlying chains.\n * @param llm A BaseLanguageModel instance.\n * @param retrieverNames An array of retriever names.\n * @param retrieverDescriptions An array of retriever descriptions.\n * @param retrievers An array of BaseRetrieverInterface instances.\n * @param retrieverPrompts An optional array of PromptTemplate instances for the retrievers.\n * @param defaults An optional MultiRetrievalDefaults instance.\n * @param multiRetrievalChainOpts Additional optional parameters for the multi-retrieval chain.\n * @param retrievalQAChainOpts Additional optional parameters for the retrieval QA chain.\n * @returns A new instance of MultiRetrievalQAChain.\n */\n static fromLLMAndRetrievers(\n llm: BaseLanguageModelInterface,\n {\n retrieverNames,\n retrieverDescriptions,\n retrievers,\n retrieverPrompts,\n defaults,\n multiRetrievalChainOpts,\n retrievalQAChainOpts,\n }: {\n retrieverNames: string[];\n retrieverDescriptions: string[];\n retrievers: BaseRetrieverInterface[];\n retrieverPrompts?: PromptTemplate[];\n defaults?: MultiRetrievalDefaults;\n multiRetrievalChainOpts?: Omit<MultiRouteChainInput, \"defaultChain\">;\n retrievalQAChainOpts?: Partial<\n Omit<RetrievalQAChainInput, \"retriever\" | \"combineDocumentsChain\">\n > & {\n prompt?: PromptTemplate;\n };\n }\n ): MultiRetrievalQAChain {\n const { defaultRetriever, defaultPrompt, defaultChain } = defaults ?? {};\n if (defaultPrompt && !defaultRetriever) {\n throw new Error(\n \"`default_retriever` must be specified if `default_prompt` is \\nprovided. Received only `default_prompt`.\"\n );\n }\n const destinations = zipEntries<[string, string]>(\n retrieverNames,\n retrieverDescriptions\n ).map(([name, desc]) => `${name}: ${desc}`);\n\n const structuredOutputParserSchema = z.object({\n destination: z\n .string()\n .optional()\n .describe('name of the question answering system to use or \"DEFAULT\"'),\n next_inputs: z\n .object({\n query: z\n .string()\n .describe(\"a potentially modified version of the original input\"),\n })\n .describe(\"input to be fed to the next model\"),\n });\n\n const outputParser = new RouterOutputParser<\n typeof structuredOutputParserSchema\n >(structuredOutputParserSchema);\n\n const destinationsStr = destinations.join(\"\\n\");\n const routerTemplate = interpolateFString(\n STRUCTURED_MULTI_RETRIEVAL_ROUTER_TEMPLATE(\n outputParser.getFormatInstructions({ interpolationDepth: 4 })\n ),\n {\n destinations: destinationsStr,\n }\n );\n const routerPrompt = new PromptTemplate({\n template: routerTemplate,\n inputVariables: [\"input\"],\n outputParser,\n });\n\n const routerChain = LLMRouterChain.fromLLM(llm, routerPrompt);\n const prompts = retrieverPrompts ?? retrievers.map(() => null);\n const destinationChains = zipEntries<\n [string, BaseRetrieverInterface, PromptTemplate | null]\n >(retrieverNames, retrievers, prompts).reduce(\n (acc, [name, retriever, prompt]) => {\n const opt: Partial<RetrievalQAChainInput> & {\n prompt?: PromptTemplate;\n } = retrievalQAChainOpts ?? {};\n if (prompt) {\n opt.prompt = prompt;\n }\n acc[name] = RetrievalQAChain.fromLLM(llm, retriever, opt);\n return acc;\n },\n {} as { [name: string]: RetrievalQAChain }\n );\n\n let _defaultChain;\n if (defaultChain) {\n _defaultChain = defaultChain;\n } else if (defaultRetriever) {\n _defaultChain = RetrievalQAChain.fromLLM(llm, defaultRetriever, {\n ...retrievalQAChainOpts,\n prompt: defaultPrompt,\n });\n } else {\n const promptTemplate = DEFAULT_TEMPLATE.replace(\"input\", \"query\");\n const prompt = new PromptTemplate({\n template: promptTemplate,\n inputVariables: [\"history\", \"query\"],\n });\n _defaultChain = new ConversationChain({\n llm,\n prompt,\n outputKey: \"result\",\n });\n }\n\n return new MultiRetrievalQAChain({\n ...multiRetrievalChainOpts,\n routerChain,\n destinationChains,\n defaultChain: _defaultChain,\n });\n }\n\n _chainType(): string {\n return \"multi_retrieval_qa_chain\";\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiEA,IAAa,wBAAb,MAAa,8BAA8BA,oBAAAA,gBAAgB;CACzD,IAAI,aAAuB;AACzB,SAAO,CAAC,SAAS;;;;;CAMnB,OAAO,eACL,KACA,gBACA,uBACA,YACA,kBACA,UACA,SACA;AACA,SAAO,sBAAsB,qBAAqB,KAAK;GACrD;GACA;GACA;GACA;GACA;GACA,yBAAyB;GAC1B,CAAC;;;;;;;;;;;;;;;;;;CAmBJ,OAAO,qBACL,KACA,EACE,gBACA,uBACA,YACA,kBACA,UACA,yBACA,wBAcqB;EACvB,MAAM,EAAE,kBAAkB,eAAe,iBAAiB,YAAY,EAAE;AACxE,MAAI,iBAAiB,CAAC,iBACpB,OAAM,IAAI,MACR,2GACD;EAEH,MAAM,eAAeC,cAAAA,WACnB,gBACA,sBACD,CAAC,KAAK,CAAC,MAAM,UAAU,GAAG,KAAK,IAAI,OAAO;EAgB3C,MAAM,eAAe,IAAIC,eAAAA,mBAdYC,OAAAA,EAAE,OAAO;GAC5C,aAAaA,OAAAA,EACV,QAAQ,CACR,UAAU,CACV,SAAS,8DAA4D;GACxE,aAAaA,OAAAA,EACV,OAAO,EACN,OAAOA,OAAAA,EACJ,QAAQ,CACR,SAAS,uDAAuD,EACpE,CAAC,CACD,SAAS,oCAAoC;GACjD,CAAC,CAI6B;EAE/B,MAAM,kBAAkB,aAAa,KAAK,KAAK;EAS/C,MAAM,eAAe,IAAIC,wBAAAA,eAAe;GACtC,WAAA,GAAA,wBAAA,oBARAC,+BAAAA,2CACE,aAAa,sBAAsB,EAAE,oBAAoB,GAAG,CAAC,CAC9D,EACD,EACE,cAAc,iBACf,CACF;GAGC,gBAAgB,CAAC,QAAQ;GACzB;GACD,CAAC;EAEF,MAAM,cAAcC,mBAAAA,eAAe,QAAQ,KAAK,aAAa;EAE7D,MAAM,oBAAoBL,cAAAA,WAExB,gBAAgB,YAHF,oBAAoB,WAAW,UAAU,KAAK,CAGxB,CAAC,QACpC,KAAK,CAAC,MAAM,WAAW,YAAY;GAClC,MAAM,MAEF,wBAAwB,EAAE;AAC9B,OAAI,OACF,KAAI,SAAS;AAEf,OAAI,QAAQM,qBAAAA,iBAAiB,QAAQ,KAAK,WAAW,IAAI;AACzD,UAAO;KAET,EAAE,CACH;EAED,IAAI;AACJ,MAAI,aACF,iBAAgB;WACP,iBACT,iBAAgBA,qBAAAA,iBAAiB,QAAQ,KAAK,kBAAkB;GAC9D,GAAG;GACH,QAAQ;GACT,CAAC;MAOF,iBAAgB,IAAIC,qBAAAA,kBAAkB;GACpC;GACA,QANa,IAAIJ,wBAAAA,eAAe;IAChC,UAFqBK,qBAAAA,iBAAiB,QAAQ,SAAS,QAAQ;IAG/D,gBAAgB,CAAC,WAAW,QAAQ;IACrC,CAAC;GAIA,WAAW;GACZ,CAAC;AAGJ,SAAO,IAAI,sBAAsB;GAC/B,GAAG;GACH;GACA;GACA,cAAc;GACf,CAAC;;CAGJ,aAAqB;AACnB,SAAO"}
|
|
@@ -7,7 +7,6 @@ import { RouterOutputParser } from "../../output_parsers/router.js";
|
|
|
7
7
|
import { STRUCTURED_MULTI_RETRIEVAL_ROUTER_TEMPLATE } from "./multi_retrieval_prompt.js";
|
|
8
8
|
import { PromptTemplate, interpolateFString } from "@langchain/core/prompts";
|
|
9
9
|
import { z } from "zod/v3";
|
|
10
|
-
|
|
11
10
|
//#region src/chains/router/multi_retrieval_qa.ts
|
|
12
11
|
/**
|
|
13
12
|
* A class that represents a multi-retrieval question answering chain in
|
|
@@ -123,7 +122,7 @@ var MultiRetrievalQAChain = class MultiRetrievalQAChain extends MultiRouteChain
|
|
|
123
122
|
return "multi_retrieval_qa_chain";
|
|
124
123
|
}
|
|
125
124
|
};
|
|
126
|
-
|
|
127
125
|
//#endregion
|
|
128
126
|
export { MultiRetrievalQAChain };
|
|
127
|
+
|
|
129
128
|
//# sourceMappingURL=multi_retrieval_qa.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi_retrieval_qa.js","names":[],"sources":["../../../src/chains/router/multi_retrieval_qa.ts"],"sourcesContent":["import { z } from \"zod/v3\";\nimport type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport type { BaseRetrieverInterface } from \"@langchain/core/retrievers\";\nimport { interpolateFString, PromptTemplate } from \"@langchain/core/prompts\";\nimport { MultiRouteChain, MultiRouteChainInput } from \"./multi_route.js\";\nimport { BaseChain } from \"../../chains/base.js\";\nimport { LLMRouterChain } from \"./llm_router.js\";\nimport {\n ConversationChain,\n DEFAULT_TEMPLATE,\n} from \"../../chains/conversation.js\";\nimport { STRUCTURED_MULTI_RETRIEVAL_ROUTER_TEMPLATE } from \"./multi_retrieval_prompt.js\";\nimport { zipEntries } from \"./utils.js\";\nimport {\n RetrievalQAChain,\n RetrievalQAChainInput,\n} from \"../../chains/retrieval_qa.js\";\nimport { RouterOutputParser } from \"../../output_parsers/router.js\";\n\n/**\n * A type that represents the default values for the MultiRetrievalQAChain\n * class. It includes optional properties for the default retriever,\n * default prompt, and default chain.\n */\nexport type MultiRetrievalDefaults = {\n defaultRetriever?: BaseRetrieverInterface;\n defaultPrompt?: PromptTemplate;\n defaultChain?: BaseChain;\n};\n\n/**\n * A class that represents a multi-retrieval question answering chain in\n * the LangChain framework. It extends the MultiRouteChain class and\n * provides additional functionality specific to multi-retrieval QA\n * chains.\n * @example\n * ```typescript\n * const multiRetrievalQAChain = MultiRetrievalQAChain.fromLLMAndRetrievers(\n * new ChatOpenAI({ model: \"gpt-4o-mini\" }),\n * {\n * retrieverNames: [\"aqua teen\", \"mst3k\", \"animaniacs\"],\n * retrieverDescriptions: [\n * \"Good for answering questions about Aqua Teen Hunger Force theme song\",\n * \"Good for answering questions about Mystery Science Theater 3000 theme song\",\n * \"Good for answering questions about Animaniacs theme song\",\n * ],\n * retrievers: [\n * new MemoryVectorStore().asRetriever(3),\n * new MemoryVectorStore().asRetriever(3),\n * new MemoryVectorStore().asRetriever(3),\n * ],\n * retrievalQAChainOpts: {\n * returnSourceDocuments: true,\n * },\n * },\n * );\n *\n * const result = await multiRetrievalQAChain.call({\n * input:\n * \"In the Aqua Teen Hunger Force theme song, who calls himself the mike rula?\",\n * });\n *\n * console.log(result.sourceDocuments, result.text);\n * ```\n */\nexport class MultiRetrievalQAChain extends MultiRouteChain {\n get outputKeys(): string[] {\n return [\"result\"];\n }\n\n /**\n * @deprecated Use `fromRetrieversAndPrompts` instead\n */\n static fromRetrievers(\n llm: BaseLanguageModelInterface,\n retrieverNames: string[],\n retrieverDescriptions: string[],\n retrievers: BaseRetrieverInterface[],\n retrieverPrompts?: PromptTemplate[],\n defaults?: MultiRetrievalDefaults,\n options?: Omit<MultiRouteChainInput, \"defaultChain\">\n ) {\n return MultiRetrievalQAChain.fromLLMAndRetrievers(llm, {\n retrieverNames,\n retrieverDescriptions,\n retrievers,\n retrieverPrompts,\n defaults,\n multiRetrievalChainOpts: options,\n });\n }\n\n /**\n * A static method that creates an instance of MultiRetrievalQAChain from\n * a BaseLanguageModel and a set of retrievers. It takes in optional\n * parameters for the retriever names, descriptions, prompts, defaults,\n * and additional options. It is an alternative method to fromRetrievers\n * and provides more flexibility in configuring the underlying chains.\n * @param llm A BaseLanguageModel instance.\n * @param retrieverNames An array of retriever names.\n * @param retrieverDescriptions An array of retriever descriptions.\n * @param retrievers An array of BaseRetrieverInterface instances.\n * @param retrieverPrompts An optional array of PromptTemplate instances for the retrievers.\n * @param defaults An optional MultiRetrievalDefaults instance.\n * @param multiRetrievalChainOpts Additional optional parameters for the multi-retrieval chain.\n * @param retrievalQAChainOpts Additional optional parameters for the retrieval QA chain.\n * @returns A new instance of MultiRetrievalQAChain.\n */\n static fromLLMAndRetrievers(\n llm: BaseLanguageModelInterface,\n {\n retrieverNames,\n retrieverDescriptions,\n retrievers,\n retrieverPrompts,\n defaults,\n multiRetrievalChainOpts,\n retrievalQAChainOpts,\n }: {\n retrieverNames: string[];\n retrieverDescriptions: string[];\n retrievers: BaseRetrieverInterface[];\n retrieverPrompts?: PromptTemplate[];\n defaults?: MultiRetrievalDefaults;\n multiRetrievalChainOpts?: Omit<MultiRouteChainInput, \"defaultChain\">;\n retrievalQAChainOpts?: Partial<\n Omit<RetrievalQAChainInput, \"retriever\" | \"combineDocumentsChain\">\n > & {\n prompt?: PromptTemplate;\n };\n }\n ): MultiRetrievalQAChain {\n const { defaultRetriever, defaultPrompt, defaultChain } = defaults ?? {};\n if (defaultPrompt && !defaultRetriever) {\n throw new Error(\n \"`default_retriever` must be specified if `default_prompt` is \\nprovided. Received only `default_prompt`.\"\n );\n }\n const destinations = zipEntries<[string, string]>(\n retrieverNames,\n retrieverDescriptions\n ).map(([name, desc]) => `${name}: ${desc}`);\n\n const structuredOutputParserSchema = z.object({\n destination: z\n .string()\n .optional()\n .describe('name of the question answering system to use or \"DEFAULT\"'),\n next_inputs: z\n .object({\n query: z\n .string()\n .describe(\"a potentially modified version of the original input\"),\n })\n .describe(\"input to be fed to the next model\"),\n });\n\n const outputParser = new RouterOutputParser<\n typeof structuredOutputParserSchema\n >(structuredOutputParserSchema);\n\n const destinationsStr = destinations.join(\"\\n\");\n const routerTemplate = interpolateFString(\n STRUCTURED_MULTI_RETRIEVAL_ROUTER_TEMPLATE(\n outputParser.getFormatInstructions({ interpolationDepth: 4 })\n ),\n {\n destinations: destinationsStr,\n }\n );\n const routerPrompt = new PromptTemplate({\n template: routerTemplate,\n inputVariables: [\"input\"],\n outputParser,\n });\n\n const routerChain = LLMRouterChain.fromLLM(llm, routerPrompt);\n const prompts = retrieverPrompts ?? retrievers.map(() => null);\n const destinationChains = zipEntries<\n [string, BaseRetrieverInterface, PromptTemplate | null]\n >(retrieverNames, retrievers, prompts).reduce(\n (acc, [name, retriever, prompt]) => {\n const opt: Partial<RetrievalQAChainInput> & {\n prompt?: PromptTemplate;\n } = retrievalQAChainOpts ?? {};\n if (prompt) {\n opt.prompt = prompt;\n }\n acc[name] = RetrievalQAChain.fromLLM(llm, retriever, opt);\n return acc;\n },\n {} as { [name: string]: RetrievalQAChain }\n );\n\n let _defaultChain;\n if (defaultChain) {\n _defaultChain = defaultChain;\n } else if (defaultRetriever) {\n _defaultChain = RetrievalQAChain.fromLLM(llm, defaultRetriever, {\n ...retrievalQAChainOpts,\n prompt: defaultPrompt,\n });\n } else {\n const promptTemplate = DEFAULT_TEMPLATE.replace(\"input\", \"query\");\n const prompt = new PromptTemplate({\n template: promptTemplate,\n inputVariables: [\"history\", \"query\"],\n });\n _defaultChain = new ConversationChain({\n llm,\n prompt,\n outputKey: \"result\",\n });\n }\n\n return new MultiRetrievalQAChain({\n ...multiRetrievalChainOpts,\n routerChain,\n destinationChains,\n defaultChain: _defaultChain,\n });\n }\n\n _chainType(): string {\n return \"multi_retrieval_qa_chain\";\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"multi_retrieval_qa.js","names":[],"sources":["../../../src/chains/router/multi_retrieval_qa.ts"],"sourcesContent":["import { z } from \"zod/v3\";\nimport type { BaseLanguageModelInterface } from \"@langchain/core/language_models/base\";\nimport type { BaseRetrieverInterface } from \"@langchain/core/retrievers\";\nimport { interpolateFString, PromptTemplate } from \"@langchain/core/prompts\";\nimport { MultiRouteChain, MultiRouteChainInput } from \"./multi_route.js\";\nimport { BaseChain } from \"../../chains/base.js\";\nimport { LLMRouterChain } from \"./llm_router.js\";\nimport {\n ConversationChain,\n DEFAULT_TEMPLATE,\n} from \"../../chains/conversation.js\";\nimport { STRUCTURED_MULTI_RETRIEVAL_ROUTER_TEMPLATE } from \"./multi_retrieval_prompt.js\";\nimport { zipEntries } from \"./utils.js\";\nimport {\n RetrievalQAChain,\n RetrievalQAChainInput,\n} from \"../../chains/retrieval_qa.js\";\nimport { RouterOutputParser } from \"../../output_parsers/router.js\";\n\n/**\n * A type that represents the default values for the MultiRetrievalQAChain\n * class. It includes optional properties for the default retriever,\n * default prompt, and default chain.\n */\nexport type MultiRetrievalDefaults = {\n defaultRetriever?: BaseRetrieverInterface;\n defaultPrompt?: PromptTemplate;\n defaultChain?: BaseChain;\n};\n\n/**\n * A class that represents a multi-retrieval question answering chain in\n * the LangChain framework. It extends the MultiRouteChain class and\n * provides additional functionality specific to multi-retrieval QA\n * chains.\n * @example\n * ```typescript\n * const multiRetrievalQAChain = MultiRetrievalQAChain.fromLLMAndRetrievers(\n * new ChatOpenAI({ model: \"gpt-4o-mini\" }),\n * {\n * retrieverNames: [\"aqua teen\", \"mst3k\", \"animaniacs\"],\n * retrieverDescriptions: [\n * \"Good for answering questions about Aqua Teen Hunger Force theme song\",\n * \"Good for answering questions about Mystery Science Theater 3000 theme song\",\n * \"Good for answering questions about Animaniacs theme song\",\n * ],\n * retrievers: [\n * new MemoryVectorStore().asRetriever(3),\n * new MemoryVectorStore().asRetriever(3),\n * new MemoryVectorStore().asRetriever(3),\n * ],\n * retrievalQAChainOpts: {\n * returnSourceDocuments: true,\n * },\n * },\n * );\n *\n * const result = await multiRetrievalQAChain.call({\n * input:\n * \"In the Aqua Teen Hunger Force theme song, who calls himself the mike rula?\",\n * });\n *\n * console.log(result.sourceDocuments, result.text);\n * ```\n */\nexport class MultiRetrievalQAChain extends MultiRouteChain {\n get outputKeys(): string[] {\n return [\"result\"];\n }\n\n /**\n * @deprecated Use `fromRetrieversAndPrompts` instead\n */\n static fromRetrievers(\n llm: BaseLanguageModelInterface,\n retrieverNames: string[],\n retrieverDescriptions: string[],\n retrievers: BaseRetrieverInterface[],\n retrieverPrompts?: PromptTemplate[],\n defaults?: MultiRetrievalDefaults,\n options?: Omit<MultiRouteChainInput, \"defaultChain\">\n ) {\n return MultiRetrievalQAChain.fromLLMAndRetrievers(llm, {\n retrieverNames,\n retrieverDescriptions,\n retrievers,\n retrieverPrompts,\n defaults,\n multiRetrievalChainOpts: options,\n });\n }\n\n /**\n * A static method that creates an instance of MultiRetrievalQAChain from\n * a BaseLanguageModel and a set of retrievers. It takes in optional\n * parameters for the retriever names, descriptions, prompts, defaults,\n * and additional options. It is an alternative method to fromRetrievers\n * and provides more flexibility in configuring the underlying chains.\n * @param llm A BaseLanguageModel instance.\n * @param retrieverNames An array of retriever names.\n * @param retrieverDescriptions An array of retriever descriptions.\n * @param retrievers An array of BaseRetrieverInterface instances.\n * @param retrieverPrompts An optional array of PromptTemplate instances for the retrievers.\n * @param defaults An optional MultiRetrievalDefaults instance.\n * @param multiRetrievalChainOpts Additional optional parameters for the multi-retrieval chain.\n * @param retrievalQAChainOpts Additional optional parameters for the retrieval QA chain.\n * @returns A new instance of MultiRetrievalQAChain.\n */\n static fromLLMAndRetrievers(\n llm: BaseLanguageModelInterface,\n {\n retrieverNames,\n retrieverDescriptions,\n retrievers,\n retrieverPrompts,\n defaults,\n multiRetrievalChainOpts,\n retrievalQAChainOpts,\n }: {\n retrieverNames: string[];\n retrieverDescriptions: string[];\n retrievers: BaseRetrieverInterface[];\n retrieverPrompts?: PromptTemplate[];\n defaults?: MultiRetrievalDefaults;\n multiRetrievalChainOpts?: Omit<MultiRouteChainInput, \"defaultChain\">;\n retrievalQAChainOpts?: Partial<\n Omit<RetrievalQAChainInput, \"retriever\" | \"combineDocumentsChain\">\n > & {\n prompt?: PromptTemplate;\n };\n }\n ): MultiRetrievalQAChain {\n const { defaultRetriever, defaultPrompt, defaultChain } = defaults ?? {};\n if (defaultPrompt && !defaultRetriever) {\n throw new Error(\n \"`default_retriever` must be specified if `default_prompt` is \\nprovided. Received only `default_prompt`.\"\n );\n }\n const destinations = zipEntries<[string, string]>(\n retrieverNames,\n retrieverDescriptions\n ).map(([name, desc]) => `${name}: ${desc}`);\n\n const structuredOutputParserSchema = z.object({\n destination: z\n .string()\n .optional()\n .describe('name of the question answering system to use or \"DEFAULT\"'),\n next_inputs: z\n .object({\n query: z\n .string()\n .describe(\"a potentially modified version of the original input\"),\n })\n .describe(\"input to be fed to the next model\"),\n });\n\n const outputParser = new RouterOutputParser<\n typeof structuredOutputParserSchema\n >(structuredOutputParserSchema);\n\n const destinationsStr = destinations.join(\"\\n\");\n const routerTemplate = interpolateFString(\n STRUCTURED_MULTI_RETRIEVAL_ROUTER_TEMPLATE(\n outputParser.getFormatInstructions({ interpolationDepth: 4 })\n ),\n {\n destinations: destinationsStr,\n }\n );\n const routerPrompt = new PromptTemplate({\n template: routerTemplate,\n inputVariables: [\"input\"],\n outputParser,\n });\n\n const routerChain = LLMRouterChain.fromLLM(llm, routerPrompt);\n const prompts = retrieverPrompts ?? retrievers.map(() => null);\n const destinationChains = zipEntries<\n [string, BaseRetrieverInterface, PromptTemplate | null]\n >(retrieverNames, retrievers, prompts).reduce(\n (acc, [name, retriever, prompt]) => {\n const opt: Partial<RetrievalQAChainInput> & {\n prompt?: PromptTemplate;\n } = retrievalQAChainOpts ?? {};\n if (prompt) {\n opt.prompt = prompt;\n }\n acc[name] = RetrievalQAChain.fromLLM(llm, retriever, opt);\n return acc;\n },\n {} as { [name: string]: RetrievalQAChain }\n );\n\n let _defaultChain;\n if (defaultChain) {\n _defaultChain = defaultChain;\n } else if (defaultRetriever) {\n _defaultChain = RetrievalQAChain.fromLLM(llm, defaultRetriever, {\n ...retrievalQAChainOpts,\n prompt: defaultPrompt,\n });\n } else {\n const promptTemplate = DEFAULT_TEMPLATE.replace(\"input\", \"query\");\n const prompt = new PromptTemplate({\n template: promptTemplate,\n inputVariables: [\"history\", \"query\"],\n });\n _defaultChain = new ConversationChain({\n llm,\n prompt,\n outputKey: \"result\",\n });\n }\n\n return new MultiRetrievalQAChain({\n ...multiRetrievalChainOpts,\n routerChain,\n destinationChains,\n defaultChain: _defaultChain,\n });\n }\n\n _chainType(): string {\n return \"multi_retrieval_qa_chain\";\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiEA,IAAa,wBAAb,MAAa,8BAA8B,gBAAgB;CACzD,IAAI,aAAuB;AACzB,SAAO,CAAC,SAAS;;;;;CAMnB,OAAO,eACL,KACA,gBACA,uBACA,YACA,kBACA,UACA,SACA;AACA,SAAO,sBAAsB,qBAAqB,KAAK;GACrD;GACA;GACA;GACA;GACA;GACA,yBAAyB;GAC1B,CAAC;;;;;;;;;;;;;;;;;;CAmBJ,OAAO,qBACL,KACA,EACE,gBACA,uBACA,YACA,kBACA,UACA,yBACA,wBAcqB;EACvB,MAAM,EAAE,kBAAkB,eAAe,iBAAiB,YAAY,EAAE;AACxE,MAAI,iBAAiB,CAAC,iBACpB,OAAM,IAAI,MACR,2GACD;EAEH,MAAM,eAAe,WACnB,gBACA,sBACD,CAAC,KAAK,CAAC,MAAM,UAAU,GAAG,KAAK,IAAI,OAAO;EAgB3C,MAAM,eAAe,IAAI,mBAdY,EAAE,OAAO;GAC5C,aAAa,EACV,QAAQ,CACR,UAAU,CACV,SAAS,8DAA4D;GACxE,aAAa,EACV,OAAO,EACN,OAAO,EACJ,QAAQ,CACR,SAAS,uDAAuD,EACpE,CAAC,CACD,SAAS,oCAAoC;GACjD,CAAC,CAI6B;EAE/B,MAAM,kBAAkB,aAAa,KAAK,KAAK;EAS/C,MAAM,eAAe,IAAI,eAAe;GACtC,UATqB,mBACrB,2CACE,aAAa,sBAAsB,EAAE,oBAAoB,GAAG,CAAC,CAC9D,EACD,EACE,cAAc,iBACf,CACF;GAGC,gBAAgB,CAAC,QAAQ;GACzB;GACD,CAAC;EAEF,MAAM,cAAc,eAAe,QAAQ,KAAK,aAAa;EAE7D,MAAM,oBAAoB,WAExB,gBAAgB,YAHF,oBAAoB,WAAW,UAAU,KAAK,CAGxB,CAAC,QACpC,KAAK,CAAC,MAAM,WAAW,YAAY;GAClC,MAAM,MAEF,wBAAwB,EAAE;AAC9B,OAAI,OACF,KAAI,SAAS;AAEf,OAAI,QAAQ,iBAAiB,QAAQ,KAAK,WAAW,IAAI;AACzD,UAAO;KAET,EAAE,CACH;EAED,IAAI;AACJ,MAAI,aACF,iBAAgB;WACP,iBACT,iBAAgB,iBAAiB,QAAQ,KAAK,kBAAkB;GAC9D,GAAG;GACH,QAAQ;GACT,CAAC;MAOF,iBAAgB,IAAI,kBAAkB;GACpC;GACA,QANa,IAAI,eAAe;IAChC,UAFqB,iBAAiB,QAAQ,SAAS,QAAQ;IAG/D,gBAAgB,CAAC,WAAW,QAAQ;IACrC,CAAC;GAIA,WAAW;GACZ,CAAC;AAGJ,SAAO,IAAI,sBAAsB;GAC/B,GAAG;GACH;GACA;GACA,cAAc;GACf,CAAC;;CAGJ,aAAqB;AACnB,SAAO"}
|