in spring-ai-alibaba-graph/spring-ai-alibaba-graph-core/src/main/java/com/alibaba/cloud/ai/graph/node/HttpNode.java [291:319]
private boolean isFileResponse(ResponseEntity<?> response) {
HttpHeaders headers = response.getHeaders();
String contentType = Optional.ofNullable(headers.getContentType()).map(MediaType::toString).orElse("");
if (headers.containsKey(HttpHeaders.CONTENT_DISPOSITION)) {
String cd = headers.getFirst(HttpHeaders.CONTENT_DISPOSITION);
if (cd != null && (cd.startsWith("attachment") || cd.contains("filename="))) {
return true;
}
}
if (contentType.startsWith("text/")) {
return false;
}
List<String> textTypes = List.of("json", "xml", "javascript", "x-www-form-urlencoded", "yaml");
if (contentType.startsWith("application/")) {
for (String tt : textTypes) {
if (contentType.contains(tt)) {
return false;
}
}
try {
new String((byte[]) Objects.requireNonNull(response.getBody()), StandardCharsets.UTF_8);
return false;
}
catch (Exception ex) {
return true;
}
}
return contentType.startsWith("image/") || contentType.startsWith("audio/") || contentType.startsWith("video/");
}