langchain 0.2.2 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agents/tests/agent.int.test.d.ts +1 -0
- package/dist/agents/tests/agent.int.test.js +309 -0
- package/dist/agents/tests/chat_convo_output_parser.test.d.ts +1 -0
- package/dist/agents/tests/chat_convo_output_parser.test.js +91 -0
- package/dist/agents/tests/create_openai_functions_agent.int.test.d.ts +2 -0
- package/dist/agents/tests/create_openai_functions_agent.int.test.js +71 -0
- package/dist/agents/tests/create_openai_tools_agent.int.test.d.ts +1 -0
- package/dist/agents/tests/create_openai_tools_agent.int.test.js +75 -0
- package/dist/agents/tests/create_react_agent.int.test.d.ts +1 -0
- package/dist/agents/tests/create_react_agent.int.test.js +32 -0
- package/dist/agents/tests/create_structured_chat_agent.int.test.d.ts +1 -0
- package/dist/agents/tests/create_structured_chat_agent.int.test.js +32 -0
- package/dist/agents/tests/create_tool_calling_agent.int.test.d.ts +1 -0
- package/dist/agents/tests/create_tool_calling_agent.int.test.js +71 -0
- package/dist/agents/tests/create_xml_agent.int.test.d.ts +1 -0
- package/dist/agents/tests/create_xml_agent.int.test.js +32 -0
- package/dist/agents/tests/json.test.d.ts +1 -0
- package/dist/agents/tests/json.test.js +74 -0
- package/dist/agents/tests/react.test.d.ts +1 -0
- package/dist/agents/tests/react.test.js +44 -0
- package/dist/agents/tests/runnable.int.test.d.ts +1 -0
- package/dist/agents/tests/runnable.int.test.js +104 -0
- package/dist/agents/tests/sql.test.d.ts +1 -0
- package/dist/agents/tests/sql.test.js +133 -0
- package/dist/agents/tests/structured_chat_output_parser.test.d.ts +1 -0
- package/dist/agents/tests/structured_chat_output_parser.test.js +35 -0
- package/dist/agents/tests/structured_chat_output_parser_with_retries.int.test.d.ts +1 -0
- package/dist/agents/tests/structured_chat_output_parser_with_retries.int.test.js +44 -0
- package/dist/agents/tests/structured_output_runnables.int.test.d.ts +1 -0
- package/dist/agents/tests/structured_output_runnables.int.test.js +112 -0
- package/dist/agents/toolkits/tests/conversational_retrieval.int.test.d.ts +1 -0
- package/dist/agents/toolkits/tests/conversational_retrieval.int.test.js +41 -0
- package/dist/cache/tests/file_system.int.test.d.ts +1 -0
- package/dist/cache/tests/file_system.int.test.js +32 -0
- package/dist/chains/openai_functions/tests/create_runnable_chains.int.test.d.ts +1 -0
- package/dist/chains/openai_functions/tests/create_runnable_chains.int.test.js +139 -0
- package/dist/chains/openai_functions/tests/extraction.int.test.d.ts +1 -0
- package/dist/chains/openai_functions/tests/extraction.int.test.js +33 -0
- package/dist/chains/openai_functions/tests/openapi.int.test.d.ts +1 -0
- package/dist/chains/openai_functions/tests/openapi.int.test.js +130 -0
- package/dist/chains/openai_functions/tests/openapi.test.d.ts +1 -0
- package/dist/chains/openai_functions/tests/openapi.test.js +172 -0
- package/dist/chains/openai_functions/tests/structured_output.int.test.d.ts +1 -0
- package/dist/chains/openai_functions/tests/structured_output.int.test.js +40 -0
- package/dist/chains/openai_functions/tests/structured_output.test.d.ts +1 -0
- package/dist/chains/openai_functions/tests/structured_output.test.js +102 -0
- package/dist/chains/openai_functions/tests/tagging.int.test.d.ts +1 -0
- package/dist/chains/openai_functions/tests/tagging.int.test.js +21 -0
- package/dist/chains/query_constructor/tests/query_chain.int.test.d.ts +1 -0
- package/dist/chains/query_constructor/tests/query_chain.int.test.js +93 -0
- package/dist/chains/query_constructor/tests/query_parser.test.d.ts +1 -0
- package/dist/chains/query_constructor/tests/query_parser.test.js +28 -0
- package/dist/chains/question_answering/tests/load.int.test.d.ts +1 -0
- package/dist/chains/question_answering/tests/load.int.test.js +39 -0
- package/dist/chains/router/tests/multi_prompt.int.test.d.ts +1 -0
- package/dist/chains/router/tests/multi_prompt.int.test.js +45 -0
- package/dist/chains/router/tests/multi_prompt.test.d.ts +1 -0
- package/dist/chains/router/tests/multi_prompt.test.js +62 -0
- package/dist/chains/router/tests/multi_retrieval_qa.int.test.d.ts +1 -0
- package/dist/chains/router/tests/multi_retrieval_qa.int.test.js +67 -0
- package/dist/chains/router/tests/multi_retrieval_qa.test.d.ts +1 -0
- package/dist/chains/router/tests/multi_retrieval_qa.test.js +125 -0
- package/dist/chains/summarization/tests/load.int.test.d.ts +1 -0
- package/dist/chains/summarization/tests/load.int.test.js +37 -0
- package/dist/chains/tests/api_chain.int.test.d.ts +1 -0
- package/dist/chains/tests/api_chain.int.test.js +55 -0
- package/dist/chains/tests/combine_docs_chain.int.test.d.ts +1 -0
- package/dist/chains/tests/combine_docs_chain.int.test.js +50 -0
- package/dist/chains/tests/combine_docs_chain.test.d.ts +1 -0
- package/dist/chains/tests/combine_docs_chain.test.js +98 -0
- package/dist/chains/tests/constitutional_chain.int.test.d.ts +1 -0
- package/dist/chains/tests/constitutional_chain.int.test.js +30 -0
- package/dist/chains/tests/constitutional_chain.test.d.ts +1 -0
- package/dist/chains/tests/constitutional_chain.test.js +63 -0
- package/dist/chains/tests/conversation_chain.int.test.d.ts +1 -0
- package/dist/chains/tests/conversation_chain.int.test.js +9 -0
- package/dist/chains/tests/conversational_retrieval_chain.int.test.d.ts +1 -0
- package/dist/chains/tests/conversational_retrieval_chain.int.test.js +243 -0
- package/dist/chains/tests/example_data/open_meteo_docs.d.ts +1 -0
- package/dist/chains/tests/example_data/open_meteo_docs.js +29 -0
- package/dist/chains/tests/history_aware_retriever.int.test.d.ts +1 -0
- package/dist/chains/tests/history_aware_retriever.int.test.js +41 -0
- package/dist/chains/tests/history_aware_retriever.test.d.ts +1 -0
- package/dist/chains/tests/history_aware_retriever.test.js +27 -0
- package/dist/chains/tests/llm_chain.int.test.d.ts +1 -0
- package/dist/chains/tests/llm_chain.int.test.js +119 -0
- package/dist/chains/tests/openai_moderation.int.test.d.ts +1 -0
- package/dist/chains/tests/openai_moderation.int.test.js +30 -0
- package/dist/chains/tests/retrieval_chain.int.test.d.ts +1 -0
- package/dist/chains/tests/retrieval_chain.int.test.js +69 -0
- package/dist/chains/tests/retrieval_chain.test.d.ts +1 -0
- package/dist/chains/tests/retrieval_chain.test.js +36 -0
- package/dist/chains/tests/sequential_chain.int.test.d.ts +1 -0
- package/dist/chains/tests/sequential_chain.int.test.js +88 -0
- package/dist/chains/tests/sequential_chain.test.d.ts +1 -0
- package/dist/chains/tests/sequential_chain.test.js +295 -0
- package/dist/chains/tests/simple_sequential_chain.int.test.d.ts +1 -0
- package/dist/chains/tests/simple_sequential_chain.int.test.js +81 -0
- package/dist/chains/tests/simple_sequential_chain.test.d.ts +1 -0
- package/dist/chains/tests/simple_sequential_chain.test.js +128 -0
- package/dist/chains/tests/sql_db_chain.int.test.d.ts +1 -0
- package/dist/chains/tests/sql_db_chain.int.test.js +125 -0
- package/dist/chains/tests/transform.test.d.ts +1 -0
- package/dist/chains/tests/transform.test.js +12 -0
- package/dist/chains/tests/vector_db_qa_chain.int.test.d.ts +1 -0
- package/dist/chains/tests/vector_db_qa_chain.int.test.js +45 -0
- package/dist/document_loaders/tests/assemblyai.int.test.d.ts +1 -0
- package/dist/document_loaders/tests/assemblyai.int.test.js +111 -0
- package/dist/document_loaders/tests/chatgpt-blob.test.d.ts +1 -0
- package/dist/document_loaders/tests/chatgpt-blob.test.js +30 -0
- package/dist/document_loaders/tests/chatgpt.test.d.ts +1 -0
- package/dist/document_loaders/tests/chatgpt.test.js +29 -0
- package/dist/document_loaders/tests/cheerio.int.test.d.ts +1 -0
- package/dist/document_loaders/tests/cheerio.int.test.js +21 -0
- package/dist/document_loaders/tests/college_confidential.int.test.d.ts +1 -0
- package/dist/document_loaders/tests/college_confidential.int.test.js +6 -0
- package/dist/document_loaders/tests/confluence.test.d.ts +1 -0
- package/dist/document_loaders/tests/confluence.test.js +52 -0
- package/dist/document_loaders/tests/couchbase.int.test.d.ts +1 -0
- package/dist/document_loaders/tests/couchbase.int.test.js +28 -0
- package/dist/document_loaders/tests/csv-blob.test.d.ts +1 -0
- package/dist/document_loaders/tests/csv-blob.test.js +51 -0
- package/dist/document_loaders/tests/csv.test.d.ts +1 -0
- package/dist/document_loaders/tests/csv.test.js +41 -0
- package/dist/document_loaders/tests/directory.test.d.ts +1 -0
- package/dist/document_loaders/tests/directory.test.js +38 -0
- package/dist/document_loaders/tests/docx.test.d.ts +1 -0
- package/dist/document_loaders/tests/docx.test.js +11 -0
- package/dist/document_loaders/tests/epub.test.d.ts +1 -0
- package/dist/document_loaders/tests/epub.test.js +18 -0
- package/dist/document_loaders/tests/example_data/github_api_responses.d.ts +5 -0
- package/dist/document_loaders/tests/example_data/github_api_responses.js +91 -0
- package/dist/document_loaders/tests/figma.int.test.d.ts +1 -0
- package/dist/document_loaders/tests/figma.int.test.js +13 -0
- package/dist/document_loaders/tests/firecrawl.int.test.d.ts +1 -0
- package/dist/document_loaders/tests/firecrawl.int.test.js +30 -0
- package/dist/document_loaders/tests/gitbook.int.test.d.ts +1 -0
- package/dist/document_loaders/tests/gitbook.int.test.js +14 -0
- package/dist/document_loaders/tests/github.int.test.d.ts +1 -0
- package/dist/document_loaders/tests/github.int.test.js +86 -0
- package/dist/document_loaders/tests/github.test.d.ts +1 -0
- package/dist/document_loaders/tests/github.test.js +51 -0
- package/dist/document_loaders/tests/hn.int.test.d.ts +1 -0
- package/dist/document_loaders/tests/hn.int.test.js +6 -0
- package/dist/document_loaders/tests/imsdb.test.d.ts +1 -0
- package/dist/document_loaders/tests/imsdb.test.js +6 -0
- package/dist/document_loaders/tests/json-blob.test.d.ts +1 -0
- package/dist/document_loaders/tests/json-blob.test.js +87 -0
- package/dist/document_loaders/tests/json.test.d.ts +1 -0
- package/dist/document_loaders/tests/json.test.js +69 -0
- package/dist/document_loaders/tests/jsonl-blob.test.d.ts +1 -0
- package/dist/document_loaders/tests/jsonl-blob.test.js +44 -0
- package/dist/document_loaders/tests/jsonl.test.d.ts +1 -0
- package/dist/document_loaders/tests/jsonl.test.js +15 -0
- package/dist/document_loaders/tests/notion.test.d.ts +1 -0
- package/dist/document_loaders/tests/notion.test.js +11 -0
- package/dist/document_loaders/tests/notionapi.int.test.d.ts +1 -0
- package/dist/document_loaders/tests/notionapi.int.test.js +80 -0
- package/dist/document_loaders/tests/notionapi.test.d.ts +1 -0
- package/dist/document_loaders/tests/notionapi.test.js +84 -0
- package/dist/document_loaders/tests/notiondb.int.test.d.ts +1 -0
- package/dist/document_loaders/tests/notiondb.int.test.js +13 -0
- package/dist/document_loaders/tests/obsidian.test.d.ts +1 -0
- package/dist/document_loaders/tests/obsidian.test.js +119 -0
- package/dist/document_loaders/tests/pdf-blob.test.d.ts +1 -0
- package/dist/document_loaders/tests/pdf-blob.test.js +44 -0
- package/dist/document_loaders/tests/pdf.test.d.ts +1 -0
- package/dist/document_loaders/tests/pdf.test.js +25 -0
- package/dist/document_loaders/tests/playwright_web.int.test.d.ts +1 -0
- package/dist/document_loaders/tests/playwright_web.int.test.js +27 -0
- package/dist/document_loaders/tests/pptx.test.d.ts +1 -0
- package/dist/document_loaders/tests/pptx.test.js +17 -0
- package/dist/document_loaders/tests/puppeteer.int.test.d.ts +1 -0
- package/dist/document_loaders/tests/puppeteer.int.test.js +47 -0
- package/dist/document_loaders/tests/recursive_url.int.test.d.ts +1 -0
- package/dist/document_loaders/tests/recursive_url.int.test.js +64 -0
- package/dist/document_loaders/tests/s3.int.test.d.ts +1 -0
- package/dist/document_loaders/tests/s3.int.test.js +48 -0
- package/dist/document_loaders/tests/searchapi.test.d.ts +1 -0
- package/dist/document_loaders/tests/searchapi.test.js +29 -0
- package/dist/document_loaders/tests/serpapi.test.d.ts +1 -0
- package/dist/document_loaders/tests/serpapi.test.js +21 -0
- package/dist/document_loaders/tests/sitemap.int.test.d.ts +1 -0
- package/dist/document_loaders/tests/sitemap.int.test.js +28 -0
- package/dist/document_loaders/tests/sonix_audio.int.test.d.ts +1 -0
- package/dist/document_loaders/tests/sonix_audio.int.test.js +55 -0
- package/dist/document_loaders/tests/sort_xyz_blockchain.int.test.d.ts +1 -0
- package/dist/document_loaders/tests/sort_xyz_blockchain.int.test.js +38 -0
- package/dist/document_loaders/tests/srt-blob.test.d.ts +1 -0
- package/dist/document_loaders/tests/srt-blob.test.js +18 -0
- package/dist/document_loaders/tests/srt.test.d.ts +1 -0
- package/dist/document_loaders/tests/srt.test.js +16 -0
- package/dist/document_loaders/tests/text-blob.test.d.ts +1 -0
- package/dist/document_loaders/tests/text-blob.test.js +14 -0
- package/dist/document_loaders/tests/text.test.d.ts +1 -0
- package/dist/document_loaders/tests/text.test.js +22 -0
- package/dist/document_loaders/tests/unstructured.int.test.d.ts +1 -0
- package/dist/document_loaders/tests/unstructured.int.test.js +40 -0
- package/dist/document_loaders/tests/webpdf.int.test.d.ts +1 -0
- package/dist/document_loaders/tests/webpdf.int.test.js +90 -0
- package/dist/document_transformers/tests/openai_functions.int.test.d.ts +1 -0
- package/dist/document_transformers/tests/openai_functions.int.test.js +40 -0
- package/dist/embeddings/tests/cache.test.d.ts +1 -0
- package/dist/embeddings/tests/cache.test.js +24 -0
- package/dist/embeddings/tests/fake.test.d.ts +1 -0
- package/dist/embeddings/tests/fake.test.js +34 -0
- package/dist/evaluation/agents/tests/trajectory_eval_chain.int.test.d.ts +1 -0
- package/dist/evaluation/agents/tests/trajectory_eval_chain.int.test.js +33 -0
- package/dist/evaluation/comparison/tests/pairwise_eval_chain.int.test.d.ts +1 -0
- package/dist/evaluation/comparison/tests/pairwise_eval_chain.int.test.js +46 -0
- package/dist/evaluation/criteria/tests/criteria_eval_chain.int.test.d.ts +1 -0
- package/dist/evaluation/criteria/tests/criteria_eval_chain.int.test.js +108 -0
- package/dist/evaluation/embedding_distance/tests/embedding_distance_eval_chain.int.test.d.ts +1 -0
- package/dist/evaluation/embedding_distance/tests/embedding_distance_eval_chain.int.test.js +26 -0
- package/dist/evaluation/qa/tests/eval_chain.int.test.d.ts +1 -0
- package/dist/evaluation/qa/tests/eval_chain.int.test.js +27 -0
- package/dist/experimental/autogpt/tests/output_parser.test.d.ts +1 -0
- package/dist/experimental/autogpt/tests/output_parser.test.js +8 -0
- package/dist/experimental/autogpt/tests/prompt.test.d.ts +1 -0
- package/dist/experimental/autogpt/tests/prompt.test.js +69 -0
- package/dist/experimental/autogpt/tests/prompt_generator.test.d.ts +1 -0
- package/dist/experimental/autogpt/tests/prompt_generator.test.js +91 -0
- package/dist/experimental/chains/tests/violation_of_expectations_chain.int.test.d.ts +1 -0
- package/dist/experimental/chains/tests/violation_of_expectations_chain.int.test.js +26 -0
- package/dist/experimental/generative_agents/tests/generative_agent.int.test.d.ts +1 -0
- package/dist/experimental/generative_agents/tests/generative_agent.int.test.js +304 -0
- package/dist/experimental/masking/tests/masking-extended.test.d.ts +1 -0
- package/dist/experimental/masking/tests/masking-extended.test.js +58 -0
- package/dist/experimental/masking/tests/masking.test.d.ts +1 -0
- package/dist/experimental/masking/tests/masking.test.js +388 -0
- package/dist/experimental/openai_assistant/tests/openai_assistant.int.test.d.ts +1 -0
- package/dist/experimental/openai_assistant/tests/openai_assistant.int.test.js +203 -0
- package/dist/experimental/openai_files/tests/openai_file.int.test.d.ts +1 -0
- package/dist/experimental/openai_files/tests/openai_file.int.test.js +87 -0
- package/dist/experimental/plan_and_execute/tests/plan_and_execute.int.test.d.ts +1 -0
- package/dist/experimental/plan_and_execute/tests/plan_and_execute.int.test.js +54 -0
- package/dist/experimental/prompts/tests/handlebars.test.d.ts +1 -0
- package/dist/experimental/prompts/tests/handlebars.test.js +24 -0
- package/dist/experimental/tools/tests/pyinterpreter.int.test.d.ts +1 -0
- package/dist/experimental/tools/tests/pyinterpreter.int.test.js +22 -0
- package/dist/load/import_map.cjs +1 -1
- package/dist/load/import_map.js +1 -1
- package/dist/load/tests/cross_language.test.d.ts +1 -0
- package/dist/load/tests/cross_language.test.js +83 -0
- package/dist/load/tests/load.int.test.d.ts +1 -0
- package/dist/load/tests/load.int.test.js +9 -0
- package/dist/load/tests/load.test.d.ts +1 -0
- package/dist/load/tests/load.test.js +412 -0
- package/dist/memory/tests/buffer_memory.test.d.ts +1 -0
- package/dist/memory/tests/buffer_memory.test.js +34 -0
- package/dist/memory/tests/buffer_token_memory.int.test.d.ts +1 -0
- package/dist/memory/tests/buffer_token_memory.int.test.js +47 -0
- package/dist/memory/tests/buffer_window_memory.test.d.ts +1 -0
- package/dist/memory/tests/buffer_window_memory.test.js +42 -0
- package/dist/memory/tests/combined_memory.int.test.d.ts +1 -0
- package/dist/memory/tests/combined_memory.int.test.js +74 -0
- package/dist/memory/tests/entity_memory.int.test.d.ts +1 -0
- package/dist/memory/tests/entity_memory.int.test.js +79 -0
- package/dist/memory/tests/entity_memory.test.d.ts +1 -0
- package/dist/memory/tests/entity_memory.test.js +48 -0
- package/dist/memory/tests/summary.int.test.d.ts +1 -0
- package/dist/memory/tests/summary.int.test.js +50 -0
- package/dist/memory/tests/summary_buffer.int.test.d.ts +1 -0
- package/dist/memory/tests/summary_buffer.int.test.js +55 -0
- package/dist/memory/tests/vector_store_memory.int.test.d.ts +1 -0
- package/dist/memory/tests/vector_store_memory.int.test.js +55 -0
- package/dist/output_parsers/tests/combining.int.test.d.ts +1 -0
- package/dist/output_parsers/tests/combining.int.test.js +26 -0
- package/dist/output_parsers/tests/combining.test.d.ts +1 -0
- package/dist/output_parsers/tests/combining.test.js +54 -0
- package/dist/output_parsers/tests/datetime.test.d.ts +1 -0
- package/dist/output_parsers/tests/datetime.test.js +14 -0
- package/dist/output_parsers/tests/expression.test.d.ts +1 -0
- package/dist/output_parsers/tests/expression.test.js +339 -0
- package/dist/output_parsers/tests/http_response.test.d.ts +1 -0
- package/dist/output_parsers/tests/http_response.test.js +39 -0
- package/dist/output_parsers/tests/list.test.d.ts +1 -0
- package/dist/output_parsers/tests/list.test.js +27 -0
- package/dist/output_parsers/tests/openai_functions.int.test.d.ts +1 -0
- package/dist/output_parsers/tests/openai_functions.int.test.js +89 -0
- package/dist/output_parsers/tests/openai_tools.int.test.d.ts +1 -0
- package/dist/output_parsers/tests/openai_tools.int.test.js +36 -0
- package/dist/output_parsers/tests/structured.int.test.d.ts +1 -0
- package/dist/output_parsers/tests/structured.int.test.js +150 -0
- package/dist/prompts/tests/selectors.test.d.ts +1 -0
- package/dist/prompts/tests/selectors.test.js +59 -0
- package/dist/retrievers/self_query/tests/memory_self_query.int.test.d.ts +1 -0
- package/dist/retrievers/self_query/tests/memory_self_query.int.test.js +330 -0
- package/dist/retrievers/tests/chain_extract.int.test.d.ts +1 -0
- package/dist/retrievers/tests/chain_extract.int.test.js +32 -0
- package/dist/retrievers/tests/hyde.int.test.d.ts +1 -0
- package/dist/retrievers/tests/hyde.int.test.js +44 -0
- package/dist/retrievers/tests/matryoshka_retriever.int.test.d.ts +1 -0
- package/dist/retrievers/tests/matryoshka_retriever.int.test.js +113 -0
- package/dist/retrievers/tests/multi_query.int.test.d.ts +1 -0
- package/dist/retrievers/tests/multi_query.int.test.js +45 -0
- package/dist/retrievers/tests/parent_document.int.test.d.ts +1 -0
- package/dist/retrievers/tests/parent_document.int.test.js +122 -0
- package/dist/retrievers/tests/score_threshold.int.test.d.ts +1 -0
- package/dist/retrievers/tests/score_threshold.int.test.js +83 -0
- package/dist/retrievers/tests/time_weighted.test.d.ts +1 -0
- package/dist/retrievers/tests/time_weighted.test.js +320 -0
- package/dist/retrievers/tests/vectorstores.test.d.ts +1 -0
- package/dist/retrievers/tests/vectorstores.test.js +50 -0
- package/dist/smith/tests/run_on_dataset.int.test.d.ts +1 -0
- package/dist/smith/tests/run_on_dataset.int.test.js +257 -0
- package/dist/smith/tests/runner_utils.int.test.d.ts +9 -0
- package/dist/smith/tests/runner_utils.int.test.js +234 -0
- package/dist/storage/tests/file_system.test.d.ts +1 -0
- package/dist/storage/tests/file_system.test.js +81 -0
- package/dist/tools/tests/chain.test.d.ts +1 -0
- package/dist/tools/tests/chain.test.js +136 -0
- package/dist/tools/tests/webbrowser.int.test.d.ts +1 -0
- package/dist/tools/tests/webbrowser.int.test.js +80 -0
- package/dist/tools/tests/webbrowser.test.d.ts +1 -0
- package/dist/tools/tests/webbrowser.test.js +21 -0
- package/dist/util/sql_utils.cjs +2 -1
- package/dist/util/sql_utils.js +2 -1
- package/dist/util/tests/async_caller.int.test.d.ts +1 -0
- package/dist/util/tests/async_caller.int.test.js +34 -0
- package/dist/util/tests/azure.test.d.ts +1 -0
- package/dist/util/tests/azure.test.js +42 -0
- package/dist/util/tests/openai-stream.test.d.ts +1 -0
- package/dist/util/tests/openai-stream.test.js +135 -0
- package/dist/util/tests/set.test.d.ts +1 -0
- package/dist/util/tests/set.test.js +36 -0
- package/dist/util/tests/sql_utils.test.d.ts +1 -0
- package/dist/util/tests/sql_utils.test.js +50 -0
- package/dist/vectorstores/tests/memory.test.d.ts +1 -0
- package/dist/vectorstores/tests/memory.test.js +78 -0
- package/package.json +4 -8
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { describe, it, expect, jest } from "@jest/globals";
|
|
2
|
+
import fetchAdapter from "../axios-fetch-adapter.js";
|
|
3
|
+
const mockFetchForOpenAIStream = async ({ chunks, status, contentType, }) => {
|
|
4
|
+
// Mock stream response chunks.
|
|
5
|
+
const stream = new ReadableStream({
|
|
6
|
+
async start(controller) {
|
|
7
|
+
chunks.forEach((chunk) => {
|
|
8
|
+
controller.enqueue(new TextEncoder().encode(chunk));
|
|
9
|
+
});
|
|
10
|
+
controller.close();
|
|
11
|
+
},
|
|
12
|
+
});
|
|
13
|
+
// Mock Fetch API call.
|
|
14
|
+
jest.spyOn(global, "fetch").mockImplementation(async () => new Response(stream, {
|
|
15
|
+
status,
|
|
16
|
+
headers: {
|
|
17
|
+
"Content-Type": contentType,
|
|
18
|
+
},
|
|
19
|
+
}));
|
|
20
|
+
let error = null;
|
|
21
|
+
let done = false;
|
|
22
|
+
const receivedChunks = [];
|
|
23
|
+
const resp = await fetchAdapter({
|
|
24
|
+
url: "https://example.com",
|
|
25
|
+
method: "POST",
|
|
26
|
+
responseType: "stream",
|
|
27
|
+
onmessage: (event) => {
|
|
28
|
+
if (event.data?.trim?.() === "[DONE]") {
|
|
29
|
+
done = true;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
receivedChunks.push(JSON.parse(event.data).choices[0].delta.content ?? "");
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
}).catch((err) => {
|
|
36
|
+
error = err;
|
|
37
|
+
return null;
|
|
38
|
+
});
|
|
39
|
+
return { resp, receivedChunks, error, done };
|
|
40
|
+
};
|
|
41
|
+
describe("OpenAI Stream Tests", () => {
|
|
42
|
+
it("should return a 200 response chunk by chunk", async () => {
|
|
43
|
+
// When stream mode enabled, OpenAI responds with a stream of `data: {...}\n\n` chunks
|
|
44
|
+
// followed by `data: [DONE]\n\n`.
|
|
45
|
+
const { resp, receivedChunks, error, done } = await mockFetchForOpenAIStream({
|
|
46
|
+
status: 200,
|
|
47
|
+
contentType: "text/event-stream",
|
|
48
|
+
chunks: [
|
|
49
|
+
'data: {"choices":[{"delta":{"role":"assistant"},"index":0,"finish_reason":null}]}\n\n',
|
|
50
|
+
'data: {"choices":[{"delta":{"content":"Hello"},"index":0,"finish_reason":null}]}\n\n',
|
|
51
|
+
'data: {"choices":[{"delta":{"content":" World"},"index":0,"finish_reason":null}]}\n\n',
|
|
52
|
+
'data: {"choices":[{"delta":{"content":"!"},"index":0,"finish_reason":null}]}\n\n',
|
|
53
|
+
'data: {"choices":[{"delta":{},"index":0,"finish_reason":"stop"}]}\n\n',
|
|
54
|
+
"data: [DONE]\n\n",
|
|
55
|
+
],
|
|
56
|
+
});
|
|
57
|
+
expect(error).toEqual(null);
|
|
58
|
+
expect(resp?.status).toEqual(200);
|
|
59
|
+
expect(receivedChunks).toEqual(["", "Hello", " World", "!", ""]);
|
|
60
|
+
expect(done).toBe(true);
|
|
61
|
+
});
|
|
62
|
+
it("should handle OpenAI 400 json error", async () => {
|
|
63
|
+
// OpenAI returns errors with application/json content type.
|
|
64
|
+
// Even if stream mode is enabled, the error is returned as a normal JSON body.
|
|
65
|
+
// Error information is in the `error` field.
|
|
66
|
+
const { resp, receivedChunks, error } = await mockFetchForOpenAIStream({
|
|
67
|
+
status: 400,
|
|
68
|
+
contentType: "application/json",
|
|
69
|
+
chunks: [
|
|
70
|
+
JSON.stringify({
|
|
71
|
+
error: {},
|
|
72
|
+
}),
|
|
73
|
+
],
|
|
74
|
+
});
|
|
75
|
+
expect(error).toEqual(null);
|
|
76
|
+
expect(resp?.status).toEqual(400);
|
|
77
|
+
expect(resp?.data).toEqual({ error: {} });
|
|
78
|
+
expect(receivedChunks).toEqual([]);
|
|
79
|
+
});
|
|
80
|
+
it("should handle 500 non-json error", async () => {
|
|
81
|
+
const { resp, receivedChunks, error } = await mockFetchForOpenAIStream({
|
|
82
|
+
status: 500,
|
|
83
|
+
contentType: "text/plain",
|
|
84
|
+
chunks: ["Some error message..."],
|
|
85
|
+
});
|
|
86
|
+
expect(error).toEqual(null);
|
|
87
|
+
expect(resp?.status).toEqual(500);
|
|
88
|
+
expect(resp?.data).toEqual("Some error message...");
|
|
89
|
+
expect(receivedChunks).toEqual([]);
|
|
90
|
+
});
|
|
91
|
+
it("should throw on 500 non-json body with json content type", async () => {
|
|
92
|
+
const { resp, receivedChunks, error } = await mockFetchForOpenAIStream({
|
|
93
|
+
status: 500,
|
|
94
|
+
contentType: "application/json",
|
|
95
|
+
chunks: ["a non-json error body"],
|
|
96
|
+
});
|
|
97
|
+
expect(resp).toEqual(null);
|
|
98
|
+
expect(error?.message).toContain("Unexpected token");
|
|
99
|
+
expect(receivedChunks).toEqual([]);
|
|
100
|
+
});
|
|
101
|
+
it("should throw the generic error if non-stream content is detected", async () => {
|
|
102
|
+
const { resp, receivedChunks, error } = await mockFetchForOpenAIStream({
|
|
103
|
+
status: 200,
|
|
104
|
+
contentType: "text/plain",
|
|
105
|
+
chunks: ["a non-stream body"],
|
|
106
|
+
});
|
|
107
|
+
expect(resp).toEqual(null);
|
|
108
|
+
expect(error?.message).toBe("Expected content-type to be text/event-stream, Actual: text/plain");
|
|
109
|
+
expect(receivedChunks).toEqual([]);
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
describe("Azure OpenAI Stream Tests", () => {
|
|
113
|
+
it("should return a 200 response chunk by chunk", async () => {
|
|
114
|
+
// When stream mode enabled, Azure OpenAI responds with chunks without tailing blank line.
|
|
115
|
+
// In addition, Azure sends chunks in batch.
|
|
116
|
+
const { resp, receivedChunks, error, done } = await mockFetchForOpenAIStream({
|
|
117
|
+
status: 200,
|
|
118
|
+
contentType: "text/event-stream",
|
|
119
|
+
chunks: [
|
|
120
|
+
// First batch
|
|
121
|
+
'data: {"choices":[{"delta":{"role":"assistant"},"index":0,"finish_reason":null}]}\n\n' +
|
|
122
|
+
'data: {"choices":[{"delta":{"content":"Hello"},"index":0,"finish_reason":null}]}\n\n' +
|
|
123
|
+
'data: {"choices":[{"delta":{"content":" World"},"index":0,"finish_reason":null}]}\n\n',
|
|
124
|
+
// Second batch
|
|
125
|
+
'data: {"choices":[{"delta":{"content":"!"},"index":0,"finish_reason":null}]}\n\n' +
|
|
126
|
+
'data: {"choices":[{"delta":{},"index":0,"finish_reason":"stop"}]}\n\n' +
|
|
127
|
+
"data: [DONE]\n", // no blank line
|
|
128
|
+
],
|
|
129
|
+
});
|
|
130
|
+
expect(error).toEqual(null);
|
|
131
|
+
expect(resp?.status).toEqual(200);
|
|
132
|
+
expect(receivedChunks).toEqual(["", "Hello", " World", "!", ""]);
|
|
133
|
+
expect(done).toBe(true);
|
|
134
|
+
});
|
|
135
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { test, expect } from "@jest/globals";
|
|
2
|
+
import { difference, intersection, union } from "../set.js";
|
|
3
|
+
test("difference", () => {
|
|
4
|
+
const set1 = new Set(["a", "b"]);
|
|
5
|
+
const set2 = new Set(["b", "c"]);
|
|
6
|
+
const resultSet = difference(set1, set2);
|
|
7
|
+
expect(resultSet).toMatchInlineSnapshot(`
|
|
8
|
+
Set {
|
|
9
|
+
"a",
|
|
10
|
+
}
|
|
11
|
+
`);
|
|
12
|
+
});
|
|
13
|
+
test("intersection", () => {
|
|
14
|
+
const set1 = new Set(["a", "b", "c", "d"]);
|
|
15
|
+
const set2 = new Set(["b", "c", "e"]);
|
|
16
|
+
const resultSet = intersection(set1, set2);
|
|
17
|
+
expect(resultSet).toMatchInlineSnapshot(`
|
|
18
|
+
Set {
|
|
19
|
+
"b",
|
|
20
|
+
"c",
|
|
21
|
+
}
|
|
22
|
+
`);
|
|
23
|
+
});
|
|
24
|
+
test("union", () => {
|
|
25
|
+
const set1 = new Set(["a", "b"]);
|
|
26
|
+
const set2 = new Set(["c", "d"]);
|
|
27
|
+
const resultSet = union(set1, set2);
|
|
28
|
+
expect(resultSet).toMatchInlineSnapshot(`
|
|
29
|
+
Set {
|
|
30
|
+
"a",
|
|
31
|
+
"b",
|
|
32
|
+
"c",
|
|
33
|
+
"d",
|
|
34
|
+
}
|
|
35
|
+
`);
|
|
36
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { test, expect } from "@jest/globals";
|
|
2
|
+
import { DataSource } from "typeorm";
|
|
3
|
+
import { getPromptTemplateFromDataSource, verifyIgnoreTablesExistInDatabase, verifyIncludeTablesExistInDatabase, } from "../sql_utils.js";
|
|
4
|
+
import { SQL_SQLITE_PROMPT } from "../../chains/sql_db/sql_db_prompt.js";
|
|
5
|
+
test("Find include tables when there are there", () => {
|
|
6
|
+
const includeTables = ["user", "score"];
|
|
7
|
+
const allTables = [
|
|
8
|
+
{ tableName: "plop", columns: [{ columnName: "id" }] },
|
|
9
|
+
{ tableName: "score", columns: [{ columnName: "id" }] },
|
|
10
|
+
{ tableName: "user", columns: [{ columnName: "id" }] },
|
|
11
|
+
{ tableName: "log", columns: [{ columnName: "id" }] },
|
|
12
|
+
];
|
|
13
|
+
expect(() => verifyIncludeTablesExistInDatabase(allTables, includeTables)).not.toThrow();
|
|
14
|
+
});
|
|
15
|
+
test("Throw Error when include tables are not there", () => {
|
|
16
|
+
const includeTables = ["user", "score"];
|
|
17
|
+
const allTables = [
|
|
18
|
+
{ tableName: "plop", columns: [{ columnName: "id" }] },
|
|
19
|
+
{ tableName: "score", columns: [{ columnName: "id" }] },
|
|
20
|
+
{ tableName: "log", columns: [{ columnName: "id" }] },
|
|
21
|
+
];
|
|
22
|
+
expect(() => verifyIncludeTablesExistInDatabase(allTables, includeTables)).toThrow();
|
|
23
|
+
});
|
|
24
|
+
test("Find include tables when there are there", () => {
|
|
25
|
+
const includeTables = ["user", "score"];
|
|
26
|
+
const allTables = [
|
|
27
|
+
{ tableName: "user", columns: [{ columnName: "id" }] },
|
|
28
|
+
{ tableName: "plop", columns: [{ columnName: "id" }] },
|
|
29
|
+
{ tableName: "score", columns: [{ columnName: "id" }] },
|
|
30
|
+
{ tableName: "log", columns: [{ columnName: "id" }] },
|
|
31
|
+
];
|
|
32
|
+
expect(() => verifyIgnoreTablesExistInDatabase(allTables, includeTables)).not.toThrow();
|
|
33
|
+
});
|
|
34
|
+
test("Throw Error when include tables are not there", () => {
|
|
35
|
+
const includeTables = ["user", "score"];
|
|
36
|
+
const allTables = [
|
|
37
|
+
{ tableName: "plop", columns: [{ columnName: "id" }] },
|
|
38
|
+
{ tableName: "score", columns: [{ columnName: "id" }] },
|
|
39
|
+
{ tableName: "log", columns: [{ columnName: "id" }] },
|
|
40
|
+
];
|
|
41
|
+
expect(() => verifyIgnoreTablesExistInDatabase(allTables, includeTables)).toThrow();
|
|
42
|
+
});
|
|
43
|
+
test.skip("return sqlite template when the DataSource is sqlite", () => {
|
|
44
|
+
const datasource = new DataSource({
|
|
45
|
+
type: "sqlite",
|
|
46
|
+
database: "Chinook.db",
|
|
47
|
+
});
|
|
48
|
+
const promptTemplate = getPromptTemplateFromDataSource(datasource);
|
|
49
|
+
expect(promptTemplate).toEqual(SQL_SQLITE_PROMPT);
|
|
50
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { test, expect } from "@jest/globals";
|
|
2
|
+
import { Document } from "@langchain/core/documents";
|
|
3
|
+
import { SyntheticEmbeddings } from "@langchain/core/utils/testing";
|
|
4
|
+
import { similarity } from "ml-distance";
|
|
5
|
+
import { MemoryVectorStore } from "../memory.js";
|
|
6
|
+
test("MemoryVectorStore with external ids", async () => {
|
|
7
|
+
const embeddings = new SyntheticEmbeddings({
|
|
8
|
+
vectorSize: 1536,
|
|
9
|
+
});
|
|
10
|
+
const store = new MemoryVectorStore(embeddings);
|
|
11
|
+
expect(store).toBeDefined();
|
|
12
|
+
await store.addDocuments([
|
|
13
|
+
{ pageContent: "hello", metadata: { a: 1 } },
|
|
14
|
+
{ pageContent: "hi", metadata: { a: 1 } },
|
|
15
|
+
{ pageContent: "bye", metadata: { a: 1 } },
|
|
16
|
+
{ pageContent: "what's this", metadata: { a: 1 } },
|
|
17
|
+
]);
|
|
18
|
+
const results = await store.similaritySearch("hello", 1);
|
|
19
|
+
expect(results).toHaveLength(1);
|
|
20
|
+
expect(results).toEqual([
|
|
21
|
+
new Document({ metadata: { a: 1 }, pageContent: "hello" }),
|
|
22
|
+
]);
|
|
23
|
+
});
|
|
24
|
+
test("MemoryVectorStore as retriever can filter metadata", async () => {
|
|
25
|
+
const embeddings = new SyntheticEmbeddings({
|
|
26
|
+
vectorSize: 1536,
|
|
27
|
+
});
|
|
28
|
+
const store = new MemoryVectorStore(embeddings);
|
|
29
|
+
const filterFunc = (doc) => {
|
|
30
|
+
const { metadata } = doc;
|
|
31
|
+
if (metadata.namespace <= 2) {
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
return false;
|
|
35
|
+
};
|
|
36
|
+
const retriever = store.asRetriever({
|
|
37
|
+
k: 2,
|
|
38
|
+
filter: filterFunc,
|
|
39
|
+
});
|
|
40
|
+
expect(retriever).toBeDefined();
|
|
41
|
+
await retriever.addDocuments([
|
|
42
|
+
{ pageContent: "hello", metadata: { namespace: 1 } },
|
|
43
|
+
{ pageContent: "hello", metadata: { namespace: 2 } },
|
|
44
|
+
{ pageContent: "hello", metadata: { namespace: 3 } },
|
|
45
|
+
{ pageContent: "hello", metadata: { namespace: 4 } },
|
|
46
|
+
]);
|
|
47
|
+
const results = await retriever.getRelevantDocuments("hello");
|
|
48
|
+
expect(results).toHaveLength(2);
|
|
49
|
+
expect(results).toEqual([
|
|
50
|
+
new Document({ metadata: { namespace: 1 }, pageContent: "hello" }),
|
|
51
|
+
new Document({ metadata: { namespace: 2 }, pageContent: "hello" }),
|
|
52
|
+
]);
|
|
53
|
+
});
|
|
54
|
+
test("MemoryVectorStore with custom similarity", async () => {
|
|
55
|
+
const embeddings = new SyntheticEmbeddings({
|
|
56
|
+
vectorSize: 1536,
|
|
57
|
+
});
|
|
58
|
+
let similarityCalled = false;
|
|
59
|
+
let similarityCalledCount = 0;
|
|
60
|
+
const store = new MemoryVectorStore(embeddings, {
|
|
61
|
+
similarity: (a, b) => {
|
|
62
|
+
similarityCalledCount += 1;
|
|
63
|
+
similarityCalled = true;
|
|
64
|
+
return similarity.cosine(a, b);
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
expect(store).toBeDefined();
|
|
68
|
+
await store.addDocuments([
|
|
69
|
+
{ pageContent: "hello", metadata: { a: 1 } },
|
|
70
|
+
{ pageContent: "hi", metadata: { a: 1 } },
|
|
71
|
+
{ pageContent: "bye", metadata: { a: 1 } },
|
|
72
|
+
{ pageContent: "what's this", metadata: { a: 1 } },
|
|
73
|
+
]);
|
|
74
|
+
const results = await store.similaritySearch("hello", 3);
|
|
75
|
+
expect(similarityCalled).toBe(true);
|
|
76
|
+
expect(similarityCalledCount).toBe(4);
|
|
77
|
+
expect(results).toHaveLength(3);
|
|
78
|
+
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "langchain",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"description": "Typescript bindings for langchain",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"engines": {
|
|
@@ -561,7 +561,8 @@
|
|
|
561
561
|
},
|
|
562
562
|
"homepage": "https://github.com/langchain-ai/langchainjs/tree/main/langchain/",
|
|
563
563
|
"scripts": {
|
|
564
|
-
"build": "yarn
|
|
564
|
+
"build": "yarn turbo:command build:internal --filter=langchain",
|
|
565
|
+
"build:internal": "yarn lc-build:v2 --create-entrypoints --pre --tree-shaking --gen-maps",
|
|
565
566
|
"build:deps": "yarn run turbo:command build --filter=@langchain/openai --filter=@langchain/textsplitters --filter=@langchain/cohere --concurrency=1",
|
|
566
567
|
"build:esm": "NODE_OPTIONS=--max-old-space-size=4096 tsc --outDir dist/ && rimraf dist/tests dist/**/tests",
|
|
567
568
|
"build:cjs": "NODE_OPTIONS=--max-old-space-size=4096 tsc --outDir dist-cjs/ -p tsconfig.cjs.json && yarn move-cjs-to-dist && rimraf dist-cjs",
|
|
@@ -572,7 +573,7 @@
|
|
|
572
573
|
"lint": "yarn lint:eslint && yarn lint:dpdm",
|
|
573
574
|
"lint:fix": "yarn lint:eslint --fix && yarn lint:dpdm",
|
|
574
575
|
"precommit": "lint-staged",
|
|
575
|
-
"clean": "
|
|
576
|
+
"clean": "rm -rf .turbo dist/",
|
|
576
577
|
"prepack": "yarn build",
|
|
577
578
|
"release": "release-it --only-version --config .release-it.json",
|
|
578
579
|
"test": "yarn run build:deps && NODE_OPTIONS=--experimental-vm-modules jest --testPathIgnorePatterns=\\.int\\.test.ts --testTimeout 30000 --maxWorkers=50%",
|
|
@@ -599,7 +600,6 @@
|
|
|
599
600
|
"@faker-js/faker": "^7.6.0",
|
|
600
601
|
"@gomomento/sdk": "^1.51.1",
|
|
601
602
|
"@gomomento/sdk-core": "^1.51.1",
|
|
602
|
-
"@google-ai/generativelanguage": "^2.5.0",
|
|
603
603
|
"@jest/globals": "^29.5.0",
|
|
604
604
|
"@langchain/cohere": "^0.0.8",
|
|
605
605
|
"@langchain/scripts": "~0.0.14",
|
|
@@ -686,7 +686,6 @@
|
|
|
686
686
|
"@gomomento/sdk": "^1.51.1",
|
|
687
687
|
"@gomomento/sdk-core": "^1.51.1",
|
|
688
688
|
"@gomomento/sdk-web": "^1.51.1",
|
|
689
|
-
"@google-ai/generativelanguage": "^2.5.0",
|
|
690
689
|
"@mendable/firecrawl-js": "^0.0.13",
|
|
691
690
|
"@notionhq/client": "^2.2.10",
|
|
692
691
|
"@pinecone-database/pinecone": "*",
|
|
@@ -756,9 +755,6 @@
|
|
|
756
755
|
"@gomomento/sdk-web": {
|
|
757
756
|
"optional": true
|
|
758
757
|
},
|
|
759
|
-
"@google-ai/generativelanguage": {
|
|
760
|
-
"optional": true
|
|
761
|
-
},
|
|
762
758
|
"@mendable/firecrawl-js": {
|
|
763
759
|
"optional": true
|
|
764
760
|
},
|