UNPKG

@langchain/community

Version:
1 lines 4.1 kB
{"version":3,"file":"azure_blob_storage_container.cjs","names":["BaseDocumentLoader","BlobServiceClient","AzureBlobStorageFileLoader"],"sources":["../../../src/document_loaders/web/azure_blob_storage_container.ts"],"sourcesContent":["import { BlobServiceClient } from \"@azure/storage-blob\";\nimport { Document } from \"@langchain/core/documents\";\nimport { BaseDocumentLoader } from \"@langchain/core/document_loaders/base\";\nimport { AzureBlobStorageFileLoader } from \"./azure_blob_storage_file.js\";\nimport { UnstructuredLoaderOptions } from \"../fs/unstructured.js\";\n\n/**\n * Interface representing the configuration for accessing an Azure Blob\n * Storage container. It includes properties for the connection string and\n * container name.\n */\ninterface AzureBlobStorageContainerConfig {\n connectionString: string;\n container: string;\n}\n\n/**\n * Interface representing the configuration for the\n * AzureBlobStorageContainerLoader. It includes properties for the\n * azureConfig and unstructuredConfig. The azureConfig property contains\n * the Azure Blob Storage container configuration, and the\n * unstructuredConfig property contains the options for the\n * UnstructuredLoader.\n */\ninterface AzureBlobStorageContainerLoaderConfig {\n azureConfig: AzureBlobStorageContainerConfig;\n unstructuredConfig?: UnstructuredLoaderOptions;\n}\n\n/**\n * Class representing a document loader that loads documents from an Azure\n * Blob Storage container. It extends the BaseDocumentLoader class.\n */\nexport class AzureBlobStorageContainerLoader extends BaseDocumentLoader {\n get lc_secrets(): { [key: string]: string } {\n return {\n connectionString: \"AZURE_BLOB_CONNECTION_STRING\",\n };\n }\n\n private readonly connectionString: string;\n\n private readonly container: string;\n\n private readonly unstructuredConfig?: UnstructuredLoaderOptions;\n\n constructor({\n azureConfig,\n unstructuredConfig,\n }: AzureBlobStorageContainerLoaderConfig) {\n super();\n this.connectionString = azureConfig.connectionString;\n this.container = azureConfig.container;\n this.unstructuredConfig = unstructuredConfig;\n }\n\n /**\n * Method to load documents from an Azure Blob Storage container. It\n * creates a BlobServiceClient using the connection string, gets the\n * container client using the container name, and iterates over the blobs\n * in the container. For each blob, it creates an instance of\n * AzureBlobStorageFileLoader and loads the documents using the loader.\n * The loaded documents are concatenated to the docs array and returned.\n * @returns An array of loaded documents.\n */\n public async load() {\n const blobServiceClient = BlobServiceClient.fromConnectionString(\n this.connectionString,\n {\n userAgentOptions: {\n userAgentPrefix: \"langchainjs-blob-storage-container\",\n },\n }\n );\n\n const containerClient = blobServiceClient.getContainerClient(\n this.container\n );\n\n let docs: Document[] = [];\n for await (const blob of containerClient.listBlobsFlat()) {\n const loader = new AzureBlobStorageFileLoader({\n azureConfig: {\n connectionString: this.connectionString,\n container: this.container,\n blobName: blob.name,\n },\n unstructuredConfig: this.unstructuredConfig,\n });\n docs = docs.concat(await loader.load());\n }\n\n return docs;\n }\n}\n"],"mappings":";;;;;;;;;;;AAiCA,IAAa,kCAAb,cAAqDA,sCAAAA,mBAAmB;CACtE,IAAI,aAAwC;AAC1C,SAAO,EACL,kBAAkB,gCACnB;;CAGH;CAEA;CAEA;CAEA,YAAY,EACV,aACA,sBACwC;AACxC,SAAO;AACP,OAAK,mBAAmB,YAAY;AACpC,OAAK,YAAY,YAAY;AAC7B,OAAK,qBAAqB;;;;;;;;;;;CAY5B,MAAa,OAAO;EAUlB,MAAM,kBAToBC,oBAAAA,kBAAkB,qBAC1C,KAAK,kBACL,EACE,kBAAkB,EAChB,iBAAiB,sCAClB,EACF,CACF,CAEyC,mBACxC,KAAK,UACN;EAED,IAAI,OAAmB,EAAE;AACzB,aAAW,MAAM,QAAQ,gBAAgB,eAAe,EAAE;GACxD,MAAM,SAAS,IAAIC,qDAAAA,2BAA2B;IAC5C,aAAa;KACX,kBAAkB,KAAK;KACvB,WAAW,KAAK;KAChB,UAAU,KAAK;KAChB;IACD,oBAAoB,KAAK;IAC1B,CAAC;AACF,UAAO,KAAK,OAAO,MAAM,OAAO,MAAM,CAAC;;AAGzC,SAAO"}