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
  ),
);

Examples

Next Steps