From 9ec9ac86c99e8302a8c38da13c537e386dd11e48 Mon Sep 17 00:00:00 2001 From: androidlover5842 Date: Sat, 31 Jan 2026 05:33:11 +0530 Subject: [PATCH] Log OpenAI fallback prompt and output summary --- .../component/OpenAIVisionClient.kt | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/com/android/trisolarisserver/component/OpenAIVisionClient.kt b/src/main/kotlin/com/android/trisolarisserver/component/OpenAIVisionClient.kt index 4983898..946c07f 100644 --- a/src/main/kotlin/com/android/trisolarisserver/component/OpenAIVisionClient.kt +++ b/src/main/kotlin/com/android/trisolarisserver/component/OpenAIVisionClient.kt @@ -32,7 +32,12 @@ class OpenAIVisionClient( 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) + val first = call( + imageUrl, + "Read extremely carefully. Aadhaar number = 12 digits. Reply ONLY the 12 digits or NONE.", + "aadhaar_default", + headers + ) if (!first.isNullOrBlank() && !first.equals("NONE", ignoreCase = true)) { return first } @@ -42,11 +47,12 @@ class OpenAIVisionClient( 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.", + "aadhaar_left_strip", headers ) } - private fun call(imageUrl: String, prompt: String, headers: HttpHeaders): String? { + private fun call(imageUrl: String, prompt: String, promptId: 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.", @@ -79,7 +85,11 @@ class OpenAIVisionClient( val outputText = node.path("output_text").asText() if (outputText.isNotBlank()) { - logger.info("OpenAI fallback output_text length={}", outputText.trim().length) + logger.info( + "OpenAI fallback output_text prompt={} result={}", + promptId, + summarizeOutput(outputText) + ) return outputText } @@ -89,7 +99,11 @@ class OpenAIVisionClient( if (content.isArray && content.size() > 0) { val text = content[0].path("text").asText() if (text.isNotBlank()) { - logger.info("OpenAI fallback content text length={}", text.trim().length) + logger.info( + "OpenAI fallback content text prompt={} result={}", + promptId, + summarizeOutput(text) + ) return text } } @@ -109,4 +123,11 @@ class OpenAIVisionClient( null } } + + private fun summarizeOutput(value: String): String { + val trimmed = value.trim() + if (trimmed.equals("NONE", ignoreCase = true)) return "NONE" + val digits = trimmed.filter { it.isDigit() } + return if (digits.isNotBlank()) "digits_len=${digits.length}" else "text_len=${trimmed.length}" + } }