ai
Version:
AI SDK by Vercel - The AI Toolkit for TypeScript and JavaScript
198 lines (185 loc) • 5.23 kB
text/mdx
title: embed
description: API Reference for embed.
# `embed()`
Generate an embedding for a single value using an embedding model.
This is ideal for use cases where you need to embed a single value to e.g. retrieve similar items or to use the embedding in a downstream task.
```ts
import { embed } from 'ai';
const { embedding } = await embed({
model: 'openai/text-embedding-3-small',
value: 'sunny day at the beach',
});
```
## Import
<Snippet text={`import { embed } from "ai"`} prompt={false} />
## API Signature
### Parameters
<PropertiesTable
content={[
{
name: 'model',
type: 'EmbeddingModel',
description:
"The embedding model to use. Example: openai.embeddingModel('text-embedding-3-small')",
},
{
name: 'value',
type: 'VALUE',
description: 'The value to embed. The type depends on the model.',
},
{
name: 'maxRetries',
type: 'number',
isOptional: true,
description:
'Maximum number of retries. Set to 0 to disable retries. Default: 2.',
},
{
name: 'abortSignal',
type: 'AbortSignal',
isOptional: true,
description:
'An optional abort signal that can be used to cancel the call.',
},
{
name: 'headers',
type: 'Record<string, string>',
isOptional: true,
description:
'Additional HTTP headers to be sent with the request. Only applicable for HTTP-based providers.',
},
{
name: 'providerOptions',
type: 'ProviderOptions',
isOptional: true,
description:
'Provider-specific options that are passed through to the provider.',
},
{
name: 'experimental_telemetry',
type: 'TelemetrySettings',
isOptional: true,
description: 'Telemetry configuration. Experimental feature.',
properties: [
{
type: 'TelemetrySettings',
parameters: [
{
name: 'isEnabled',
type: 'boolean',
isOptional: true,
description:
'Enable or disable telemetry. Disabled by default while experimental.',
},
{
name: 'recordInputs',
type: 'boolean',
isOptional: true,
description:
'Enable or disable input recording. Enabled by default.',
},
{
name: 'recordOutputs',
type: 'boolean',
isOptional: true,
description:
'Enable or disable output recording. Enabled by default.',
},
{
name: 'functionId',
type: 'string',
isOptional: true,
description:
'Identifier for this function. Used to group telemetry data by function.',
},
{
name: 'metadata',
isOptional: true,
type: 'Record<string, string | number | boolean | Array<null | undefined | string> | Array<null | undefined | number> | Array<null | undefined | boolean>>',
description:
'Additional information to include in the telemetry data.',
},
{
name: 'tracer',
type: 'Tracer',
isOptional: true,
description: 'A custom tracer to use for the telemetry data.',
},
],
},
],
},
]}
/>
### Returns
<PropertiesTable
content={[
{
name: 'value',
type: 'VALUE',
description: 'The value that was embedded.',
},
{
name: 'embedding',
type: 'number[]',
description: 'The embedding of the value.',
},
{
name: 'usage',
type: 'EmbeddingModelUsage',
description: 'The token usage for generating the embeddings.',
properties: [
{
type: 'EmbeddingModelUsage',
parameters: [
{
name: 'tokens',
type: 'number',
description: 'The number of tokens used in the embedding.',
},
],
},
],
},
{
name: 'warnings',
type: 'Warning[]',
description:
'Warnings from the model provider (e.g. unsupported settings).',
},
{
name: 'response',
type: 'Response',
isOptional: true,
description: 'Optional response data.',
properties: [
{
type: 'Response',
parameters: [
{
name: 'headers',
isOptional: true,
type: 'Record<string, string>',
description: 'Response headers.',
},
{
name: 'body',
type: 'unknown',
isOptional: true,
description: 'The response body.',
},
],
},
],
},
{
name: 'providerMetadata',
type: 'ProviderMetadata | undefined',
isOptional: true,
description:
'Optional metadata from the provider. The outer key is the provider name. The inner values are the metadata. Details depend on the provider.',
},
]}
/>