CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/npm-langchain--core

Core LangChain.js abstractions and schemas for building applications with Large Language Models

Pending
Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Pending

The risk profile of this skill

Overview
Eval results
Files

embeddings.mddocs/

Embeddings

Embedding model abstractions for converting text to vector representations. Embeddings enable semantic search and similarity comparisons by transforming text into high-dimensional numerical vectors.

Capabilities

Embeddings

Abstract base class for all embedding implementations.

/**
 * Abstract base class for embedding models
 */
abstract class Embeddings {
  /** Async caller for managing API requests */
  caller: AsyncCaller;
  
  constructor(params: EmbeddingsParams);
  
  /** Embed multiple documents */
  abstract embedDocuments(documents: string[]): Promise<number[][]>;
  
  /** Embed a single query */
  abstract embedQuery(document: string): Promise<number[]>;
}

Usage Examples:

import { Embeddings } from "@langchain/core/embeddings";

// Example embedding implementation
class MyEmbeddings extends Embeddings {
  async embedDocuments(texts: string[]): Promise<number[][]> {
    // Implementation would call embedding API
    return texts.map(text => this.generateVector(text));
  }
  
  async embedQuery(text: string): Promise<number[]> {
    // Single text embedding
    return this.generateVector(text);
  }
  
  private generateVector(text: string): number[] {
    // Placeholder - real implementation would use ML model
    return new Array(384).fill(0).map(() => Math.random());
  }
}

// Usage
const embeddings = new MyEmbeddings();

// Embed documents for vector store
const docVectors = await embeddings.embedDocuments([
  "LangChain is a framework for building LLM applications",
  "Vector stores enable semantic search over documents"
]);

// Embed query for similarity search
const queryVector = await embeddings.embedQuery("What is LangChain?");

Types

interface EmbeddingsInterface {
  embedDocuments(documents: string[]): Promise<number[][]>;
  embedQuery(document: string): Promise<number[]>;
}

interface EmbeddingsParams extends AsyncCallerParams {
  /** Maximum number of documents to embed at once */
  maxConcurrency?: number;
  /** Maximum number of retries for failed requests */
  maxRetries?: number;
}

interface AsyncCallerParams {
  /** Maximum number of concurrent requests */
  maxConcurrency?: number;
  /** Maximum number of retries */
  maxRetries?: number;
  /** Base delay between retries (ms) */
  onFailedAttempt?: (error: Error) => void;
}

docs

agents.md

caches.md

callbacks.md

documents.md

embeddings.md

index.md

language-models.md

memory-storage.md

messages.md

output-parsers.md

prompts.md

retrievers.md

runnables.md

tools.md

vectorstores.md

tile.json