OpenAI
Configuration
php
'openai' => [
'url' => env('OPENAI_URL', 'https://api.openai.com/v1'),
'api_key' => env('OPENAI_API_KEY', ''),
'organization' => env('OPENAI_ORGANIZATION', null),
]
Provider-specific options
Strict Tool Schemas
Prism supports OpenAI's function calling with Structured Outputs via provider-specific meta.
php
Tool::as('search')
->for('Searching the web')
->withStringParameter('query', 'the detailed search query')
->using(fn (): string => '[Search results]')
->withProviderMeta(Provider::OpenAI, [
'strict' => true,
]);
Strict Structured Output Schemas
php
$response = Prism::structured()
->withProviderMeta(Provider::OpenAI, [
'schema' => [
'strict' => true
]
])
Limitations
Tool Choice
OpenAI does not support ToolChoice::Any
when using withToolChoice()
.