Skip to content

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().

Released under the MIT License.