谷歌 Gemini API 快速入门与 LangChain 调用指南
1. 前言
Google Gemini 是谷歌推出的一系列多模态大语言模型,支持文本生成、代码编写、图像识别等多种任务。通过 Google AI Studio 提供的 API,开发者可以便捷地将 Gemini 的能力集成到自己的应用中。本文将详细介绍如何获取 API 密钥、配置环境、调用文本及视觉接口,以及如何使用 LangChain 框架进行高效开发。
2. 环境准备与 API 密钥获取
2.1 前置条件
- Python 3.8 或更高版本
- 有效的 Google 账号
- 已开通 Google Cloud Billing(部分功能可能需要预充值)
2.2 获取 API 密钥
- 访问 Google AI Studio:打开浏览器访问 Google AI Studio 官网。
- 登录账号:使用 Google 账号登录,若无账号请先注册。
- 创建项目:在主页点击'创建项目',输入项目名称并确认设置。
- 生成密钥:在项目设置中选择'API 与服务',点击'创建 API 密钥'。
- 安全配置:建议将 API 密钥保存在环境变量中,切勿硬编码在代码中。
2.3 安装依赖库
pip install google-generativeai langchain-google-genai
3. 基础配置与安全实践
在使用 API 前,必须正确配置密钥。推荐使用 .env 文件配合 python-dotenv 管理敏感信息。
import os
from dotenv import load_dotenv
load_dotenv()
api_key = os.getenv("GOOGLE_API_KEY")
if not api_key:
raise ValueError("未找到 GOOGLE_API_KEY 环境变量")
import google.generativeai as genai
genai.configure(api_key=api_key)
安全警告:永远不要将 API 密钥提交到公共代码仓库(如 GitHub)。如果密钥泄露,请立即在 Google Cloud Console 中禁用并重新生成。
4. 文本生成能力调用
Gemini Pro 模型擅长处理自然语言理解、摘要生成和对话任务。
4.1 基本调用示例
from google.generativeai import GenerativeModel
model = GenerativeModel('gemini-pro')
prompt = "请简述量子计算的基本原理及其潜在应用。"
try:
response = model.generate_content(prompt)
print(response.text)
except Exception as e:
print(f"请求失败:{e}")
4.2 参数调优
可以通过配置 generation_config 来控制输出的风格和质量:
temperature: 控制随机性(0.0 为确定性,1.0 为创造性)。
top_p: 核采样阈值。
max_output_tokens: 限制最大生成长度。
config = {
"temperature": 0.7,
"top_p": 0.95,
"top_k": 40,
"max_output_tokens": 2048,
}
response = model.generate_content(prompt, generation_config=config)
5. 多模态图片识别
Gemini Vision 模型支持分析上传的图片,可识别物体、提取文字或回答关于图片的问题。
5.1 基于 URL 的图片分析
from google.generativeai import GenerativeModel
model = GenerativeModel('gemini-pro-vision')
image_url = "https://example.com/path/to/your/image.jpg"
prompt = "这张图片里有什么?请详细描述。"
response = model.generate_content([image_url, prompt])
print(response.text)
5.2 本地图片处理
若需处理本地图片,需将其转换为 Base64 格式或上传至公开 URL。
import base64
with open("local_image.jpg", "rb") as f:
image_bytes = f.read()
encoded_string = base64.b64encode(image_bytes).decode("utf-8")
message = [encoded_string, "描述这张图片的内容"]
response = model.generate_content(message)
6. 使用 LangChain 集成 Gemini
LangChain 提供了统一的接口来连接各种 LLM,简化了链式调用和记忆管理。
6.1 安装 LangChain 组件
pip install -U langchain-google-genai
6.2 初始化 Chat Model
from langchain_google_genai import ChatGoogleGenerativeAI
llm = ChatGoogleGenerativeAI(
model="gemini-pro",
temperature=0.7,
max_tokens=None,
timeout=None,
max_retries=2,
)
6.3 消息交互示例
from langchain.schema import HumanMessage, SystemMessage
messages = [
SystemMessage(content="你是一个专业的技术助手。"),
HumanMessage(content="如何用 Python 实现一个简单的 HTTP 服务器?")
]
response = llm.invoke(messages)
print(response.content)
6.4 构建简单对话链
from langchain.chains import ConversationChain
from langchain.memory import ConversationBufferMemory
conversation = ConversationChain(
llm=llm,
memory=ConversationBufferMemory(),
verbose=True
)
result = conversation.predict(input="你好,介绍一下你自己。")
print(result)
7. 常见问题与故障排查
7.1 配额限制 (Quota Exceeded)
如果收到 429 错误,说明触发了速率限制。建议:
- 检查 Google Cloud 控制台中的配额设置。
- 实施指数退避重试机制。
- 考虑申请提高配额。
7.2 无效 API 密钥
如果返回 401 错误,请检查:
- 密钥是否复制完整。
- 密钥是否已被禁用。
- 当前项目是否拥有正确的 IAM 权限。
7.3 响应超时
对于复杂任务,增加 timeout 参数或分步处理长上下文。
8. 最佳实践总结
- 成本控制:监控 Token 消耗,避免不必要的长轮询。
- Prompt Engineering:使用清晰的指令和 Few-Shot 示例提升效果。
- 错误处理:始终包裹 API 调用在 try-except 块中。
- 数据隐私:避免向公共 API 发送敏感个人信息。
9. 结语
本文涵盖了从环境搭建到实际调用的全流程。通过 Gemini API 和 LangChain,开发者可以快速构建具备智能对话和多模态理解能力的现代应用。随着模型的迭代,建议持续关注官方文档以获取最新特性。