Fall back to TDS sheet for cure specs when main lookup returns none
After the main AI lookup and catalog search, if CureTemperatureF or CureTimeMinutes is still null but a TDS URL was found, fetch that page and ask Claude to extract just the cure schedule. - IInventoryAiLookupService.FetchTdsCureSpecsAsync: new interface method - InventoryAiLookupService.FetchTdsCureSpecsAsync: fetches the TDS URL via the existing FetchPageAsync pipeline (JSON-LD + doc-link extraction, HTML stripping). If the page is a PDF or unreachable, returns Success=false silently so no error surfaces in the UI. Otherwise sends a small targeted prompt that asks only for cureTemperatureF and cureTimeMinutes and uses MaxTokens=256 so the call is fast and cheap. - InventoryController.ScanLabel: after catalog lookup, computes the resolved cure values (catalog preferred over AI result). If either is null and a TDS URL exists, calls FetchTdsCureSpecsAsync and merges any newly found values back into aiResult before building the JSON response. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -54,4 +54,11 @@ public interface IInventoryAiLookupService
|
||||
/// using Claude vision. Used by the in-browser label scanner.
|
||||
/// </summary>
|
||||
Task<InventoryAiLookupResult> ScanLabelAsync(string base64Image, string mediaType);
|
||||
|
||||
/// <summary>
|
||||
/// Fetches a Technical Data Sheet URL and extracts cure temperature and cure time.
|
||||
/// Called when the main lookup found a TDS URL but cure specs are still missing.
|
||||
/// Returns Success=false silently (no UI error) when the TDS is a PDF or unreachable.
|
||||
/// </summary>
|
||||
Task<InventoryAiLookupResult> FetchTdsCureSpecsAsync(string tdsUrl, string? colorName);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user