当前位置: 首页 > 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.gsyq.cn/news/1553571.html

相关文章:

  • 2026厦门本地人必选防水补漏检测维修公司靠谱服务商TOP5推荐:房屋渗漏水检测维修/卫生间/厨房/天花板/阳台/外墙渗漏水检测补漏维修-暗管漏水检测专业仪器精准定位漏水点 - 即刻修防水
  • 3步掌握OpenSpeedTest™:搭建专属网络测速平台的终极指南
  • 2026亳州中考200-400分的学生选什么学校!合肥理工学校职教高考本科率第一! - 小张zc
  • 基于深度学习的道路缺陷检测系统3(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 5个颠覆性功能:如何用开源AI助手重构SaaS产品体验
  • 北十字射电望远镜FRB信号处理优化实践
  • 中国炭黑厂分布在哪些省份?几大产区各有什么特点?
  • 高中学习机推荐:2026年全品牌横评与选购决策指南 - 博客万
  • 雀魂牌谱屋:数据驱动的麻将竞技提升方案
  • 三合一协议QQ机器人:LuckyLilliaBot的完整部署与实战指南
  • 世界杯A组二轮焦点对决墨西哥VS韩国预测看三色军团‌鏖战太极虎
  • 走遍沈阳各大商圈写字楼,黄金流通渠道测评白皮书完整整理 - 奢侈品回收评测
  • 实时大盘金价,出手市民处置黄金首饰,警惕虚高报价陷阱 - 开心测评
  • 曲阜鲁工机械领跑国内遥控履带割草机市场 27年深耕赛道 - 博客万
  • 济南无扣费黄金回收排行,御奢坊、名品集门店对比 - 讯息早知道
  • 多模态推荐系统模态崩溃问题与VLM2Rec解决方案
  • 吃ED药怕被发现的尴尬,2026年有了靠谱解法
  • 2026安庆合肥理工学校春秋季招生说明 电话:17683656559|最新发布 - 我叫小周
  • 重庆老牌奢侈品回收机构,奢二网三十余年行业运营经验 - 讯息早知道
  • QtScrcpy终极指南:3步实现电脑键鼠操控安卓手机,游戏办公两不误
  • 大麦网抢票完整指南:5分钟搭建自动化抢票系统,告别手速焦虑
  • 2026果洛本地连锁黄金回收,承接铂金回收白银银条回收业务+公安备案门店 - 信誉隆金银铂奢回收
  • 法人章丢了登报怎么线上办理?2026办理渠道及流程详解 - 速递信息
  • 揭秘猫抓扩展:浏览器资源嗅探与视频流解析实战指南
  • 百考通AI智能聚类研究流派,精准定位创新缺口
  • 专业应对Windows系统臃肿问题的Win11Debloat解决方案
  • CAPL实战:动态调节ID范围报文发送周期,精准控制CAN总线负载率
  • 2026芜湖中考200-400分的孩子出路在哪?合肥理工学校——芜湖家长必看的本科逆袭方案! - 小张zc
  • 2026 哈尔滨翡翠回收避坑指南,7 家门店对比,出手翡翠不被乱压价 - 沉迷学习28
  • 2026年6月自来水厂在线悬浮物浓度计市场价格深度解析与国产品牌综合实力TOP10选型指南 - 水质仪表品牌排行榜