TypeScript Types
The Endee TypeScript SDK includes comprehensive type definitions for full type safety and excellent IDE support.
Importing Types
import type {
VectorItem,
QueryOptions,
QueryResult,
CreateIndexOptions,
IndexInfo,
IndexDescription,
SpaceType
} from "endee";Type Definitions
SpaceType
Distance metric used for similarity calculations.
type SpaceType = "cosine" | "l2" | "ip";| Value | Description |
|---|---|
cosine | Cosine similarity (recommended for text embeddings) |
l2 | Euclidean distance |
ip | Inner product (dot product) |
CreateIndexOptions
Options for creating a new index.
interface CreateIndexOptions {
name: string; // Unique index name
dimension: number; // Vector dimensionality
spaceType?: SpaceType; // Distance metric (default: cosine)
M?: number; // Graph connectivity (default: 16)
efCon?: number; // Construction parameter (default: 128)
useFp16?: boolean; // Half-precision storage (default: true)
version?: number; // Index version
}VectorItem
Structure for upserting vectors.
interface VectorItem {
id: string; // Unique vector ID
vector: number[]; // Vector embedding
meta?: Record<string, unknown>; // Optional metadata
filter?: Record<string, unknown>; // Optional filter fields
}QueryOptions
Options for querying the index.
interface QueryOptions {
vector: number[]; // Query vector
topK?: number; // Number of results
filter?: Record<string, unknown> | null; // Optional filter
ef?: number; // Search quality parameter
includeVectors?: boolean; // Include vectors in results
log?: boolean; // Enable logging
}QueryResult
Structure of query results.
interface QueryResult {
id: string; // Vector ID
similarity: number; // Similarity score
distance: number; // Distance value
meta?: Record<string, unknown>; // Metadata (if stored)
filter?: Record<string, unknown>; // Filter fields (if stored)
norm?: number; // Vector norm
vector?: number[]; // Vector data (if includeVectors=true)
}IndexInfo
Index information returned when listing indexes.
interface IndexInfo {
name: string; // Index name
space_type: SpaceType; // Distance metric
dimension: number; // Vector dimension
total_elements?: number; // Total number of vectors
use_fp16?: boolean; // Half-precision enabled
M?: number; // Graph connectivity
checksum?: string; // Index checksum
lib_token?: string; // Library token
}IndexDescription
Index statistics and configuration from describe().
interface IndexDescription {
name: string; // Index name
space_type: SpaceType; // Distance metric
dimension: number; // Vector dimension
count: number; // Number of vectors stored
precision: string; // Storage precision
M: number; // Graph connectivity
}Usage Example
import { Endee } from "endee";
import type { VectorItem, QueryOptions, QueryResult } from "endee";
const endee = new Endee("user_id:api_token:region");
const index = await endee.getIndex("my_index");
// Typed vector item
const vectors: VectorItem[] = [
{
id: "doc1",
vector: [0.1, 0.2, 0.3],
meta: { title: "Document 1" },
filter: { category: "reference" }
}
];
await index.upsert(vectors);
// Typed query options
const options: QueryOptions = {
vector: [0.1, 0.2, 0.3],
topK: 10,
includeVectors: true
};
// Typed results
const results: QueryResult[] = await index.query(options);
// Access result fields
for (const result of results) {
console.log(`ID: ${result.id}`);
console.log(`Similarity: ${result.similarity}`);
console.log(`Distance: ${result.distance}`);
}