Skip to main content

OpenAICodexResponsesProvider

Struct OpenAICodexResponsesProvider 

Source
pub struct OpenAICodexResponsesProvider { /* private fields */ }
Available on crate feature openai-codex only.
Expand description

OpenAI Codex / ChatGPT subscription provider.

This provider uses the ChatGPT Codex backend (/backend-api/codex/responses) and requires an OAuth access token obtained from the ChatGPT Plus/Pro login flow.

Implementations§

Source§

impl OpenAICodexResponsesProvider

Source

pub fn new(api_key: String, model: String) -> OpenAICodexResponsesProvider

Create a new OpenAI Codex provider.

Source

pub fn with_base_url( api_key: String, model: String, base_url: String, ) -> OpenAICodexResponsesProvider

Create a provider with a custom base URL.

Source

pub fn gpt53_codex(api_key: String) -> OpenAICodexResponsesProvider

Create a provider using GPT-5.3-Codex (latest codex model).

Source

pub fn codex(api_key: String) -> OpenAICodexResponsesProvider

Create a provider using the latest Codex model.

Source

pub fn gpt54(api_key: String) -> OpenAICodexResponsesProvider

Create a provider using GPT-5.4 (frontier reasoning with 1.05M context).

Source

pub const fn with_thinking( self, thinking: ThinkingConfig, ) -> OpenAICodexResponsesProvider

Set the provider-owned thinking configuration for this model.

Source

pub fn with_account_id( self, account_id: impl Into<String>, ) -> OpenAICodexResponsesProvider

Set a known ChatGPT account id, avoiding JWT decoding on each request.

Source

pub fn with_reasoning_effort( self, effort: ReasoningEffort, ) -> OpenAICodexResponsesProvider

Set the reasoning effort level.

Source

pub const fn with_websockets_disabled( self, disabled: bool, ) -> OpenAICodexResponsesProvider

Force the HTTP transport, skipping the WebSocket path entirely.

In a WebSocket-hostile environment (a corporate proxy / firewall that black-holes the wss upgrade) the WebSocket-first transport stalls for up to the connect + warmup timeout budget on every fresh session before falling back to HTTP. An operator who knows their network cannot do wss can set this to skip the penalty entirely. The OPENAI_CODEX_DISABLE_WEBSOCKETS environment variable does the same without a code change.

Trait Implementations§

Source§

impl Clone for OpenAICodexResponsesProvider

Source§

fn clone(&self) -> OpenAICodexResponsesProvider

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl LlmProvider for OpenAICodexResponsesProvider

Source§

fn chat<'life0, 'async_trait>( &'life0 self, request: ChatRequest, ) -> Pin<Box<dyn Future<Output = Result<ChatOutcome, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, OpenAICodexResponsesProvider: 'async_trait,

Non-streaming chat completion.
Source§

fn chat_stream( &self, request: ChatRequest, ) -> Pin<Box<dyn Stream<Item = Result<StreamDelta, Error>> + Send + '_>>

Streaming chat completion. Read more
Source§

fn model(&self) -> &str

Source§

fn provider(&self) -> &'static str

Source§

fn configured_thinking(&self) -> Option<&ThinkingConfig>

Provider-owned thinking configuration, if any.
Source§

fn list_models<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<ModelInfo>, Error>> + Send + 'async_trait>>
where 'life0: 'async_trait, Self: 'async_trait,

List the models the provider currently exposes, queried live from the provider’s own model-listing endpoint. Read more
Source§

fn capabilities(&self) -> Option<&'static ModelCapabilities>

Canonical capability metadata for this provider/model, if known.
Source§

fn validate_thinking_config( &self, thinking: Option<&ThinkingConfig>, ) -> Result<(), Error>

Validate a thinking configuration against the provider/model capabilities. Read more
Source§

fn resolve_thinking_config( &self, request_thinking: Option<&ThinkingConfig>, ) -> Result<Option<ThinkingConfig>, Error>

Resolve the effective thinking configuration for a request. Read more
Source§

fn default_max_tokens(&self) -> u32

Default maximum output tokens for this provider/model when the caller does not explicitly override AgentConfig.max_tokens.
Source§

fn structured_output_support(&self) -> StructuredOutputSupport

How this provider satisfies a structured-output (ResponseFormat) request. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FutureExt for T

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more