perf(similarasin): LLM 输入图转存前压缩,规避网关拉图超时
- 主图/拼图转存 MinIO supply_images 前统一走 SimilarAsinImageEmbedder.resizeImage (长边 1280 / JPEG q0.75 / 迭代降质至 ≤150KB),体积 1~5MB → 100~300KB - 根因:LLM 网关按 URL 拉取 OSS 图片,原图过大偶发 context deadline exceeded (convert_request_failed),27117 等任务 1 行 LLM 500 即整任务卡死 - 压缩失败降级原字节不阻断行处理;压缩前后字节数 INFO 日志便于线上排查 - SimilarAsinImageEmbedder.resizeImage 由包私有改 public 供复用
This commit is contained in:
+3
-1
@@ -10,6 +10,7 @@ import com.nanri.aiimage.modules.productcategory.service.ProductCategoryService;
|
||||
import com.nanri.aiimage.modules.similarasin.client.SimilarAsinLlmClient;
|
||||
import com.nanri.aiimage.modules.similarasin.model.dto.SimilarAsinResultRowDto;
|
||||
import com.nanri.aiimage.modules.similarasin.util.PuzzleImageMerger;
|
||||
import com.nanri.aiimage.modules.similarasin.util.SimilarAsinImageEmbedder;
|
||||
import org.mockito.Mockito;
|
||||
|
||||
import java.io.File;
|
||||
@@ -99,7 +100,8 @@ public class SimilarAsinLlmLocalVerify {
|
||||
}).when(categoryService).children(Mockito.any(), Mockito.anyLong(), Mockito.anyLong());
|
||||
|
||||
SimilarAsinLlmService service = new SimilarAsinLlmService(
|
||||
client, props, ossProps, categoryService, merger, oss);
|
||||
client, props, ossProps, categoryService, merger, oss,
|
||||
new SimilarAsinImageEmbedder(props, oss));
|
||||
|
||||
long start = System.currentTimeMillis();
|
||||
List<SimilarAsinResultRowDto> result = service.inspectRows(rows, null, apiKey, imgSwitch, categorySwitch);
|
||||
|
||||
+3
-1
@@ -9,6 +9,7 @@ import com.nanri.aiimage.modules.productcategory.service.ProductCategoryService;
|
||||
import com.nanri.aiimage.modules.similarasin.client.SimilarAsinLlmClient;
|
||||
import com.nanri.aiimage.modules.similarasin.model.dto.SimilarAsinResultRowDto;
|
||||
import com.nanri.aiimage.modules.similarasin.util.PuzzleImageMerger;
|
||||
import com.nanri.aiimage.modules.similarasin.util.SimilarAsinImageEmbedder;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
@@ -76,7 +77,8 @@ class SimilarAsinLlmServiceTest {
|
||||
mock(OssProperties.class),
|
||||
categoryService,
|
||||
merger,
|
||||
ossStorage);
|
||||
ossStorage,
|
||||
mock(SimilarAsinImageEmbedder.class));
|
||||
svc.setDownloadHttpClientForTest(mockHttpClient());
|
||||
return svc;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user