当前位置: 首页 > news >正文

32第4天

第4天
昨天的成就: 实现了图片生成的Job状态查询循环,每3秒轮询一次直到完成
遇到的困难: 需要处理API返回的statusCode为字符串而非整数的情况
今天的任务: 添加图片URL提取和响应构建逻辑
java
public GenerationResponse generateImage(GenerationRequest request) {
logger.info("开始生成图片:{}", request.getPrompt());

try {
Credential cred = new Credential(
config.getSecretId(),
config.getSecretKey()
);

HttpProfile httpProfile = new HttpProfile();
httpProfile.setEndpoint(config.getEndpoint());

ClientProfile clientProfile = new ClientProfile();
clientProfile.setHttpProfile(httpProfile);

HunyuanClient client = new HunyuanClient(
cred,
"ap-guangzhou",
clientProfile
);

SubmitHunyuanImageJobRequest req = new SubmitHunyuanImageJobRequest();
req.setPrompt(buildPrompt(request));

SubmitHunyuanImageJobResponse resp = client.SubmitHunyuanImageJob(req);
String jobId = resp.getJobId();
logger.info("任务提交成功,JobId: {}", jobId);

// 轮询查询任务状态
com.tencentcloudapi.hunyuan.v20230901.models.QueryHunyuanImageJobRequest queryReq =
new com.tencentcloudapi.hunyuan.v20230901.models.QueryHunyuanImageJobRequest();
queryReq.setJobId(jobId);

com.tencentcloudapi.hunyuan.v20230901.models.QueryHunyuanImageJobResponse queryResp;
int maxRetries = 60; // 最多等待3分钟
int retryCount = 0;

do {
Thread.sleep(3000); // 每3秒查询一次
queryResp = client.QueryHunyuanImageJob(queryReq);
retryCount++;

logger.info("任务状态:{} - {} (第{}次查询)",
queryResp.getJobStatusCode(),
queryResp.getJobStatusMsg(),
retryCount);

if (retryCount >= maxRetries) {
return buildErrorResponse("任务超时,请稍后重试");
}

} while (!"5".equals(queryResp.getJobStatusCode())); // 5表示完成

// 提取图片URL
String[] images = queryResp.getResultImage();
if (images == null || images.length == 0) {
return buildErrorResponse("未获取到生成的图片");
}

String imageUrl = images[0];
logger.info("图片生成成功,URL: {}", imageUrl);

// 构建成功响应
GenerationResponse response = new GenerationResponse();
response.setSuccess(true);
response.setStatus("completed");
response.setResultUrl(imageUrl);
response.setTaskId(jobId);

return response;

} catch (InterruptedException e) {
Thread.currentThread().interrupt();
logger.error("线程被中断", e);
return buildErrorResponse("生成过程被中断");
} catch (Exception e) {
logger.error("图片生成失败", e);
return buildErrorResponse("生成失败:" + e.getMessage());
}
}

http://www.jsqmd.com/news/1041663/

相关文章:

  • 2026广州本地名包回收好去处,二手箱包逸程上门估价 - 逸程
  • 基于深度学习的道路缺陷检测系统3(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 2026年6月广州黄金回收怎么选?收的顶正规门店盘点与实时行情解读 - 奢侈品回收评测
  • 2026亳州中考200-400分的学生选什么学校!合肥理工学校职教高考本科率第一! - 小张zc
  • 5个颠覆性功能:如何用开源AI助手重构SaaS产品体验
  • 终极指南:如何用Semi_Utils批量添加相机参数水印提升照片专业性
  • 如何高效优化Windows系统:5个专业技巧指南
  • 六西格玛证书对制造业从业者有何帮助 - 众智商学院课程中心
  • 北十字射电望远镜FRB信号处理优化实践
  • 推荐上海专业的钢木楼梯加工厂 - 品牌推广大师
  • 合肥黄金回收口碑排行 2026,老客复购 93.2% 门店深度实测 - 开心测评
  • 3步解锁Wallpaper Engine创意工坊宝藏:这个免费下载器让你告别繁琐安装
  • 中国炭黑厂分布在哪些省份?几大产区各有什么特点?
  • 高中学习机推荐:2026年全品牌横评与选购决策指南 - 博客万
  • 2026嘉峪关本地连锁黄金回收,承接铂金回收白银银条回收业务+公安备案门店 - 信誉隆金银铂奢回收
  • 5分钟快速上手!APK-Installer:Windows上最简单高效的安卓应用安装器终极指南
  • 2026实测逸程与深圳四家同行|劳力士欧米茄回收五大维度对比 - 逸程
  • 雀魂牌谱屋:数据驱动的麻将竞技提升方案
  • GHelper终极指南:如何用轻量级工具掌控华硕笔记本性能
  • 时分复用(TDM)技术演进:从固定时隙到动态统计的实战解析
  • 通用大模型演进到世界模型的关键技术突破
  • 世界杯A组二轮焦点对决墨西哥VS韩国预测看三色军团‌鏖战太极虎
  • 2026宁波黄金回收门店实力测评榜单|收的顶五星断层领跑 - 奢侈品回收测评
  • 如何免费获取119,376个英语单词发音MP3音频的完整指南
  • 三合一协议QQ机器人:LuckyLilliaBot的完整部署与实战指南
  • 走遍沈阳各大商圈写字楼,黄金流通渠道测评白皮书完整整理 - 奢侈品回收评测
  • SMUDebugTool终极指南:解锁AMD Ryzen处理器隐藏性能的完整教程
  • 容器化部署 vLLM,Docker 镜像构建与优化
  • 2026重庆黄金回收权威测评榜单|收的顶硬核资质稳坐榜首 - 奢侈品回收测评
  • 实时大盘金价,出手市民处置黄金首饰,警惕虚高报价陷阱 - 开心测评