UNPKG

ai

Version:

AI SDK by Vercel - build apps like ChatGPT, Claude, Gemini, and more with a single interface for any model using the Vercel AI Gateway or go direct to OpenAI, Anthropic, Google, or any other model provider.

55 lines (50 loc) • 1.64 kB
import type { Experimental_ExtractionModelV4 as ExtractionModelV4, Experimental_ExtractionModelV4Field as ExtractionField, Experimental_ExtractionModelV4Result as ExtractionModelV4Result, Experimental_ExtractionModelV4Source as ExtractionSource, } from '@ai-sdk/provider'; export type ExtractionModel = ExtractionModelV4; export type ExtractionValue<FIELD extends ExtractionField> = FIELD extends { type: 'number' | 'duration'; } ? number : FIELD extends { type: 'list'; items: infer ITEMS } ? ITEMS extends 'number' ? number[] : string[] : string; export type ExtractionAnswer<FIELD extends ExtractionField> = FIELD extends { type: 'list'; } ? { type: 'list'; value: ExtractionValue<FIELD> | null; pNull?: number; confidence?: number; items?: Array<{ confidence?: number; source?: ExtractionSource }>; } : { type: FIELD['type']; value: ExtractionValue<FIELD> | null; guess?: ExtractionValue<FIELD>; pNull?: number; confidence?: number; source?: ExtractionSource; }; export type ExtractionResult<FIELDS extends Record<string, ExtractionField>> = { readonly answers: { [ID in keyof FIELDS]: ExtractionAnswer<FIELDS[ID]>; }; readonly usage: { inputTokens: number | undefined; outputTokens: number | undefined; totalTokens: number | undefined; }; readonly warnings: ExtractionModelV4Result['warnings']; readonly providerMetadata: ExtractionModelV4Result['providerMetadata']; readonly response: NonNullable<ExtractionModelV4Result['response']> & { timestamp: Date; modelId: string; }; };