Skip to content

@inferedge/moss v1.0.0-beta.1


@inferedge/moss / MossClient

Class: MossClient

MossClient - Local semantic search client for vector similarity operations.

Example

typescript
const client = new MossClient('your-project-id', 'your-project-key');

// Create an index with documents
await client.createIndex('docs', [
  { id: '1', text: 'Machine learning fundamentals' },
  { id: '2', text: 'Deep learning neural networks' }
], 'moss-minilm');

// Query the index
const results = await client.query('docs', 'AI and neural networks');

Constructors

Constructor

new MossClient(projectId, projectKey): MossClient

Creates a new MossClient instance for local operations.

Parameters

projectId

string

Your project identifier.

projectKey

string

Your project authentication key.

Returns

MossClient

Methods

createIndex()

createIndex(indexName, docs, modelId): Promise<boolean>

Creates a new index with the provided documents.

Parameters

indexName

string

Name of the index to create.

docs

DocumentInfo[]

Initial documents to add to the index.

modelId

string

Model to use for embeddings.

Returns

Promise<boolean>

Promise that resolves to true if successful.

Throws

If the index already exists or creation fails.

Example

typescript
const success = await client.createIndex('knowledge-base', [
  { id: 'doc1', text: 'Introduction to AI' },
  { id: 'doc2', text: 'Machine learning basics' }
], 'moss-minilm');

getIndex()

getIndex(indexName): Promise<IndexInfo>

Gets information about a specific index.

Parameters

indexName

string

Name of the index to retrieve.

Returns

Promise<IndexInfo>

Promise that resolves to IndexInfo object.

Throws

If the index does not exist.

Example

typescript
const info = await client.getIndex('knowledge-base');
console.log(`Index has ${info.docCount} documents`);

listIndexes()

listIndexes(): Promise<IndexInfo[]>

Lists all available indexes.

Returns

Promise<IndexInfo[]>

Promise that resolves to array of IndexInfo objects.

Example

typescript
const indexes = await client.listIndexes();
indexes.forEach(index => {
  console.log(`${index.name}: ${index.docCount} docs`);
});

deleteIndex()

deleteIndex(indexName): Promise<boolean>

Deletes an index and all its data.

Parameters

indexName

string

Name of the index to delete.

Returns

Promise<boolean>

Promise that resolves to true if successful.

Throws

If the index does not exist.

Example

typescript
const deleted = await client.deleteIndex('old-index');

addDocs()

addDocs(indexName, docs, options?): Promise<{ added: number; updated: number; }>

Adds or updates documents in an index.

Parameters

indexName

string

Name of the target index.

docs

DocumentInfo[]

Documents to add or update.

options?

AddDocumentsOptions

Optional configuration for the operation.

Returns

Promise<{ added: number; updated: number; }>

Promise that resolves to operation result with counts.

Throws

If the index does not exist.

Example

typescript
const result = await client.addDocs('knowledge-base', [
  { id: 'new-doc', text: 'New content to index' }
], { upsert: true });
console.log(`Added: ${result.added}, Updated: ${result.updated}`);

deleteDocs()

deleteDocs(indexName, docIds): Promise<{ deleted: number; }>

Deletes documents from an index by their IDs.

Parameters

indexName

string

Name of the target index.

docIds

string[]

Array of document IDs to delete.

Returns

Promise<{ deleted: number; }>

Promise that resolves to operation result with count.

Throws

If the index does not exist.

Example

typescript
const result = await client.deleteDocs('knowledge-base', ['doc1', 'doc2']);
console.log(`Deleted ${result.deleted} documents`);

getDocs()

getDocs(indexName, options?): Promise<DocumentInfo[]>

Retrieves documents from an index.

Parameters

indexName

string

Name of the target index.

options?

GetDocumentsOptions

Optional configuration for retrieval.

Returns

Promise<DocumentInfo[]>

Promise that resolves to array of documents.

Throws

If the index does not exist.

Example

typescript
// Get all documents
const allDocs = await client.getDocs('knowledge-base');

// Get specific documents
const specificDocs = await client.getDocs('knowledge-base', {
  docIds: ['doc1', 'doc2']
});

loadIndex()

loadIndex(indexName): Promise<string>

Loads an index from a local .moss file.

Parameters

indexName

string

Name of the index to load.

Returns

Promise<string>

Promise that resolves to the index name.

Throws

If the index file does not exist or is invalid.

Example

typescript
const indexName = await client.loadIndex('my-index');
console.log(`Loaded index: ${indexName}`);

query()

query(indexName, query, topK?): Promise<SearchResult>

Performs a semantic similarity search against the specified index.

Parameters

indexName

string

Name of the target index to search.

query

string

The search query text.

topK?

number

Maximum number of results to return (default: 5).

Returns

Promise<SearchResult>

Promise that resolves to SearchResult with matching documents.

Throws

If the specified index does not exist.

Example

typescript
const results = await client.query('knowledge-base', 'machine learning');
results.docs.forEach(doc => {
  console.log(`${doc.id}: ${doc.text} (score: ${doc.score})`);
});