@kyuda/n8n-nodes-databricks 1.0.2
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.
Potentially problematic release.
This version of @kyuda/n8n-nodes-databricks might be problematic. Click here for more details.
- package/LICENSE.md +19 -0
- package/README.md +478 -0
- package/dist/credentials/Databricks.credentials.d.ts +10 -0
- package/dist/credentials/Databricks.credentials.js +51 -0
- package/dist/credentials/Databricks.credentials.js.map +1 -0
- package/dist/credentials/databricks.svg +19 -0
- package/dist/nodes/Databricks/Databricks.node.d.ts +16 -0
- package/dist/nodes/Databricks/Databricks.node.js +1719 -0
- package/dist/nodes/Databricks/Databricks.node.js.map +1 -0
- package/dist/nodes/Databricks/databricks.dark.svg +19 -0
- package/dist/nodes/Databricks/databricks.svg +19 -0
- package/dist/nodes/Databricks/resources/databricksSql/operations.d.ts +2 -0
- package/dist/nodes/Databricks/resources/databricksSql/operations.js +24 -0
- package/dist/nodes/Databricks/resources/databricksSql/operations.js.map +1 -0
- package/dist/nodes/Databricks/resources/databricksSql/parameters.d.ts +2 -0
- package/dist/nodes/Databricks/resources/databricksSql/parameters.js +94 -0
- package/dist/nodes/Databricks/resources/databricksSql/parameters.js.map +1 -0
- package/dist/nodes/Databricks/resources/databricksSql.d.ts +3 -0
- package/dist/nodes/Databricks/resources/databricksSql.js +130 -0
- package/dist/nodes/Databricks/resources/databricksSql.js.map +1 -0
- package/dist/nodes/Databricks/resources/files/operations.d.ts +2 -0
- package/dist/nodes/Databricks/resources/files/operations.js +71 -0
- package/dist/nodes/Databricks/resources/files/operations.js.map +1 -0
- package/dist/nodes/Databricks/resources/files/parameters.d.ts +2 -0
- package/dist/nodes/Databricks/resources/files/parameters.js +124 -0
- package/dist/nodes/Databricks/resources/files/parameters.js.map +1 -0
- package/dist/nodes/Databricks/resources/files.d.ts +3 -0
- package/dist/nodes/Databricks/resources/files.js +183 -0
- package/dist/nodes/Databricks/resources/files.js.map +1 -0
- package/dist/nodes/Databricks/resources/genie/operations.d.ts +2 -0
- package/dist/nodes/Databricks/resources/genie/operations.js +96 -0
- package/dist/nodes/Databricks/resources/genie/operations.js.map +1 -0
- package/dist/nodes/Databricks/resources/genie/parameters.d.ts +2 -0
- package/dist/nodes/Databricks/resources/genie/parameters.js +96 -0
- package/dist/nodes/Databricks/resources/genie/parameters.js.map +1 -0
- package/dist/nodes/Databricks/resources/index.d.ts +12 -0
- package/dist/nodes/Databricks/resources/index.js +29 -0
- package/dist/nodes/Databricks/resources/index.js.map +1 -0
- package/dist/nodes/Databricks/resources/modelServing/operations.d.ts +2 -0
- package/dist/nodes/Databricks/resources/modelServing/operations.js +24 -0
- package/dist/nodes/Databricks/resources/modelServing/operations.js.map +1 -0
- package/dist/nodes/Databricks/resources/modelServing/parameters.d.ts +2 -0
- package/dist/nodes/Databricks/resources/modelServing/parameters.js +76 -0
- package/dist/nodes/Databricks/resources/modelServing/parameters.js.map +1 -0
- package/dist/nodes/Databricks/resources/modelServing.d.ts +3 -0
- package/dist/nodes/Databricks/resources/modelServing.js +176 -0
- package/dist/nodes/Databricks/resources/modelServing.js.map +1 -0
- package/dist/nodes/Databricks/resources/unityCatalog/operations.d.ts +2 -0
- package/dist/nodes/Databricks/resources/unityCatalog/operations.js +233 -0
- package/dist/nodes/Databricks/resources/unityCatalog/operations.js.map +1 -0
- package/dist/nodes/Databricks/resources/unityCatalog/parameters.d.ts +2 -0
- package/dist/nodes/Databricks/resources/unityCatalog/parameters.js +371 -0
- package/dist/nodes/Databricks/resources/unityCatalog/parameters.js.map +1 -0
- package/dist/nodes/Databricks/resources/unityCatalog.d.ts +3 -0
- package/dist/nodes/Databricks/resources/unityCatalog.js +239 -0
- package/dist/nodes/Databricks/resources/unityCatalog.js.map +1 -0
- package/dist/nodes/Databricks/resources/vectorSearch/operations.d.ts +2 -0
- package/dist/nodes/Databricks/resources/vectorSearch/operations.js +48 -0
- package/dist/nodes/Databricks/resources/vectorSearch/operations.js.map +1 -0
- package/dist/nodes/Databricks/resources/vectorSearch/parameters.d.ts +2 -0
- package/dist/nodes/Databricks/resources/vectorSearch/parameters.js +224 -0
- package/dist/nodes/Databricks/resources/vectorSearch/parameters.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/CallbackHandler.d.ts +66 -0
- package/dist/nodes/agents/DatabricksAiAgent/CallbackHandler.js +531 -0
- package/dist/nodes/agents/DatabricksAiAgent/CallbackHandler.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/DatabricksAiAgent.node.d.ts +5 -0
- package/dist/nodes/agents/DatabricksAiAgent/DatabricksAiAgent.node.js +133 -0
- package/dist/nodes/agents/DatabricksAiAgent/DatabricksAiAgent.node.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/DatabricksAiAgentDark.icon.svg +9 -0
- package/dist/nodes/agents/DatabricksAiAgent/DatabricksAiAgentLight.icon.svg +9 -0
- package/dist/nodes/agents/DatabricksAiAgent/description.d.ts +4 -0
- package/dist/nodes/agents/DatabricksAiAgent/description.js +28 -0
- package/dist/nodes/agents/DatabricksAiAgent/description.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/execute.d.ts +2 -0
- package/dist/nodes/agents/DatabricksAiAgent/execute.js +418 -0
- package/dist/nodes/agents/DatabricksAiAgent/execute.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/constants.d.ts +82 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/constants.js +105 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/constants.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/types/types.d.ts +6 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/types/types.js +3 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/types/types.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/N8nOutputParser.d.ts +5 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/N8nOutputParser.js +13 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/N8nOutputParser.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/N8nTool.d.ts +10 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/N8nTool.js +88 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/N8nTool.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/common.d.ts +28 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/common.js +207 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/common.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/descriptions.d.ts +17 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/descriptions.js +135 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/descriptions.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/helpers.d.ts +24 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/helpers.js +221 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/helpers.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/options.d.ts +2 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/options.js +38 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/options.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/output_parsers/N8nStructuredOutputParser.d.ts +12 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/output_parsers/N8nStructuredOutputParser.js +106 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/output_parsers/N8nStructuredOutputParser.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/prompt.d.ts +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/prompt.js +5 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/prompt.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/retry.d.ts +16 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/retry.js +132 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/retry.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/security.d.ts +18 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/security.js +150 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/security.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/sharedFields.d.ts +7 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/sharedFields.js +150 -0
- package/dist/nodes/agents/DatabricksAiAgent/src/utils/sharedFields.js.map +1 -0
- package/dist/nodes/agents/DatabricksAiAgent/utils.d.ts +2 -0
- package/dist/nodes/agents/DatabricksAiAgent/utils.js +52 -0
- package/dist/nodes/agents/DatabricksAiAgent/utils.js.map +1 -0
- package/dist/nodes/embeddings/EmbeddingsDatabricks/EmbeddingsDatabricks.node.d.ts +5 -0
- package/dist/nodes/embeddings/EmbeddingsDatabricks/EmbeddingsDatabricks.node.js +155 -0
- package/dist/nodes/embeddings/EmbeddingsDatabricks/EmbeddingsDatabricks.node.js.map +1 -0
- package/dist/nodes/embeddings/EmbeddingsDatabricks/databricks.dark.svg +19 -0
- package/dist/nodes/embeddings/EmbeddingsDatabricks/databricks.svg +19 -0
- package/dist/nodes/llms/LmChatDatabricks/LmChatDatabricks.node.d.ts +10 -0
- package/dist/nodes/llms/LmChatDatabricks/LmChatDatabricks.node.js +265 -0
- package/dist/nodes/llms/LmChatDatabricks/LmChatDatabricks.node.js.map +1 -0
- package/dist/nodes/llms/LmChatDatabricks/databricks.dark.svg +19 -0
- package/dist/nodes/llms/LmChatDatabricks/databricks.svg +19 -0
- package/dist/nodes/llms/N8nLlmTracing.d.ts +44 -0
- package/dist/nodes/llms/N8nLlmTracing.js +140 -0
- package/dist/nodes/llms/N8nLlmTracing.js.map +1 -0
- package/dist/nodes/llms/n8nDefaultFailedAttemptHandler.d.ts +1 -0
- package/dist/nodes/llms/n8nDefaultFailedAttemptHandler.js +31 -0
- package/dist/nodes/llms/n8nDefaultFailedAttemptHandler.js.map +1 -0
- package/dist/nodes/llms/n8nDefaultFailedAttemptHandler.test.d.ts +1 -0
- package/dist/nodes/llms/n8nDefaultFailedAttemptHandler.test.js +53 -0
- package/dist/nodes/llms/n8nDefaultFailedAttemptHandler.test.js.map +1 -0
- package/dist/nodes/llms/n8nLlmFailedAttemptHandler.d.ts +3 -0
- package/dist/nodes/llms/n8nLlmFailedAttemptHandler.js +28 -0
- package/dist/nodes/llms/n8nLlmFailedAttemptHandler.js.map +1 -0
- package/dist/nodes/llms/n8nLlmFailedAttemptHandler.test.d.ts +1 -0
- package/dist/nodes/llms/n8nLlmFailedAttemptHandler.test.js +50 -0
- package/dist/nodes/llms/n8nLlmFailedAttemptHandler.test.js.map +1 -0
- package/dist/nodes/vector_store/VectorStoreDatabricks/VectorStoreDatabricks.node.d.ts +15 -0
- package/dist/nodes/vector_store/VectorStoreDatabricks/VectorStoreDatabricks.node.js +98 -0
- package/dist/nodes/vector_store/VectorStoreDatabricks/VectorStoreDatabricks.node.js.map +1 -0
- package/dist/nodes/vector_store/VectorStoreDatabricks/databricks.dark.svg +19 -0
- package/dist/nodes/vector_store/VectorStoreDatabricks/databricks.svg +19 -0
- package/dist/nodes/vector_store/shared/MemoryManager/MemoryCalculator.d.ts +7 -0
- package/dist/nodes/vector_store/shared/MemoryManager/MemoryCalculator.js +50 -0
- package/dist/nodes/vector_store/shared/MemoryManager/MemoryCalculator.js.map +1 -0
- package/dist/nodes/vector_store/shared/MemoryManager/MemoryVectorStoreManager.d.ts +32 -0
- package/dist/nodes/vector_store/shared/MemoryManager/MemoryVectorStoreManager.js +175 -0
- package/dist/nodes/vector_store/shared/MemoryManager/MemoryVectorStoreManager.js.map +1 -0
- package/dist/nodes/vector_store/shared/MemoryManager/StoreCleanupService.d.ts +16 -0
- package/dist/nodes/vector_store/shared/MemoryManager/StoreCleanupService.js +95 -0
- package/dist/nodes/vector_store/shared/MemoryManager/StoreCleanupService.js.map +1 -0
- package/dist/nodes/vector_store/shared/MemoryManager/config.d.ts +4 -0
- package/dist/nodes/vector_store/shared/MemoryManager/config.js +38 -0
- package/dist/nodes/vector_store/shared/MemoryManager/config.js.map +1 -0
- package/dist/nodes/vector_store/shared/MemoryManager/test/MemoryCalculator.test.d.ts +1 -0
- package/dist/nodes/vector_store/shared/MemoryManager/test/MemoryCalculator.test.js +158 -0
- package/dist/nodes/vector_store/shared/MemoryManager/test/MemoryCalculator.test.js.map +1 -0
- package/dist/nodes/vector_store/shared/MemoryManager/test/MemoryVectorStoreManager.test.d.ts +1 -0
- package/dist/nodes/vector_store/shared/MemoryManager/test/MemoryVectorStoreManager.test.js +204 -0
- package/dist/nodes/vector_store/shared/MemoryManager/test/MemoryVectorStoreManager.test.js.map +1 -0
- package/dist/nodes/vector_store/shared/MemoryManager/test/StoreCleanupService.test.d.ts +1 -0
- package/dist/nodes/vector_store/shared/MemoryManager/test/StoreCleanupService.test.js +138 -0
- package/dist/nodes/vector_store/shared/MemoryManager/test/StoreCleanupService.test.js.map +1 -0
- package/dist/nodes/vector_store/shared/MemoryManager/test/config.test.d.ts +1 -0
- package/dist/nodes/vector_store/shared/MemoryManager/test/config.test.js +57 -0
- package/dist/nodes/vector_store/shared/MemoryManager/test/config.test.js.map +1 -0
- package/dist/nodes/vector_store/shared/MemoryManager/types.d.ts +39 -0
- package/dist/nodes/vector_store/shared/MemoryManager/types.js +3 -0
- package/dist/nodes/vector_store/shared/MemoryManager/types.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/__tests__/utils.test.d.ts +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/__tests__/utils.test.js +156 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/__tests__/utils.test.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/constants.d.ts +4 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/constants.js +45 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/constants.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/createVectorStoreNode.d.ts +15 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/createVectorStoreNode.js +227 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/createVectorStoreNode.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/createVectorStoreNode.test.d.ts +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/createVectorStoreNode.test.js +131 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/createVectorStoreNode.test.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/methods/listSearch.d.ts +7 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/methods/listSearch.js +32 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/methods/listSearch.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/insertOperation.test.d.ts +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/insertOperation.test.js +190 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/insertOperation.test.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/loadOperation.test.d.ts +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/loadOperation.test.js +101 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/loadOperation.test.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/operationHandlers.test.d.ts +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/operationHandlers.test.js +93 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/operationHandlers.test.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/retrieveAsToolOperation.test.d.ts +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/retrieveAsToolOperation.test.js +109 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/retrieveAsToolOperation.test.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/retrieveOperation.test.d.ts +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/retrieveOperation.test.js +60 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/retrieveOperation.test.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/updateOperation.test.d.ts +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/updateOperation.test.js +108 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/updateOperation.test.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/index.d.ts +5 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/index.js +22 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/index.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/insertOperation.d.ts +5 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/insertOperation.js +36 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/insertOperation.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/loadOperation.d.ts +5 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/loadOperation.js +34 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/loadOperation.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveAsToolOperation.d.ts +5 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveAsToolOperation.js +43 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveAsToolOperation.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveOperation.d.ts +5 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveOperation.js +17 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveOperation.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/updateOperation.d.ts +5 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/updateOperation.js +40 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/updateOperation.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/test-helpers.d.ts +0 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/test-helpers.js +2 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/test-helpers.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/types.d.ts +31 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/types.js +3 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/types.js.map +1 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/utils.d.ts +6 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/utils.js +22 -0
- package/dist/nodes/vector_store/shared/createVectorStoreNode/utils.js.map +1 -0
- package/dist/nodes/vector_store/shared/descriptions.d.ts +4 -0
- package/dist/nodes/vector_store/shared/descriptions.js +70 -0
- package/dist/nodes/vector_store/shared/descriptions.js.map +1 -0
- package/dist/nodes/vector_store/shared/processDocuments.d.ts +25 -0
- package/dist/nodes/vector_store/shared/processDocuments.js +42 -0
- package/dist/nodes/vector_store/shared/processDocuments.js.map +1 -0
- package/dist/package.json +93 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/utils/DatabricksVectorStoreLangChain.d.ts +26 -0
- package/dist/utils/DatabricksVectorStoreLangChain.js +114 -0
- package/dist/utils/DatabricksVectorStoreLangChain.js.map +1 -0
- package/dist/utils/N8nBinaryLoader.d.ts +18 -0
- package/dist/utils/N8nBinaryLoader.js +159 -0
- package/dist/utils/N8nBinaryLoader.js.map +1 -0
- package/dist/utils/N8nJsonLoader.d.ts +11 -0
- package/dist/utils/N8nJsonLoader.js +67 -0
- package/dist/utils/N8nJsonLoader.js.map +1 -0
- package/dist/utils/N8nTool.d.ts +10 -0
- package/dist/utils/N8nTool.js +88 -0
- package/dist/utils/N8nTool.js.map +1 -0
- package/dist/utils/descriptions.d.ts +13 -0
- package/dist/utils/descriptions.js +112 -0
- package/dist/utils/descriptions.js.map +1 -0
- package/dist/utils/helpers.d.ts +23 -0
- package/dist/utils/helpers.js +172 -0
- package/dist/utils/helpers.js.map +1 -0
- package/dist/utils/logWrapper.d.ts +27 -0
- package/dist/utils/logWrapper.js +297 -0
- package/dist/utils/logWrapper.js.map +1 -0
- package/dist/utils/output_parsers/N8nItemListOutputParser.d.ts +13 -0
- package/dist/utils/output_parsers/N8nItemListOutputParser.js +43 -0
- package/dist/utils/output_parsers/N8nItemListOutputParser.js.map +1 -0
- package/dist/utils/output_parsers/N8nOutputFixingParser.d.ts +18 -0
- package/dist/utils/output_parsers/N8nOutputFixingParser.js +68 -0
- package/dist/utils/output_parsers/N8nOutputFixingParser.js.map +1 -0
- package/dist/utils/output_parsers/N8nOutputParser.d.ts +7 -0
- package/dist/utils/output_parsers/N8nOutputParser.js +19 -0
- package/dist/utils/output_parsers/N8nOutputParser.js.map +1 -0
- package/dist/utils/output_parsers/N8nStructuredOutputParser.d.ts +12 -0
- package/dist/utils/output_parsers/N8nStructuredOutputParser.js +84 -0
- package/dist/utils/output_parsers/N8nStructuredOutputParser.js.map +1 -0
- package/dist/utils/output_parsers/prompt.d.ts +3 -0
- package/dist/utils/output_parsers/prompt.js +22 -0
- package/dist/utils/output_parsers/prompt.js.map +1 -0
- package/dist/utils/schemaParsing.d.ts +6 -0
- package/dist/utils/schemaParsing.js +23 -0
- package/dist/utils/schemaParsing.js.map +1 -0
- package/dist/utils/sharedFields.d.ts +6 -0
- package/dist/utils/sharedFields.js +122 -0
- package/dist/utils/sharedFields.js.map +1 -0
- package/dist/utils/tracing.d.ts +7 -0
- package/dist/utils/tracing.js +20 -0
- package/dist/utils/tracing.js.map +1 -0
- package/package.json +93 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const jest_mock_extended_1 = require("jest-mock-extended");
|
|
4
|
+
const tools_1 = require("@langchain/classic/tools");
|
|
5
|
+
const logWrapper_1 = require("../../../../../../utils/logWrapper");
|
|
6
|
+
const retrieveAsToolOperation_1 = require("../retrieveAsToolOperation");
|
|
7
|
+
jest.mock('@utils/helpers', () => ({
|
|
8
|
+
getMetadataFiltersValues: jest.fn().mockReturnValue({ testFilter: 'value' }),
|
|
9
|
+
}));
|
|
10
|
+
jest.mock('@utils/logWrapper', () => ({
|
|
11
|
+
logWrapper: jest.fn().mockImplementation((obj) => obj),
|
|
12
|
+
}));
|
|
13
|
+
describe('handleRetrieveAsToolOperation', () => {
|
|
14
|
+
let mockContext;
|
|
15
|
+
let mockEmbeddings;
|
|
16
|
+
let mockVectorStore;
|
|
17
|
+
let mockArgs;
|
|
18
|
+
let nodeParameters;
|
|
19
|
+
beforeEach(() => {
|
|
20
|
+
nodeParameters = {
|
|
21
|
+
toolName: 'test_knowledge_base',
|
|
22
|
+
toolDescription: 'Search the test knowledge base',
|
|
23
|
+
topK: 3,
|
|
24
|
+
includeDocumentMetadata: true,
|
|
25
|
+
};
|
|
26
|
+
mockContext = (0, jest_mock_extended_1.mock)();
|
|
27
|
+
mockContext.getNodeParameter.mockImplementation((parameterName, itemIndex, fallbackValue, options) => {
|
|
28
|
+
var _a;
|
|
29
|
+
if (typeof parameterName !== 'string')
|
|
30
|
+
return fallbackValue;
|
|
31
|
+
return (_a = nodeParameters[parameterName]) !== null && _a !== void 0 ? _a : fallbackValue;
|
|
32
|
+
});
|
|
33
|
+
mockEmbeddings = (0, jest_mock_extended_1.mock)();
|
|
34
|
+
mockEmbeddings.embedQuery.mockResolvedValue([0.1, 0.2, 0.3]);
|
|
35
|
+
mockVectorStore = (0, jest_mock_extended_1.mock)();
|
|
36
|
+
mockVectorStore.similaritySearchVectorWithScore.mockResolvedValue([
|
|
37
|
+
[{ pageContent: 'test content 1', metadata: { test: 'metadata 1' } }, 0.95],
|
|
38
|
+
[{ pageContent: 'test content 2', metadata: { test: 'metadata 2' } }, 0.85],
|
|
39
|
+
]);
|
|
40
|
+
mockArgs = {
|
|
41
|
+
meta: {
|
|
42
|
+
displayName: 'Test Vector Store',
|
|
43
|
+
name: 'testVectorStore',
|
|
44
|
+
description: 'Vector store for testing',
|
|
45
|
+
docsUrl: 'https://example.com',
|
|
46
|
+
icon: 'file:testIcon.svg',
|
|
47
|
+
},
|
|
48
|
+
sharedFields: [],
|
|
49
|
+
getVectorStoreClient: jest.fn().mockResolvedValue(mockVectorStore),
|
|
50
|
+
populateVectorStore: jest.fn().mockResolvedValue(undefined),
|
|
51
|
+
releaseVectorStoreClient: jest.fn(),
|
|
52
|
+
};
|
|
53
|
+
});
|
|
54
|
+
afterEach(() => {
|
|
55
|
+
jest.clearAllMocks();
|
|
56
|
+
});
|
|
57
|
+
it('should create a dynamic tool with the correct name and description', async () => {
|
|
58
|
+
const result = (await (0, retrieveAsToolOperation_1.handleRetrieveAsToolOperation)(mockContext, mockArgs, mockEmbeddings, 0));
|
|
59
|
+
expect(result).toHaveProperty('response');
|
|
60
|
+
expect(result.response).toBeInstanceOf(tools_1.DynamicTool);
|
|
61
|
+
expect(result.response.name).toBe('test_knowledge_base');
|
|
62
|
+
expect(result.response.description).toBe('Search the test knowledge base');
|
|
63
|
+
expect(logWrapper_1.logWrapper).toHaveBeenCalledWith(expect.any(tools_1.DynamicTool), mockContext);
|
|
64
|
+
});
|
|
65
|
+
it('should create a tool that can search the vector store', async () => {
|
|
66
|
+
const result = await (0, retrieveAsToolOperation_1.handleRetrieveAsToolOperation)(mockContext, mockArgs, mockEmbeddings, 0);
|
|
67
|
+
const tool = result.response;
|
|
68
|
+
const toolResult = await tool.func('test query');
|
|
69
|
+
expect(mockArgs.getVectorStoreClient).toHaveBeenCalledWith(mockContext, undefined, mockEmbeddings, 0);
|
|
70
|
+
expect(mockEmbeddings.embedQuery).toHaveBeenCalledWith('test query');
|
|
71
|
+
expect(mockVectorStore.similaritySearchVectorWithScore).toHaveBeenCalledWith([0.1, 0.2, 0.3], 3, { testFilter: 'value' });
|
|
72
|
+
expect(toolResult).toHaveLength(2);
|
|
73
|
+
expect(toolResult[0]).toHaveProperty('type', 'text');
|
|
74
|
+
expect(toolResult[0]).toHaveProperty('text');
|
|
75
|
+
expect(mockArgs.releaseVectorStoreClient).toHaveBeenCalledWith(mockVectorStore);
|
|
76
|
+
});
|
|
77
|
+
it('should include metadata in results when includeDocumentMetadata is true', async () => {
|
|
78
|
+
const result = await (0, retrieveAsToolOperation_1.handleRetrieveAsToolOperation)(mockContext, mockArgs, mockEmbeddings, 0);
|
|
79
|
+
const tool = result.response;
|
|
80
|
+
const toolResult = await tool.func('test query');
|
|
81
|
+
const parsedFirst = JSON.parse(toolResult[0].text);
|
|
82
|
+
expect(parsedFirst).toHaveProperty('pageContent', 'test content 1');
|
|
83
|
+
expect(parsedFirst).toHaveProperty('metadata', { test: 'metadata 1' });
|
|
84
|
+
});
|
|
85
|
+
it('should exclude metadata in results when includeDocumentMetadata is false', async () => {
|
|
86
|
+
nodeParameters.includeDocumentMetadata = false;
|
|
87
|
+
const result = await (0, retrieveAsToolOperation_1.handleRetrieveAsToolOperation)(mockContext, mockArgs, mockEmbeddings, 0);
|
|
88
|
+
const tool = result.response;
|
|
89
|
+
const toolResult = await tool.func('test query');
|
|
90
|
+
const parsedFirst = JSON.parse(toolResult[0].text);
|
|
91
|
+
expect(parsedFirst).toHaveProperty('pageContent', 'test content 1');
|
|
92
|
+
expect(parsedFirst).not.toHaveProperty('metadata');
|
|
93
|
+
});
|
|
94
|
+
it('should limit results based on topK parameter', async () => {
|
|
95
|
+
nodeParameters.topK = 1;
|
|
96
|
+
const result = await (0, retrieveAsToolOperation_1.handleRetrieveAsToolOperation)(mockContext, mockArgs, mockEmbeddings, 0);
|
|
97
|
+
const tool = result.response;
|
|
98
|
+
await tool.func('test query');
|
|
99
|
+
expect(mockVectorStore.similaritySearchVectorWithScore).toHaveBeenCalledWith(expect.anything(), 1, expect.anything());
|
|
100
|
+
});
|
|
101
|
+
it('should release vector store client even if search fails', async () => {
|
|
102
|
+
const result = await (0, retrieveAsToolOperation_1.handleRetrieveAsToolOperation)(mockContext, mockArgs, mockEmbeddings, 0);
|
|
103
|
+
const tool = result.response;
|
|
104
|
+
mockVectorStore.similaritySearchVectorWithScore.mockRejectedValueOnce(new Error('Search failed'));
|
|
105
|
+
await expect(tool.func('test query')).rejects.toThrow('Search failed');
|
|
106
|
+
expect(mockArgs.releaseVectorStoreClient).toHaveBeenCalledWith(mockVectorStore);
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
//# sourceMappingURL=retrieveAsToolOperation.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retrieveAsToolOperation.test.js","sourceRoot":"","sources":["../../../../../../../nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/retrieveAsToolOperation.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const jest_mock_extended_1 = require("jest-mock-extended");
|
|
4
|
+
const logWrapper_1 = require("../../../../../../utils/logWrapper");
|
|
5
|
+
const retrieveOperation_1 = require("../retrieveOperation");
|
|
6
|
+
jest.mock('@utils/helpers', () => ({
|
|
7
|
+
getMetadataFiltersValues: jest.fn().mockReturnValue({ testFilter: 'value' }),
|
|
8
|
+
}));
|
|
9
|
+
jest.mock('@utils/logWrapper', () => ({
|
|
10
|
+
logWrapper: jest.fn().mockImplementation((obj) => obj),
|
|
11
|
+
}));
|
|
12
|
+
describe('handleRetrieveOperation', () => {
|
|
13
|
+
let mockContext;
|
|
14
|
+
let mockEmbeddings;
|
|
15
|
+
let mockVectorStore;
|
|
16
|
+
let mockArgs;
|
|
17
|
+
beforeEach(() => {
|
|
18
|
+
mockContext = (0, jest_mock_extended_1.mock)({
|
|
19
|
+
getNodeParameter: jest.fn().mockImplementation((parameterName, itemIndex, fallbackValue, options) => {
|
|
20
|
+
return fallbackValue;
|
|
21
|
+
}),
|
|
22
|
+
});
|
|
23
|
+
mockEmbeddings = (0, jest_mock_extended_1.mock)();
|
|
24
|
+
mockVectorStore = (0, jest_mock_extended_1.mock)();
|
|
25
|
+
mockArgs = {
|
|
26
|
+
meta: {
|
|
27
|
+
displayName: 'Test Vector Store',
|
|
28
|
+
name: 'testVectorStore',
|
|
29
|
+
description: 'Vector store for testing',
|
|
30
|
+
docsUrl: 'https://example.com',
|
|
31
|
+
icon: 'file:testIcon.svg',
|
|
32
|
+
},
|
|
33
|
+
sharedFields: [],
|
|
34
|
+
getVectorStoreClient: jest.fn().mockResolvedValue(mockVectorStore),
|
|
35
|
+
populateVectorStore: jest.fn().mockResolvedValue(undefined),
|
|
36
|
+
releaseVectorStoreClient: jest.fn(),
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
afterEach(() => {
|
|
40
|
+
jest.clearAllMocks();
|
|
41
|
+
});
|
|
42
|
+
it('should retrieve vector store with metadata filters', async () => {
|
|
43
|
+
const result = await (0, retrieveOperation_1.handleRetrieveOperation)(mockContext, mockArgs, mockEmbeddings, 0);
|
|
44
|
+
expect(mockArgs.getVectorStoreClient).toHaveBeenCalledWith(mockContext, { testFilter: 'value' }, mockEmbeddings, 0);
|
|
45
|
+
expect(result).toHaveProperty('response', mockVectorStore);
|
|
46
|
+
expect(result).toHaveProperty('closeFunction');
|
|
47
|
+
expect(logWrapper_1.logWrapper).toHaveBeenCalledWith(mockVectorStore, mockContext);
|
|
48
|
+
});
|
|
49
|
+
it('should create a closeFunction that releases the vector store client', async () => {
|
|
50
|
+
const result = await (0, retrieveOperation_1.handleRetrieveOperation)(mockContext, mockArgs, mockEmbeddings, 0);
|
|
51
|
+
await result.closeFunction();
|
|
52
|
+
expect(mockArgs.releaseVectorStoreClient).toHaveBeenCalledWith(mockVectorStore);
|
|
53
|
+
});
|
|
54
|
+
it('should handle vector store client when no releaseVectorStoreClient is provided', async () => {
|
|
55
|
+
mockArgs.releaseVectorStoreClient = undefined;
|
|
56
|
+
const result = await (0, retrieveOperation_1.handleRetrieveOperation)(mockContext, mockArgs, mockEmbeddings, 0);
|
|
57
|
+
await expect(result.closeFunction()).resolves.not.toThrow();
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
//# sourceMappingURL=retrieveOperation.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retrieveOperation.test.js","sourceRoot":"","sources":["../../../../../../../nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/retrieveOperation.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const jest_mock_extended_1 = require("jest-mock-extended");
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const helpers_1 = require("../../../../../../utils/helpers");
|
|
6
|
+
const utils_1 = require("../../utils");
|
|
7
|
+
const updateOperation_1 = require("../updateOperation");
|
|
8
|
+
jest.mock('../../utils', () => ({
|
|
9
|
+
isUpdateSupported: jest.fn(),
|
|
10
|
+
}));
|
|
11
|
+
jest.mock('@utils/helpers', () => ({
|
|
12
|
+
logAiEvent: jest.fn(),
|
|
13
|
+
}));
|
|
14
|
+
jest.mock('../../../processDocuments', () => ({
|
|
15
|
+
processDocument: jest.fn().mockImplementation((_documentInput, _itemData, itemIndex) => {
|
|
16
|
+
const mockProcessed = [
|
|
17
|
+
{
|
|
18
|
+
pageContent: `updated content ${itemIndex}`,
|
|
19
|
+
metadata: { source: 'test-update' },
|
|
20
|
+
},
|
|
21
|
+
];
|
|
22
|
+
const mockSerialized = [
|
|
23
|
+
{
|
|
24
|
+
json: {
|
|
25
|
+
pageContent: `updated content ${itemIndex}`,
|
|
26
|
+
metadata: { source: 'test-update' },
|
|
27
|
+
},
|
|
28
|
+
pairedItem: { item: itemIndex },
|
|
29
|
+
},
|
|
30
|
+
];
|
|
31
|
+
return {
|
|
32
|
+
processedDocuments: mockProcessed,
|
|
33
|
+
serializedDocuments: mockSerialized,
|
|
34
|
+
};
|
|
35
|
+
}),
|
|
36
|
+
}));
|
|
37
|
+
describe('handleUpdateOperation', () => {
|
|
38
|
+
let mockContext;
|
|
39
|
+
let mockEmbeddings;
|
|
40
|
+
let mockVectorStore;
|
|
41
|
+
let mockArgs;
|
|
42
|
+
let mockInputItems;
|
|
43
|
+
beforeEach(() => {
|
|
44
|
+
utils_1.isUpdateSupported.mockReturnValue(true);
|
|
45
|
+
mockInputItems = [{ json: { text: 'test document 1' } }, { json: { text: 'test document 2' } }];
|
|
46
|
+
mockContext = (0, jest_mock_extended_1.mock)();
|
|
47
|
+
mockContext.getInputData.mockReturnValue(mockInputItems);
|
|
48
|
+
mockContext.getNodeParameter.mockImplementation((paramName, itemIndex, fallbackValue, options) => {
|
|
49
|
+
if (paramName === 'id') {
|
|
50
|
+
return `doc-id-${itemIndex}`;
|
|
51
|
+
}
|
|
52
|
+
return fallbackValue;
|
|
53
|
+
});
|
|
54
|
+
mockEmbeddings = (0, jest_mock_extended_1.mock)();
|
|
55
|
+
mockVectorStore = (0, jest_mock_extended_1.mock)();
|
|
56
|
+
mockVectorStore.addDocuments.mockResolvedValue(undefined);
|
|
57
|
+
mockArgs = {
|
|
58
|
+
meta: {
|
|
59
|
+
displayName: 'Test Vector Store',
|
|
60
|
+
name: 'testVectorStore',
|
|
61
|
+
description: 'Vector store for testing',
|
|
62
|
+
docsUrl: 'https://example.com',
|
|
63
|
+
icon: 'file:testIcon.svg',
|
|
64
|
+
operationModes: ['load', 'insert', 'retrieve', 'retrieve-as-tool', 'update'],
|
|
65
|
+
},
|
|
66
|
+
sharedFields: [],
|
|
67
|
+
getVectorStoreClient: jest.fn().mockResolvedValue(mockVectorStore),
|
|
68
|
+
populateVectorStore: jest.fn().mockResolvedValue(undefined),
|
|
69
|
+
releaseVectorStoreClient: jest.fn(),
|
|
70
|
+
};
|
|
71
|
+
});
|
|
72
|
+
afterEach(() => {
|
|
73
|
+
jest.clearAllMocks();
|
|
74
|
+
});
|
|
75
|
+
it('should throw error if update is not supported', async () => {
|
|
76
|
+
utils_1.isUpdateSupported.mockReturnValue(false);
|
|
77
|
+
await expect((0, updateOperation_1.handleUpdateOperation)(mockContext, mockArgs, mockEmbeddings)).rejects.toThrow(n8n_workflow_1.NodeOperationError);
|
|
78
|
+
expect(mockArgs.getVectorStoreClient).not.toHaveBeenCalled();
|
|
79
|
+
});
|
|
80
|
+
it('should update documents with their IDs', async () => {
|
|
81
|
+
const result = await (0, updateOperation_1.handleUpdateOperation)(mockContext, mockArgs, mockEmbeddings);
|
|
82
|
+
expect(result).toHaveLength(2);
|
|
83
|
+
expect(mockArgs.getVectorStoreClient).toHaveBeenCalledTimes(2);
|
|
84
|
+
expect(mockVectorStore.addDocuments).toHaveBeenCalledTimes(2);
|
|
85
|
+
expect(mockVectorStore.addDocuments).toHaveBeenNthCalledWith(1, [expect.objectContaining({ pageContent: 'updated content 0' })], { ids: ['doc-id-0'] });
|
|
86
|
+
expect(mockVectorStore.addDocuments).toHaveBeenNthCalledWith(2, [expect.objectContaining({ pageContent: 'updated content 1' })], { ids: ['doc-id-1'] });
|
|
87
|
+
expect(helpers_1.logAiEvent).toHaveBeenCalledTimes(2);
|
|
88
|
+
expect(helpers_1.logAiEvent).toHaveBeenCalledWith(mockContext, 'ai-vector-store-updated');
|
|
89
|
+
});
|
|
90
|
+
it('should release vector store client even if update fails', async () => {
|
|
91
|
+
mockVectorStore.addDocuments.mockRejectedValue(new Error('Update failed'));
|
|
92
|
+
await expect((0, updateOperation_1.handleUpdateOperation)(mockContext, mockArgs, mockEmbeddings)).rejects.toThrow('Update failed');
|
|
93
|
+
expect(mockArgs.releaseVectorStoreClient).toHaveBeenCalledWith(mockVectorStore);
|
|
94
|
+
});
|
|
95
|
+
it('should use proper document ID from node parameters', async () => {
|
|
96
|
+
mockContext.getNodeParameter
|
|
97
|
+
.mockReturnValueOnce('custom-id-123')
|
|
98
|
+
.mockReturnValueOnce('custom-id-456');
|
|
99
|
+
await (0, updateOperation_1.handleUpdateOperation)(mockContext, mockArgs, mockEmbeddings);
|
|
100
|
+
expect(mockVectorStore.addDocuments).toHaveBeenNthCalledWith(1, expect.anything(), {
|
|
101
|
+
ids: ['custom-id-123'],
|
|
102
|
+
});
|
|
103
|
+
expect(mockVectorStore.addDocuments).toHaveBeenNthCalledWith(2, expect.anything(), {
|
|
104
|
+
ids: ['custom-id-456'],
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
//# sourceMappingURL=updateOperation.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateOperation.test.js","sourceRoot":"","sources":["../../../../../../../nodes/vector_store/shared/createVectorStoreNode/operations/__tests__/updateOperation.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./loadOperation"), exports);
|
|
18
|
+
__exportStar(require("./insertOperation"), exports);
|
|
19
|
+
__exportStar(require("./updateOperation"), exports);
|
|
20
|
+
__exportStar(require("./retrieveOperation"), exports);
|
|
21
|
+
__exportStar(require("./retrieveAsToolOperation"), exports);
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../nodes/vector_store/shared/createVectorStoreNode/operations/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kDAAgC;AAChC,oDAAkC;AAClC,oDAAkC;AAClC,sDAAoC;AACpC,4DAA0C"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Embeddings } from '@langchain/core/embeddings';
|
|
2
|
+
import type { VectorStore } from '@langchain/core/vectorstores';
|
|
3
|
+
import type { IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
|
|
4
|
+
import type { VectorStoreNodeConstructorArgs } from '../types';
|
|
5
|
+
export declare function handleInsertOperation<T extends VectorStore = VectorStore>(context: IExecuteFunctions, args: VectorStoreNodeConstructorArgs<T>, embeddings: Embeddings): Promise<INodeExecutionData[]>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleInsertOperation = handleInsertOperation;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const helpers_1 = require("../../../../../utils/helpers");
|
|
6
|
+
const processDocuments_1 = require("../../processDocuments");
|
|
7
|
+
async function handleInsertOperation(context, args, embeddings) {
|
|
8
|
+
var _a, _b;
|
|
9
|
+
const nodeVersion = context.getNode().typeVersion;
|
|
10
|
+
const items = context.getInputData();
|
|
11
|
+
const documentInput = (await context.getInputConnectionData(n8n_workflow_1.NodeConnectionTypes.AiDocument, 0));
|
|
12
|
+
const resultData = [];
|
|
13
|
+
const documentsForEmbedding = [];
|
|
14
|
+
for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
|
|
15
|
+
if ((_a = context.getExecutionCancelSignal()) === null || _a === void 0 ? void 0 : _a.aborted) {
|
|
16
|
+
break;
|
|
17
|
+
}
|
|
18
|
+
const itemData = items[itemIndex];
|
|
19
|
+
const processedDocuments = await (0, processDocuments_1.processDocument)(documentInput, itemData, itemIndex);
|
|
20
|
+
resultData.push(...processedDocuments.serializedDocuments);
|
|
21
|
+
documentsForEmbedding.push(...processedDocuments.processedDocuments);
|
|
22
|
+
if (nodeVersion === 1) {
|
|
23
|
+
await args.populateVectorStore(context, embeddings, processedDocuments.processedDocuments, itemIndex);
|
|
24
|
+
}
|
|
25
|
+
(0, helpers_1.logAiEvent)(context, 'ai-vector-store-populated');
|
|
26
|
+
}
|
|
27
|
+
if (nodeVersion >= 1.1) {
|
|
28
|
+
const embeddingBatchSize = (_b = context.getNodeParameter('embeddingBatchSize', 0, 200)) !== null && _b !== void 0 ? _b : 200;
|
|
29
|
+
for (let i = 0; i < documentsForEmbedding.length; i += embeddingBatchSize) {
|
|
30
|
+
const nextBatch = documentsForEmbedding.slice(i, i + embeddingBatchSize);
|
|
31
|
+
await args.populateVectorStore(context, embeddings, nextBatch, 0);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return resultData;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=insertOperation.js.map
|
package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/insertOperation.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insertOperation.js","sourceRoot":"","sources":["../../../../../../nodes/vector_store/shared/createVectorStoreNode/operations/insertOperation.ts"],"names":[],"mappings":";;AAkBA,sDA4DC;AA1ED,+CAAmD;AAEnD,4CAA4C;AAK5C,6DAAyD;AAOlD,KAAK,UAAU,qBAAqB,CAC1C,OAA0B,EAC1B,IAAuC,EACvC,UAAsB;;IAEtB,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC;IAElD,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IACrC,MAAM,aAAa,GAAG,CAAC,MAAM,OAAO,CAAC,sBAAsB,CAAC,kCAAmB,CAAC,UAAU,EAAE,CAAC,CAAC,CAGnD,CAAC;IAE5C,MAAM,UAAU,GAAyB,EAAE,CAAC;IAC5C,MAAM,qBAAqB,GAA6C,EAAE,CAAC;IAG3E,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;QAE/D,IAAI,MAAA,OAAO,CAAC,wBAAwB,EAAE,0CAAE,OAAO,EAAE,CAAC;YACjD,MAAM;QACP,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;QAGlC,MAAM,kBAAkB,GAAG,MAAM,IAAA,kCAAe,EAAC,aAAa,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAGrF,UAAU,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;QAG3D,qBAAqB,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;QAGrE,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,mBAAmB,CAC7B,OAAO,EACP,UAAU,EACV,kBAAkB,CAAC,kBAAkB,EACrC,SAAS,CACT,CAAC;QACH,CAAC;QAED,IAAA,oBAAU,EAAC,OAAO,EAAE,2BAA2B,CAAC,CAAC;IAClD,CAAC;IAGD,IAAI,WAAW,IAAI,GAAG,EAAE,CAAC;QACxB,MAAM,kBAAkB,GACvB,MAAC,OAAO,CAAC,gBAAgB,CAAC,oBAAoB,EAAE,CAAC,EAAE,GAAG,CAAY,mCAAI,GAAG,CAAC;QAG3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,qBAAqB,CAAC,MAAM,EAAE,CAAC,IAAI,kBAAkB,EAAE,CAAC;YAC3E,MAAM,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,kBAAkB,CAAC,CAAC;YACzE,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QACnE,CAAC;IACF,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Embeddings } from '@langchain/core/embeddings';
|
|
2
|
+
import type { VectorStore } from '@langchain/core/vectorstores';
|
|
3
|
+
import type { IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
|
|
4
|
+
import type { VectorStoreNodeConstructorArgs } from '../types';
|
|
5
|
+
export declare function handleLoadOperation<T extends VectorStore = VectorStore>(context: IExecuteFunctions, args: VectorStoreNodeConstructorArgs<T>, embeddings: Embeddings, itemIndex: number): Promise<INodeExecutionData[]>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleLoadOperation = handleLoadOperation;
|
|
4
|
+
const helpers_1 = require("../../../../../utils/helpers");
|
|
5
|
+
async function handleLoadOperation(context, args, embeddings, itemIndex) {
|
|
6
|
+
var _a;
|
|
7
|
+
const filter = (0, helpers_1.getMetadataFiltersValues)(context, itemIndex);
|
|
8
|
+
const vectorStore = await args.getVectorStoreClient(context, undefined, embeddings, itemIndex);
|
|
9
|
+
try {
|
|
10
|
+
const prompt = context.getNodeParameter('prompt', itemIndex);
|
|
11
|
+
const topK = context.getNodeParameter('topK', itemIndex, 4);
|
|
12
|
+
const includeDocumentMetadata = context.getNodeParameter('includeDocumentMetadata', itemIndex, true);
|
|
13
|
+
const embeddedPrompt = await embeddings.embedQuery(prompt);
|
|
14
|
+
const docs = await vectorStore.similaritySearchVectorWithScore(embeddedPrompt, topK, filter);
|
|
15
|
+
const serializedDocs = docs.map(([doc, score]) => {
|
|
16
|
+
const document = {
|
|
17
|
+
pageContent: doc.pageContent,
|
|
18
|
+
...(includeDocumentMetadata ? { metadata: doc.metadata } : {}),
|
|
19
|
+
};
|
|
20
|
+
return {
|
|
21
|
+
json: { document, score },
|
|
22
|
+
pairedItem: {
|
|
23
|
+
item: itemIndex,
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
});
|
|
27
|
+
(0, helpers_1.logAiEvent)(context, 'ai-vector-store-searched', { query: prompt });
|
|
28
|
+
return serializedDocs;
|
|
29
|
+
}
|
|
30
|
+
finally {
|
|
31
|
+
(_a = args.releaseVectorStoreClient) === null || _a === void 0 ? void 0 : _a.call(args, vectorStore);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=loadOperation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadOperation.js","sourceRoot":"","sources":["../../../../../../nodes/vector_store/shared/createVectorStoreNode/operations/loadOperation.ts"],"names":[],"mappings":";;AAaA,kDAsDC;AA/DD,4CAAsE;AAS/D,KAAK,UAAU,mBAAmB,CACxC,OAA0B,EAC1B,IAAuC,EACvC,UAAsB,EACtB,SAAiB;;IAEjB,MAAM,MAAM,GAAG,IAAA,kCAAwB,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAClD,OAAO,EAEP,SAAS,EACT,UAAU,EACV,SAAS,CACT,CAAC;IAEF,IAAI,CAAC;QAEJ,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAW,CAAC;QACvE,MAAM,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAW,CAAC;QACtE,MAAM,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,CACvD,yBAAyB,EACzB,SAAS,EACT,IAAI,CACO,CAAC;QAGb,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAG3D,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,+BAA+B,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAG7F,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;YAChD,MAAM,QAAQ,GAAG;gBAChB,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9D,CAAC;YAEF,OAAO;gBACN,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE;gBACzB,UAAU,EAAE;oBACX,IAAI,EAAE,SAAS;iBACf;aACD,CAAC;QACH,CAAC,CAAC,CAAC;QAGH,IAAA,oBAAU,EAAC,OAAO,EAAE,0BAA0B,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAEnE,OAAO,cAAc,CAAC;IACvB,CAAC;YAAS,CAAC;QAEV,MAAA,IAAI,CAAC,wBAAwB,qDAAG,WAAW,CAAC,CAAC;IAC9C,CAAC;AACF,CAAC"}
|
package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveAsToolOperation.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Embeddings } from '@langchain/core/embeddings';
|
|
2
|
+
import type { VectorStore } from '@langchain/core/vectorstores';
|
|
3
|
+
import type { ISupplyDataFunctions, SupplyData } from 'n8n-workflow';
|
|
4
|
+
import type { VectorStoreNodeConstructorArgs } from '../types';
|
|
5
|
+
export declare function handleRetrieveAsToolOperation<T extends VectorStore = VectorStore>(context: ISupplyDataFunctions, args: VectorStoreNodeConstructorArgs<T>, embeddings: Embeddings, itemIndex: number): Promise<SupplyData>;
|
package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveAsToolOperation.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleRetrieveAsToolOperation = handleRetrieveAsToolOperation;
|
|
4
|
+
const tools_1 = require("@langchain/classic/tools");
|
|
5
|
+
const helpers_1 = require("../../../../../utils/helpers");
|
|
6
|
+
const logWrapper_1 = require("../../../../../utils/logWrapper");
|
|
7
|
+
async function handleRetrieveAsToolOperation(context, args, embeddings, itemIndex) {
|
|
8
|
+
const toolDescription = context.getNodeParameter('toolDescription', itemIndex);
|
|
9
|
+
const toolName = context.getNodeParameter('toolName', itemIndex);
|
|
10
|
+
const topK = context.getNodeParameter('topK', itemIndex, 4);
|
|
11
|
+
const includeDocumentMetadata = context.getNodeParameter('includeDocumentMetadata', itemIndex, true);
|
|
12
|
+
const filter = (0, helpers_1.getMetadataFiltersValues)(context, itemIndex);
|
|
13
|
+
const vectorStoreTool = new tools_1.DynamicTool({
|
|
14
|
+
name: toolName,
|
|
15
|
+
description: toolDescription,
|
|
16
|
+
func: async (input) => {
|
|
17
|
+
var _a;
|
|
18
|
+
const vectorStore = await args.getVectorStoreClient(context, undefined, embeddings, itemIndex);
|
|
19
|
+
try {
|
|
20
|
+
const embeddedPrompt = await embeddings.embedQuery(input);
|
|
21
|
+
const documents = await vectorStore.similaritySearchVectorWithScore(embeddedPrompt, topK, filter);
|
|
22
|
+
return documents
|
|
23
|
+
.map((document) => {
|
|
24
|
+
if (includeDocumentMetadata) {
|
|
25
|
+
return { type: 'text', text: JSON.stringify(document[0]) };
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
type: 'text',
|
|
29
|
+
text: JSON.stringify({ pageContent: document[0].pageContent }),
|
|
30
|
+
};
|
|
31
|
+
})
|
|
32
|
+
.filter((document) => !!document);
|
|
33
|
+
}
|
|
34
|
+
finally {
|
|
35
|
+
(_a = args.releaseVectorStoreClient) === null || _a === void 0 ? void 0 : _a.call(args, vectorStore);
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
return {
|
|
40
|
+
response: (0, logWrapper_1.logWrapper)(vectorStoreTool, context),
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=retrieveAsToolOperation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retrieveAsToolOperation.js","sourceRoot":"","sources":["../../../../../../nodes/vector_store/shared/createVectorStoreNode/operations/retrieveAsToolOperation.ts"],"names":[],"mappings":";;AAcA,sEAoEC;AAhFD,oDAAuD;AAGvD,4CAA0D;AAC1D,kDAA+C;AAQxC,KAAK,UAAU,6BAA6B,CAClD,OAA6B,EAC7B,IAAuC,EACvC,UAAsB,EACtB,SAAiB;IAGjB,MAAM,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,SAAS,CAAW,CAAC;IACzF,MAAM,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAW,CAAC;IAC3E,MAAM,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,CAAW,CAAC;IACtE,MAAM,uBAAuB,GAAG,OAAO,CAAC,gBAAgB,CACvD,yBAAyB,EACzB,SAAS,EACT,IAAI,CACO,CAAC;IAGb,MAAM,MAAM,GAAG,IAAA,kCAAwB,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAG5D,MAAM,eAAe,GAAG,IAAI,mBAAW,CAAC;QACvC,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,eAAe;QAC5B,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;;YAIrB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAClD,OAAO,EACP,SAAS,EACT,UAAU,EACV,SAAS,CACT,CAAC;YAEF,IAAI,CAAC;gBAEJ,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAG1D,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,+BAA+B,CAClE,cAAc,EACd,IAAI,EACJ,MAAM,CACN,CAAC;gBAGF,OAAO,SAAS;qBACd,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;oBACjB,IAAI,uBAAuB,EAAE,CAAC;wBAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5D,CAAC;oBACD,OAAO;wBACN,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;qBAC9D,CAAC;gBACH,CAAC,CAAC;qBACD,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACpC,CAAC;oBAAS,CAAC;gBAEV,MAAA,IAAI,CAAC,wBAAwB,qDAAG,WAAW,CAAC,CAAC;YAC9C,CAAC;QACF,CAAC;KACD,CAAC,CAAC;IAGH,OAAO;QACN,QAAQ,EAAE,IAAA,uBAAU,EAAC,eAAe,EAAE,OAAO,CAAC;KAC9C,CAAC;AACH,CAAC"}
|
package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveOperation.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Embeddings } from '@langchain/core/embeddings';
|
|
2
|
+
import type { VectorStore } from '@langchain/core/vectorstores';
|
|
3
|
+
import type { ISupplyDataFunctions, SupplyData } from 'n8n-workflow';
|
|
4
|
+
import type { VectorStoreNodeConstructorArgs } from '../types';
|
|
5
|
+
export declare function handleRetrieveOperation<T extends VectorStore = VectorStore>(context: ISupplyDataFunctions, args: VectorStoreNodeConstructorArgs<T>, embeddings: Embeddings, itemIndex: number): Promise<SupplyData>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleRetrieveOperation = handleRetrieveOperation;
|
|
4
|
+
const helpers_1 = require("../../../../../utils/helpers");
|
|
5
|
+
const logWrapper_1 = require("../../../../../utils/logWrapper");
|
|
6
|
+
async function handleRetrieveOperation(context, args, embeddings, itemIndex) {
|
|
7
|
+
const filter = (0, helpers_1.getMetadataFiltersValues)(context, itemIndex);
|
|
8
|
+
const vectorStore = await args.getVectorStoreClient(context, filter, embeddings, itemIndex);
|
|
9
|
+
return {
|
|
10
|
+
response: (0, logWrapper_1.logWrapper)(vectorStore, context),
|
|
11
|
+
closeFunction: async () => {
|
|
12
|
+
var _a;
|
|
13
|
+
(_a = args.releaseVectorStoreClient) === null || _a === void 0 ? void 0 : _a.call(args, vectorStore);
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=retrieveOperation.js.map
|
package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveOperation.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retrieveOperation.js","sourceRoot":"","sources":["../../../../../../nodes/vector_store/shared/createVectorStoreNode/operations/retrieveOperation.ts"],"names":[],"mappings":";;AAaA,0DAoBC;AA7BD,4CAA0D;AAC1D,kDAA+C;AAQxC,KAAK,UAAU,uBAAuB,CAC5C,OAA6B,EAC7B,IAAuC,EACvC,UAAsB,EACtB,SAAiB;IAGjB,MAAM,MAAM,GAAG,IAAA,kCAAwB,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAG5D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAG5F,OAAO;QACN,QAAQ,EAAE,IAAA,uBAAU,EAAC,WAAW,EAAE,OAAO,CAAC;QAC1C,aAAa,EAAE,KAAK,IAAI,EAAE;;YAEzB,MAAA,IAAI,CAAC,wBAAwB,qDAAG,WAAW,CAAC,CAAC;QAC9C,CAAC;KACD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Embeddings } from '@langchain/core/embeddings';
|
|
2
|
+
import type { VectorStore } from '@langchain/core/vectorstores';
|
|
3
|
+
import type { IExecuteFunctions, INodeExecutionData } from 'n8n-workflow';
|
|
4
|
+
import type { VectorStoreNodeConstructorArgs } from '../types';
|
|
5
|
+
export declare function handleUpdateOperation<T extends VectorStore = VectorStore>(context: IExecuteFunctions, args: VectorStoreNodeConstructorArgs<T>, embeddings: Embeddings): Promise<INodeExecutionData[]>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleUpdateOperation = handleUpdateOperation;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const helpers_1 = require("../../../../../utils/helpers");
|
|
6
|
+
const N8nJsonLoader_1 = require("../../../../../utils/N8nJsonLoader");
|
|
7
|
+
const processDocuments_1 = require("../../processDocuments");
|
|
8
|
+
const utils_1 = require("../utils");
|
|
9
|
+
async function handleUpdateOperation(context, args, embeddings) {
|
|
10
|
+
var _a;
|
|
11
|
+
if (!(0, utils_1.isUpdateSupported)(args)) {
|
|
12
|
+
throw new n8n_workflow_1.NodeOperationError(context.getNode(), 'Update operation is not implemented for this Vector Store');
|
|
13
|
+
}
|
|
14
|
+
const items = context.getInputData();
|
|
15
|
+
const loader = new N8nJsonLoader_1.N8nJsonLoader(context);
|
|
16
|
+
const resultData = [];
|
|
17
|
+
for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
|
|
18
|
+
const itemData = items[itemIndex];
|
|
19
|
+
const documentId = context.getNodeParameter('id', itemIndex, '', {
|
|
20
|
+
extractValue: true,
|
|
21
|
+
});
|
|
22
|
+
const vectorStore = await args.getVectorStoreClient(context, undefined, embeddings, itemIndex);
|
|
23
|
+
try {
|
|
24
|
+
const { processedDocuments, serializedDocuments } = await (0, processDocuments_1.processDocument)(loader, itemData, itemIndex);
|
|
25
|
+
if ((processedDocuments === null || processedDocuments === void 0 ? void 0 : processedDocuments.length) !== 1) {
|
|
26
|
+
throw new n8n_workflow_1.NodeOperationError(context.getNode(), 'Single document per item expected');
|
|
27
|
+
}
|
|
28
|
+
resultData.push(...serializedDocuments);
|
|
29
|
+
await vectorStore.addDocuments(processedDocuments, {
|
|
30
|
+
ids: [documentId],
|
|
31
|
+
});
|
|
32
|
+
(0, helpers_1.logAiEvent)(context, 'ai-vector-store-updated');
|
|
33
|
+
}
|
|
34
|
+
finally {
|
|
35
|
+
(_a = args.releaseVectorStoreClient) === null || _a === void 0 ? void 0 : _a.call(args, vectorStore);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return resultData;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=updateOperation.js.map
|
package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/updateOperation.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"updateOperation.js","sourceRoot":"","sources":["../../../../../../nodes/vector_store/shared/createVectorStoreNode/operations/updateOperation.ts"],"names":[],"mappings":";;AAgBA,sDA8DC;AA3ED,+CAAkD;AAElD,4CAA4C;AAC5C,wDAAqD;AAErD,6DAAyD;AAEzD,oCAA6C;AAMtC,KAAK,UAAU,qBAAqB,CAC1C,OAA0B,EAC1B,IAAuC,EACvC,UAAsB;;IAGtB,IAAI,CAAC,IAAA,yBAAiB,EAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,iCAAkB,CAC3B,OAAO,CAAC,OAAO,EAAE,EACjB,2DAA2D,CAC3D,CAAC;IACH,CAAC;IAGD,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAErC,MAAM,MAAM,GAAG,IAAI,6BAAa,CAAC,OAAO,CAAC,CAAC;IAE1C,MAAM,UAAU,GAAyB,EAAE,CAAC;IAG5C,KAAK,IAAI,SAAS,GAAG,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC;QAC/D,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;QAGlC,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE;YAChE,YAAY,EAAE,IAAI;SAClB,CAAW,CAAC;QAGb,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAE/F,IAAI,CAAC;YAEJ,MAAM,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,GAAG,MAAM,IAAA,kCAAe,EACxE,MAAM,EACN,QAAQ,EACR,SAAS,CACT,CAAC;YAGF,IAAI,CAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,MAAM,MAAK,CAAC,EAAE,CAAC;gBACtC,MAAM,IAAI,iCAAkB,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,mCAAmC,CAAC,CAAC;YACtF,CAAC;YAGD,UAAU,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,CAAC;YAGxC,MAAM,WAAW,CAAC,YAAY,CAAC,kBAAkB,EAAE;gBAClD,GAAG,EAAE,CAAC,UAAU,CAAC;aACjB,CAAC,CAAC;YAGH,IAAA,oBAAU,EAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC;QAChD,CAAC;gBAAS,CAAC;YAEV,MAAA,IAAI,CAAC,wBAAwB,qDAAG,WAAW,CAAC,CAAC;QAC9C,CAAC;IACF,CAAC;IAED,OAAO,UAAU,CAAC;AACnB,CAAC"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-helpers.js","sourceRoot":"","sources":["../../../../../nodes/vector_store/shared/createVectorStoreNode/test-helpers.ts"],"names":[],"mappings":""}
|