返回首页
🤖 AI / LLM

多模态 LLM 应用开发:图像、音频、视频统一处理

2026 年多模态 LLM 已成熟。本文演示 GPT-5 / Gemini 3.0 的图像理解、音频转录、视频分析完整应用。

多模态 · LLM · GPT-5 · Gemini · AI
📰

今日技术简讯

📰 技术简讯 · 2026-06-22

今日聚合 6 条热门技术内容。

🤖 AI / LLM

1. GPT-5 多模态实战

2. ElevenLabs v4 发布

🎨 前端 / Web

3. Web Components 进入 WHATWG 标准

  • 链接https://web.dev/wc-whatwg
  • 来源:web.dev
  • 摘要:Web Components 正式进入 WHATWG 标准,所有浏览器长期支持。

⚙️ 后端 / 架构

4. Rust Tokio 2.0 发布

🚀 独立开发 / OPC

5. OpenAI 推出 Agent Marketplace

6. 《AI Bootstrapping》电子书发布


数据来源:HN / Reddit / 各厂博客 采集时间:2026-06-22 09:00 (UTC+8)

📝

今日深度文

多模态 LLM 应用开发:图像、音频、视频统一处理

一句话结论:多模态 LLM 让"理解世界"变成单一 API。独立开发者可以用它构建以往需要专业团队的产品。

背景

2026 年的 LLM 已经全面多模态:

  • 图像理解:识别 / 描述 / OCR / 视觉问答
  • 音频处理:转录 / 翻译 / 情感分析
  • 视频分析:关键帧 / 事件检测 / 总结

调用方式统一为单一 API。

核心模型对比

| 模型 | 图像 | 音频 | 视频 | 价格/1M tokens |
|------|------|------|------|---------------|
| GPT-5 | ✅ | ✅ | ⚠️ 抽帧 | $1.75 / $7 |
| Gemini 3.0 | ✅ | ✅ | ✅ 原生 | $1.25 / $5 |
| Claude 4 Opus | ✅ | ⚠️ | ❌ | $15 / $75 |
| Llama 3.3 Vision | ✅ | ❌ | ❌ | $0.65 / $0.65 |

实战 1:图像理解

# GPT-5 多模态
from openai import OpenAI
import base64

client = OpenAI()

# 读取本地图片
with open("chart.png", "rb") as f:
    image_data = base64.b64encode(f.read()).decode()

response = client.chat.completions.create(
    model="gpt-5",
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "分析这张图表,说明趋势"},
            {
                "type": "image_url",
                "image_url": {
                    "url": f"data:image/png;base64,{image_data}",
                },
            },
        ],
    }],
)

print(response.choices[0].message.content)

应用场景

# 1. 商品识别(电商)
def identify_product(image_url):
    response = client.chat.completions.create(
        model="gpt-5",
        messages=[{
            "role": "user",
            "content": [
                {"type": "text", "text": "识别这个商品的:品类、品牌、型号"},
                {"type": "image_url", "image_url": {"url": image_url}},
            ],
        }],
    )
    return response.choices[0].message.content

# 2. OCR + 结构化
def extract_invoice(image_url):
    response = client.chat.completions.create(
        model="gpt-5",
        messages=[{
            "role": "user",
            "content": [
                {"type": "text", "text": "提取发票信息,输出 JSON"},
                {"type": "image_url", "image_url": {"url": image_url}},
            ],
        }],
        response_format={"type": "json_object"},
    )
    return json.loads(response.choices[0].message.content)

实战 2:音频处理

# Whisper / GPT-5 audio
response = client.audio.transcriptions.create(
    model="whisper-1",
    file=open("meeting.mp3", "rb"),
    response_format="verbose_json",
    timestamp_granularities=["segment"],
)

# 输出示例:
# {
#   "text": "完整转录文本...",
#   "segments": [
#     {"start": 0.0, "end": 5.2, "text": "大家好"},
#     {"start": 5.2, "end": 10.8, "text": "今天讨论..."}
#   ]
# }

应用:会议纪要自动生成

async def meeting_summarizer(audio_path):
    # 1. 转录
    transcript = client.audio.transcriptions.create(
        model="whisper-1",
        file=open(audio_path, "rb"),
    )
    
    # 2. 总结
    summary = client.chat.completions.create(
        model="gpt-5",
        messages=[{
            "role": "user",
            "content": f"""
基于以下会议转录,生成结构化纪要:

# 转录
{transcript.text}

# 输出格式
## 关键决策
- ...

## 行动项
- [负责人] 任务 - 截止日期

## 待办事项
- ...
""",
        }],
    )
    
    return summary.choices[0].message.content

实战 3:视频分析

# Gemini 3.0 原生视频支持
import google.generativeai as genai

genai.configure(api_key="YOUR_API_KEY")
model = genai.GenerativeModel("gemini-3.0-pro")

# 上传视频
video_file = genai.upload_file("product_demo.mp4")

# 等待处理完成
while video_file.state.name == "PROCESSING":
    time.sleep(5)
    video_file = genai.get_file(video_file.name)

# 分析
response = model.generate_content([
    video_file,
    "总结这个产品演示的关键功能点,按时间线列出",
])

print(response.text)

视频分析应用

