Embeddings
Some providers produce embeddings as well as chat responses.
Basic Usage
final agent = Agent('openai');
// Single text
final result = await agent.embedQuery('Hello world');
print(result.embeddings.length); // 1536
// Multiple texts
final results = await agent.embedDocuments([
'Machine learning',
'Deep learning',
'Neural networks'
]);
Similarity
// Compare two texts
final embed1 = await agent.embedQuery('cat');
final embed2 = await agent.embedQuery('dog');
final similarity = EmbeddingsModel.cosineSimilarity(
embed1.embeddings,
embed2.embeddings,
);
print(similarity); // 0.8234
Search Example
// Find most similar
final query = await agent.embedQuery('programming');
final docs = await agent.embedDocuments([
'Dart language',
'Cooking recipes',
'Python coding'
]);
// Get similarities
final sims = docs.embeddings.map((e) =>
EmbeddingsModel.cosineSimilarity(query.embeddings, e)
).toList();
// Find best match
final best = sims.indexOf(sims.reduce(max));
print('Best match: index $best');
Configuration
// Custom model
Agent('openai?embeddings=text-embedding-3-large');
// Reduce dimensions (OpenAI)
final agent = Agent(
'openai',
embeddingsModelOptions: OpenAIEmbeddingsModelOptions(
dimensions: 256, // Smaller vectors
),
);
Next Steps
- Providers - Embeddings support by provider