0
# Embeddings
1
2
Embedding model abstractions for converting text to vector representations. Embeddings enable semantic search and similarity comparisons by transforming text into high-dimensional numerical vectors.
3
4
## Capabilities
5
6
### Embeddings
7
8
Abstract base class for all embedding implementations.
9
10
```typescript { .api }
11
/**
12
* Abstract base class for embedding models
13
*/
14
abstract class Embeddings {
15
/** Async caller for managing API requests */
16
caller: AsyncCaller;
17
18
constructor(params: EmbeddingsParams);
19
20
/** Embed multiple documents */
21
abstract embedDocuments(documents: string[]): Promise<number[][]>;
22
23
/** Embed a single query */
24
abstract embedQuery(document: string): Promise<number[]>;
25
}
26
```
27
28
**Usage Examples:**
29
30
```typescript
31
import { Embeddings } from "@langchain/core/embeddings";
32
33
// Example embedding implementation
34
class MyEmbeddings extends Embeddings {
35
async embedDocuments(texts: string[]): Promise<number[][]> {
36
// Implementation would call embedding API
37
return texts.map(text => this.generateVector(text));
38
}
39
40
async embedQuery(text: string): Promise<number[]> {
41
// Single text embedding
42
return this.generateVector(text);
43
}
44
45
private generateVector(text: string): number[] {
46
// Placeholder - real implementation would use ML model
47
return new Array(384).fill(0).map(() => Math.random());
48
}
49
}
50
51
// Usage
52
const embeddings = new MyEmbeddings();
53
54
// Embed documents for vector store
55
const docVectors = await embeddings.embedDocuments([
56
"LangChain is a framework for building LLM applications",
57
"Vector stores enable semantic search over documents"
58
]);
59
60
// Embed query for similarity search
61
const queryVector = await embeddings.embedQuery("What is LangChain?");
62
```
63
64
## Types
65
66
```typescript { .api }
67
interface EmbeddingsInterface {
68
embedDocuments(documents: string[]): Promise<number[][]>;
69
embedQuery(document: string): Promise<number[]>;
70
}
71
72
interface EmbeddingsParams extends AsyncCallerParams {
73
/** Maximum number of documents to embed at once */
74
maxConcurrency?: number;
75
/** Maximum number of retries for failed requests */
76
maxRetries?: number;
77
}
78
79
interface AsyncCallerParams {
80
/** Maximum number of concurrent requests */
81
maxConcurrency?: number;
82
/** Maximum number of retries */
83
maxRetries?: number;
84
/** Base delay between retries (ms) */
85
onFailedAttempt?: (error: Error) => void;
86
}
87
```