function messages<TAdapter, TModel>(_options, msgs): TAdapter extends AIAdapter<any, any, any, any, any, ModelInputModalities, DefaultMessageMetadataByModality> ? TModel extends keyof ModelInputModalities ? ModelInputModalities[TModel<TModel>] extends readonly Modality[] ? ConstrainedModelMessage<any[any]>[] : ModelMessage<
| string
| ContentPart<unknown, unknown, unknown, unknown>[]
| null>[] : ModelMessage<
| string
| ContentPart<unknown, unknown, unknown, unknown>[]
| null>[] : ModelMessage<
| string
| ContentPart<unknown, unknown, unknown, unknown>[]
| null>[];
function messages<TAdapter, TModel>(_options, msgs): TAdapter extends AIAdapter<any, any, any, any, any, ModelInputModalities, DefaultMessageMetadataByModality> ? TModel extends keyof ModelInputModalities ? ModelInputModalities[TModel<TModel>] extends readonly Modality[] ? ConstrainedModelMessage<any[any]>[] : ModelMessage<
| string
| ContentPart<unknown, unknown, unknown, unknown>[]
| null>[] : ModelMessage<
| string
| ContentPart<unknown, unknown, unknown, unknown>[]
| null>[] : ModelMessage<
| string
| ContentPart<unknown, unknown, unknown, unknown>[]
| null>[];
Defined in: utilities/messages.ts:33
Type-safe helper to create a messages array constrained by a model's supported modalities.
This function provides compile-time checking that your messages only contain content types supported by the specified model. It's particularly useful when combining typed messages with untyped data (like from request.json()).
TAdapter extends AIAdapter<any, any, any, any, any, any, DefaultMessageMetadataByModality>
TModel extends any
TAdapter
TModel
TAdapter extends AIAdapter<any, any, any, any, any, ModelInputModalities, DefaultMessageMetadataByModality> ? TModel extends keyof ModelInputModalities ? ModelInputModalities[TModel<TModel>] extends readonly Modality[] ? ConstrainedModelMessage<any[any]>[] : ModelMessage< | string | ContentPart<unknown, unknown, unknown, unknown>[] | null>[] : ModelMessage< | string | ContentPart<unknown, unknown, unknown, unknown>[] | null>[] : ModelMessage< | string | ContentPart<unknown, unknown, unknown, unknown>[] | null>[]
TAdapter extends AIAdapter<any, any, any, any, any, ModelInputModalities, DefaultMessageMetadataByModality> ? TModel extends keyof ModelInputModalities ? ModelInputModalities[TModel<TModel>] extends readonly Modality[] ? ConstrainedModelMessage<any[any]>[] : ModelMessage< | string | ContentPart<unknown, unknown, unknown, unknown>[] | null>[] : ModelMessage< | string | ContentPart<unknown, unknown, unknown, unknown>[] | null>[] : ModelMessage< | string | ContentPart<unknown, unknown, unknown, unknown>[] | null>[]
import { messages, chat } from '@tanstack/ai'
import { openai } from '@tanstack/ai-openai'
const adapter = openai()
// This will error at compile time because gpt-4o only supports text+image
const msgs = messages({ adapter, model: 'gpt-4o' }, [
{
role: 'user',
content: [
{ type: 'video', source: { type: 'url', value: '...' } } // Error!
]
}
])
import { messages, chat } from '@tanstack/ai'
import { openai } from '@tanstack/ai-openai'
const adapter = openai()
// This will error at compile time because gpt-4o only supports text+image
const msgs = messages({ adapter, model: 'gpt-4o' }, [
{
role: 'user',
content: [
{ type: 'video', source: { type: 'url', value: '...' } } // Error!
]
}
])
