`embed()`

embed()

임베딩 모델을 사용해 단일 값을 임베딩(embedding)으로 생성하는 함수예요. 하나의 값을 임베딩해 유사한 항목을 검색하거나, 임베딩을 다운스트림 작업에 사용해야 하는 곳에 딱 알맞아요.

출처: 문서

본문

임베딩 모델을 사용해 단일 값에 대한 임베딩을 생성합니다.

하나의 값을 임베딩해 예를 들어 유사한 항목을 검색하거나 임베딩을 다운스트림 작업에 사용해야 하는 사용 사례에 적합합니다.

import { embed } from 'ai';

const { embedding } = await embed({
  model: 'openai/text-embedding-3-small',
  value: 'sunny day at the beach',
});

Import

import { embed } from "ai"

API 시그니처 (API Signature)

Parameters (매개변수)

<PropertiesTable content={[ { name: 'model', type: 'EmbeddingModel', description: "사용할 임베딩 모델. 예: openai.embeddingModel('text-embedding-3-small')", }, { name: 'value', type: 'VALUE', description: '임베딩할 값. 타입은 모델에 따라 다릅니다.', }, { name: 'maxRetries', type: 'number', isOptional: true, description: '최대 재시도 횟수. 재시도를 비활성화하려면 0으로 설정. 기본값: 2.', }, { name: 'abortSignal', type: 'AbortSignal', isOptional: true, description: '호출을 취소하는 데 사용할 수 있는 선택적 abort signal.', }, { name: 'headers', type: 'Record<string, string>', isOptional: true, description: '요청과 함께 보낼 추가 HTTP 헤더. HTTP 기반 프로바이더에만 적용됩니다.', }, { name: 'providerOptions', type: 'ProviderOptions', isOptional: true, description: '프로바이더에 전달되는 프로바이더별 옵션.', }, { name: 'runtimeContext', type: 'RUNTIME_CONTEXT', isOptional: true, description: '라이프사이클 콜백에 전달되는 사용자 정의 런타임 컨텍스트. 기본값은 빈 객체입니다. 텔레메트리 통합은 telemetry.includeRuntimeContext로 명시적으로 포함된 최상위 속성만 받습니다.', }, { name: 'telemetry', type: 'TelemetryOptions<RUNTIME_CONTEXT>', isOptional: true, description: '텔레메트리 구성.', properties: [ { type: 'TelemetryOptions', parameters: [ { name: 'isEnabled', type: 'boolean', isOptional: true, description: '텔레메트리 활성화 또는 비활성화. 기본값은 활성화. false로 설정하면 제외됩니다.', }, { name: 'recordInputs', type: 'boolean', isOptional: true, description: '입력 기록 활성화 또는 비활성화. 기본값은 활성화.', }, { name: 'recordOutputs', type: 'boolean', isOptional: true, description: '출력 기록 활성화 또는 비활성화. 기본값은 활성화.', }, { name: 'functionId', type: 'string', isOptional: true, description: '이 함수의 식별자. 함수별로 텔레메트리 데이터를 그룹화하는 데 사용.', }, { name: 'includeRuntimeContext', type: '{ [KEY in keyof RUNTIME_CONTEXT]?: boolean }', isOptional: true, description: '텔레메트리에 포함할 최상위 런타임 컨텍스트 속성. true로 설정된 속성만 포함됩니다. 모든 속성은 기본적으로 제외됩니다. 사용자 콜백은 여전히 전체 컨텍스트를 받습니다.', }, { name: 'integrations', isOptional: true, type: 'Telemetry | Telemetry[]', description: '라이프사이클 이벤트를 받는 호출별 텔레메트리 통합. 제공되면 이 호출에 대해 전역으로 등록된 통합을 대체합니다.', }, ], }, ], }, { name: 'onStart', type: '(event: EmbedStartEvent<RUNTIME_CONTEXT>) => PromiseLike | void', isOptional: true, description: '임베딩 모델이 호출되기 전, embed 작업이 시작될 때 호출되는 콜백. 이 콜백에서 발생한 오류는 조용히 처리되며 임베딩 흐름을 깨지 않습니다.', properties: [ { type: 'EmbedStartEvent<RUNTIME_CONTEXT>', parameters: [ { name: 'runtimeContext', type: 'RUNTIME_CONTEXT', description: '작업에 제공된 전체, 필터링되지 않은 런타임 컨텍스트.', }, { name: 'callId', type: 'string', description: '이 embed 호출의 고유 식별자.', }, { name: 'operationId', type: 'string', description: "작업 유형 식별자 ('ai.embed').", }, { name: 'model', type: '{ provider: string; modelId: string }', description: '사용 중인 임베딩 모델.', }, { name: 'value', type: 'string | Array', description: '임베딩되는 값.', }, { name: 'maxRetries', type: 'number', description: '실패한 요청의 최대 재시도 횟수.', }, { name: 'abortSignal', type: 'AbortSignal | undefined', description: '작업 취소를 위한 abort signal.', }, { name: 'headers', type: 'Record<string, string | undefined> | undefined', description: '요청과 함께 보낸 추가 HTTP 헤더.', }, { name: 'providerOptions', type: 'ProviderOptions | undefined', description: '추가적인 프로바이더별 옵션.', }, ], }, ], }, { name: 'onEnd', type: '(event: EmbedEndEvent<RUNTIME_CONTEXT>) => PromiseLike | void', isOptional: true, description: '임베딩 모델이 반환된 후, embed 작업이 완료될 때 호출되는 콜백. 이 콜백에서 발생한 오류는 조용히 처리되며 임베딩 흐름을 깨지 않습니다.', properties: [ { type: 'EmbedEndEvent<RUNTIME_CONTEXT>', parameters: [ { name: 'runtimeContext', type: 'RUNTIME_CONTEXT', description: '작업에 제공된 전체, 필터링되지 않은 런타임 컨텍스트.', }, { name: 'callId', type: 'string', description: '이 embed 호출의 고유 식별자.', }, { name: 'operationId', type: 'string', description: "작업 유형 식별자 ('ai.embed').", }, { name: 'model', type: '{ provider: string; modelId: string }', description: '사용된 임베딩 모델.', }, { name: 'value', type: 'string | Array', description: '임베딩된 값.', }, { name: 'embedding', type: 'Embedding | Array', description: '결과 임베딩 벡터.', }, { name: 'usage', type: 'EmbeddingModelUsage', description: '임베딩 작업의 토큰 사용량.', }, { name: 'warnings', type: 'Array', description: '임베딩 모델의 경고.', }, { name: 'providerMetadata', type: 'ProviderMetadata | undefined', description: '선택적 프로바이더별 메타데이터.', }, { name: 'response', type: '{ headers?: Record<string, string>; body?: unknown } | undefined', description: '헤더와 본문을 포함한 선택적 응답 데이터.', }, ], }, ], }, ]} />

