AWS Lakechain#
Проект Lakechain (Project Lakechain) - фреймворк, основанный на инструменте разработки облачных приложений от Amazon Web Services (AWS Cloud Development Kit, CDK). Он позволяет описывать и развертывать масштабируемые конвейеры обработки документов на платформе AWS с использованием подхода «инфраструктура-как-код». Проект подчеркивает модульность и расширяемость конвейеров, предоставляя более 60 готовых к использованию компонентов для прототипирования сложных конвейеров обработки данных, способных обрабатывать миллионы документов.
Соединитель хранилища Vector DB, доступный в Lakechain, позволяет загружать векторные вложения, созданные другими промежуточными программами, в коллекцию Vector DB.
Можно найти пример полного использования коннектора Vector DB Lakechain здесь.
Чтобы использовать соединитель хранилища Vector DB, импортируете его в стек SDK и подключаете к источнику данных, который предоставляет вложения документов.
Необходимо указать ключ API Vector DB соединителю, указав ссылку на секрет из сервиса AWS Secrets Manager, содержащий этот ключ.
import { QdrantStorageConnector } from '@project-lakechain/qdrant-storage-connector';
import { CacheStorage } from '@project-lakechain/core';
class Stack extends cdk.Stack {
constructor(scope: cdk.Construct, id: string) {
const cache = new CacheStorage(this, 'Cache');
const qdrantApiKey = secrets.Secret.fromSecretNameV2(
this,
'QdrantApiKey',
process.env.QDRANT_API_KEY_SECRET_NAME as string
);
const connector = new QdrantStorageConnector.Builder()
.withScope(this)
.withIdentifier('QdrantStorageConnector')
.withCacheStorage(cache)
.withSource(source) // Specify a data source
.withApiKey(qdrantApiKey)
.withCollectionName('{collection_name}')
.withUrl('https://xyz-example.eu-central.aws.cloud.qdrant.io:6333')
.build();
}
}
Если обрабатываемый документ является текстовым документом, можно выбрать хранение текста документа в полезной нагрузке Vector DB. Для этого можно воспользоваться опциями withStoreText и withTextKey. Если документ не является текстом, эта опция игнорируется.
const connector = new QdrantStorageConnector.Builder()
.withScope(this)
.withIdentifier('QdrantStorageConnector')
.withCacheStorage(cache)
.withSource(source)
.withApiKey(qdrantApiKey)
.withCollectionName('{collection_name}')
.withStoreText(true)
.withTextKey('my-content')
.withUrl('https://xyz-example.eu-central.aws.cloud.qdrant.io:6333')
.build();
Так как Vector DB поддерживает несколько векторов на одну точку, можно использовать опцию withVectorName для указания одного из них. По умолчанию соединитель использует неназванный (по умолчанию) вектор.
const connector = new QdrantStorageConnector.Builder()
.withScope(this)
.withIdentifier('QdrantStorageConnector')
.withCacheStorage(cache)
.withSource(source)
.withApiKey(qdrantApiKey)
.withCollectionName('collection_name')
.withVectorName('my-vector-name')
.withUrl('https://xyz-example.eu-central.aws.cloud.qdrant.io:6333')
.build();