@ai-sdk/openai
Version:
The **[OpenAI provider](https://ai-sdk.dev/providers/ai-sdk-providers/openai)** for the [AI SDK](https://ai-sdk.dev/docs) contains language model support for the OpenAI chat and completion APIs and embedding model support for the OpenAI embeddings API.
74 lines (61 loc) • 1.85 kB
text/typescript
import type {
openaiResponsesChunkSchema,
OpenAIResponsesLogprobs,
} from './openai-responses-api';
import type { InferSchema } from '@ai-sdk/provider-utils';
type OpenaiResponsesChunk = InferSchema<typeof openaiResponsesChunkSchema>;
type ResponsesOutputTextAnnotationProviderMetadata = Extract<
OpenaiResponsesChunk,
{ type: 'response.output_text.annotation.added' }
>['annotation'];
export type ResponsesProviderMetadata = {
responseId: string | null | undefined;
logprobs?: Array<OpenAIResponsesLogprobs>;
serviceTier?: string;
reasoningContext?: string;
};
export type ResponsesReasoningProviderMetadata = {
itemId: string;
reasoningEncryptedContent?: string | null;
};
export type OpenaiResponsesReasoningProviderMetadata = {
openai: ResponsesReasoningProviderMetadata;
};
export type OpenaiResponsesProviderMetadata = {
openai: ResponsesProviderMetadata;
};
export type ResponsesCompactionProviderMetadata = {
type: 'compaction';
itemId: string;
encryptedContent?: string;
};
export type OpenaiResponsesCompactionProviderMetadata = {
openai: ResponsesCompactionProviderMetadata;
};
export type ResponsesTextProviderMetadata = {
itemId: string;
phase?: 'commentary' | 'final_answer' | null;
annotations?: Array<ResponsesOutputTextAnnotationProviderMetadata>;
};
export type OpenaiResponsesTextProviderMetadata = {
openai: ResponsesTextProviderMetadata;
};
export type ResponsesSourceDocumentProviderMetadata =
| {
type: 'file_citation';
fileId: string;
index: number;
}
| {
type: 'container_file_citation';
fileId: string;
containerId: string;
}
| {
type: 'file_path';
fileId: string;
index: number;
};
export type OpenaiResponsesSourceDocumentProviderMetadata = {
openai: ResponsesSourceDocumentProviderMetadata;
};