diff --git a/crates/language_models/src/provider/open_ai.rs b/crates/language_models/src/provider/open_ai.rs index 0894b58fe2048e..20bfdb87b52992 100644 --- a/crates/language_models/src/provider/open_ai.rs +++ b/crates/language_models/src/provider/open_ai.rs @@ -384,34 +384,34 @@ impl LanguageModel for OpenAiLanguageModel { LanguageModelCompletionError, >, > { - if self.model.supports_chat_completions() { - let request = into_open_ai( + if self.model.uses_responses_api() { + let request = into_open_ai_response( request, self.model.id(), self.model.supports_parallel_tool_calls(), self.model.supports_prompt_cache_key(), self.max_output_tokens(), self.model.reasoning_effort(), - false, ); - let completions = self.stream_completion(request, cx); + let completions = self.stream_response(request, cx); async move { - let mapper = OpenAiEventMapper::new(); + let mapper = OpenAiResponseEventMapper::new(); Ok(mapper.map_stream(completions.await?).boxed()) } .boxed() } else { - let request = into_open_ai_response( + let request = into_open_ai( request, self.model.id(), self.model.supports_parallel_tool_calls(), self.model.supports_prompt_cache_key(), self.max_output_tokens(), self.model.reasoning_effort(), + false, ); - let completions = self.stream_response(request, cx); + let completions = self.stream_completion(request, cx); async move { - let mapper = OpenAiResponseEventMapper::new(); + let mapper = OpenAiEventMapper::new(); Ok(mapper.map_stream(completions.await?).boxed()) } .boxed() diff --git a/crates/open_ai/src/open_ai.rs b/crates/open_ai/src/open_ai.rs index c6edf6b08c8fc9..b8fad3730d7ce7 100644 --- a/crates/open_ai/src/open_ai.rs +++ b/crates/open_ai/src/open_ai.rs @@ -266,17 +266,12 @@ impl Model { } } - pub fn supports_chat_completions(&self) -> bool { + pub fn uses_responses_api(&self) -> bool { match self { Self::Custom { supports_chat_completions, .. - } => *supports_chat_completions, - Self::FiveCodex - | Self::FivePointTwoCodex - | Self::FivePointThreeCodex - | Self::FivePointFourPro - | Self::FivePointFivePro => false, + } => !*supports_chat_completions, _ => true, } }