or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

configuration.mdembeddings.mdimage-generation.mdindex.mdlanguage-models.mdtranscription.md
tile.json

embeddings.mddocs/

Text Embeddings

Text embedding functionality for semantic search, similarity comparisons, and vector operations using Azure OpenAI embedding models. Embeddings convert text into high-dimensional vectors that capture semantic meaning.

Capabilities

Text Embedding Model (Current)

Creates Azure OpenAI text embedding models for generating vector representations of text.

/**
 * Creates an Azure OpenAI model for text embeddings
 * @param deploymentId - Azure OpenAI embedding deployment name (e.g., "text-embedding-ada-002")
 * @param settings - Optional embedding model settings
 * @returns Embedding model instance for generating text vectors
 */
textEmbeddingModel(deploymentId: string, settings?: OpenAIEmbeddingSettings): EmbeddingModelV1<string>;

Usage Example:

import { azure } from "@ai-sdk/azure";
import { embed, embedMany } from "ai";

const embeddingModel = azure.textEmbeddingModel("text-embedding-ada-002");

// Embed single text
const { embedding } = await embed({
  model: embeddingModel,
  value: "The quick brown fox jumps over the lazy dog",
});

console.log("Embedding dimensions:", embedding.length);
console.log("First few values:", embedding.slice(0, 5));

// Embed multiple texts
const { embeddings } = await embedMany({
  model: embeddingModel,
  values: [
    "Machine learning is a subset of artificial intelligence",
    "Deep learning uses neural networks with multiple layers",
    "Natural language processing enables computers to understand text",
  ],
});

console.log("Generated", embeddings.length, "embeddings");

Deprecated Embedding Methods

These methods are deprecated and will be removed in future versions. Use textEmbeddingModel instead.

/**
 * @deprecated Use textEmbeddingModel instead
 */
embedding(deploymentId: string, settings?: OpenAIEmbeddingSettings): EmbeddingModelV1<string>;

/**
 * @deprecated Use textEmbeddingModel instead  
 */
textEmbedding(deploymentId: string, settings?: OpenAIEmbeddingSettings): EmbeddingModelV1<string>;

Settings Type

interface OpenAIEmbeddingSettings {
  maxEmbeddingsPerCall?: number;
  supportsParallelCalls?: boolean;
  dimensions?: number;
  user?: string;
}

Advanced Usage Examples

Semantic Search

import { azure } from "@ai-sdk/azure";
import { embedMany } from "ai";

const embeddingModel = azure.textEmbeddingModel("text-embedding-ada-002");

// Create embeddings for a knowledge base
const documents = [
  "Photosynthesis is the process by which plants convert sunlight into energy",
  "The mitochondria is known as the powerhouse of the cell",
  "DNA contains the genetic instructions for all living organisms",
  "Climate change refers to long-term shifts in global temperatures",
];

const { embeddings: documentEmbeddings } = await embedMany({
  model: embeddingModel,
  values: documents,
});

// Search query
const query = "How do plants generate energy?";
const { embedding: queryEmbedding } = await embed({
  model: embeddingModel,
  value: query,
});

// Calculate similarity (cosine similarity)
function cosineSimilarity(a: number[], b: number[]): number {
  const dotProduct = a.reduce((sum, val, i) => sum + val * b[i], 0);
  const magnitudeA = Math.sqrt(a.reduce((sum, val) => sum + val * val, 0));
  const magnitudeB = Math.sqrt(b.reduce((sum, val) => sum + val * val, 0));
  return dotProduct / (magnitudeA * magnitudeB);
}

// Find most similar document
const similarities = documentEmbeddings.map((docEmb, index) => ({
  index,
  document: documents[index],
  similarity: cosineSimilarity(queryEmbedding, docEmb),
}));

const bestMatch = similarities.sort((a, b) => b.similarity - a.similarity)[0];
console.log("Best match:", bestMatch.document);
console.log("Similarity score:", bestMatch.similarity);

Text Classification

import { azure } from "@ai-sdk/azure";
import { embedMany } from "ai";

const embeddingModel = azure.textEmbeddingModel("text-embedding-ada-002");

// Create category embeddings
const categories = {
  technology: "Software development, programming, computers, artificial intelligence",
  health: "Medicine, healthcare, fitness, nutrition, medical research", 
  finance: "Banking, investing, economics, cryptocurrency, financial markets",
  sports: "Athletes, games, competitions, fitness, teams, tournaments",
};

const { embeddings: categoryEmbeddings } = await embedMany({
  model: embeddingModel,
  values: Object.values(categories),
});

// Classify new text
async function classifyText(text: string) {
  const { embedding: textEmbedding } = await embed({
    model: embeddingModel,
    value: text,
  });

  const scores = categoryEmbeddings.map((catEmb, index) => ({
    category: Object.keys(categories)[index],
    score: cosineSimilarity(textEmbedding, catEmb),
  }));

  return scores.sort((a, b) => b.score - a.score)[0];
}

// Example classification
const result = await classifyText("The new iPhone features improved camera capabilities and faster processing");
console.log("Category:", result.category); // "technology"
console.log("Confidence:", result.score);

Model Integration

Text embedding models implement the EmbeddingModelV1<string> interface and are compatible with all AI SDK embedding functions:

  • embed() - Generate embedding for single text
  • embedMany() - Generate embeddings for multiple texts

The embeddings are returned as arrays of numbers representing the high-dimensional vector space coordinates for the input text.