fix: 交互优化
This commit is contained in:
parent
15f5a20f7c
commit
bb35045ff2
|
|
@ -268,20 +268,30 @@ public class PortalVideoController extends BaseController {
|
||||||
public AjaxResult imageReference(@RequestBody PortalVideoGenRequest request) {
|
public AjaxResult imageReference(@RequestBody PortalVideoGenRequest request) {
|
||||||
List<ContentItem> contentList;
|
List<ContentItem> contentList;
|
||||||
if (request.getContent() != null && !request.getContent().isEmpty()) {
|
if (request.getContent() != null && !request.getContent().isEmpty()) {
|
||||||
contentList = request.getContent();
|
contentList = new ArrayList<>(request.getContent());
|
||||||
ContentItem head = contentList.get(0);
|
ContentItem head = contentList.get(0);
|
||||||
if (head == null || !"text".equals(head.getType()) || StringUtils.isEmpty(head.getText())) {
|
if (head == null || !"text".equals(head.getType()) || StringUtils.isEmpty(head.getText())) {
|
||||||
return AjaxResult.error("请输入视频描述文本(首条须为 type=text,可含 [图n] 占位)");
|
return AjaxResult.error("请输入视频描述文本(首条须为 type=text,可含 [图n] 占位)");
|
||||||
}
|
}
|
||||||
|
// 保留 text + 合法 reference_image;允许“只有 text 没有参考图”
|
||||||
|
List<ContentItem> filtered = new ArrayList<>();
|
||||||
|
filtered.add(head);
|
||||||
|
for (int i = 1; i < contentList.size(); i++) {
|
||||||
|
ContentItem it = contentList.get(i);
|
||||||
|
if (isReferenceImageContentItem(it)) {
|
||||||
|
filtered.add(it);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
contentList = filtered;
|
||||||
|
|
||||||
String firstRef = contentList.stream()
|
String firstRef = contentList.stream()
|
||||||
|
.skip(1)
|
||||||
.filter(PortalVideoController::isReferenceImageContentItem)
|
.filter(PortalVideoController::isReferenceImageContentItem)
|
||||||
.map(it -> it.getImageUrl().getUrl())
|
.map(it -> it.getImageUrl().getUrl())
|
||||||
.findFirst()
|
.findFirst()
|
||||||
.orElse(null);
|
.orElse(null);
|
||||||
if (StringUtils.isEmpty(firstRef)) {
|
// 无参考图也允许,仅 text 提示词
|
||||||
return AjaxResult.error("请上传参考图(content 中须含 image_url + role=reference_image)");
|
if (StringUtils.isNotEmpty(firstRef) && StringUtils.isEmpty(request.getReferenceUrl())) {
|
||||||
}
|
|
||||||
if (StringUtils.isEmpty(request.getReferenceUrl())) {
|
|
||||||
request.setReferenceUrl(firstRef);
|
request.setReferenceUrl(firstRef);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -318,7 +328,11 @@ public class PortalVideoController extends BaseController {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
ImageUrl iu = item.getImageUrl();
|
ImageUrl iu = item.getImageUrl();
|
||||||
return iu != null && StringUtils.isNotEmpty(iu.getUrl());
|
if (iu == null || StringUtils.isEmpty(iu.getUrl())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
String url = iu.getUrl().trim().toLowerCase();
|
||||||
|
return url.startsWith("http://") || url.startsWith("https://");
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<ContentItem> buildTextAndFirstFrame(String text, String firstUrl) {
|
private List<ContentItem> buildTextAndFirstFrame(String text, String firstUrl) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue