weaviate-sdk
v1.8.0
Published
weaviate sdk
Downloads
59
Readme
Overview
This SDK provides a TypeScript client for interacting with a Weaviate instance. Aim at simplifying operations like creating classes, adding objects, performing searches for data analysis. Please consider using the official Weaviate Node.js SDK.
Getting Started
Step 1: Import & Init
import WeaviateClient from 'weaviate-sdk';
// Initialize Weaviate client
const weaviateURL = 'http://localhost:8080';
const client = new WeaviateClient(weaviateURL);
Step 2: Store Data Batch.
- Useful when working with large datasets. Like converting a book or a file into chunks of data.
Use the storeInBatch
method to store your data. This method takes care of splitting your data into batches and respecting rate limits.
const articlesTenant1 = [
{
title: 'Understanding Multi-tenancy',
content: 'Multi-tenancy allows multiple users to share the same application while keeping their data isolated.',
author: 'Alice',
},
{
title: 'Advanced Weaviate Usage',
content: 'Exploring advanced features of Weaviate for optimized vector search.',
author: 'Alice',
},
];
const articlesTenant2 = [
{
title: 'Introduction to Weaviate',
content: 'Weaviate is a cloud-native, modular, real-time vector search engine built to scale your machine learning models.',
author: 'Bob',
},
{
title: 'Weaviate and UI Integration',
content: 'Integrating Weaviate with front-end frameworks for seamless user tenant1.',
author: 'Bob',
},
];
async function addBatchObjects() {
try {
// without tenant
await client.storeInBatch(articlesTenant1, 'CollectionWithoutTenant');
// with tenant
await client.storeInBatch(articlesTenant2, 'CollectionWithTenant', 'tenant9');
console.log('Batch objects added successfully under specified tenants.');
} catch (error) {
console.error('Error adding batch objects:', error);
}
}
addBatchObjects();
Step 3: Search
// Import WeaviateClient to interact with the Weaviate API
import WeaviateClient from 'weaviate-sdk';
const client = new WeaviateClient('http://localhost:8080');
// Define the search term and the class of data we're searching in
const searchQuery = 'machine learning'; // What we're looking for
const className = 'Articles'; // Where we're searching
// const tenant = 'user_name123'; // If need a seprate space insode the collection/class
// Optional: If we want to limit the fields retrieved, specify them here (e.g., "title", "content")
// Leaving this empty will retrieve all fields, which may increase response time due to additional API calls
// const fields = ["title", "content"]
// Function to perform the search
async function searchItems() {
try {
const results = await client.search(searchQuery, className);
console.log('Search results:', results);
} catch (error) {
console.error('Search failed:', error);
}
}
// Call the function to execute the search
searchItems();
// Footnotes:
// To retrieve specific fields: search(searchQuery, className, ["title", "content"])
// To retrieve fields with tenant filtering: search(searchQuery, className, ["title", "content"], "tenant1")
License
This project is licensed under the ISC License.