Apache Airflow DAG Patterns
Build production Apache Airflow DAGs with best practices for operators, sensors, testing, and deployment. Use when creating data pipelines, orchestrating workflows, or scheduling batch jobs.
5,368,907 AI resources indexedWorking toward the world’s largest AI resource index.
Vector embeddings configuration and semantic search
---
name: embeddings-7fc5886337c8
description: "Vector embeddings configuration and semantic search"
emoji: "🧬"
---
# Embeddings - Complete API Reference
Configure embedding providers, manage vector storage, and perform semantic search.
---
## Chat Commands
### View Config
```
/embeddings Show current settings
/embeddings status Provider status
/embeddings stats Cache statistics
```
### Configure Provider
```
/embeddings provider openai Use OpenAI embeddings
/embeddings provider voyage Use Voyage AI
/embeddings provider local Use local model
/embeddings model text-embedding-3-small Set model
```
### Cache Management
```
/embeddings cache stats View cache stats
/embeddings cache clear Clear cache
/embeddings cache size Total cache size
```
### Testing
```
/embeddings test "sample text" Generate test embedding
/embeddings similarity "text1" "text2" Compare similarity
```
---
## TypeScript API Reference
### Create Embeddings Service
```typescript
import { createEmbeddingsService } from 'clodds/embeddings';
const embeddings = createEmbeddingsService({
// Provider
provider: 'openai', // 'openai' | 'voyage' | 'local' | 'cohere'
apiKey: process.env.OPENAI_API_KEY,
// Model
model: 'text-embedding-3-small',
dimensions: 1536,
// Caching
cache: true,
cacheBackend: 'sqlite',
cachePath: './embeddings-cache.db',
// Batching
batchSize: 100,
maxConcurrent: 5,
});
```
### Generate Embeddings
```typescript
// Single text
const embedding = await embeddings.embed('Hello world');
console.log(`Dimensions: ${embedding.length}`);
// Multiple texts (batched)
const vectors = await embeddings.embedBatch([
'First document',
'Second document',
'Third document',
]);
```
### Semantic Search
```typescript
// Search against stored vectors
const results = await embeddings.search({
query: 'trading strategies',
collection: 'documents',
limit: 10,
threshold: 0.7,
});
for (const result of results) {
console.log(`${result.text} (score: ${result.score})`);
}
```
### Similarity
```typescript
// Compare two texts
const score = await embeddings.similarity(
'The cat sat on the mat',
'A feline rested on the rug'
);
console.log(`Similarity: ${score}`); // 0.0 - 1.0
```
### Store Vectors
```typescript
// Store embedding with metadata
await embeddings.store({
collection: 'documents',
id: 'doc-1',
text: 'Original text',
embedding: vector,
metadata: {
source: 'wiki',
date: '2024-01-01',
},
});
// Store batch
await embeddings.storeBatch({
collection: 'documents',
items: [
{ id: 'doc-1', text: 'First doc' },
{ id: 'doc-2', text: 'Second doc' },
],
});
```
### Cache Management
```typescript
// Get cache stats
const stats = await embeddings.getCacheStats();
console.log(`Cached: ${stats.count} embeddings`);
console.log(`Size: ${stats.sizeMB} MB`);
console.log(`Hit rate: ${stats.hitRate}%`);
// Clear cache
await embeddings.clearCache();
// Clear specific entries
await embeddings.clearCache({ olderThan: '7d' });
```
### Provider Configuration
```typescript
// Switch provider
embeddings.setProvider('voyage', {
apiKey: process.env.VOYAGE_API_KEY,
model: 'voyage-large-2',
});
// Use local model (Transformers.js)
// No API key required - runs locally via @xenova/transformers
embeddings.setProvider('local', {
model: 'Xenova/all-MiniLM-L6-v2', // 384 dimensions
});
```
---
## Providers
| Provider | Models | Quality | Speed | Cost |
|----------|--------|---------|-------|------|
| **OpenAI** | text-embedding-3-small/large | Excellent | Fast | $0.02/1M |
| **Voyage** | voyage-large-2 | Excellent | Fast | $0.02/1M |
| **Cohere** | embed-english-v3 | Good | Fast | $0.10/1M |
| **Local (Transformers.js)** | Xenova/all-MiniLM-L6-v2 | Good | Medium | Free |
---
## Models
### OpenAI
| Model | Dimensions | Best For |
|-------|------------|----------|
| `text-embedding-3-small` | 1536 | General use |
| `text-embedding-3-large` | 3072 | High accuracy |
### Voyage
| Model | Dimensions | Best For |
|-------|------------|----------|
| `voyage-large-2` | 1024 | General use |
| `voyage-code-2` | 1536 | Code search |
---
## Use Cases
### Semantic Memory Search
```typescript
// Store user memories
await embeddings.store({
collection: 'memories',
id: 'mem-1',
text: 'User prefers conservative trading',
});
// Search memories
const relevant = await embeddings.search({
query: 'what is user risk preference',
collection: 'memories',
limit: 5,
});
```
### Document Similarity
```typescript
// Find similar documents
const similar = await embeddings.findSimilar({
text: 'How to trade options',
collection: 'docs',
limit: 5,
});
```
---
## Best Practices
1. **Use caching** — Avoid redundant API calls
2. **Batch requests** — More efficient than single calls
3. **Choose dimensions wisely** — Balance quality vs storage
4. **Monitor costs** — Embeddings can add up
5. **Local for development** — Use local model to save costs
---
name: embeddings-7fc5886337c8
description: "Vector embeddings configuration and semantic search"
emoji: "🧬"
---
# Embeddings - Complete API Reference
Configure embedding providers, manage vector storage, and perform semantic search.
---
## Chat Commands
### View Config
```
/embeddings Show current settings
/embeddings status Provider status
/embeddings stats Cache statistics
```
### Configure Provider
```
/embeddings provider openai Use OpenAI embeddings
/embeddings provider voyage Use Voyage AI
/embeddings provider local Use local model
/embeddings model text-embedding-3-small Set model
```
### Cache Management
```
/embeddings cache stats View cache stats
/embeddings cache clear Clear cache
/embeddings cache size Total cache size
```
### Testing
```
/embeddings test "sample text" Generate test embedding
/embeddings similarity "text1" "text2" Compare similarity
```
---
## TypeScript API Reference
### Create Embeddings Service
```typescript
import { createEmbeddingsService } from 'clodds/embeddings';
const embeddings = createEmbeddingsService({
// Provider
provider: 'openai', // 'openai' | 'voyage' | 'local' | 'cohere'
apiKey: process.env.OPENAI_API_KEY,
// Model
model: 'text-embedding-3-small',
dimensions: 1536,
// Caching
cache: true,
cacheBackend: 'sqlite',
cachePath: './embeddings-cache.db',
// Batching
batchSize: 100,
maxConcurrent: 5,
});
```
### Generate Embeddings
```typescript
// Single text
const embedding = await embeddings.embed('Hello world');
console.log(`Dimensions: ${embedding.length}`);
// Multiple texts (batched)
const vectors = await embeddings.embedBatch([
'First document',
'Second document',
'Third document',
]);
```
### Semantic Search
```typescript
// Search against stored vectors
const results = await embeddings.search({
query: 'trading strategies',
collection: 'documents',
limit: 10,
threshold: 0.7,
});
for (const result of results) {
console.log(`${result.text} (score: ${result.score})`);
}
```
### Similarity
```typescript
// Compare two texts
const score = await embeddings.similarity(
'The cat sat on the mat',
'A feline rested on the rug'
);
console.log(`Similarity: ${score}`); // 0.0 - 1.0
```
### Store Vectors
```typescript
// Store embedding with metadata
await embeddings.store({
collection: 'documents',
id: 'doc-1',
text: 'Original text',
embedding: vector,
metadata: {
source: 'wiki',
date: '2024-01-01',
},
});
// Store batch
await embeddings.storeBatch({
collection: 'documents',
items: [
{ id: 'doc-1', text: 'First doc' },
{ id: 'doc-2', text: 'Second doc' },
],
});
```
### Cache Management
```typescript
// Get cache stats
const stats = await embeddings.getCacheStats();
console.log(`Cached: ${stats.count} embeddings`);
console.log(`Size: ${stats.sizeMB} MB`);
console.log(`Hit rate: ${stats.hitRate}%`);
// Clear cache
await embeddings.clearCache();
// Clear specific entries
await embeddings.clearCache({ olderThan: '7d' });
```
### Provider Configuration
```typescript
// Switch provider
embeddings.setProvider('voyage', {
apiKey: process.env.VOYAGE_API_KEY,
model: 'voyage-large-2',
});
// Use local model (Transformers.js)
// No API key required - runs locally via @xenova/transformers
embeddings.setProvider('local', {
model: 'Xenova/all-MiniLM-L6-v2', // 384 dimensions
});
```
---
## Providers
| Provider | Models | Quality | Speed | Cost |
|----------|--------|---------|-------|------|
| **OpenAI** | text-embedding-3-small/large | Excellent | Fast | $0.02/1M |
| **Voyage** | voyage-large-2 | Excellent | Fast | $0.02/1M |
| **Cohere** | embed-english-v3 | Good | Fast | $0.10/1M |
| **Local (Transformers.js)** | Xenova/all-MiniLM-L6-v2 | Good | Medium | Free |
---
## Models
### OpenAI
| Model | Dimensions | Best For |
|-------|------------|----------|
| `text-embedding-3-small` | 1536 | General use |
| `text-embedding-3-large` | 3072 | High accuracy |
### Voyage
| Model | Dimensions | Best For |
|-------|------------|----------|
| `voyage-large-2` | 1024 | General use |
| `voyage-code-2` | 1536 | Code search |
---
## Use Cases
### Semantic Memory Search
```typescript
// Store user memories
await embeddings.store({
collection: 'memories',
id: 'mem-1',
text: 'User prefers conservative trading',
});
// Search memories
const relevant = await embeddings.search({
query: 'what is user risk preference',
collection: 'memories',
limit: 5,
});
```
### Document Similarity
```typescript
// Find similar documents
const similar = await embeddings.findSimilar({
text: 'How to trade options',
collection: 'docs',
limit: 5,
});
```
---
## Best Practices
1. **Use caching** — Avoid redundant API calls
2. **Batch requests** — More efficient than single calls
3. **Choose dimensions wisely** — Balance quality vs storage
4. **Monitor costs** — Embeddings can add up
5. **Local for development** — Use local model to save costs
Imported from the listed AgentSkill.sh category. Complete supplied package files and notices are retained. Includes source scripts; review them before use. Required external tools and credentials are not installed. No bundled code was executed during import. Individual agent task behavior has not been tested.