使用 Python 调用 Google Gemini API:从零开始构建你的第一个 AI 应用
简介
人工智能(AI)已不再是遥不可及的前沿科技,而是融入我们日常工作与创作的强大工具。作为开发者,将AI能力集成到自己的项目中,可以极大地提升应用的智能化水平。Google推出的 Gemini 系列模型,以其强大的多模态理解与生成能力,成为了当前炙手可热的选择之一。
本教程将手把手带你使用 Python,从零开始接入 Google Gemini API,构建一个能够进行文本对话、图片理解等多功能的AI应用。无论你是想为你的网站添加智能客服,还是想开发一个图片分析工具,这篇教程都将为你打下坚实的基础。完成本教程后,你将掌握调用大型语言模型(LLM)API的核心技能。
前置准备
在开始之前,请确保你已准备好以下环境与资源:
- Python 环境:建议安装 Python 3.8 或更高版本。
- Google 账号:用于访问 Google AI Studio 和获取 API 密钥。
- 代码编辑器:推荐使用 VS Code 或 PyCharm 等专业 IDE,能极大提升开发效率。
- 基础的 Python 知识:了解变量、函数、包安装等基本概念。
第一步:获取 Gemini API 密钥
所有对 AI 模型的访问都需要通过一个唯一的 API 密钥进行身份验证和配额管理。
- 打开 Google AI Studio 网站(
aistudio.google.com)。 - 使用你的 Google 账号登录。
- 在左侧菜单栏中找到并点击 “Get API Key”。
- 点击 “Create API key in new project” 按钮,系统会为你生成一个密钥。
- 重要:立即复制并妥善保管这个密钥。切勿将其直接写入公开的代码或仓库中。最佳实践是使用环境变量来存储它。
第二步:配置 Python 开发环境
我们需要安装 Google 官方提供的 Python SDK 来简化 API 调用。
- 创建一个项目文件夹,并在其中创建一个新的 Python 虚拟环境(可选但推荐)。
bash
mkdir my-gemini-app
cd my-gemini-app
python -m venv venv
# 激活虚拟环境 (Windows)
venv\Scripts\activate
# 激活虚拟环境 (macOS/Linux)
source venv/bin/activate -
安装必要的库:
bash
pip install google-generativeai
这个库是调用 Gemini API 的官方客户端,它封装了底层的 HTTP 请求,使我们只需关注业务逻辑。 -
设置 API 密钥:
为了避免将密钥硬编码在代码中,我们可以将其设置为环境变量。在终端中(或在你的.env文件中)运行:
bash
# macOS/Linux
export GOOGLE_API_KEY=‘你复制的API密钥’
# Windows (CMD)
set GOOGLE_API_KEY=你复制的API密钥
# Windows (PowerShell)
$env:GOOGLE_API_KEY=“你复制的API密钥”
在代码中,我们可以使用os.getenv(“GOOGLE_API_KEY”)来安全地获取它。
第三步:编写第一个对话程序
现在,让我们编写一个最简单的程序,与 Gemini 进行一次文本对话。
创建一个名为 chat_demo.py 的文件,并输入以下代码:
import os
import google.generativeai as genai
# 1. 从环境变量配置 API 密钥
api_key = os.getenv(“GOOGLE_API_KEY”)
if not api_key:
raise ValueError(“请设置环境变量 GOOGLE_API_KEY”)
genai.configure(api_key=api_key)
# 2. 初始化模型
# 我们使用 gemini-pro 模型,它专为文本交互优化
model = genai.GenerativeModel(‘gemini-pro’)
# 3. 发起一次简单的对话
response = model.generate_content(“用简单的话解释一下量子纠缠是什么?”)
# 4. 打印模型的回复
print(“Gemini 的回答:”)
print(response.text)
代码解析:
* 我们首先通过 genai.configure() 函数配置 API 密钥。
* 接着,我们实例化了一个 GenerativeModel 对象,指定了使用 gemini-pro 模型。
* generate_content 方法是核心,它向模型发送一个提示(prompt),并等待返回生成的结果。
* 最后,我们打印出 response.text,即模型的文本回复。
在终端运行 python chat_demo.py,你将看到 Gemini 给出的关于量子纠缠的通俗解释。
第四步:实现多轮对话
单次问答很有趣,但更强大的是能够进行上下文连贯的多轮对话。
import os
import google.generativeai as genai
# 配置 API 密钥和模型(同上,此处省略)
genai.configure(api_key=os.getenv(“GOOGLE_API_KEY”))
model = genai.GenerativeModel(‘gemini-pro’)
# 启动一个聊天会话
chat = model.start_chat(history=[])
# 定义一个函数来进行对话
def converse(prompt):
response = chat.send_message(prompt)
return response.text
# 进行多轮交互
print(“开始与 Gemini 对话(输入 ‘quit’ 退出)”)
while True:
user_input = input(“你: “)
if user_input.lower() == ‘quit’:
break
reply = converse(user_input)
print(f“Gemini: {reply}\n”)
关键点:我们使用了 model.start_chat() 来开启一个持续的聊天会话。chat 对象会自动管理对话历史(history),使得后续的提问能够基于之前的上下文,让对话更加自然连贯。这对于构建聊天机器人至关重要。
第五步:探索多模态能力(图文理解)
Gemini 的一大亮点是原生支持多模态输入。让我们来试试让它“看图说话”。
首先,在你的项目目录中准备一张图片(例如 cat.jpg)。
import os
import google.generativeai as genai
from PIL import Image # 需要安装 Pillow: pip install Pillow
genai.configure(api_key=os.getenv(“GOOGLE_API_KEY”))
model = genai.GenerativeModel(‘gemini-pro-vision’) # 注意:图文模型是 gemini-pro-vision
# 打开本地图片
image = Image.open(‘cat.jpg’)
# 构造提示词,包含图片和文本
prompt = “请详细描述这张图片中的内容,包括猫咪的品种、颜色、姿态和它所处的环境。”
contents = [prompt, image]
# 发送请求
response = model.generate_content(contents)
print(“Gemini 对图片的描述:”)
print(response.text)
注意:我们更换了模型为 gemini-pro-vision,这是专门为图像理解优化的模型。我们通过列表将文本提示和 PIL.Image 对象一起传入 generate_content 方法。模型会结合图文信息进行理解和生成。
相关工具与资源推荐
为了更高效地进行 AI 应用开发,以下工具值得你关注:
- 开发硬件:长时间的编码和模型调试,一台性能出色的笔记本电脑和一套舒适的外设至关重要。比如机械键盘能提升打字手感。
- API 调试工具:除了写代码,使用 Postman 或 curl 直接测试 API 端点,有助于理解请求和响应的原始格式。
- 官方文档与社区:Google AI 官方文档是解决疑难杂症的第一手资料。Stack Overflow 和 GitHub 上的相关开源项目也能提供宝贵参考。
- 学习资料:如果你对 AI 背后的原理感兴趣,可以阅读一些经典的机器学习书籍来加深理解。
常见问题(FAQ)
-
Q: 调用 API 时报错 “API key not valid”,怎么办?
- A: 首先检查环境变量
GOOGLE_API_KEY是否设置正确。其次,确认密钥是否在 Google AI Studio 中被禁用或删除。注意密钥字符串不要包含多余的空格或引号。
- A: 首先检查环境变量
-
Q:
gemini-pro和gemini-pro-vision有什么区别?- A:
gemini-pro专注于文本理解与生成,速度快,成本相对较低。gemini-pro-vision是多模态模型,能同时处理文本和图像输入,但调用成本稍高。根据你的需求选择合适的模型。
- A:
-
Q: 如何控制模型输出的格式,例如让它只返回 JSON?
- A: 你可以在提示词(prompt)中明确指令。例如:“请以 JSON 格式回复,包含 ‘name’ 和 ‘description’ 两个键。” 模型通常能很好地遵循此类指令。
-
Q: 模型的回复有字数限制吗?
- A: 是的,每次 API 调用生成的内容都有 token(词元)限制。
gemini-pro模型的输出上限通常是 8192 个 token。对于长文本生成,你可能需要分批次请求或使用流式输出(streaming)。
- A: 是的,每次 API 调用生成的内容都有 token(词元)限制。
总结
恭喜你!通过本教程,你已经成功迈出了将 Google Gemini AI 能力集成到自己应用中的第一步。我们回顾一下关键步骤:获取 API 密钥 -> 配置环境 -> 安装 SDK -> 调用基础文本模型 -> 实现多轮对话 -> 探索多模态能力。
掌握了这些基础,你的想象力就是唯一的边界。你可以在此基础上,为你的博客添加自动摘要功能,开发一个智能客服机器人,或者创建一个能根据图片生成故事的创意工具。AI 开发的旅程充满挑战与乐趣,建议你准备好一台可靠的开发电脑,从调试一个又一个bug中积累经验。如果需要深入理解算法,一些经典的人工智能书籍也能提供理论指导。现在,就打开你的编辑器,开始构建下一个令人惊叹的 AI 应用吧!