Sending request to OCR OpenAI with SDK Via C# (version <PackageReference Include="Azure.AI.OpenAI" Version="2.0.0" />)

Trying to call Azure Open AI gpt-4 model via SDK.In prompt we are sedning base 64 encoded tetx of image and expecting key value pairs text from it.
It is returning this response - I’m sorry, but I’m unable to directly extract or interpret content from images or process images to extract text (Optical Character Recognition, OCR). However, I can assist with processing and interpreting text or structured data if you have any other requests or need assistance with a different type of query.

This is the code Iam using
public async Task ExtractTextFromImageAsync(double timeout)
{
_logger.LogInformation(“Starting ExtractTextFromImageAsync.”);
string deployment = _config.GetValue(OpenAIServiceConstants.CompletionDeployment);
if (string.IsNullOrEmpty(deployment))
{
_logger.LogError(“Configuration value for {CompletionDeployment} is missing”, OpenAIServiceConstants.CompletionDeployment);
throw new InvalidOperationException($“Configuration value for {OpenAIServiceConstants.CompletionDeployment} is missing”);
}

        // Set a timeout for the operation
        using var ct = new CancellationTokenSource(TimeSpan.FromSeconds(timeout));

        // Create the chat client
        ChatClient chatClient = _openAIClient.GetChatClient("gpt-4o");

        // Define the JSON content for the request
        string prompt = @"{
    ""enhancements"": { 
        ""ocr"": { ""enabled"": true }, 
        ""grounding"": { ""enabled"": true } 
    }, 
    ""messages"": [ 
        { 
            ""role"": ""system"", 
            ""content"": [ 
                { 
                    ""type"": ""text"", 
                    ""text"": ""You are an AI assistant that extracts data from documents and returns them as structured JSON objects."" 
                } 
            ] 
        }, 
        { 
            ""role"": ""user"", 
            ""content"": [ 
                { 
                    ""type"": ""image_url"", 
                    ""image_url"": { 
                        ""url"": ""data:image/jpeg;base64,base64String"" 
                    } 
                }, 
                { 
                    ""type"": ""text"", 
                    ""text"": ""Extract JSON data from the given image"" 
                } 
            ] 
        } 
    ], 
    ""temperature"": 0.7, 
    ""top_p"": 0.95, 
    ""max_tokens"": 4096 
}";

        // Convert the string into a JObject
        JObject obj = JObject.Parse(prompt);

        // Create the ChatMessage objects for the request
        var chatMessages = new List<ChatMessage>();

        // Parse system and user messages from the JObject (you can extend this to handle more dynamic message creation)
        if (obj["messages"] is JArray messagesArray)
        {
            foreach (var message in messagesArray)
            {
                var role = message["role"]?.ToString();
                var content = message["content"]?.ToString();

                if (role == "system" && content != null)
                {
                    chatMessages.Add(new SystemChatMessage(content));
                }
                else if (role == "user" && content != null)
                {
                    chatMessages.Add(new UserChatMessage(content));
                }
            }
        }

        // Set the ChatCompletionOptions
        var options = new ChatCompletionOptions
        {
            Temperature = obj["temperature"]?.ToObject<float>() ?? 0.7f,
            MaxOutputTokenCount = obj["max_tokens"]?.ToObject<int>() ?? 800,
            TopP = obj["top_p"]?.ToObject<float>() ?? 0.95f
        };

        // Perform the request to the Azure OpenAI service
        var responseBuilder = new StringBuilder();
        _logger.LogInformation("Initiating OpenAI image text extraction.");

        await ExecuteWithRetryAsync(async () =>
        {
            await foreach (var completionUpdate in chatClient.CompleteChatStreamingAsync(chatMessages, options, ct.Token))
            {
                foreach (var content in completionUpdate.ContentUpdate)
                {
                    responseBuilder.Append(content.Text);
                }
            }

            return responseBuilder.ToString();
        }, _logger);

        _logger.LogInformation("Completed text extraction from image.");
        return responseBuilder.ToString();
    }