# 1. 短视频内容审核
def video_content_moderation(video_path):
    response = model.generate_content([
        genai.upload_file(video_path),
        """分析这个视频,输出 JSON:
        {
          "safe": true/false,
          "issues": ["..."],
          "categories": ["violence", "adult", ...],
          "confidence": 0-1
        }
        """,
    ])
    return json.loads(response.text)

# 2. 教学视频自动生成字幕
def generate_subtitles(video_path):
    response = model.generate_content([
        genai.upload_file(video_path),
        "为这个视频生成中英双语 SRT 字幕",
    ])
    return parse_srt(response.text)

实战 4:完整多模态应用

案例:智能客服(支持图片 + 音频)

class SmartCustomerService:
    def __init__(self):
        self.client = OpenAI()
    
    async def handle(self, user_message: dict):
        content = []
        
        # 添加文本
        if "text" in user_message:
            content.append({"type": "text", "text": user_message["text"]})
        
        # 添加图片
        if "image_url" in user_message:
            content.append({
                "type": "image_url",
                "image_url": {"url": user_message["image_url"]},
            })
        
        # 处理
        response = self.client.chat.completions.create(
            model="gpt-5",
            messages=[{
                "role": "system",
                "content": "你是智能客服,支持图片理解",
            }, {
                "role": "user",
                "content": content,
            }],
        )
        
        return response.choices[0].message.content

# 使用
service = SmartCustomerService()
result = await service.handle({
    "text": "我的订单出了问题,截图给你看",
    "image_url": "https://example.com/screenshot.png",
})

成本优化

1. 压缩图像

from PIL import Image

def compress_image(input_path, output_path, max_size=1024):
    """压缩到 max_size x max_size 以下"""
    img = Image.open(input_path)
    img.thumbnail((max_size, max_size))
    img.save(output_path, optimize=True, quality=85)
    
    # 减少 60-80% token 消耗

2. 选择合适的模型

# 不同任务用不同模型
def select_model(task_complexity):
    if task_complexity == "low":
        return "gpt-5-mini"  # 1/3 价格
    elif task_complexity == "medium":
        return "gpt-5"
    elif task_complexity == "high":
        return "claude-4-opus"  # 复杂视觉理解

3. 缓存结果

import hashlib

def get_image_hash(image_url):
    return hashlib.md5(image_url.encode()).hexdigest()

# 缓存到 Redis
def cached_image_analysis(image_url, prompt):
    cache_key = f"img:{get_image_hash(image_url)}:{prompt[:50]}"
    cached = redis.get(cache_key)
    if cached:
        return json.loads(cached)
    
    # 调用 LLM
    result = call_llm(image_url, prompt)
    
    # 缓存 7 天
    redis.setex(cache_key, 604800, json.dumps(result))
    return result

5 个实战应用

1. 电商搜索(图片搜索)

用户拍照 → 图像理解 → 商品识别 → 搜索相似商品

2. 内容审核

用户上传图片 / 视频 → 多模态审核 → 通过 / 拒绝

3. 教育应用

学生拍照作业 → 视觉理解 → 解题思路 + 答案

4. 文档处理

上传 PDF / 图片 → OCR + 理解 → 结构化数据

5. 媒体创作

上传参考图 → 多模态理解 → 生成相似风格内容

5 个常见坑

坑 1:图片过大

# ❌ 直接传 5MB 图片
# 消耗 5000+ tokens

# ✅ 压缩后再传
compress_image("input.jpg", "compressed.jpg", max_size=1024)

坑 2:忽略延迟

# 视频处理可能需要 30 秒
# 必须异步 + 进度反馈

# ✅ 用 streaming 或 polling
async def process_video_with_progress(video_path, callback):
    file = await genai.upload_async(video_path)
    while file.state.name == "PROCESSING":
        progress = get_progress(file)
        await callback(progress)
        await asyncio.sleep(2)

坑 3:错误的多模态拼接

# ❌ 错误:图片和文字混在一起
# 模型可能搞混

# ✅ 正确:明确标识每种模态
content = [
    {"type": "text", "text": "描述这张图片"},
    {"type": "image_url", "image_url": {"url": url}},
]

坑 4:忽视文化差异

# 模型可能对某些文化 / 地域理解有偏差
# 必须人工审核关键内容

# ✅ 加 system prompt 明确
system = """你是专业的内容审核员,
对不同文化保持中立和尊重"""

坑 5:版权问题

# 用户上传的图片可能涉及版权
# 必须有用户协议 + 内容过滤

# ✅ 用 moderation API
result = client.moderations.create(input=user_input)

我的看法

多模态 LLM 是 2026 年 AI 创业的最大机会

  1. 新应用类型:以前需要专业团队的产品,现在独立开发者也能做
  2. 替代传统 CV:图像识别 / OCR 等任务用 LLM 替代传统 CV 更简单
  3. 用户体验跃升:自然语言 + 图像 + 音频 = 真正的人机交互

未来值得关注:

  • 实时多模态:边录边分析(直播 / 视频会议)
  • 3D 理解:点云 / 3D 模型
  • AR 集成:AR 眼镜 + 多模态 LLM
  • 具身智能:机器人 + 多模态感知

参考


本文代码基于 2026 年 6 月最新 API 版本,所有调用代码可直接复制使用。

📚 同主题文章

🤖 AI / LLM 分类更多

🏷️ 本文标签

查看全部 99 篇文章 →