Использование вложений от Aleph Alpha#

Aleph Alpha предоставляет мультимодальные и многоязычные вложения (embeddings). Их API позволяет создавать вложения для текстов и изображений в одном и том же латентном пространстве. Они поддерживают официального клиента на Python, который можно установить с помощью pip:

pip install aleph-alpha-client

Доступны как синхронный, так и асинхронный клиенты. Получение вложений для изображения и их сохранение в Platform V Vector DB (далее - Vector DB) может быть выполнено следующим образом:

import qdrant_client
from qdrant_client.models import Batch

from aleph_alpha_client import (
    Prompt,
    AsyncClient,
    SemanticEmbeddingRequest,
    SemanticRepresentation,
    ImagePrompt
)

aa_token = "<< your_token >>"
model = "luminous-base"

qdrant_client = qdrant_client.QdrantClient()
async with AsyncClient(token=aa_token) as client:
    prompt = ImagePrompt.from_file("./path/to/the/image.jpg")
    prompt = Prompt.from_image(prompt)

    query_params = {
        "prompt": prompt,
        "representation": SemanticRepresentation.Symmetric,
        "compress_to_size": 128,
    }
    query_request = SemanticEmbeddingRequest(**query_params)
    query_response = await client.semantic_embed(
        request=query_request, model=model
    )
    
    qdrant_client.upsert(
        collection_name="MyCollection",
        points=Batch(
            ids=[1],
            vectors=[query_response.embedding],
        )
    )

Если необходимо создать текстовые вложения с использованием той же модели, не нужно использовали ImagePrompt.from_file, а просто предоставьте входной текст методу Prompt.from_text.