Module ai.weaviate
ballerinax/ai.weaviate Ballerina library
Overview
Weaviate is an open-source vector database that stores both objects and vectors, allowing for combining vector search with structured filtering with the scalability of a cloud-native database.
The Ballerina Weaviate vector store module provides a comprehensive API for integrating with Weaviate vector databases, enabling efficient storage, retrieval, and management of high-dimensional vectors. This implementation allows being used as a Ballerina ai:VectorStore
, providing smooth integration with the Ballerina AI module.
Set up guide
Before using the Ballerina Weaviate vector store module, you need to set up a Weaviate instance and obtain the necessary credentials.
Step 1: Create a Weaviate account
You can create an account for free if you don't already have one.
-
Visit weaviate.io and click Try Now to sign up for a free account
-
Complete the registration process and verify your email address if required
-
Log in to your new Weaviate account
For more details, refer to the official documentation on creating a new account.
Step 2: Set up a Weaviate cluster
-
Access the Weaviate Console and click Create Cluster to create a new Weaviate instance.
-
Provide the required details (e.g., Cluster name) and preferred configuration options and confirm.
-
Click Create and wait for the cluster to be provisioned (this typically takes 2-3 minutes)
-
Once the cluster is ready, locate and copy the REST endpoint URL from your cluster dashboard. You'll use this URL as the
serviceUrl
in yourweaviate:Client
configuration
For more details, refer to the official documentation on creating clusters.
Step 3: Generate API credentials
-
In the Weaviate Console, navigate to your cluster dashboard and go to the API Keys section
-
Click Create API Key and provide a name for the key and create the API key.
-
Securely save the generated API key, which you'll use as the
token
in yourweaviate:Client
configuration.
For more details, refer to the official documentation on authentication.
Quick Start
Step 1: Import the module
import ballerina/ai; import ballerinax/ai.weaviate;
Step 2: Initialize the Weaviate vector store
ai:VectorStore vectorStore = check new weaviate:VectorStore( serviceUrl = "add-weaviate-service-url", config = { collectionName: "add-collection-name" }, apiKey = "mock-token" );
Step 3: Add vectors
ai:Error? result = vectorStore.add( [ { id: "1", embedding: [1.0, 2.0, 3.0], chunk: { 'type: "text", content: "This is a chunk" } } ] );
Examples
The Ballerina Weaviate vector store module provides practical examples illustrating usage in various scenarios. Explore these examples.
- Book recommendation system This example shows how to use Weaviate vector store APIs to implement a book recommendation system that stores book embeddings and queries them to find similar books based on vector similarity and metadata filtering.