`detail` parameter not identified when using the GPT-4V API

My payload function is like so:

def create_payload(image_string):
    payload = {
        "model": "gpt-4-vision-preview",
        "messages": [
            {
                "role": "user",
                "content": [
                    {
                        "type": "text",
                        "text": "Provide caption for the image in one sentence. Be detailed but precise.",
                    },
                    {
                        "type": "image_url",
                        "image_url": {"url": f"data:image/jpeg;base64,{image_string}"},
                    },
                ],
            }
        ],
        "max_tokens": 300,
        "detail": "low",
    }
    return payload

Response says that detail is invalid:

{
        "error": {
            "message": "1 validation error for Request\nbody -> detail\n  extra fields not permitted (type=value_error.extra)",
            "type": "invalid_request_error",
            "param": null,
            "code": null
        }
    },

My point of reference is:

Try:

def create_payload(image_string):
    payload = {
        "model": "gpt-4-vision-preview",
        "messages": [
            {
                "role": "user",
                "content": [
                    {
                        "type": "text",
                        "text": "Provide caption for the image in one sentence. Be detailed but precise.",
                    },
                    {
                        "type": "image_url",
                        "image_url": {"url": f"data:image/jpeg;base64,{image_string}"},
                        "detail":"low",
                    },
                ],
            }
        ],
        "max_tokens": 300,
    }
    return payload
1 Like

@spsayakpaul wrong position of the detail parameter, it should be located in the image data.

@misch221 is correct.