From e60e70a6b0a1de6b6668237d3ec812e1c55d86cb Mon Sep 17 00:00:00 2001 From: androidlover5842 Date: Sat, 31 Jan 2026 05:30:07 +0530 Subject: [PATCH] Retry OpenAI fallback with focused Aadhaar prompt --- .../component/OpenAIVisionClient.kt | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/com/android/trisolarisserver/component/OpenAIVisionClient.kt b/src/main/kotlin/com/android/trisolarisserver/component/OpenAIVisionClient.kt index dc22c18..4983898 100644 --- a/src/main/kotlin/com/android/trisolarisserver/component/OpenAIVisionClient.kt +++ b/src/main/kotlin/com/android/trisolarisserver/component/OpenAIVisionClient.kt @@ -29,6 +29,24 @@ class OpenAIVisionClient( return null } + val headers = HttpHeaders() + headers.contentType = MediaType.APPLICATION_JSON + headers.setBearerAuth(apiKey) + val first = call(imageUrl, "Read extremely carefully. Aadhaar number = 12 digits. Reply ONLY the 12 digits or NONE.", headers) + if (!first.isNullOrBlank() && !first.equals("NONE", ignoreCase = true)) { + return first + } + if (first != null) { + logger.info("OpenAI fallback returned NONE; retrying with focused prompt") + } + return call( + imageUrl, + "Focus on the 12-digit Aadhaar number printed on the card (often vertical on the left). Reply ONLY the 12 digits or NONE.", + headers + ) + } + + private fun call(imageUrl: String, prompt: String, headers: HttpHeaders): String? { val payload = mapOf( "model" to model, "instructions" to "Read extremely carefully. Reply ONLY the 12 digits or NONE. No extra text.", @@ -41,7 +59,7 @@ class OpenAIVisionClient( "content" to listOf( mapOf( "type" to "input_text", - "text" to "Read extremely carefully. Aadhaar number = 12 digits. Reply ONLY the 12 digits or NONE." + "text" to prompt ), mapOf( "type" to "input_image", @@ -52,10 +70,6 @@ class OpenAIVisionClient( ) ) ) - - val headers = HttpHeaders() - headers.contentType = MediaType.APPLICATION_JSON - headers.setBearerAuth(apiKey) val entity = HttpEntity(payload, headers) return try { logger.info("OpenAI fallback request model={} url={}", model, baseUrl)