`embedMany()`

embedMany()

임베딩 모델을 사용해 여러 값을 임베딩합니다. embedMany는 모델이 단일 호출로 처리할 수 있는 임베딩 수 또는 UTF-8 입력 바이트 수에 제한이 있을 때 큰 요청을 자동으로 더 작은 청크로 분할합니다. 프로바이더는 AI SDK 코어 패키지에 토크나이저를 추가하지 않고도 요청을 총 토큰 한도 아래로 유지하기 위해 보수적인 바이트 예산을 사용할 수 있습니다. 바이트 예산보다 큰 개별 값은 분할하면 결과 임베딩이 바뀌기 때문에 자체 호출로 전송됩니다.

출처: 문서

본문

import { embedMany } from 'ai';

const { embeddings } = await embedMany({
  model: 'openai/text-embedding-3-small',
  values: [
    'sunny day at the beach',
    'rainy afternoon in the city',
    'snowy night in the mountains',
  ],
});

Import

import { embedMany } from "ai"

API Signature

Parameters (파라미터)

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

Returns (반환값)

  • values: Array<string> — 임베딩된 값들입니다.
  • embeddings: number[][] — 임베딩 결과입니다. 값들과 같은 순서입니다.
  • usage: EmbeddingModelUsage — 임베딩 생성에 사용된 토큰 사용량입니다.
    • tokens: number — 총 입력 토큰 수입니다.
  • warnings: Warning[] — 모델 프로바이더의 경고입니다 (예: 지원되지 않는 설정).
  • providerMetadata: ProviderMetadata | undefined (선택) — 프로바이더의 선택적 메타데이터입니다. 외부 키는 프로바이더 이름입니다. 내부 값은 메타데이터입니다. 세부 사항은 프로바이더에 따라 다릅니다.
  • responses: Array<{ headers?: Record<string, string>; body?: unknown } | undefined> (선택) — 각 청크 요청의 선택적 원시 응답 데이터입니다. 요청이 여러 청크로 분할되면 여러 응답이 있을 수 있습니다.

더 알아보기 (Learn more)