Returns (반환값)

<PropertiesTable content={[ { name: 'value', type: 'VALUE', description: '임베딩된 값.', }, { name: 'embedding', type: 'number[]', description: '값의 임베딩.', }, { name: 'usage', type: 'EmbeddingModelUsage', description: '임베딩 생성의 토큰 사용량.', properties: [ { type: 'EmbeddingModelUsage', parameters: [ { name: 'tokens', type: 'number', description: '임베딩에 사용된 토큰 수.', }, ], }, ], }, { name: 'warnings', type: 'Warning[]', description: '모델 프로바이더의 경고(예: 지원되지 않는 설정).', }, { name: 'response', type: 'Response', isOptional: true, description: '선택적 응답 데이터.', properties: [ { type: 'Response', parameters: [ { name: 'headers', isOptional: true, type: 'Record<string, string>', description: '응답 헤더.', }, { name: 'body', type: 'unknown', isOptional: true, description: '응답 본문.', }, ], }, ], }, { name: 'providerMetadata', type: 'ProviderMetadata | undefined', isOptional: true, description: '프로바이더의 선택적 메타데이터. 바깥 키는 프로바이더 이름입니다. 안쪽 값은 메타데이터입니다. 세부 내용은 프로바이더에 따라 다릅니다.', }, ]} />

더 알아보기 (Learn more)

전체 사이트맵