Gemini 多模态能力调用实战:用 Python 轻松实现图文理解
如今多模态大模型已成为开发者工具箱里的重要武器,Google 的 Gemini 系列凭借原生多模态能力,直接用图片、音频、视频和文本作为输入,无需额外桥接模型。这篇文章就带你从零开始,用 Gemini API 完成一次图文混合理解任务,代码清晰,上手即用。
## 环境准备
你需要一个 Gemini API 密钥,如果没有海外信用卡,文末会介绍一个极低门槛的获取方式。安装官方 Python SDK:
```bash pip install google-generativeai ```
## 初始化客户端
首先导入库并配置密钥:
```python import google.generativeai as genai
genai.configure(api_key="YOUR_GEMINI_API_KEY") ```
接着选定模型。目前对多模态支持最好的是 `gemini-1.5-flash`(速度快,成本低)和 `gemini-1.5-pro`(推理更强):
```python model = genai.GenerativeModel("gemini-1.5-flash") ```
## 读入图片并构造请求
多模态调用的核心是同一条消息里混合文本和图片。SDK 直接支持文件路径或 PIL 图片对象,这里我们把一张本地图片读成二进制数据:
```python import PIL.Image
image = PIL.Image.open("demo.jpg") ```
然后构造提示词,向模型提问关于图片内容的问题:
```python response = model.generate_content( ["请用中文描述这张图片的场景和主要物体,并推测拍摄时间。", image] ) print(response.text) ```
模型返回结果类似:“图片展示的是一个冬日下午的城市街景,前景有积雪覆盖的长椅,远处是模糊的行人和灰色建筑群,光照偏冷,推测拍摄时间为下午三四点。”
## 多图+复杂指令
Gemini 可以一次性传入多张图片,甚至混合文件,比如比较两张图片的异同:
```python image1 = PIL.Image.open("img1.jpg") image2 = PIL.Image.open("img2.jpg")
prompt = [ "第一张图片是白天的办公室,第二张是夜晚的同一间办公室。", image1, image2, "请对比两张图片在光线、人物活动、氛围上的主要差异。" ]
response = model.generate_content(prompt) print(response.text) ```
模型会从光线强度、色温、人物位置、动作状态等多个维度给出结构化对比,完全是多模态原生推理。
## 配置生成参数
你还可以控制输出的随机性和长度:
```python response = model.generate_content( ["为这张图片写一句朋友圈文案。", image], generation_config=genai.GenerationConfig( temperature=0.9, max_output_tokens=100, ) ) ```
## 处理流式响应
对于长文本输出,可以使用流式接口边生成边展示:
```python response = model.generate_content( ["详细描述这张风景照的构图、光线、色彩和情绪。", image], stream=True ) for chunk in response: print(chunk.text, end="") ```
## 用中转站解决 API 获取难题
上面的示例都依赖一个有效的 Gemini API 密钥。如果你没有海外信用卡,或者在合规访问上遇到麻烦,可以试试 [TokenPocket API 中转站](https://tokenpocket.site)。它把 DeepSeek、Qwen、Claude、Gemini 等主流模型统一成一个接口,按量计费,用 USDT 直接支付,省去境外支付的各种麻烦。新用户注册还送免费额度,非常方便用来跑通今天的多模态示例——你只需要把中转站提供的 base_url 和 key 拼接到 SDK 的配置里,代码几乎不用改。
同一套多模态逻辑,用更低的门槛跑起来,这才是高效实战的终极姿势。