理解（或感知）多媒体内容的能力，需要大模型支持。


<mark>重要提醒：用 url 还是 base64，要根据 llm 支持情况选择（不同的 llm 不同）。</mark>


### 1、理解图片（图像）

就是把图片和提示语一起提交给大模型。需要用到 ImageBlock 接口


| 接口                                 | 描述         | 
| --------------------- | -------- | 
| `ImageBlock.ofUrl(String)`           | 根据 url 创建      | 
| `ImageBlock.ofBase64(String)`     | 根据 base64 String 创建      | 
| `ImageBlock.ofBase64(byte[])`     | 根据 base64 byte[] 创建      | 

示例（有些模型需要提交 url ，有些需要提交 b64。按模型要求使用）：

```java
chatModel.prompt(ChatMessage.ofUser("这个图上有人像吗？",  ImageBlock.ofUrl("http://.../demo.jpg")))
            .call();
```


### 2、理解声音（音频）

就是把声音和提示语一起提交给大模型。需要用到 AudioBlock 接口


| 接口                            | 描述         | 
| ------------------ | -------- | 
| `AudioBlock.ofUrl(String)`     | 根据 url 创建     | 

示例：

```java
chatModel.prompt(ChatMessage.ofUser("这里讲了什么？",  AudioBlock.ofUrl("http://.../demo.mp3")))
            .call();
```


### 3、理解视频

就是把视频和提示语一起提交给大模型。需要用到 VideoBlock 接口


| 接口                            | 描述         | 
| ------------------ | -------- | 
| `VideoBlock.ofUrl(String)`     | 根据 url 创建     | 

示例：

```java
chatModel.prompt(ChatMessage.ofUser("这里讲了什么？",  VideoBlock.ofUrl("http://.../demo.jpg")))
            .call();
```
