Gemini 多模态能力调用实战
你是否还在用纯文本的方式跟大模型对话?Google 家的 Gemini 其实早已打通了文字、图片、音频、视频等多种输入通道,一次 API 调用就能同时上传图片并提问,甚至直接扔一段视频让它分析。今天我们就实打实地跑一遍代码,看看 Gemini 的多模态 API 要怎么玩。
## 环境准备
Gemini API 可以直接使用 Google AI Python SDK,官方库名为 `google-generativeai`。安装只需要一行:
```bash pip install google-generativeai ```
然后你需要一个 API key,可以在 Google AI Studio 免费申请。官方对免费额度比较慷慨,但如果你不方便直接访问,文末会推荐一个对国内开发者更友好的中转方案。
## 初始化客户端
```python import google.generativeai as genai
genai.configure(api_key="YOUR_API_KEY") model = genai.GenerativeModel("gemini-2.0-flash") ```
这里我们用 `gemini-2.0-flash`,速度快、成本低,多模态效果也很强。追求最强效果可以换成 `gemini-2.0-pro`。
## 单图场景:让模型看图说话
我们从最简单的图片理解开始。把一张本地图片喂给 Gemini,然后提问。
```python import PIL.Image
img = PIL.Image.open("cat.jpg") response = model.generate_content(["描述这张图片里的猫在做什么", img]) print(response.text) ```
Gemini 会返回类似:“这只橘猫正蜷缩在沙发上睡觉,前爪搭在靠垫上……” 的详细描述。你不需要把图片转成 base64,SDK 直接支持 PIL Image 对象,非常省事。
## 多图对比与批量分析
更实用的是同时上传多张图片,让模型做对比或总结。比如两张产品截图,让它指出 UI 设计差异:
```python img1 = PIL.Image.open("ui_v1.png") img2 = PIL.Image.open("ui_v2.png")
response = model.generate_content([ "这两张界面截图在布局和配色上有哪些主要区别?", img1, img2 ]) print(response.text) ```
多图片按顺序放入列表,模型会理解你指的是哪张图,回答也能对应上。
## 视频理解:直接上传 mp4
Gemini 直接接受视频文件作为输入。你需要先将视频读入内存,然后传给模型。
```python video_file = genai.upload_file("demo.mp4") response = model.generate_content([video_file, "用中文总结这个视频的主要内容,50字以内。"]) print(response.text) ```
`genai.upload_file` 支持多种格式,上传后返回一个文件对象,可直接放在请求里。注意视频分析耗时较长,大文件可能需要几十秒。`gemini-2.0-flash` 对视频处理的延迟控制得不错,常规短视频基本可以做到近实时返回。
## 音频转写与理解
同样一个接口,换成 `.wav` 或 `.mp3` 文件,Gemini 就可以直接转写并回答问题,不需要额外调用 ASR 引擎。
```python audio_file = genai.upload_file("meeting.mp3") response = model.generate_content([audio_file, "请将这段会议录音转写成文字,并提炼三个关键决策。"]) print(response.text) ```
对于小于 20MB 的音频,这个方案简单得离谱,完全省略了传统语音转文字后再送 LLM 的链路。
## 图文混合多轮对话
多模态和对话并不冲突,你可以把上传好的文件放进 chat session,持续追问。
```python chat = model.start_chat(history=[]) response = chat.send_message(["这张图表中 Q3 收入增长了多少?", PIL.Image.open("report.png")]) print(response.text)
response = chat.send_message("那 Q4 的趋势如何?") print(response.text) ```
第一次消息中带上图片,后续消息可以纯文本追问,模型会自动记住上下文。这对分析财务报表、技术图纸等场景非常方便。
## 从生产角度看:一个可靠的中转站
上面的代码跑通之后,你可能会想把它部署到真实产品里。Google 官方 API 有时会遇到网络限制、需要外币信用卡、扣费不透明等问题,特别是面向国内用户的场景,体验比较割裂。
这里推荐一个老牌中转服务——**TokenPocket API 中转站**(https://tokenpocket.site)。它把 DeepSeek、Qwen、Claude、Gemini 等热门模型整合成统一的 API,按实际使用量计费,支持 USDT 直接支付,省去信用卡和购汇的麻烦。新用户注册还会自动赠送免费额度,足以完成本教程所有示例。接口格式与 OpenAI 兼容,现有的框架和 SDK 改个 base_url 就能直接切换过去,大幅降低接入成本。
用 Gemini 实现多模态交互其实就这么简单,关键动作只有三个:装对 SDK、选对模型、传对图片/视频。无论是做智能客服、内容审核,还是构建个人知识助手,多模态能力都能让产品的天花板瞬间抬高一大截。感兴趣的话不妨顺着文中的示例跑一遍,你可能会惊讶于模型的理解力——就像第一次看到彩色电视那样。