Skip to main content
Weaviate Docs (migrated from docs.weaviate.io) Docs

Search documentation

Type to search this documentation.

On this pageOverview

Text Embeddings

Weaviate's integration with DigitalOcean's Serverless Inference lets you access DigitalOcean-hosted embedding models directly from Weaviate.

Configure a Weaviate vector index to use a DigitalOcean embedding model, and Weaviate generates embeddings for imports and searches automatically using your DigitalOcean API key. This is the vectorizer.

At import time, Weaviate generates text object embeddings and saves them into the index. For vector and hybrid search operations, Weaviate converts text queries into embeddings.

Embedding integration illustration

Your Weaviate instance must have the text2vec-digitalocean module enabled.

For Weaviate Cloud (WCD) users

This integration is enabled by default on Weaviate Cloud (WCD) instances.

For self-hosted users

You must provide a DigitalOcean API key to Weaviate for this integration. Generate one in the DigitalOcean Cloud console and supply it via one of:

  • Set the DIGITALOCEAN_APIKEY environment variable on the Weaviate server.
  • Provide the X-Digitalocean-Api-Key header at request time, as shown below.
Python
# Recommended: save sensitive data as environment variables
digitalocean_key = os.getenv("DIGITALOCEAN_APIKEY")
JavaScript/TypeScript
const digitaloceanApiKey = process.env.DIGITALOCEAN_APIKEY || '';  // Replace with your inference API key
Java
// Best practice: store your credentials in environment variablesString weaviateUrl = System.getenv("WEAVIATE_URL");String weaviateApiKey = System.getenv("WEAVIATE_API_KEY");String digitalOceanApiKey = System.getenv("DIGITALOCEAN_APIKEY");WeaviateClient client = WeaviateClient.connectToWeaviateCloud(    weaviateUrl,    weaviateApiKey,    config -> config.setHeaders(Map.of("X-Digitalocean-Api-Key", digitalOceanApiKey)));System.out.println(client.isReady()); // Should print: `True`client.close(); // Free up resources
C#
// Best practice: store your credentials in environment variablesstring weaviateUrl = Environment.GetEnvironmentVariable("WEAVIATE_URL");string weaviateApiKey = Environment.GetEnvironmentVariable("WEAVIATE_API_KEY");string digitalOceanApiKey = Environment.GetEnvironmentVariable("DIGITALOCEAN_APIKEY");using var client = await Connect.Cloud(    weaviateUrl,    weaviateApiKey,    headers: new Dictionary<string, string>    {        ["X-Digitalocean-Api-Key"] = digitalOceanApiKey,    });var meta = await client.GetMeta();Console.WriteLine(meta.Version);

Configure a Weaviate index to use a DigitalOcean Serverless Inference model by setting the vectorizer as follows:

Python
from weaviate.classes.config import Configureclient.collections.create(    "DemoCollection",    vector_config=[        Configure.Vectors.text2vec_digitalocean(            model="qwen3-embedding-0.6b",  # Required. Choose from the DigitalOcean Serverless Inference catalogue            name="title_vector",            source_properties=["title"],        )    ],    # Additional parameters not shown)
JavaScript/TypeScript
await client.collections.create({  name: 'DemoCollection',  properties: [    {      name: 'title',      dataType: 'text' as const,    },  ],  vectorizers: [    weaviate.configure.vectors.text2VecDigitalOcean({      model: 'qwen3-embedding-0.6b',  // Required. Choose from the DigitalOcean Serverless Inference catalogue      name: 'title_vector',      sourceProperties: ['title'],    })  ],  // Additional parameters not shown});
Java
client.collections.create("DemoCollection",
    col -> col
        .vectorConfig(
            VectorConfig.text2vecDigitalOcean("title_vector",
                c -> c.model("qwen3-embedding-0.6b").sourceProperties("title")))
        .properties(Property.text("title"), Property.text("description")));
C#
await client.Collections.Create(
    new CollectionCreateParams
    {
        Name = "DemoCollection",
        VectorConfig = new VectorConfigList
        {
            Configure.Vector(
                "title_vector",
                v => v.Text2VecDigitalOcean(model: "qwen3-embedding-0.6b"),
                sourceProperties: ["title"]
            ),
        },
        Properties = [Property.Text("title"), Property.Text("description")],
    }
);
  • model: Required. The DigitalOcean Serverless Inference model id, for example qwen3-embedding-0.6b. Query GET /v1/models on the inference endpoint to see the catalogue of available models for your account.
  • baseURL: Optional. The base URL where API requests should go. Defaults to https://inference.do-ai.run. Override only if you're proxying or running against a non-default endpoint.

You can override the API key per-request via headers. Headers provided at request time take precedence over the server-side DIGITALOCEAN_APIKEY environment variable:

  • X-Digitalocean-Api-Key: The DigitalOcean API key for this request.

After configuring the vectorizer, import data into Weaviate. Weaviate generates embeddings for text objects using the configured model.

Once the vectorizer is configured, Weaviate performs vector and hybrid searches using the specified DigitalOcean model.

Embedding integration at search illustration

When you perform a vector search, Weaviate converts the text query into an embedding using the configured DigitalOcean model and returns the most similar objects.

When you perform a hybrid search, Weaviate fuses keyword and vector ranking. The text query is embedded with the configured DigitalOcean model; the keyword side uses Weaviate's inverted index.

DigitalOcean's Serverless Inference catalogue includes several embedding-capable models. See the DigitalOcean Serverless Inference docs for the live list, as model availability and dimensions can change.

Once the vectorizer is configured, Weaviate handles model inference transparently. The standard client library how-tos apply unchanged. No DigitalOcean-specific code is required at query or import time beyond the configuration shown above.

Have a question or feedback? Here's how to reach us.

Suggest an edit

Propose a replacement for this page. The site team reviews it before applying any changes.

Export
Documentation menu