package com.hjx.parent.api; import java.util.ArrayList; import java.util.List; import java.util.Objects; public class ChatMessage { public ChatMessage() { } public ChatMessage(String role, Object content) { this.role = role; this.content = content; } public String role; public Object content; public static ChatMessage fromImage(String role, String text, String... urls) { List items = new ArrayList<>(); if (text != null && !text.isEmpty()) { items.add(new ContentItem(ContentItem.TYPE_TEXT, text)); } for (String it: urls) { items.add(new ContentItem(ContentItem.TYPE_IMAGE, it)); } return new ChatMessage(role, items); } public String getTextContent() { if (content == null) return null; if (content instanceof String) return (String) content; ContentItem item = firstText(); return item == null ? null : item.text; } private ContentItem firstText() { if (!(content instanceof List)) return null; List anyList = (List) content; return anyList.stream() .map(ContentItem::reSerialize) .filter(Objects::nonNull) .findFirst().orElse(null); } }