private boolean isFileResponse()

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/");
	}