Skip to main content

Overview

ChatOpenAI provides integration with OpenAI’s language models including GPT-4, GPT-4 Turbo, and reasoning models like o1 and o3.

Basic Usage

Configuration

Required Parameters

str
required
OpenAI model to use. Common options:
  • gpt-4.1-mini: Fast and cost-effective
  • gpt-4o: Latest GPT-4 optimized model
  • gpt-4-turbo: High performance GPT-4
  • o1, o1-pro, o3, o3-mini: Reasoning models
  • gpt-5, gpt-5-mini, gpt-5-nano: Next generation models

Model Parameters

float
default:"0.2"
Sampling temperature (0.0 to 2.0). Lower values make output more deterministic.
float
default:"0.3"
Penalty for token frequency (-2.0 to 2.0). Helps avoid infinite generation loops.
str
default:"low"
Reasoning effort for reasoning models (o1, o3, etc.). Options: low, medium, high.
int
default:"None"
Random seed for deterministic output.
str
default:"None"
Service tier: auto, default, flex, priority, or scale.
float
default:"None"
Nucleus sampling parameter (0.0 to 1.0).
int
default:"4096"
Maximum tokens in the completion.

Client Parameters

str
default:"None"
OpenAI API key. Defaults to OPENAI_API_KEY environment variable.
Get your API key at platform.openai.com/api-keys
str
default:"None"
OpenAI organization ID.
str
default:"None"
OpenAI project ID.
str
default:"None"
Custom base URL for OpenAI-compatible APIs.
float
default:"None"
Request timeout in seconds.
int
default:"5"
Maximum number of retries for failed requests.

Advanced Parameters

bool
default:"False"
Add JSON schema to system prompt instead of using response_format.
bool
default:"False"
Disable forced structured output even when output_format is provided.
bool
default:"False"
Remove minItems from JSON schema for provider compatibility.
bool
default:"False"
Remove default values from JSON schema for provider compatibility.

Advanced Usage

With Reasoning Models

Using OpenAI-Compatible APIs

Structured Output

With Custom Headers and Query Parameters

Environment Setup

.env

Error Handling

Properties

provider

Returns the provider name: "openai"

name

Returns the model name.

Methods

get_client()

Returns an AsyncOpenAI client instance.

ainvoke()

Asynchronously invoke the model with messages.

Parameters

  • messages (list[BaseMessage]): List of messages
  • output_format (type[T] | None): Optional Pydantic model for structured output

Returns

ChatInvokeCompletion[T] | ChatInvokeCompletion[str] with:
  • completion: Response content
  • usage: Token usage (includes cached tokens for reasoning models)
  • stop_reason: Finish reason (stop, length, content_filter, etc.)

Reasoning Models

Reasoning models (o1, o3, etc.) have special behavior:
  • No temperature/frequency_penalty: These parameters are automatically removed
  • reasoning_effort: Controls computational effort (low, medium, high)
  • Token usage: Reasoning tokens are included in completion_tokens