mirror of
https://github.com/openai/codex.git
synced 2026-06-01 19:02:59 +00:00
Update image outputs to default to high detail (#18386)
Do not assume the default `detail`.
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
use codex_protocol::models::DEFAULT_IMAGE_DETAIL;
|
||||
use codex_protocol::models::FunctionCallOutputContentItem;
|
||||
use codex_protocol::models::ImageDetail;
|
||||
use codex_protocol::openai_models::ModelInfo;
|
||||
@@ -14,7 +15,8 @@ pub fn normalize_output_image_detail(
|
||||
Some(ImageDetail::Original) if can_request_original_image_detail(model_info) => {
|
||||
Some(ImageDetail::Original)
|
||||
}
|
||||
Some(ImageDetail::Original) | Some(_) | None => None,
|
||||
Some(ImageDetail::Original) | None => None,
|
||||
Some(ImageDetail::Auto | ImageDetail::Low | ImageDetail::High) => detail,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +32,7 @@ pub fn sanitize_original_image_detail(
|
||||
if let FunctionCallOutputContentItem::InputImage { detail, .. } = item
|
||||
&& matches!(detail, Some(ImageDetail::Original))
|
||||
{
|
||||
*detail = None;
|
||||
*detail = Some(DEFAULT_IMAGE_DETAIL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
use super::*;
|
||||
use codex_protocol::models::DEFAULT_IMAGE_DETAIL;
|
||||
use codex_protocol::models::FunctionCallOutputContentItem;
|
||||
use codex_protocol::models::ImageDetail;
|
||||
use codex_protocol::openai_models::ModelInfo;
|
||||
@@ -66,17 +67,21 @@ fn explicit_original_is_dropped_without_model_support() {
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn unsupported_non_original_detail_is_dropped() {
|
||||
fn explicit_non_original_detail_is_preserved() {
|
||||
let model_info = model_info();
|
||||
|
||||
assert_eq!(
|
||||
normalize_output_image_detail(&model_info, Some(ImageDetail::Low)),
|
||||
None
|
||||
Some(ImageDetail::Low)
|
||||
);
|
||||
assert_eq!(
|
||||
normalize_output_image_detail(&model_info, Some(ImageDetail::High)),
|
||||
Some(ImageDetail::High)
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn sanitize_original_drops_original_without_support() {
|
||||
fn sanitize_original_falls_back_to_high_without_support() {
|
||||
let mut items = vec![
|
||||
FunctionCallOutputContentItem::InputText {
|
||||
text: "header".to_string(),
|
||||
@@ -101,7 +106,7 @@ fn sanitize_original_drops_original_without_support() {
|
||||
},
|
||||
FunctionCallOutputContentItem::InputImage {
|
||||
image_url: "data:image/png;base64,AAA".to_string(),
|
||||
detail: None,
|
||||
detail: Some(DEFAULT_IMAGE_DETAIL),
|
||||
},
|
||||
FunctionCallOutputContentItem::InputImage {
|
||||
image_url: "data:image/png;base64,BBB".to_string(),
|
||||
|
||||
Reference in New Issue
Block a user