langchain 0.2.9 → 0.2.11
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/agents/executor.cjs +6 -0
- package/dist/agents/executor.js +6 -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/dist/retrievers/parent_document.cjs +1 -1
- package/dist/retrievers/parent_document.d.ts +1 -1
- package/dist/retrievers/parent_document.js +1 -1
- package/package.json +65 -6
- 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,49 +0,0 @@
|
|
|
1
|
-
import * as url from "node:url";
|
|
2
|
-
import * as path from "node:path";
|
|
3
|
-
import { test, expect } from "@jest/globals";
|
|
4
|
-
import { MultiFileLoader } from "../fs/multi_file.js";
|
|
5
|
-
import { CSVLoader } from "../fs/csv.js";
|
|
6
|
-
import { PDFLoader } from "../fs/pdf.js";
|
|
7
|
-
import { TextLoader } from "../fs/text.js";
|
|
8
|
-
import { JSONLoader } from "../fs/json.js";
|
|
9
|
-
import { UnknownHandling } from "../fs/directory.js";
|
|
10
|
-
test("Test MultiFileLoader", async () => {
|
|
11
|
-
const baseDirectory = path.resolve(path.dirname(url.fileURLToPath(import.meta.url)), "./example_data");
|
|
12
|
-
const filePaths = [
|
|
13
|
-
path.resolve(baseDirectory, "1706.03762.pdf"),
|
|
14
|
-
path.resolve(baseDirectory, "Jacob_Lee_Resume_2023.pdf"),
|
|
15
|
-
path.resolve(baseDirectory, "Star_Wars_The_Clone_Wars_S06E07_Crisis_at_the_Heart.csv"),
|
|
16
|
-
path.resolve(baseDirectory, "Star_Wars_The_Clone_Wars_S06E07_Crisis_at_the_Heart.json"),
|
|
17
|
-
path.resolve(baseDirectory, "complex.json"),
|
|
18
|
-
path.resolve(baseDirectory, "example.txt"),
|
|
19
|
-
path.resolve(baseDirectory, "example_separator.csv"),
|
|
20
|
-
];
|
|
21
|
-
const loader = new MultiFileLoader(filePaths, {
|
|
22
|
-
".csv": (p) => {
|
|
23
|
-
if (p.includes("separator.csv")) {
|
|
24
|
-
return new CSVLoader(p, { column: "html", separator: "|" });
|
|
25
|
-
}
|
|
26
|
-
return new CSVLoader(p, "html");
|
|
27
|
-
},
|
|
28
|
-
".pdf": (p) => new PDFLoader(p),
|
|
29
|
-
".txt": (p) => new TextLoader(p),
|
|
30
|
-
".json": (p) => new JSONLoader(p),
|
|
31
|
-
}, UnknownHandling.Ignore);
|
|
32
|
-
const docs = await loader.load();
|
|
33
|
-
expect(docs.length).toBe(123);
|
|
34
|
-
const expectedSources = [
|
|
35
|
-
// PDF
|
|
36
|
-
...Array.from({ length: 15 }, (_) => path.resolve(baseDirectory, "1706.03762.pdf")),
|
|
37
|
-
path.resolve(baseDirectory, "Jacob_Lee_Resume_2023.pdf"),
|
|
38
|
-
// CSV
|
|
39
|
-
...Array.from({ length: 32 }, (_) => path.resolve(baseDirectory, "Star_Wars_The_Clone_Wars_S06E07_Crisis_at_the_Heart.csv")),
|
|
40
|
-
// JSON
|
|
41
|
-
...Array.from({ length: 32 }, (_) => path.resolve(baseDirectory, "Star_Wars_The_Clone_Wars_S06E07_Crisis_at_the_Heart.json")),
|
|
42
|
-
...Array.from({ length: 10 }, (_) => path.resolve(baseDirectory, "complex.json")),
|
|
43
|
-
// TXT
|
|
44
|
-
path.resolve(baseDirectory, "example.txt"),
|
|
45
|
-
// CSV
|
|
46
|
-
...Array.from({ length: 32 }, (_) => path.resolve(baseDirectory, "example_separator.csv")),
|
|
47
|
-
];
|
|
48
|
-
expect(docs.map((d) => d.metadata.source).sort()).toEqual(expectedSources);
|
|
49
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { test, expect } from "@jest/globals";
|
|
2
|
-
import * as url from "node:url";
|
|
3
|
-
import * as path from "node:path";
|
|
4
|
-
import { NotionLoader } from "../fs/notion.js";
|
|
5
|
-
test("Test Notion Loader", async () => {
|
|
6
|
-
const directoryPath = path.resolve(path.dirname(url.fileURLToPath(import.meta.url)), "./example_data/notion");
|
|
7
|
-
const loader = new NotionLoader(directoryPath);
|
|
8
|
-
const docs = await loader.load();
|
|
9
|
-
expect(docs.length).toBe(1);
|
|
10
|
-
expect(docs[0].pageContent).toContain("Testing the notion markdownloader");
|
|
11
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-process-env */
|
|
2
|
-
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
3
|
-
import { test } from "@jest/globals";
|
|
4
|
-
import { NotionAPILoader } from "../web/notionapi.js";
|
|
5
|
-
test.skip("Test Notion API Loader Page", async () => {
|
|
6
|
-
const loader = new NotionAPILoader({
|
|
7
|
-
clientOptions: {
|
|
8
|
-
auth: process.env.NOTION_INTEGRATION_TOKEN,
|
|
9
|
-
},
|
|
10
|
-
id: process.env.NOTION_PAGE_ID ?? "",
|
|
11
|
-
onDocumentLoaded: (current, total, currentTitle, rootTitle) => {
|
|
12
|
-
console.log(`Loaded ${currentTitle} in ${rootTitle}: (${current}/${total})`);
|
|
13
|
-
},
|
|
14
|
-
});
|
|
15
|
-
const docs = await loader.load();
|
|
16
|
-
const titles = docs.map((doc) => doc.metadata.properties._title);
|
|
17
|
-
console.log("Titles:", titles);
|
|
18
|
-
console.log(`Loaded ${docs.length} pages`);
|
|
19
|
-
});
|
|
20
|
-
test.skip("Test Notion API Loader Database", async () => {
|
|
21
|
-
const loader = new NotionAPILoader({
|
|
22
|
-
clientOptions: {
|
|
23
|
-
auth: process.env.NOTION_INTEGRATION_TOKEN,
|
|
24
|
-
},
|
|
25
|
-
id: process.env.NOTION_DATABASE_ID ?? "",
|
|
26
|
-
onDocumentLoaded: (current, total, currentTitle, rootTitle) => {
|
|
27
|
-
console.log(`Loaded ${currentTitle} in ${rootTitle}: (${current}/${total})`);
|
|
28
|
-
},
|
|
29
|
-
});
|
|
30
|
-
const docs = await loader.load();
|
|
31
|
-
const titles = docs.map((doc) => doc.metadata.properties._title);
|
|
32
|
-
console.log("Titles:", titles);
|
|
33
|
-
console.log(`Loaded ${docs.length} pages from the database`);
|
|
34
|
-
});
|
|
35
|
-
test.skip("Test Notion API Loader onDocumentLoad", async () => {
|
|
36
|
-
const onDocumentLoadedCheck = [];
|
|
37
|
-
const loader = new NotionAPILoader({
|
|
38
|
-
clientOptions: {
|
|
39
|
-
auth: process.env.NOTION_INTEGRATION_TOKEN,
|
|
40
|
-
},
|
|
41
|
-
id: process.env.NOTION_DATABASE_ID ?? "",
|
|
42
|
-
onDocumentLoaded: (current, total, currentTitle, rootTitle) => {
|
|
43
|
-
onDocumentLoadedCheck.push(`Loaded ${currentTitle} from ${rootTitle}: (${current}/${total})`);
|
|
44
|
-
},
|
|
45
|
-
propertiesAsHeader: true,
|
|
46
|
-
});
|
|
47
|
-
await loader.load();
|
|
48
|
-
expect(onDocumentLoadedCheck.length).toBe(3);
|
|
49
|
-
console.log(onDocumentLoadedCheck);
|
|
50
|
-
});
|
|
51
|
-
test.skip("Test docs with empty database page content", async () => {
|
|
52
|
-
const onDocumentLoadedCheck = [];
|
|
53
|
-
const loader = new NotionAPILoader({
|
|
54
|
-
clientOptions: {
|
|
55
|
-
auth: process.env.NOTION_INTEGRATION_TOKEN,
|
|
56
|
-
},
|
|
57
|
-
id: process.env.NOTION_DATABASE_ID ?? "",
|
|
58
|
-
onDocumentLoaded: (current, total, currentTitle, rootTitle) => {
|
|
59
|
-
onDocumentLoadedCheck.push(`Loaded ${currentTitle} from ${rootTitle}: (${current}/${total})`);
|
|
60
|
-
},
|
|
61
|
-
});
|
|
62
|
-
const docs = await loader.load();
|
|
63
|
-
expect(docs.length).toBe(0);
|
|
64
|
-
});
|
|
65
|
-
test.skip("Test docs with empty database page content and propertiesAsHeader enabled", async () => {
|
|
66
|
-
const onDocumentLoadedCheck = [];
|
|
67
|
-
const loader = new NotionAPILoader({
|
|
68
|
-
clientOptions: {
|
|
69
|
-
auth: process.env.NOTION_INTEGRATION_TOKEN,
|
|
70
|
-
},
|
|
71
|
-
id: process.env.NOTION_DATABASE_ID ?? "",
|
|
72
|
-
onDocumentLoaded: (current, total, currentTitle, rootTitle) => {
|
|
73
|
-
onDocumentLoadedCheck.push(`Loaded ${currentTitle} from ${rootTitle}: (${current}/${total})`);
|
|
74
|
-
},
|
|
75
|
-
propertiesAsHeader: true,
|
|
76
|
-
});
|
|
77
|
-
const docs = await loader.load();
|
|
78
|
-
expect(docs.length).toBe(3);
|
|
79
|
-
console.log(docs);
|
|
80
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-process-env */
|
|
2
|
-
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
3
|
-
import * as fs from "node:fs";
|
|
4
|
-
import * as url from "node:url";
|
|
5
|
-
import * as path from "node:path";
|
|
6
|
-
import { test } from "@jest/globals";
|
|
7
|
-
import { NotionAPILoader, } from "../web/notionapi.js";
|
|
8
|
-
test("Properties Parser", async () => {
|
|
9
|
-
const loader = new NotionAPILoader({
|
|
10
|
-
clientOptions: {
|
|
11
|
-
auth: process.env.NOTION_INTEGRATION_TOKEN,
|
|
12
|
-
},
|
|
13
|
-
id: process.env.NOTION_PAGE_ID ?? "",
|
|
14
|
-
onDocumentLoaded: (current, total, currentTitle) => {
|
|
15
|
-
console.log(`Loaded Page: ${currentTitle} (${current}/${total})`);
|
|
16
|
-
},
|
|
17
|
-
});
|
|
18
|
-
const filePath = path.resolve(path.dirname(url.fileURLToPath(import.meta.url)), "./example_data/notion_api/notion_page_response.json");
|
|
19
|
-
const pageDetails = JSON.parse(fs.readFileSync(filePath).toString());
|
|
20
|
-
// Accessing private class method
|
|
21
|
-
// eslint-disable-next-line dot-notation
|
|
22
|
-
const contents = loader["parsePageProperties"](pageDetails);
|
|
23
|
-
expect(contents.File).toBe('["MetaLumna Logo Square.png"]');
|
|
24
|
-
expect(contents.Number).toBe("1234");
|
|
25
|
-
expect(contents.Rollup).toBe("Unsupported type: rollup");
|
|
26
|
-
expect(contents.Status).toBe("In progress");
|
|
27
|
-
expect(contents["Multi-select"]).toBe('["Red", "Green", "Blue"]');
|
|
28
|
-
expect(contents.Select).toBe("Magenta");
|
|
29
|
-
expect(contents["Last edited time"]).toBe("2023-09-27T09:11:00.000Z");
|
|
30
|
-
expect(contents.Text).toBe("This is just some **text** with some formatting and new lines.\n" +
|
|
31
|
-
"\n" +
|
|
32
|
-
"_italic_\n" +
|
|
33
|
-
"**bold**\n" +
|
|
34
|
-
"`inline code`\n" +
|
|
35
|
-
"~~strike through~~");
|
|
36
|
-
expect(contents["Last edited by"]).toBe('["user", "c9b34ba3-5b62-4aa9-aae2-ed6024ffb0fd"]');
|
|
37
|
-
expect(contents["Related Example Database"]).toBe('["7d9d1b96-34fa-4da3-b70d-9f71a75e1291", "7a1c25f2-d8a7-46d9-a2da-c9e39e018a56", "67662914-f22b-47fd-98aa-19988c40c77d"]');
|
|
38
|
-
expect(contents["Created by"]).toBe('["user", "c9b34ba3-5b62-4aa9-aae2-ed6024ffb0fd"]');
|
|
39
|
-
expect(contents.Checkbox).toBe("true");
|
|
40
|
-
expect(contents.Formula).toBe("Unsupported type: formula");
|
|
41
|
-
expect(contents.Phone).toBe("555-1234");
|
|
42
|
-
expect(contents.Email).toBe("skarard@gmail.com");
|
|
43
|
-
expect(contents.URL).toBe("https://example.com");
|
|
44
|
-
expect(contents["Created time"]).toBe("2023-06-14T10:29:00.000Z");
|
|
45
|
-
expect(contents.ID).toBe("2");
|
|
46
|
-
expect(contents.Date).toBe("2023-08-09T00:00:00.000+01:00 - 2023-08-09T00:00:00.000+01:00");
|
|
47
|
-
expect(contents.Person).toBe('[["user", "c9b34ba3-5b62-4aa9-aae2-ed6024ffb0fd"], ["user", "9d6b0c60-efdd-48d1-b63e-027d9b7d66a0"]]');
|
|
48
|
-
expect(contents.Name).toBe("An example ~~page~~ in a database");
|
|
49
|
-
expect(contents._title).toBe("An example ~~page~~ in a database");
|
|
50
|
-
});
|
|
51
|
-
test("Get Title (page)", async () => {
|
|
52
|
-
const loader = new NotionAPILoader({
|
|
53
|
-
clientOptions: {
|
|
54
|
-
auth: process.env.NOTION_INTEGRATION_TOKEN,
|
|
55
|
-
},
|
|
56
|
-
id: process.env.NOTION_PAGE_ID ?? "",
|
|
57
|
-
onDocumentLoaded: (current, total, currentTitle) => {
|
|
58
|
-
console.log(`Loaded Page: ${currentTitle} (${current}/${total})`);
|
|
59
|
-
},
|
|
60
|
-
});
|
|
61
|
-
const filePath = path.resolve(path.dirname(url.fileURLToPath(import.meta.url)), "./example_data/notion_api/notion_page_response.json");
|
|
62
|
-
const pageDetails = JSON.parse(fs.readFileSync(filePath).toString());
|
|
63
|
-
// Accessing private class method
|
|
64
|
-
// eslint-disable-next-line dot-notation
|
|
65
|
-
const title = loader["getTitle"](pageDetails);
|
|
66
|
-
expect(title).toBe("An example ~~page~~ in a database");
|
|
67
|
-
});
|
|
68
|
-
test("Get Title (database)", async () => {
|
|
69
|
-
const loader = new NotionAPILoader({
|
|
70
|
-
clientOptions: {
|
|
71
|
-
auth: process.env.NOTION_INTEGRATION_TOKEN,
|
|
72
|
-
},
|
|
73
|
-
id: process.env.NOTION_PAGE_ID ?? "",
|
|
74
|
-
onDocumentLoaded: (current, total, currentTitle) => {
|
|
75
|
-
console.log(`Loaded Page: ${currentTitle} (${current}/${total})`);
|
|
76
|
-
},
|
|
77
|
-
});
|
|
78
|
-
const filePath = path.resolve(path.dirname(url.fileURLToPath(import.meta.url)), "./example_data/notion_api/notion_database_response.json");
|
|
79
|
-
const dbDetails = JSON.parse(fs.readFileSync(filePath).toString());
|
|
80
|
-
// Accessing private class method
|
|
81
|
-
// eslint-disable-next-line dot-notation
|
|
82
|
-
const title = loader["getTitle"](dbDetails);
|
|
83
|
-
expect(title).toBe("Example ~~_**Database**_~~");
|
|
84
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-process-env */
|
|
2
|
-
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
3
|
-
import { test } from "@jest/globals";
|
|
4
|
-
import { NotionDBLoader } from "../web/notiondb.js";
|
|
5
|
-
test.skip("Test NotionDBLoader", async () => {
|
|
6
|
-
const loader = new NotionDBLoader({
|
|
7
|
-
pageSizeLimit: 10,
|
|
8
|
-
notionApiVersion: "2022-06-28",
|
|
9
|
-
databaseId: process.env.NOTION_DATABASE_ID,
|
|
10
|
-
});
|
|
11
|
-
const documents = await loader.load();
|
|
12
|
-
console.log({ documents });
|
|
13
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
import { test, expect } from "@jest/globals";
|
|
2
|
-
import * as url from "node:url";
|
|
3
|
-
import * as path from "node:path";
|
|
4
|
-
import { ObsidianLoader } from "../fs/obsidian.js";
|
|
5
|
-
const STANDARD_METADATA_FIELDS = [
|
|
6
|
-
"created",
|
|
7
|
-
"path",
|
|
8
|
-
"source",
|
|
9
|
-
"lastAccessed",
|
|
10
|
-
"lastModified",
|
|
11
|
-
];
|
|
12
|
-
const FRONTMATTER_FIELDS = [
|
|
13
|
-
"aBool",
|
|
14
|
-
"aFloat",
|
|
15
|
-
"anInt",
|
|
16
|
-
"anArray",
|
|
17
|
-
"aString",
|
|
18
|
-
"aDict",
|
|
19
|
-
"tags",
|
|
20
|
-
];
|
|
21
|
-
const DATAVIEW_FIELDS = ["dataview1", "dataview2", "dataview3"];
|
|
22
|
-
const directoryPath = path.resolve(path.dirname(url.fileURLToPath(import.meta.url)), "./example_data/obsidian");
|
|
23
|
-
let docs;
|
|
24
|
-
beforeAll(async () => {
|
|
25
|
-
const loader = new ObsidianLoader(directoryPath);
|
|
26
|
-
docs = await loader.load();
|
|
27
|
-
});
|
|
28
|
-
test("Test page content is loaded", async () => {
|
|
29
|
-
expect(docs.length).toBe(5);
|
|
30
|
-
docs.forEach((doc) => {
|
|
31
|
-
expect(doc.pageContent).toBeTruthy();
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
test("Test no additional metadata is collected if collectMetadata is false", async () => {
|
|
35
|
-
const noMetadataLoader = new ObsidianLoader(directoryPath, {
|
|
36
|
-
collectMetadata: false,
|
|
37
|
-
});
|
|
38
|
-
const noMetadataDocs = await noMetadataLoader.load();
|
|
39
|
-
expect(noMetadataDocs.length).toBe(5);
|
|
40
|
-
expect(noMetadataDocs.every((doc) => Object.keys(doc.metadata).length ===
|
|
41
|
-
Object.keys(STANDARD_METADATA_FIELDS).length &&
|
|
42
|
-
Object.keys(doc.metadata).every((key) => STANDARD_METADATA_FIELDS.includes(key)))).toBe(true);
|
|
43
|
-
});
|
|
44
|
-
test("Test docs without frontmatter still have basic metadata", async () => {
|
|
45
|
-
const doc = docs.find((doc) => doc.metadata.source === "no_metadata.md");
|
|
46
|
-
if (!doc) {
|
|
47
|
-
fail("'no_metadata.md' not found.");
|
|
48
|
-
}
|
|
49
|
-
expect(Object.keys(doc.metadata).every((key) => STANDARD_METADATA_FIELDS.includes(key))).toBe(true);
|
|
50
|
-
});
|
|
51
|
-
test("Test standard frontmatter fields are loaded", async () => {
|
|
52
|
-
const doc = docs.find((doc) => doc.metadata.source === "frontmatter.md");
|
|
53
|
-
if (!doc) {
|
|
54
|
-
fail("'frontmatter.md' not found.");
|
|
55
|
-
}
|
|
56
|
-
expect(Object.keys(doc.metadata)).toEqual(expect.arrayContaining(STANDARD_METADATA_FIELDS.concat("tags")));
|
|
57
|
-
const tagsSet = new Set(doc.metadata.tags?.split(","));
|
|
58
|
-
expect(tagsSet.has("journal/entry")).toBe(true);
|
|
59
|
-
expect(tagsSet.has("obsidian")).toBe(true);
|
|
60
|
-
});
|
|
61
|
-
test("Test a doc with non-yaml frontmatter still have basic metadata", async () => {
|
|
62
|
-
const doc = docs.find((doc) => doc.metadata.source === "bad_frontmatter.md");
|
|
63
|
-
if (!doc) {
|
|
64
|
-
fail("'bad_frontmatter.md' not found.");
|
|
65
|
-
}
|
|
66
|
-
expect(Object.keys(doc.metadata).every((key) => STANDARD_METADATA_FIELDS.includes(key))).toBe(true);
|
|
67
|
-
});
|
|
68
|
-
test("Test a doc with frontmatter and tags/dataview tags are all added to metadata", () => {
|
|
69
|
-
const doc = docs.find((doc) => doc.metadata.source === "tags_and_frontmatter.md");
|
|
70
|
-
if (!doc) {
|
|
71
|
-
fail("'tags_and_frontmatter.md' not found.");
|
|
72
|
-
}
|
|
73
|
-
const expectedFields = [
|
|
74
|
-
...STANDARD_METADATA_FIELDS,
|
|
75
|
-
...FRONTMATTER_FIELDS,
|
|
76
|
-
...DATAVIEW_FIELDS,
|
|
77
|
-
];
|
|
78
|
-
expect(Object.keys(doc.metadata)).toEqual(expect.arrayContaining(expectedFields));
|
|
79
|
-
});
|
|
80
|
-
test("Test float metadata is loaded correctly", () => {
|
|
81
|
-
const doc = docs.find((doc) => doc.metadata.source === "tags_and_frontmatter.md");
|
|
82
|
-
if (!doc) {
|
|
83
|
-
fail("Document 'tags_and_frontmatter.md' not found.");
|
|
84
|
-
return;
|
|
85
|
-
}
|
|
86
|
-
expect(doc.metadata.aFloat).toBe(13.12345);
|
|
87
|
-
});
|
|
88
|
-
test("Test int metadata is loaded correctly", () => {
|
|
89
|
-
const doc = docs.find((doc) => doc.metadata.source === "tags_and_frontmatter.md");
|
|
90
|
-
if (!doc) {
|
|
91
|
-
fail("Document 'tags_and_frontmatter.md' not found.");
|
|
92
|
-
return;
|
|
93
|
-
}
|
|
94
|
-
expect(doc.metadata.anInt).toBe(15);
|
|
95
|
-
});
|
|
96
|
-
test("Test string metadata is loaded correctly", () => {
|
|
97
|
-
const doc = docs.find((doc) => doc.metadata.source === "tags_and_frontmatter.md");
|
|
98
|
-
if (!doc) {
|
|
99
|
-
fail("Document 'tags_and_frontmatter.md' not found.");
|
|
100
|
-
return;
|
|
101
|
-
}
|
|
102
|
-
expect(doc.metadata.aString).toBe("string value");
|
|
103
|
-
});
|
|
104
|
-
test("Test array metadata is loaded as a string", () => {
|
|
105
|
-
const doc = docs.find((doc) => doc.metadata.source === "tags_and_frontmatter.md");
|
|
106
|
-
if (!doc) {
|
|
107
|
-
fail("Document 'tags_and_frontmatter.md' not found.");
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
expect(doc.metadata.anArray).toBe('["one","two","three"]');
|
|
111
|
-
});
|
|
112
|
-
test("Test dict metadata is stored as a string", () => {
|
|
113
|
-
const doc = docs.find((doc) => doc.metadata.source === "tags_and_frontmatter.md");
|
|
114
|
-
if (!doc) {
|
|
115
|
-
fail("Document 'tags_and_frontmatter.md' not found.");
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
expect(doc.metadata.aDict).toBe('{"dictId1":"58417","dictId2":1500}');
|
|
119
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { test, expect } from "@jest/globals";
|
|
2
|
-
import * as url from "node:url";
|
|
3
|
-
import * as path from "node:path";
|
|
4
|
-
import * as fs from "node:fs/promises";
|
|
5
|
-
import { PDFLoader } from "../fs/pdf.js";
|
|
6
|
-
test("Test PDF loader from blob", async () => {
|
|
7
|
-
const filePath = path.resolve(path.dirname(url.fileURLToPath(import.meta.url)), "./example_data/1706.03762.pdf");
|
|
8
|
-
const loader = new PDFLoader(new Blob([await fs.readFile(filePath)], {
|
|
9
|
-
type: "application/pdf",
|
|
10
|
-
}));
|
|
11
|
-
const docs = await loader.load();
|
|
12
|
-
expect(docs.length).toBe(15);
|
|
13
|
-
expect(docs[0].pageContent).toContain("Attention Is All You Need");
|
|
14
|
-
expect(docs[0].metadata).toMatchInlineSnapshot(`
|
|
15
|
-
{
|
|
16
|
-
"blobType": "application/pdf",
|
|
17
|
-
"loc": {
|
|
18
|
-
"pageNumber": 1,
|
|
19
|
-
},
|
|
20
|
-
"pdf": {
|
|
21
|
-
"info": {
|
|
22
|
-
"Author": "",
|
|
23
|
-
"CreationDate": "D:20171207010315Z",
|
|
24
|
-
"Creator": "LaTeX with hyperref package",
|
|
25
|
-
"IsAcroFormPresent": false,
|
|
26
|
-
"IsXFAPresent": false,
|
|
27
|
-
"Keywords": "",
|
|
28
|
-
"ModDate": "D:20171207010315Z",
|
|
29
|
-
"PDFFormatVersion": "1.5",
|
|
30
|
-
"Producer": "pdfTeX-1.40.17",
|
|
31
|
-
"Subject": "",
|
|
32
|
-
"Title": "",
|
|
33
|
-
"Trapped": {
|
|
34
|
-
"name": "False",
|
|
35
|
-
},
|
|
36
|
-
},
|
|
37
|
-
"metadata": null,
|
|
38
|
-
"totalPages": 15,
|
|
39
|
-
"version": "1.10.100",
|
|
40
|
-
},
|
|
41
|
-
"source": "blob",
|
|
42
|
-
}
|
|
43
|
-
`);
|
|
44
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { test, expect } from "@jest/globals";
|
|
2
|
-
import * as url from "node:url";
|
|
3
|
-
import * as path from "node:path";
|
|
4
|
-
import { PDFLoader } from "../fs/pdf.js";
|
|
5
|
-
test("Test PDF loader from file", async () => {
|
|
6
|
-
const filePath = path.resolve(path.dirname(url.fileURLToPath(import.meta.url)), "./example_data/1706.03762.pdf");
|
|
7
|
-
const loader = new PDFLoader(filePath);
|
|
8
|
-
const docs = await loader.load();
|
|
9
|
-
expect(docs.length).toBe(15);
|
|
10
|
-
expect(docs[0].pageContent).toContain("Attention Is All You Need");
|
|
11
|
-
});
|
|
12
|
-
test("Test PDF loader from file to single document", async () => {
|
|
13
|
-
const filePath = path.resolve(path.dirname(url.fileURLToPath(import.meta.url)), "./example_data/1706.03762.pdf");
|
|
14
|
-
const loader = new PDFLoader(filePath, { splitPages: false });
|
|
15
|
-
const docs = await loader.load();
|
|
16
|
-
expect(docs.length).toBe(1);
|
|
17
|
-
expect(docs[0].pageContent).toContain("Attention Is All You Need");
|
|
18
|
-
});
|
|
19
|
-
test("Test PDF loader should not create documents with excessive newlines", async () => {
|
|
20
|
-
const filePath = path.resolve(path.dirname(url.fileURLToPath(import.meta.url)), "./example_data/Jacob_Lee_Resume_2023.pdf");
|
|
21
|
-
const loader = new PDFLoader(filePath, { splitPages: false });
|
|
22
|
-
const docs = await loader.load();
|
|
23
|
-
expect(docs.length).toBe(1);
|
|
24
|
-
expect(docs[0].pageContent.split("\n").length).toBeLessThan(100);
|
|
25
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { expect, test } from "@jest/globals";
|
|
2
|
-
import { PlaywrightWebBaseLoader } from "../web/playwright.js";
|
|
3
|
-
test("Test playwright web scraper loader", async () => {
|
|
4
|
-
const loader = new PlaywrightWebBaseLoader("https://www.google.com/");
|
|
5
|
-
const result = await loader.load();
|
|
6
|
-
expect(result).toBeDefined();
|
|
7
|
-
expect(result.length).toBe(1);
|
|
8
|
-
}, 20000);
|
|
9
|
-
test("Test playwright web scraper loader with evaluate options", async () => {
|
|
10
|
-
let nrTimesCalled = 0;
|
|
11
|
-
const loader = new PlaywrightWebBaseLoader("https://www.google.com/", {
|
|
12
|
-
launchOptions: {
|
|
13
|
-
headless: true,
|
|
14
|
-
},
|
|
15
|
-
gotoOptions: {
|
|
16
|
-
waitUntil: "domcontentloaded",
|
|
17
|
-
},
|
|
18
|
-
async evaluate(page) {
|
|
19
|
-
nrTimesCalled += 1;
|
|
20
|
-
return page.content();
|
|
21
|
-
},
|
|
22
|
-
});
|
|
23
|
-
const result = await loader.load();
|
|
24
|
-
expect(nrTimesCalled).toBe(1);
|
|
25
|
-
expect(result).toBeDefined();
|
|
26
|
-
expect(result.length).toBe(1);
|
|
27
|
-
}, 20000);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { expect, test } from "@jest/globals";
|
|
2
|
-
import * as url from "node:url";
|
|
3
|
-
import * as path from "node:path";
|
|
4
|
-
import { PPTXLoader } from "../fs/pptx.js";
|
|
5
|
-
test.skip("Test PowerPoint loader from file", async () => {
|
|
6
|
-
const filePath = path.resolve(path.dirname(url.fileURLToPath(import.meta.url)), "./example_data/theikuntest.pptx");
|
|
7
|
-
const loader = new PPTXLoader(filePath);
|
|
8
|
-
const docs = await loader.load();
|
|
9
|
-
expect(docs.length).toBe(1); // not much text in the example
|
|
10
|
-
expect(docs[0].pageContent).toContain("UTSC IS THE BEST");
|
|
11
|
-
});
|
|
12
|
-
test.skip("Test PowerPoint loader from empty powerpoint file", async () => {
|
|
13
|
-
const filePath = path.resolve(path.dirname(url.fileURLToPath(import.meta.url)), "./example_data/emptyfile.pptx");
|
|
14
|
-
const loader = new PPTXLoader(filePath);
|
|
15
|
-
const docs = await loader.load();
|
|
16
|
-
expect(docs.length).toBe(0); // not much text in the example
|
|
17
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { expect, test } from "@jest/globals";
|
|
2
|
-
import { PuppeteerWebBaseLoader } from "../web/puppeteer.js";
|
|
3
|
-
test.skip("Test puppeteer web scraper loader", async () => {
|
|
4
|
-
const loader = new PuppeteerWebBaseLoader("https://www.google.com/");
|
|
5
|
-
const result = await loader.load();
|
|
6
|
-
expect(result).toBeDefined();
|
|
7
|
-
expect(result.length).toBe(1);
|
|
8
|
-
}, 20000);
|
|
9
|
-
test.skip("Test puppeteer web scraper loader with evaluate options", async () => {
|
|
10
|
-
let nrTimesCalled = 0;
|
|
11
|
-
const loader = new PuppeteerWebBaseLoader("https://www.google.com/", {
|
|
12
|
-
launchOptions: {
|
|
13
|
-
headless: true,
|
|
14
|
-
ignoreDefaultArgs: ["--disable-extensions"],
|
|
15
|
-
},
|
|
16
|
-
gotoOptions: {
|
|
17
|
-
waitUntil: "domcontentloaded",
|
|
18
|
-
},
|
|
19
|
-
async evaluate(page) {
|
|
20
|
-
nrTimesCalled += 1;
|
|
21
|
-
return page.evaluate(() => document.body.innerHTML);
|
|
22
|
-
},
|
|
23
|
-
});
|
|
24
|
-
const result = await loader.load();
|
|
25
|
-
expect(nrTimesCalled).toBe(1);
|
|
26
|
-
expect(result).toBeDefined();
|
|
27
|
-
expect(result.length).toBe(1);
|
|
28
|
-
}, 20000);
|
|
29
|
-
test.skip("Test puppeteer web scraper can screenshot page", async () => {
|
|
30
|
-
const loader = new PuppeteerWebBaseLoader("https://langchain.com/", {
|
|
31
|
-
launchOptions: {
|
|
32
|
-
headless: true,
|
|
33
|
-
ignoreDefaultArgs: ["--disable-extensions"],
|
|
34
|
-
},
|
|
35
|
-
gotoOptions: {
|
|
36
|
-
waitUntil: "domcontentloaded",
|
|
37
|
-
},
|
|
38
|
-
});
|
|
39
|
-
const screenshotDocument = await loader.screenshot();
|
|
40
|
-
expect(screenshotDocument.metadata.source).toBe("https://langchain.com/");
|
|
41
|
-
// verify screenshotDocument.pageContent is a base64 encoded string
|
|
42
|
-
expect(screenshotDocument.pageContent).toMatch(/^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$/);
|
|
43
|
-
// Uncomment if you want to write the screenshot to a file
|
|
44
|
-
// await fs.writeFile("langchain.png", screenshotDocument.pageContent, {
|
|
45
|
-
// encoding: "base64",
|
|
46
|
-
// });
|
|
47
|
-
}, 20000);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-process-env */
|
|
2
|
-
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
3
|
-
import { test } from "@jest/globals";
|
|
4
|
-
import { compile } from "html-to-text";
|
|
5
|
-
import { RecursiveUrlLoader } from "../web/recursive_url.js";
|
|
6
|
-
describe("RecursiveUrlLoader", () => {
|
|
7
|
-
test("loading valid url", async () => {
|
|
8
|
-
const url = "https://js.langchain.com/v0.2/docs/introduction";
|
|
9
|
-
const compiledConvert = compile({ wordwrap: 130 }); // returns (input: string) => string;
|
|
10
|
-
const loader = new RecursiveUrlLoader(url, {
|
|
11
|
-
extractor: compiledConvert,
|
|
12
|
-
maxDepth: 1,
|
|
13
|
-
excludeDirs: ["https://js.langchain.com/docs/api/"],
|
|
14
|
-
});
|
|
15
|
-
const docs = await loader.load();
|
|
16
|
-
expect(docs.length).toBeGreaterThan(1);
|
|
17
|
-
expect(docs[0].pageContent).toContain("LangChain");
|
|
18
|
-
});
|
|
19
|
-
test("loading single page", async () => {
|
|
20
|
-
const url = "https://js.langchain.com/v0.2/docs/introduction";
|
|
21
|
-
const compiledConvert = compile({ wordwrap: 130 }); // returns (input: string) => string;
|
|
22
|
-
const loader = new RecursiveUrlLoader(url, {
|
|
23
|
-
extractor: compiledConvert,
|
|
24
|
-
maxDepth: 0,
|
|
25
|
-
excludeDirs: ["https://js.langchain.com/docs/api/"],
|
|
26
|
-
});
|
|
27
|
-
const docs = await loader.load();
|
|
28
|
-
expect(docs.length).toBe(1);
|
|
29
|
-
expect(docs[0].pageContent).toContain("LangChain");
|
|
30
|
-
});
|
|
31
|
-
test("loading invalid url", async () => {
|
|
32
|
-
const url = "https://this.url.is.invalid/this/is/a/test";
|
|
33
|
-
const loader = new RecursiveUrlLoader(url, {
|
|
34
|
-
maxDepth: 1,
|
|
35
|
-
preventOutside: true,
|
|
36
|
-
});
|
|
37
|
-
const docs = await loader.load();
|
|
38
|
-
expect(docs.length).toBe(0);
|
|
39
|
-
});
|
|
40
|
-
test("excludeDirs works for top-level calls", async () => {
|
|
41
|
-
const url = "https://js.langchain.com/docs/";
|
|
42
|
-
const compiledConvert = compile({ wordwrap: 130 });
|
|
43
|
-
const excludeDir = "https://js.langchain.com/docs/api/";
|
|
44
|
-
const loader = new RecursiveUrlLoader(url, {
|
|
45
|
-
extractor: compiledConvert,
|
|
46
|
-
maxDepth: 1,
|
|
47
|
-
excludeDirs: [excludeDir],
|
|
48
|
-
});
|
|
49
|
-
const docs = await loader.load();
|
|
50
|
-
expect(docs.some((doc) => doc.metadata.source.startsWith(excludeDir))).toBe(false);
|
|
51
|
-
});
|
|
52
|
-
test("excludeDirs works for recursive calls", async () => {
|
|
53
|
-
const url = "https://js.langchain.com/docs/";
|
|
54
|
-
const compiledConvert = compile({ wordwrap: 130 });
|
|
55
|
-
const excludeDir = "https://js.langchain.com/docs/api/";
|
|
56
|
-
const loader = new RecursiveUrlLoader(url, {
|
|
57
|
-
extractor: compiledConvert,
|
|
58
|
-
maxDepth: 2,
|
|
59
|
-
excludeDirs: [excludeDir],
|
|
60
|
-
});
|
|
61
|
-
const docs = await loader.load();
|
|
62
|
-
expect(docs.some((doc) => doc.metadata.source.startsWith(excludeDir))).toBe(false);
|
|
63
|
-
});
|
|
64
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|