langchain 0.2.10 → 0.2.12
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/chat_models/universal.cjs +1 -0
- package/chat_models/universal.d.cts +1 -0
- package/chat_models/universal.d.ts +1 -0
- package/chat_models/universal.js +1 -0
- package/dist/chat_models/universal.cjs +600 -0
- package/dist/chat_models/universal.d.ts +115 -0
- package/dist/chat_models/universal.js +595 -0
- package/dist/document_loaders/web/assemblyai.cjs +9 -1
- package/dist/document_loaders/web/assemblyai.js +9 -1
- package/dist/experimental/chrome_ai/app/dist/bundle.cjs +1250 -0
- package/dist/experimental/chrome_ai/app/dist/bundle.d.ts +1 -0
- package/dist/experimental/chrome_ai/app/dist/bundle.js +1249 -0
- package/dist/load/import_constants.cjs +1 -0
- package/dist/load/import_constants.js +1 -0
- package/package.json +99 -43
- package/dist/agents/tests/agent.int.test.d.ts +0 -1
- package/dist/agents/tests/agent.int.test.js +0 -309
- package/dist/agents/tests/chat_convo_output_parser.test.d.ts +0 -1
- package/dist/agents/tests/chat_convo_output_parser.test.js +0 -91
- package/dist/agents/tests/create_openai_functions_agent.int.test.d.ts +0 -2
- package/dist/agents/tests/create_openai_functions_agent.int.test.js +0 -71
- package/dist/agents/tests/create_openai_tools_agent.int.test.d.ts +0 -1
- package/dist/agents/tests/create_openai_tools_agent.int.test.js +0 -75
- package/dist/agents/tests/create_react_agent.int.test.d.ts +0 -1
- package/dist/agents/tests/create_react_agent.int.test.js +0 -32
- package/dist/agents/tests/create_structured_chat_agent.int.test.d.ts +0 -1
- package/dist/agents/tests/create_structured_chat_agent.int.test.js +0 -32
- package/dist/agents/tests/create_tool_calling_agent.int.test.d.ts +0 -1
- package/dist/agents/tests/create_tool_calling_agent.int.test.js +0 -122
- package/dist/agents/tests/create_xml_agent.int.test.d.ts +0 -1
- package/dist/agents/tests/create_xml_agent.int.test.js +0 -32
- package/dist/agents/tests/json.test.d.ts +0 -1
- package/dist/agents/tests/json.test.js +0 -74
- package/dist/agents/tests/react.test.d.ts +0 -1
- package/dist/agents/tests/react.test.js +0 -44
- package/dist/agents/tests/runnable.int.test.d.ts +0 -1
- package/dist/agents/tests/runnable.int.test.js +0 -104
- package/dist/agents/tests/sql.test.d.ts +0 -1
- package/dist/agents/tests/sql.test.js +0 -133
- package/dist/agents/tests/structured_chat_output_parser.test.d.ts +0 -1
- package/dist/agents/tests/structured_chat_output_parser.test.js +0 -35
- package/dist/agents/tests/structured_chat_output_parser_with_retries.int.test.d.ts +0 -1
- package/dist/agents/tests/structured_chat_output_parser_with_retries.int.test.js +0 -44
- package/dist/agents/tests/structured_output_runnables.int.test.d.ts +0 -1
- package/dist/agents/tests/structured_output_runnables.int.test.js +0 -112
- package/dist/agents/toolkits/tests/conversational_retrieval.int.test.d.ts +0 -1
- package/dist/agents/toolkits/tests/conversational_retrieval.int.test.js +0 -41
- package/dist/cache/tests/file_system.int.test.d.ts +0 -1
- package/dist/cache/tests/file_system.int.test.js +0 -32
- package/dist/chains/openai_functions/tests/create_runnable_chains.int.test.d.ts +0 -1
- package/dist/chains/openai_functions/tests/create_runnable_chains.int.test.js +0 -139
- package/dist/chains/openai_functions/tests/extraction.int.test.d.ts +0 -1
- package/dist/chains/openai_functions/tests/extraction.int.test.js +0 -33
- package/dist/chains/openai_functions/tests/openapi.int.test.d.ts +0 -1
- package/dist/chains/openai_functions/tests/openapi.int.test.js +0 -130
- package/dist/chains/openai_functions/tests/openapi.test.d.ts +0 -1
- package/dist/chains/openai_functions/tests/openapi.test.js +0 -172
- package/dist/chains/openai_functions/tests/structured_output.int.test.d.ts +0 -1
- package/dist/chains/openai_functions/tests/structured_output.int.test.js +0 -40
- package/dist/chains/openai_functions/tests/structured_output.test.d.ts +0 -1
- package/dist/chains/openai_functions/tests/structured_output.test.js +0 -102
- package/dist/chains/openai_functions/tests/tagging.int.test.d.ts +0 -1
- package/dist/chains/openai_functions/tests/tagging.int.test.js +0 -21
- package/dist/chains/query_constructor/tests/query_chain.int.test.d.ts +0 -1
- package/dist/chains/query_constructor/tests/query_chain.int.test.js +0 -93
- package/dist/chains/query_constructor/tests/query_parser.test.d.ts +0 -1
- package/dist/chains/query_constructor/tests/query_parser.test.js +0 -28
- package/dist/chains/question_answering/tests/load.int.test.d.ts +0 -1
- package/dist/chains/question_answering/tests/load.int.test.js +0 -39
- package/dist/chains/router/tests/multi_prompt.int.test.d.ts +0 -1
- package/dist/chains/router/tests/multi_prompt.int.test.js +0 -45
- package/dist/chains/router/tests/multi_prompt.test.d.ts +0 -1
- package/dist/chains/router/tests/multi_prompt.test.js +0 -62
- package/dist/chains/router/tests/multi_retrieval_qa.int.test.d.ts +0 -1
- package/dist/chains/router/tests/multi_retrieval_qa.int.test.js +0 -67
- package/dist/chains/router/tests/multi_retrieval_qa.test.d.ts +0 -1
- package/dist/chains/router/tests/multi_retrieval_qa.test.js +0 -125
- package/dist/chains/summarization/tests/load.int.test.d.ts +0 -1
- package/dist/chains/summarization/tests/load.int.test.js +0 -37
- package/dist/chains/tests/api_chain.int.test.d.ts +0 -1
- package/dist/chains/tests/api_chain.int.test.js +0 -55
- package/dist/chains/tests/combine_docs_chain.int.test.d.ts +0 -1
- package/dist/chains/tests/combine_docs_chain.int.test.js +0 -50
- package/dist/chains/tests/combine_docs_chain.test.d.ts +0 -1
- package/dist/chains/tests/combine_docs_chain.test.js +0 -98
- package/dist/chains/tests/constitutional_chain.int.test.d.ts +0 -1
- package/dist/chains/tests/constitutional_chain.int.test.js +0 -30
- package/dist/chains/tests/constitutional_chain.test.d.ts +0 -1
- package/dist/chains/tests/constitutional_chain.test.js +0 -63
- package/dist/chains/tests/conversation_chain.int.test.d.ts +0 -1
- package/dist/chains/tests/conversation_chain.int.test.js +0 -9
- package/dist/chains/tests/conversational_retrieval_chain.int.test.d.ts +0 -1
- package/dist/chains/tests/conversational_retrieval_chain.int.test.js +0 -243
- package/dist/chains/tests/example_data/open_meteo_docs.d.ts +0 -1
- package/dist/chains/tests/example_data/open_meteo_docs.js +0 -29
- package/dist/chains/tests/history_aware_retriever.int.test.d.ts +0 -1
- package/dist/chains/tests/history_aware_retriever.int.test.js +0 -41
- package/dist/chains/tests/history_aware_retriever.test.d.ts +0 -1
- package/dist/chains/tests/history_aware_retriever.test.js +0 -27
- package/dist/chains/tests/llm_chain.int.test.d.ts +0 -1
- package/dist/chains/tests/llm_chain.int.test.js +0 -119
- package/dist/chains/tests/openai_moderation.int.test.d.ts +0 -1
- package/dist/chains/tests/openai_moderation.int.test.js +0 -30
- package/dist/chains/tests/retrieval_chain.int.test.d.ts +0 -1
- package/dist/chains/tests/retrieval_chain.int.test.js +0 -69
- package/dist/chains/tests/retrieval_chain.test.d.ts +0 -1
- package/dist/chains/tests/retrieval_chain.test.js +0 -36
- package/dist/chains/tests/sequential_chain.int.test.d.ts +0 -1
- package/dist/chains/tests/sequential_chain.int.test.js +0 -88
- package/dist/chains/tests/sequential_chain.test.d.ts +0 -1
- package/dist/chains/tests/sequential_chain.test.js +0 -295
- package/dist/chains/tests/simple_sequential_chain.int.test.d.ts +0 -1
- package/dist/chains/tests/simple_sequential_chain.int.test.js +0 -81
- package/dist/chains/tests/simple_sequential_chain.test.d.ts +0 -1
- package/dist/chains/tests/simple_sequential_chain.test.js +0 -128
- package/dist/chains/tests/sql_db_chain.int.test.d.ts +0 -1
- package/dist/chains/tests/sql_db_chain.int.test.js +0 -125
- package/dist/chains/tests/transform.test.d.ts +0 -1
- package/dist/chains/tests/transform.test.js +0 -12
- package/dist/chains/tests/vector_db_qa_chain.int.test.d.ts +0 -1
- package/dist/chains/tests/vector_db_qa_chain.int.test.js +0 -45
- package/dist/document_loaders/tests/assemblyai.int.test.d.ts +0 -1
- package/dist/document_loaders/tests/assemblyai.int.test.js +0 -111
- package/dist/document_loaders/tests/chatgpt-blob.test.d.ts +0 -1
- package/dist/document_loaders/tests/chatgpt-blob.test.js +0 -30
- package/dist/document_loaders/tests/chatgpt.test.d.ts +0 -1
- package/dist/document_loaders/tests/chatgpt.test.js +0 -29
- package/dist/document_loaders/tests/cheerio.int.test.d.ts +0 -1
- package/dist/document_loaders/tests/cheerio.int.test.js +0 -21
- package/dist/document_loaders/tests/college_confidential.int.test.d.ts +0 -1
- package/dist/document_loaders/tests/college_confidential.int.test.js +0 -6
- package/dist/document_loaders/tests/confluence.test.d.ts +0 -1
- package/dist/document_loaders/tests/confluence.test.js +0 -52
- package/dist/document_loaders/tests/couchbase.int.test.d.ts +0 -1
- package/dist/document_loaders/tests/couchbase.int.test.js +0 -28
- package/dist/document_loaders/tests/csv-blob.test.d.ts +0 -1
- package/dist/document_loaders/tests/csv-blob.test.js +0 -53
- package/dist/document_loaders/tests/csv.test.d.ts +0 -1
- package/dist/document_loaders/tests/csv.test.js +0 -41
- package/dist/document_loaders/tests/directory.test.d.ts +0 -1
- package/dist/document_loaders/tests/directory.test.js +0 -38
- package/dist/document_loaders/tests/docx.test.d.ts +0 -1
- package/dist/document_loaders/tests/docx.test.js +0 -11
- package/dist/document_loaders/tests/epub.test.d.ts +0 -1
- package/dist/document_loaders/tests/epub.test.js +0 -18
- package/dist/document_loaders/tests/example_data/github_api_responses.d.ts +0 -5
- package/dist/document_loaders/tests/example_data/github_api_responses.js +0 -91
- package/dist/document_loaders/tests/figma.int.test.d.ts +0 -1
- package/dist/document_loaders/tests/figma.int.test.js +0 -13
- package/dist/document_loaders/tests/firecrawl.int.test.d.ts +0 -1
- package/dist/document_loaders/tests/firecrawl.int.test.js +0 -30
- package/dist/document_loaders/tests/gitbook.int.test.d.ts +0 -1
- package/dist/document_loaders/tests/gitbook.int.test.js +0 -14
- package/dist/document_loaders/tests/github.int.test.d.ts +0 -1
- package/dist/document_loaders/tests/github.int.test.js +0 -86
- package/dist/document_loaders/tests/github.test.d.ts +0 -1
- package/dist/document_loaders/tests/github.test.js +0 -51
- package/dist/document_loaders/tests/hn.int.test.d.ts +0 -1
- package/dist/document_loaders/tests/hn.int.test.js +0 -6
- package/dist/document_loaders/tests/imsdb.test.d.ts +0 -1
- package/dist/document_loaders/tests/imsdb.test.js +0 -6
- package/dist/document_loaders/tests/json-blob.test.d.ts +0 -1
- package/dist/document_loaders/tests/json-blob.test.js +0 -91
- package/dist/document_loaders/tests/json.test.d.ts +0 -1
- package/dist/document_loaders/tests/json.test.js +0 -69
- package/dist/document_loaders/tests/jsonl-blob.test.d.ts +0 -1
- package/dist/document_loaders/tests/jsonl-blob.test.js +0 -46
- package/dist/document_loaders/tests/jsonl.test.d.ts +0 -1
- package/dist/document_loaders/tests/jsonl.test.js +0 -15
- package/dist/document_loaders/tests/multi_file.test.d.ts +0 -1
- package/dist/document_loaders/tests/multi_file.test.js +0 -49
- package/dist/document_loaders/tests/notion.test.d.ts +0 -1
- package/dist/document_loaders/tests/notion.test.js +0 -11
- package/dist/document_loaders/tests/notionapi.int.test.d.ts +0 -1
- package/dist/document_loaders/tests/notionapi.int.test.js +0 -80
- package/dist/document_loaders/tests/notionapi.test.d.ts +0 -1
- package/dist/document_loaders/tests/notionapi.test.js +0 -84
- package/dist/document_loaders/tests/notiondb.int.test.d.ts +0 -1
- package/dist/document_loaders/tests/notiondb.int.test.js +0 -13
- package/dist/document_loaders/tests/obsidian.test.d.ts +0 -1
- package/dist/document_loaders/tests/obsidian.test.js +0 -119
- package/dist/document_loaders/tests/pdf-blob.test.d.ts +0 -1
- package/dist/document_loaders/tests/pdf-blob.test.js +0 -44
- package/dist/document_loaders/tests/pdf.test.d.ts +0 -1
- package/dist/document_loaders/tests/pdf.test.js +0 -25
- package/dist/document_loaders/tests/playwright_web.int.test.d.ts +0 -1
- package/dist/document_loaders/tests/playwright_web.int.test.js +0 -27
- package/dist/document_loaders/tests/pptx.test.d.ts +0 -1
- package/dist/document_loaders/tests/pptx.test.js +0 -17
- package/dist/document_loaders/tests/puppeteer.int.test.d.ts +0 -1
- package/dist/document_loaders/tests/puppeteer.int.test.js +0 -47
- package/dist/document_loaders/tests/recursive_url.int.test.d.ts +0 -1
- package/dist/document_loaders/tests/recursive_url.int.test.js +0 -64
- package/dist/document_loaders/tests/s3.int.test.d.ts +0 -1
- package/dist/document_loaders/tests/s3.int.test.js +0 -48
- package/dist/document_loaders/tests/searchapi.test.d.ts +0 -1
- package/dist/document_loaders/tests/searchapi.test.js +0 -29
- package/dist/document_loaders/tests/serpapi.test.d.ts +0 -1
- package/dist/document_loaders/tests/serpapi.test.js +0 -21
- package/dist/document_loaders/tests/sitemap.int.test.d.ts +0 -1
- package/dist/document_loaders/tests/sitemap.int.test.js +0 -28
- package/dist/document_loaders/tests/sonix_audio.int.test.d.ts +0 -1
- package/dist/document_loaders/tests/sonix_audio.int.test.js +0 -55
- package/dist/document_loaders/tests/sort_xyz_blockchain.int.test.d.ts +0 -1
- package/dist/document_loaders/tests/sort_xyz_blockchain.int.test.js +0 -38
- package/dist/document_loaders/tests/srt-blob.test.d.ts +0 -1
- package/dist/document_loaders/tests/srt-blob.test.js +0 -18
- package/dist/document_loaders/tests/srt.test.d.ts +0 -1
- package/dist/document_loaders/tests/srt.test.js +0 -16
- package/dist/document_loaders/tests/text-blob.test.d.ts +0 -1
- package/dist/document_loaders/tests/text-blob.test.js +0 -14
- package/dist/document_loaders/tests/text.test.d.ts +0 -1
- package/dist/document_loaders/tests/text.test.js +0 -22
- package/dist/document_loaders/tests/unstructured.int.test.d.ts +0 -1
- package/dist/document_loaders/tests/unstructured.int.test.js +0 -58
- package/dist/document_loaders/tests/webpdf.int.test.d.ts +0 -1
- package/dist/document_loaders/tests/webpdf.int.test.js +0 -90
- package/dist/document_transformers/tests/openai_functions.int.test.d.ts +0 -1
- package/dist/document_transformers/tests/openai_functions.int.test.js +0 -40
- package/dist/embeddings/tests/cache.test.d.ts +0 -1
- package/dist/embeddings/tests/cache.test.js +0 -24
- package/dist/embeddings/tests/fake.test.d.ts +0 -1
- package/dist/embeddings/tests/fake.test.js +0 -34
- package/dist/evaluation/agents/tests/trajectory_eval_chain.int.test.d.ts +0 -1
- package/dist/evaluation/agents/tests/trajectory_eval_chain.int.test.js +0 -33
- package/dist/evaluation/comparison/tests/pairwise_eval_chain.int.test.d.ts +0 -1
- package/dist/evaluation/comparison/tests/pairwise_eval_chain.int.test.js +0 -46
- package/dist/evaluation/criteria/tests/criteria_eval_chain.int.test.d.ts +0 -1
- package/dist/evaluation/criteria/tests/criteria_eval_chain.int.test.js +0 -108
- package/dist/evaluation/embedding_distance/tests/embedding_distance_eval_chain.int.test.d.ts +0 -1
- package/dist/evaluation/embedding_distance/tests/embedding_distance_eval_chain.int.test.js +0 -26
- package/dist/evaluation/qa/tests/eval_chain.int.test.d.ts +0 -1
- package/dist/evaluation/qa/tests/eval_chain.int.test.js +0 -27
- package/dist/experimental/autogpt/tests/output_parser.test.d.ts +0 -1
- package/dist/experimental/autogpt/tests/output_parser.test.js +0 -8
- package/dist/experimental/autogpt/tests/prompt.test.d.ts +0 -1
- package/dist/experimental/autogpt/tests/prompt.test.js +0 -69
- package/dist/experimental/autogpt/tests/prompt_generator.test.d.ts +0 -1
- package/dist/experimental/autogpt/tests/prompt_generator.test.js +0 -91
- package/dist/experimental/chains/tests/violation_of_expectations_chain.int.test.d.ts +0 -1
- package/dist/experimental/chains/tests/violation_of_expectations_chain.int.test.js +0 -26
- package/dist/experimental/generative_agents/tests/generative_agent.int.test.d.ts +0 -1
- package/dist/experimental/generative_agents/tests/generative_agent.int.test.js +0 -304
- package/dist/experimental/masking/tests/masking-extended.test.d.ts +0 -1
- package/dist/experimental/masking/tests/masking-extended.test.js +0 -58
- package/dist/experimental/masking/tests/masking.test.d.ts +0 -1
- package/dist/experimental/masking/tests/masking.test.js +0 -388
- package/dist/experimental/openai_assistant/tests/openai_assistant.int.test.d.ts +0 -1
- package/dist/experimental/openai_assistant/tests/openai_assistant.int.test.js +0 -203
- package/dist/experimental/openai_files/tests/openai_file.int.test.d.ts +0 -1
- package/dist/experimental/openai_files/tests/openai_file.int.test.js +0 -87
- package/dist/experimental/plan_and_execute/tests/plan_and_execute.int.test.d.ts +0 -1
- package/dist/experimental/plan_and_execute/tests/plan_and_execute.int.test.js +0 -54
- package/dist/experimental/prompts/tests/handlebars.test.d.ts +0 -1
- package/dist/experimental/prompts/tests/handlebars.test.js +0 -24
- package/dist/experimental/tools/tests/pyinterpreter.int.test.d.ts +0 -1
- package/dist/experimental/tools/tests/pyinterpreter.int.test.js +0 -22
- package/dist/load/tests/cross_language.test.d.ts +0 -1
- package/dist/load/tests/cross_language.test.js +0 -83
- package/dist/load/tests/load.int.test.d.ts +0 -1
- package/dist/load/tests/load.int.test.js +0 -9
- package/dist/load/tests/load.test.d.ts +0 -1
- package/dist/load/tests/load.test.js +0 -412
- package/dist/memory/tests/buffer_memory.test.d.ts +0 -1
- package/dist/memory/tests/buffer_memory.test.js +0 -34
- package/dist/memory/tests/buffer_token_memory.int.test.d.ts +0 -1
- package/dist/memory/tests/buffer_token_memory.int.test.js +0 -47
- package/dist/memory/tests/buffer_window_memory.test.d.ts +0 -1
- package/dist/memory/tests/buffer_window_memory.test.js +0 -42
- package/dist/memory/tests/combined_memory.int.test.d.ts +0 -1
- package/dist/memory/tests/combined_memory.int.test.js +0 -74
- package/dist/memory/tests/entity_memory.int.test.d.ts +0 -1
- package/dist/memory/tests/entity_memory.int.test.js +0 -79
- package/dist/memory/tests/entity_memory.test.d.ts +0 -1
- package/dist/memory/tests/entity_memory.test.js +0 -48
- package/dist/memory/tests/summary.int.test.d.ts +0 -1
- package/dist/memory/tests/summary.int.test.js +0 -50
- package/dist/memory/tests/summary_buffer.int.test.d.ts +0 -1
- package/dist/memory/tests/summary_buffer.int.test.js +0 -55
- package/dist/memory/tests/vector_store_memory.int.test.d.ts +0 -1
- package/dist/memory/tests/vector_store_memory.int.test.js +0 -55
- package/dist/output_parsers/tests/combining.int.test.d.ts +0 -1
- package/dist/output_parsers/tests/combining.int.test.js +0 -26
- package/dist/output_parsers/tests/combining.test.d.ts +0 -1
- package/dist/output_parsers/tests/combining.test.js +0 -54
- package/dist/output_parsers/tests/datetime.test.d.ts +0 -1
- package/dist/output_parsers/tests/datetime.test.js +0 -14
- package/dist/output_parsers/tests/expression.test.d.ts +0 -1
- package/dist/output_parsers/tests/expression.test.js +0 -339
- package/dist/output_parsers/tests/http_response.test.d.ts +0 -1
- package/dist/output_parsers/tests/http_response.test.js +0 -39
- package/dist/output_parsers/tests/list.test.d.ts +0 -1
- package/dist/output_parsers/tests/list.test.js +0 -27
- package/dist/output_parsers/tests/openai_functions.int.test.d.ts +0 -1
- package/dist/output_parsers/tests/openai_functions.int.test.js +0 -89
- package/dist/output_parsers/tests/openai_tools.int.test.d.ts +0 -1
- package/dist/output_parsers/tests/openai_tools.int.test.js +0 -36
- package/dist/output_parsers/tests/structured.int.test.d.ts +0 -1
- package/dist/output_parsers/tests/structured.int.test.js +0 -150
- package/dist/prompts/tests/selectors.test.d.ts +0 -1
- package/dist/prompts/tests/selectors.test.js +0 -59
- package/dist/retrievers/self_query/tests/memory_self_query.int.test.d.ts +0 -1
- package/dist/retrievers/self_query/tests/memory_self_query.int.test.js +0 -330
- package/dist/retrievers/tests/chain_extract.int.test.d.ts +0 -1
- package/dist/retrievers/tests/chain_extract.int.test.js +0 -32
- package/dist/retrievers/tests/ensemble_retriever.int.test.d.ts +0 -1
- package/dist/retrievers/tests/ensemble_retriever.int.test.js +0 -74
- package/dist/retrievers/tests/hyde.int.test.d.ts +0 -1
- package/dist/retrievers/tests/hyde.int.test.js +0 -44
- package/dist/retrievers/tests/matryoshka_retriever.int.test.d.ts +0 -1
- package/dist/retrievers/tests/matryoshka_retriever.int.test.js +0 -113
- package/dist/retrievers/tests/multi_query.int.test.d.ts +0 -1
- package/dist/retrievers/tests/multi_query.int.test.js +0 -45
- package/dist/retrievers/tests/parent_document.int.test.d.ts +0 -1
- package/dist/retrievers/tests/parent_document.int.test.js +0 -122
- package/dist/retrievers/tests/score_threshold.int.test.d.ts +0 -1
- package/dist/retrievers/tests/score_threshold.int.test.js +0 -83
- package/dist/retrievers/tests/time_weighted.test.d.ts +0 -1
- package/dist/retrievers/tests/time_weighted.test.js +0 -320
- package/dist/retrievers/tests/vectorstores.test.d.ts +0 -1
- package/dist/retrievers/tests/vectorstores.test.js +0 -50
- package/dist/smith/tests/run_on_dataset.int.test.d.ts +0 -1
- package/dist/smith/tests/run_on_dataset.int.test.js +0 -257
- package/dist/smith/tests/runner_utils.int.test.d.ts +0 -9
- package/dist/smith/tests/runner_utils.int.test.js +0 -234
- package/dist/storage/tests/file_system.test.d.ts +0 -1
- package/dist/storage/tests/file_system.test.js +0 -81
- package/dist/tools/tests/chain.test.d.ts +0 -1
- package/dist/tools/tests/chain.test.js +0 -136
- package/dist/tools/tests/webbrowser.int.test.d.ts +0 -1
- package/dist/tools/tests/webbrowser.int.test.js +0 -80
- package/dist/tools/tests/webbrowser.test.d.ts +0 -1
- package/dist/tools/tests/webbrowser.test.js +0 -21
- package/dist/util/tests/async_caller.int.test.d.ts +0 -1
- package/dist/util/tests/async_caller.int.test.js +0 -34
- package/dist/util/tests/azure.test.d.ts +0 -1
- package/dist/util/tests/azure.test.js +0 -42
- package/dist/util/tests/openai-stream.test.d.ts +0 -1
- package/dist/util/tests/openai-stream.test.js +0 -135
- package/dist/util/tests/set.test.d.ts +0 -1
- package/dist/util/tests/set.test.js +0 -36
- package/dist/util/tests/sql_utils.test.d.ts +0 -1
- package/dist/util/tests/sql_utils.test.js +0 -50
- package/dist/vectorstores/tests/memory.test.d.ts +0 -1
- package/dist/vectorstores/tests/memory.test.js +0 -78
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { expect, test } from "@jest/globals";
|
|
2
|
-
import { OpenAIEmbeddings, OpenAI } from "@langchain/openai";
|
|
3
|
-
import { Document } from "@langchain/core/documents";
|
|
4
|
-
import { MemoryVectorStore } from "../../vectorstores/memory.js";
|
|
5
|
-
import { HydeRetriever } from "../hyde.js";
|
|
6
|
-
test("Hyde retriever", async () => {
|
|
7
|
-
const embeddings = new OpenAIEmbeddings();
|
|
8
|
-
const vectorStore = new MemoryVectorStore(embeddings);
|
|
9
|
-
const llm = new OpenAI();
|
|
10
|
-
const retriever = new HydeRetriever({
|
|
11
|
-
vectorStore,
|
|
12
|
-
llm,
|
|
13
|
-
k: 1,
|
|
14
|
-
});
|
|
15
|
-
await vectorStore.addDocuments([
|
|
16
|
-
"My name is John.",
|
|
17
|
-
"My name is Bob.",
|
|
18
|
-
"My favourite food is pizza.",
|
|
19
|
-
"My favourite food is pasta.",
|
|
20
|
-
].map((pageContent) => new Document({ pageContent })));
|
|
21
|
-
const results = await retriever.getRelevantDocuments("What is my favourite food?");
|
|
22
|
-
expect(results.length).toBe(1);
|
|
23
|
-
console.log(results);
|
|
24
|
-
});
|
|
25
|
-
test("Hyde retriever with default prompt template", async () => {
|
|
26
|
-
const embeddings = new OpenAIEmbeddings();
|
|
27
|
-
const vectorStore = new MemoryVectorStore(embeddings);
|
|
28
|
-
const llm = new OpenAI();
|
|
29
|
-
const retriever = new HydeRetriever({
|
|
30
|
-
vectorStore,
|
|
31
|
-
llm,
|
|
32
|
-
k: 1,
|
|
33
|
-
promptTemplate: "websearch",
|
|
34
|
-
});
|
|
35
|
-
await vectorStore.addDocuments([
|
|
36
|
-
"My name is John.",
|
|
37
|
-
"My name is Bob.",
|
|
38
|
-
"My favourite food is pizza.",
|
|
39
|
-
"My favourite food is pasta.",
|
|
40
|
-
].map((pageContent) => new Document({ pageContent })));
|
|
41
|
-
const results = await retriever.getRelevantDocuments("What is my favourite food?");
|
|
42
|
-
expect(results.length).toBe(1);
|
|
43
|
-
console.log(results);
|
|
44
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
import { test, expect } from "@jest/globals";
|
|
2
|
-
import { OpenAIEmbeddings } from "@langchain/openai";
|
|
3
|
-
import { faker } from "@faker-js/faker";
|
|
4
|
-
import { Document } from "@langchain/core/documents";
|
|
5
|
-
import { v4 as uuidV4 } from "uuid";
|
|
6
|
-
import { SyntheticEmbeddings } from "@langchain/core/utils/testing";
|
|
7
|
-
import { MatryoshkaRetriever } from "../matryoshka_retriever.js";
|
|
8
|
-
import { MemoryVectorStore } from "../../vectorstores/memory.js";
|
|
9
|
-
test("MatryoshkaRetriever can retrieve", async () => {
|
|
10
|
-
const smallEmbeddings = new OpenAIEmbeddings({
|
|
11
|
-
modelName: "text-embedding-3-small",
|
|
12
|
-
dimensions: 512, // Min num for small
|
|
13
|
-
});
|
|
14
|
-
const largeEmbeddings = new OpenAIEmbeddings({
|
|
15
|
-
modelName: "text-embedding-3-large",
|
|
16
|
-
dimensions: 3072, // Max num for large
|
|
17
|
-
});
|
|
18
|
-
const vectorStore = new MemoryVectorStore(smallEmbeddings);
|
|
19
|
-
const retriever = new MatryoshkaRetriever({
|
|
20
|
-
largeEmbeddingModel: largeEmbeddings,
|
|
21
|
-
vectorStore,
|
|
22
|
-
largeK: 5,
|
|
23
|
-
});
|
|
24
|
-
const irrelevantDocs = Array.from({ length: 250 }).map(() => new Document({
|
|
25
|
-
pageContent: faker.lorem.words(7),
|
|
26
|
-
metadata: { id: uuidV4() },
|
|
27
|
-
}));
|
|
28
|
-
const relevantDocContents = [
|
|
29
|
-
"LangChain is an open source github repo",
|
|
30
|
-
"There are JS and PY versions of the LangChain github repos",
|
|
31
|
-
"LangGraph is a new open source library by the LangChain team",
|
|
32
|
-
"LangChain announced GA of LangSmith last week!",
|
|
33
|
-
"I heart LangChain",
|
|
34
|
-
];
|
|
35
|
-
const relevantDocs = [
|
|
36
|
-
new Document({
|
|
37
|
-
pageContent: relevantDocContents[0],
|
|
38
|
-
metadata: { id: uuidV4() },
|
|
39
|
-
}),
|
|
40
|
-
new Document({
|
|
41
|
-
pageContent: relevantDocContents[1],
|
|
42
|
-
metadata: { id: uuidV4() },
|
|
43
|
-
}),
|
|
44
|
-
new Document({
|
|
45
|
-
pageContent: relevantDocContents[2],
|
|
46
|
-
metadata: { id: uuidV4() },
|
|
47
|
-
}),
|
|
48
|
-
new Document({
|
|
49
|
-
pageContent: relevantDocContents[3],
|
|
50
|
-
metadata: { id: uuidV4() },
|
|
51
|
-
}),
|
|
52
|
-
new Document({
|
|
53
|
-
pageContent: relevantDocContents[4],
|
|
54
|
-
metadata: { id: uuidV4() },
|
|
55
|
-
}),
|
|
56
|
-
];
|
|
57
|
-
const allDocs = [...irrelevantDocs, ...relevantDocs];
|
|
58
|
-
await retriever.addDocuments(allDocs);
|
|
59
|
-
const query = "What is LangChain?";
|
|
60
|
-
console.log("Querying documents");
|
|
61
|
-
const results = await retriever.getRelevantDocuments(query);
|
|
62
|
-
const retrieverResultContents = new Set(results.map((doc) => doc.pageContent));
|
|
63
|
-
console.log([...retrieverResultContents]);
|
|
64
|
-
expect(results.length).toBe(5);
|
|
65
|
-
expect(retrieverResultContents).toEqual(new Set(relevantDocContents));
|
|
66
|
-
});
|
|
67
|
-
test("Can change number of docs returned (largeK)", async () => {
|
|
68
|
-
const smallEmbeddings = new SyntheticEmbeddings({
|
|
69
|
-
vectorSize: 512,
|
|
70
|
-
});
|
|
71
|
-
const largeEmbeddings = new SyntheticEmbeddings({
|
|
72
|
-
vectorSize: 3072,
|
|
73
|
-
});
|
|
74
|
-
const vectorStore = new MemoryVectorStore(smallEmbeddings);
|
|
75
|
-
const docsWithId = Array.from({ length: 10 }).map(() => new Document({
|
|
76
|
-
pageContent: "hello world",
|
|
77
|
-
metadata: { id: uuidV4() },
|
|
78
|
-
}));
|
|
79
|
-
const retriever = new MatryoshkaRetriever({
|
|
80
|
-
largeEmbeddingModel: largeEmbeddings,
|
|
81
|
-
vectorStore,
|
|
82
|
-
largeK: 10,
|
|
83
|
-
});
|
|
84
|
-
await retriever.addDocuments(docsWithId);
|
|
85
|
-
const query = "hello world";
|
|
86
|
-
const results = await retriever.getRelevantDocuments(query);
|
|
87
|
-
expect(results.length).toBe(10);
|
|
88
|
-
});
|
|
89
|
-
test("AddDocunents adds large embeddings metadata field", async () => {
|
|
90
|
-
const testId = uuidV4();
|
|
91
|
-
const doc = new Document({
|
|
92
|
-
pageContent: "hello world",
|
|
93
|
-
metadata: { id: testId },
|
|
94
|
-
});
|
|
95
|
-
const smallEmbeddings = new OpenAIEmbeddings({
|
|
96
|
-
modelName: "text-embedding-3-small",
|
|
97
|
-
dimensions: 512, // Min num for small
|
|
98
|
-
});
|
|
99
|
-
const largeEmbeddings = new OpenAIEmbeddings({
|
|
100
|
-
modelName: "text-embedding-3-large",
|
|
101
|
-
dimensions: 3072, // Max num for large
|
|
102
|
-
});
|
|
103
|
-
const vectorStore = new MemoryVectorStore(smallEmbeddings);
|
|
104
|
-
const retriever = new MatryoshkaRetriever({
|
|
105
|
-
largeEmbeddingModel: largeEmbeddings,
|
|
106
|
-
vectorStore,
|
|
107
|
-
});
|
|
108
|
-
await retriever.addDocuments([doc]);
|
|
109
|
-
const relevantDocs = await retriever.getRelevantDocuments("hello world");
|
|
110
|
-
expect(relevantDocs[0].metadata.id).toBe(testId);
|
|
111
|
-
expect(relevantDocs[0].metadata[retriever.largeEmbeddingKey]).toBeDefined();
|
|
112
|
-
expect(JSON.parse(relevantDocs[0].metadata[retriever.largeEmbeddingKey]).length).toBe(3072);
|
|
113
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import { expect, test } from "@jest/globals";
|
|
2
|
-
import { CohereEmbeddings } from "@langchain/cohere";
|
|
3
|
-
import { ChatOpenAI } from "@langchain/openai";
|
|
4
|
-
import { MemoryVectorStore } from "../../vectorstores/memory.js";
|
|
5
|
-
import { MultiQueryRetriever } from "../multi_query.js";
|
|
6
|
-
test("Should work with a question input", async () => {
|
|
7
|
-
const vectorstore = await MemoryVectorStore.fromTexts([
|
|
8
|
-
"Buildings are made out of brick",
|
|
9
|
-
"Buildings are made out of wood",
|
|
10
|
-
"Buildings are made out of stone",
|
|
11
|
-
"Cars are made out of metal",
|
|
12
|
-
"Cars are made out of plastic",
|
|
13
|
-
"mitochondria is the powerhouse of the cell",
|
|
14
|
-
"mitochondria is made of lipids",
|
|
15
|
-
], [{ id: 1 }, { id: 2 }, { id: 3 }, { id: 4 }, { id: 5 }], new CohereEmbeddings({ model: "embed-english-v3.0" }));
|
|
16
|
-
const model = new ChatOpenAI({});
|
|
17
|
-
const retriever = MultiQueryRetriever.fromLLM({
|
|
18
|
-
llm: model,
|
|
19
|
-
retriever: vectorstore.asRetriever(),
|
|
20
|
-
verbose: true,
|
|
21
|
-
});
|
|
22
|
-
const query = "What are mitochondria made of?";
|
|
23
|
-
const retrievedDocs = await retriever.getRelevantDocuments(query);
|
|
24
|
-
expect(retrievedDocs[0].pageContent).toContain("mitochondria");
|
|
25
|
-
});
|
|
26
|
-
test("Should work with a keyword", async () => {
|
|
27
|
-
const vectorstore = await MemoryVectorStore.fromTexts([
|
|
28
|
-
"Buildings are made out of brick",
|
|
29
|
-
"Buildings are made out of wood",
|
|
30
|
-
"Buildings are made out of stone",
|
|
31
|
-
"Cars are made out of metal",
|
|
32
|
-
"Cars are made out of plastic",
|
|
33
|
-
"mitochondria is the powerhouse of the cell",
|
|
34
|
-
"mitochondria is made of lipids",
|
|
35
|
-
], [{ id: 1 }, { id: 2 }, { id: 3 }, { id: 4 }, { id: 5 }], new CohereEmbeddings({ model: "embed-english-v3.0" }));
|
|
36
|
-
const model = new ChatOpenAI({});
|
|
37
|
-
const retriever = MultiQueryRetriever.fromLLM({
|
|
38
|
-
llm: model,
|
|
39
|
-
retriever: vectorstore.asRetriever(),
|
|
40
|
-
verbose: true,
|
|
41
|
-
});
|
|
42
|
-
const query = "cars";
|
|
43
|
-
const retrievedDocs = await retriever.getRelevantDocuments(query);
|
|
44
|
-
expect(retrievedDocs[0].pageContent).toContain("Cars");
|
|
45
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import { expect, test } from "@jest/globals";
|
|
2
|
-
import { OpenAIEmbeddings } from "@langchain/openai";
|
|
3
|
-
import { InMemoryDocstore } from "../../stores/doc/in_memory.js";
|
|
4
|
-
import { TextLoader } from "../../document_loaders/fs/text.js";
|
|
5
|
-
import { InMemoryStore } from "../../storage/in_memory.js";
|
|
6
|
-
import { MemoryVectorStore } from "../../vectorstores/memory.js";
|
|
7
|
-
import { ParentDocumentRetriever } from "../parent_document.js";
|
|
8
|
-
import { RecursiveCharacterTextSplitter } from "../../text_splitter.js";
|
|
9
|
-
import { ScoreThresholdRetriever } from "../score_threshold.js";
|
|
10
|
-
test("Should return the full document if an unsplit parent document has been added", async () => {
|
|
11
|
-
const vectorstore = new MemoryVectorStore(new OpenAIEmbeddings());
|
|
12
|
-
const retriever = new ParentDocumentRetriever({
|
|
13
|
-
vectorstore,
|
|
14
|
-
docstore: new InMemoryStore(),
|
|
15
|
-
childSplitter: new RecursiveCharacterTextSplitter({
|
|
16
|
-
chunkOverlap: 0,
|
|
17
|
-
chunkSize: 100,
|
|
18
|
-
}),
|
|
19
|
-
});
|
|
20
|
-
const docs = await new TextLoader("../examples/state_of_the_union.txt").load();
|
|
21
|
-
await retriever.addDocuments(docs);
|
|
22
|
-
const query = "justice breyer";
|
|
23
|
-
const retrievedDocs = await retriever.getRelevantDocuments(query);
|
|
24
|
-
expect(retrievedDocs.length).toEqual(1);
|
|
25
|
-
expect(retrievedDocs[0].pageContent.length).toBeGreaterThan(1000);
|
|
26
|
-
});
|
|
27
|
-
test("Should return a part of a document if a parent splitter is passed", async () => {
|
|
28
|
-
const vectorstore = new MemoryVectorStore(new OpenAIEmbeddings());
|
|
29
|
-
const docstore = new InMemoryStore();
|
|
30
|
-
const retriever = new ParentDocumentRetriever({
|
|
31
|
-
vectorstore,
|
|
32
|
-
docstore,
|
|
33
|
-
parentSplitter: new RecursiveCharacterTextSplitter({
|
|
34
|
-
chunkOverlap: 0,
|
|
35
|
-
chunkSize: 500,
|
|
36
|
-
}),
|
|
37
|
-
childSplitter: new RecursiveCharacterTextSplitter({
|
|
38
|
-
chunkOverlap: 0,
|
|
39
|
-
chunkSize: 50,
|
|
40
|
-
}),
|
|
41
|
-
});
|
|
42
|
-
const docs = await new TextLoader("../examples/state_of_the_union.txt").load();
|
|
43
|
-
await retriever.addDocuments(docs);
|
|
44
|
-
const query = "justice breyer";
|
|
45
|
-
const retrievedDocs = await retriever.getRelevantDocuments(query);
|
|
46
|
-
const vectorstoreRetreivedDocs = await vectorstore.similaritySearch("justice breyer");
|
|
47
|
-
console.log(vectorstoreRetreivedDocs, vectorstoreRetreivedDocs.length);
|
|
48
|
-
console.log(retrievedDocs);
|
|
49
|
-
expect(retrievedDocs.length).toBeGreaterThan(1);
|
|
50
|
-
expect(retrievedDocs[0].pageContent.length).toBeGreaterThan(100);
|
|
51
|
-
});
|
|
52
|
-
test("Should work with a backwards compatible docstore too", async () => {
|
|
53
|
-
const vectorstore = new MemoryVectorStore(new OpenAIEmbeddings());
|
|
54
|
-
const retriever = new ParentDocumentRetriever({
|
|
55
|
-
vectorstore,
|
|
56
|
-
docstore: new InMemoryDocstore(),
|
|
57
|
-
childSplitter: new RecursiveCharacterTextSplitter({
|
|
58
|
-
chunkOverlap: 0,
|
|
59
|
-
chunkSize: 100,
|
|
60
|
-
}),
|
|
61
|
-
});
|
|
62
|
-
const docs = await new TextLoader("../examples/state_of_the_union.txt").load();
|
|
63
|
-
await retriever.addDocuments(docs);
|
|
64
|
-
const query = "justice breyer";
|
|
65
|
-
const retrievedDocs = await retriever.getRelevantDocuments(query);
|
|
66
|
-
expect(retrievedDocs.length).toEqual(1);
|
|
67
|
-
expect(retrievedDocs[0].pageContent.length).toBeGreaterThan(1000);
|
|
68
|
-
});
|
|
69
|
-
test("Should return a part of a document if a parent splitter is passed", async () => {
|
|
70
|
-
const vectorstore = new MemoryVectorStore(new OpenAIEmbeddings());
|
|
71
|
-
const docstore = new InMemoryStore();
|
|
72
|
-
const retriever = new ParentDocumentRetriever({
|
|
73
|
-
vectorstore,
|
|
74
|
-
docstore,
|
|
75
|
-
parentSplitter: new RecursiveCharacterTextSplitter({
|
|
76
|
-
chunkOverlap: 0,
|
|
77
|
-
chunkSize: 500,
|
|
78
|
-
}),
|
|
79
|
-
childSplitter: new RecursiveCharacterTextSplitter({
|
|
80
|
-
chunkOverlap: 0,
|
|
81
|
-
chunkSize: 50,
|
|
82
|
-
}),
|
|
83
|
-
});
|
|
84
|
-
const docs = await new TextLoader("../examples/state_of_the_union.txt").load();
|
|
85
|
-
await retriever.addDocuments(docs);
|
|
86
|
-
const query = "justice breyer";
|
|
87
|
-
const retrievedDocs = await retriever.getRelevantDocuments(query);
|
|
88
|
-
const vectorstoreRetreivedDocs = await vectorstore.similaritySearch("justice breyer");
|
|
89
|
-
console.log(vectorstoreRetreivedDocs, vectorstoreRetreivedDocs.length);
|
|
90
|
-
console.log(retrievedDocs);
|
|
91
|
-
expect(retrievedDocs.length).toBeGreaterThan(1);
|
|
92
|
-
expect(retrievedDocs[0].pageContent.length).toBeGreaterThan(100);
|
|
93
|
-
});
|
|
94
|
-
test("Should use a custom retriever to retrieve one doc", async () => {
|
|
95
|
-
const vectorstore = new MemoryVectorStore(new OpenAIEmbeddings());
|
|
96
|
-
const docstore = new InMemoryStore();
|
|
97
|
-
const childDocumentRetriever = ScoreThresholdRetriever.fromVectorStore(vectorstore, {
|
|
98
|
-
minSimilarityScore: 0.01,
|
|
99
|
-
maxK: 1, // Only return the top result
|
|
100
|
-
});
|
|
101
|
-
const retriever = new ParentDocumentRetriever({
|
|
102
|
-
vectorstore,
|
|
103
|
-
docstore,
|
|
104
|
-
childDocumentRetriever,
|
|
105
|
-
parentSplitter: new RecursiveCharacterTextSplitter({
|
|
106
|
-
chunkOverlap: 0,
|
|
107
|
-
chunkSize: 500,
|
|
108
|
-
}),
|
|
109
|
-
childSplitter: new RecursiveCharacterTextSplitter({
|
|
110
|
-
chunkOverlap: 0,
|
|
111
|
-
chunkSize: 50,
|
|
112
|
-
}),
|
|
113
|
-
});
|
|
114
|
-
const docs = await new TextLoader("../examples/state_of_the_union.txt").load();
|
|
115
|
-
await retriever.addDocuments(docs);
|
|
116
|
-
const query = "justice breyer";
|
|
117
|
-
const retrievedDocs = await retriever.getRelevantDocuments(query);
|
|
118
|
-
const vectorstoreRetreivedDocs = await vectorstore.similaritySearch("justice breyer");
|
|
119
|
-
console.log(vectorstoreRetreivedDocs, vectorstoreRetreivedDocs.length);
|
|
120
|
-
console.log(retrievedDocs);
|
|
121
|
-
expect(retrievedDocs).toHaveLength(1);
|
|
122
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-process-env */
|
|
2
|
-
import { expect, test } from "@jest/globals";
|
|
3
|
-
import { OpenAIEmbeddings, ChatOpenAI } from "@langchain/openai";
|
|
4
|
-
import { ConversationalRetrievalQAChain } from "../../chains/conversational_retrieval_chain.js";
|
|
5
|
-
import { BufferMemory } from "../../memory/buffer_memory.js";
|
|
6
|
-
import { MemoryVectorStore } from "../../vectorstores/memory.js";
|
|
7
|
-
import { ScoreThresholdRetriever } from "../score_threshold.js";
|
|
8
|
-
test("ConversationalRetrievalQAChain.fromLLM should use its vector store recursively until it gets all the similar results with the minimum similarity score provided", async () => {
|
|
9
|
-
const vectorStore = await MemoryVectorStore.fromTexts([
|
|
10
|
-
"Buildings are made out of brick",
|
|
11
|
-
"Buildings are made out of wood",
|
|
12
|
-
"Buildings are made out of stone",
|
|
13
|
-
"Cars are made out of metal",
|
|
14
|
-
"Cars are made out of plastic",
|
|
15
|
-
], [{ id: 1 }, { id: 2 }, { id: 3 }, { id: 4 }, { id: 5 }], new OpenAIEmbeddings());
|
|
16
|
-
const model = new ChatOpenAI({
|
|
17
|
-
modelName: "gpt-3.5-turbo",
|
|
18
|
-
temperature: 0,
|
|
19
|
-
});
|
|
20
|
-
const chain = ConversationalRetrievalQAChain.fromLLM(model, ScoreThresholdRetriever.fromVectorStore(vectorStore, {
|
|
21
|
-
minSimilarityScore: 0.9,
|
|
22
|
-
kIncrement: 1,
|
|
23
|
-
}), {
|
|
24
|
-
returnSourceDocuments: true,
|
|
25
|
-
memory: new BufferMemory({
|
|
26
|
-
memoryKey: "chat_history",
|
|
27
|
-
inputKey: "question",
|
|
28
|
-
outputKey: "text",
|
|
29
|
-
}),
|
|
30
|
-
});
|
|
31
|
-
const res = await chain.invoke({
|
|
32
|
-
question: "Buildings are made out of what?",
|
|
33
|
-
});
|
|
34
|
-
console.log("response:", res);
|
|
35
|
-
expect(res).toEqual(expect.objectContaining({
|
|
36
|
-
text: expect.any(String),
|
|
37
|
-
sourceDocuments: expect.arrayContaining([
|
|
38
|
-
expect.objectContaining({
|
|
39
|
-
metadata: expect.objectContaining({
|
|
40
|
-
id: 1,
|
|
41
|
-
}),
|
|
42
|
-
}),
|
|
43
|
-
expect.objectContaining({
|
|
44
|
-
metadata: expect.objectContaining({
|
|
45
|
-
id: 2,
|
|
46
|
-
}),
|
|
47
|
-
}),
|
|
48
|
-
expect.objectContaining({
|
|
49
|
-
metadata: expect.objectContaining({
|
|
50
|
-
id: 3,
|
|
51
|
-
}),
|
|
52
|
-
}),
|
|
53
|
-
]),
|
|
54
|
-
}));
|
|
55
|
-
});
|
|
56
|
-
test("ConversationalRetrievalQAChain.fromLLM should use its vector store to get up to X results that matches the provided similarity score", async () => {
|
|
57
|
-
const vectorStore = await MemoryVectorStore.fromTexts([
|
|
58
|
-
"Buildings are made out of brick",
|
|
59
|
-
"Buildings are made out of wood",
|
|
60
|
-
"Buildings are made out of stone",
|
|
61
|
-
"Cars are made out of metal",
|
|
62
|
-
"Cars are made out of plastic",
|
|
63
|
-
], [{ id: 1 }, { id: 2 }, { id: 3 }, { id: 4 }, { id: 5 }], new OpenAIEmbeddings());
|
|
64
|
-
const model = new ChatOpenAI({
|
|
65
|
-
modelName: "gpt-3.5-turbo",
|
|
66
|
-
temperature: 0,
|
|
67
|
-
});
|
|
68
|
-
const chain = ConversationalRetrievalQAChain.fromLLM(model, ScoreThresholdRetriever.fromVectorStore(vectorStore, {
|
|
69
|
-
minSimilarityScore: 0.9,
|
|
70
|
-
maxK: 2,
|
|
71
|
-
}), {
|
|
72
|
-
returnSourceDocuments: true,
|
|
73
|
-
memory: new BufferMemory({
|
|
74
|
-
memoryKey: "chat_history",
|
|
75
|
-
inputKey: "question",
|
|
76
|
-
outputKey: "text",
|
|
77
|
-
}),
|
|
78
|
-
});
|
|
79
|
-
const res = await chain.call({
|
|
80
|
-
question: "Buildings are made out of what?",
|
|
81
|
-
});
|
|
82
|
-
expect(res.sourceDocuments).toHaveLength(2);
|
|
83
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|