If you’re new to Unstructured, read this note first.

Before you can create a destination connector, you must first sign up for Unstructured and get your Unstructured API key. After you sign up, the Unstructured user interface (UI) appears, which you use to get the key. To learn how, watch this 40-second how-to video.

After you create the destination connector, add it along with a source connector to a workflow. Then run the worklow as a job. To learn how, try out the hands-on Workflow Endpoint quickstart, go directly to the quickstart notebook, or watch the two 4-minute video tutorials for the Unstructured Python SDK.

You can also create destination connectors with the Unstructured user interface (UI). Learn how.

If you need help, reach out to the community on Slack, or contact us directly.

You are now ready to start creating a destination connector! Keep reading to learn how.

Send processed data from Unstructured to Astra DB.

The requirements are as follows.

  • An Astra account. Create or sign in to an Astra account.

  • A database in the Astra account. Create a database in an account.

  • An application token for the database. Create a database application token.

  • A namespace in the database. Create a namespace in a database.

  • A collection in the namespace. Create a collection in a namespace.

    An existing collection is not required. At runtime, the collection behavior is as follows:

    For the Unstructured UI and Unstructured API:

    • If an existing collection name is specified, and Unstructured generates embeddings, but the number of dimensions that are generated does not match the existing collection’s embedding settings, the run will fail. You must change your Unstructured embedding settings or your existing collection’s embedding settings to match, and try the run again.
    • If a collection name is not specified, Unstructured creates a new collection in your namespace. If Unstructured generates embeddings, the new collections’s name will be u<short-workflow-id>_<short-embedding-model-name>_<number-of-dimensions>. If Unstructured does not generate embeddings, the new collections’s name will be u<short-workflow-id.

    For Unstructured Ingest:

    • If an existing collection name is specified, and Unstructured generates embeddings, but the number of dimensions that are generated does not match the existing collection’s embedding settings, the run will fail. You must change your Unstructured embedding settings or your existing collections’s embedding settings to match, and try the run again.
    • If a collection name is not specified, Unstructured creates a new collection in your Pinecone account. The new collection’s name will be unstructuredautocreated.

To create an Astra DB destination connector, see the following examples.

import os

from unstructured_client import UnstructuredClient
from unstructured_client.models.operations import CreateDestinationRequest
from unstructured_client.models.shared import (
    CreateDestinationConnector,
    DestinationConnectorType,
    AstraDBConnectorConfigInput
)

with UnstructuredClient(api_key_auth=os.getenv("UNSTRUCTURED_API_KEY")) as client:
    response = client.destinations.create_destination(
        request=CreateDestinationRequest(
            create_destination_connector=CreateDestinationConnector(
                name="<name>",
                type=DestinationConnectorType.ASTRADB,
                config=AstraDBConnectorConfigInput(
                    token="<token>",
                    api_endpoint="<api-endpoint>",
                    collection_name="<collection-name>",
                    keyspace="<keyspace>",
                    batch_size=<batch-size>,
                    flatten_metadata=<True|False>
                )
            )
        )
    )

    print(response.destination_connector_information)

Replace the preceding placeholders as follows:

  • <name> (required) - A unique name for this connector.
  • <token> (required) - The application token for the database.
  • <api-endpoint> (required) - The database’s associated API endpoint.
  • <collection-name> - The name of the collection in the namespace. If no value is provided, see the beginning of this article for the behavior at run time.
  • <keyspace> - The name of the keyspace in the collection. The default is default_keyspace if not otherwise specified.
  • <batch-size> - The maximum number of records to send per batch. The default is 20 if not otherwise specified.
  • flatten_metadata - Set to true to flatten the metadata into each record. Specifically, when flattened, the metadata key values are brought to the top level of the element, and the metadata key itself is removed. By default, the metadata is not flattened (false).