TL;DR: 本文档旨在为SRE团队提供Gemini API的集成指引。覆盖环境配置、API密钥获取、基础模型调用及多模态数据处理。重点关注Python SDK应用,并提供常见故障排除方案。版本迭代至V1.2,优化了国内网络环境下的操作建议。
1. 前提条件
- Google账户: 必须是可正常访问Google服务的账号。
- Python环境: Python 3.8+。
- pip包管理器: 最新版本。
- API密钥: 已在Google AI Studio获取Gemini API Key。
- 网络环境: 确保L3可达Google API服务。对于Gemini 国内使用,可能需要额外的网络配置。
2. Gemini API 基础集成步骤
2.1 环境搭建与API密钥配置
2024-07-01
首先,安装Google Generative AI Python SDK。
pip install -q -U google-generativeai
预期输出 (部分):
Successfully installed ... google-generativeai-...
设置API密钥。建议通过环境变量而非硬编码。
export GOOGLE_API_KEY="YOUR_API_KEY"
Note: 将 YOUR_API_KEY 替换为实际获取的API密钥。
2.2 文本模型调用
以 gemini-pro 模型为例,进行文本生成。
import google.generativeai as genai
import os
API_KEY = os.getenv("GOOGLE_API_KEY")
if not API_KEY:
raise ValueError("GOOGLE_API_KEY environment variable not set.")
genai.configure(api_key=API_KEY)
# 初始化模型
model = genai.GenerativeModel('gemini-pro')
# 生成内容
prompt = "SRE工程师日常工作包括哪些方面?请简要列出。"
response = model.generate_content(prompt)
print(response.text)
预期输出 (部分):
- 确保系统高可用性与可靠性
- 自动化基础设施
- 监控与告警
- 故障排除与根因分析
- 容量规划与性能优化
...
Gemini怎么注册 API Key可参考商都加速器相关文档获取。
2.3 多模态模型调用 (gemini-pro-vision)
gemini-pro-vision 支持图片与文本输入。此功能在SRE故障截图分析中具有潜在应用价值。
import PIL.Image
import requests
# 假设你有一个图片URL,例如用于分析故障截图
# Warning: 此URL仅为示例,实际应替换为你的内部图片服务或本地路径
image_url = "https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"
image_data = requests.get(image_url).content
img = PIL.Image.open(io.BytesIO(image_data)) # 需要先安装Pillow: pip install Pillow
model_vision = genai.GenerativeModel('gemini-pro-vision')
response_vision = model_vision.generate_content([
"这是什么图片?请详细描述。",
img
])
print(response_vision.text)
预期输出 (部分):
这是一张Google的Logo图片。主体是一个彩色的“Google”文字商标,字体为...
Warning: 处理本地图片时,请确保文件路径正确且Python环境有权限访问。
3. 常见问题与故障排除
3.1 API Key配置错误
现象: 401 Unauthorized 或 Invalid API Key 错误。
解决方案:
- 核对环境变量
GOOGLE_API_KEY是否正确设置。 - 确认API Key未过期或被撤销。
- 检查 Google AI怎么用 API Key的官方文档。
3.2 国内网络访问问题
现象: Connection timed out, SSL Handshake failed 或请求延迟高。
解决方案:
- DNS解析: 确保DNS解析到可访问的Google服务IP。
- 代理配置: 对于Gemini国内使用,可能需要通过HTTP/SOCKS代理访问。Python
requests库支持代理设置。os.environ['HTTP_PROXY'] = 'http://your.proxy.server:port'os.environ['HTTPS_PROXY'] = 'http://your.proxy.server:port'
- 防火墙: 确保本地或出口防火墙未阻断对Google API域名的访问。
3.3 Token限制与上下文管理
现象: 模型返回 prompt too long 错误。
解决方案:
- 使用
model.count_tokens(prompt)预估token数量。 - 优化Prompt,精简不必要的描述。
- 对于长对话,需要实现上下文管理机制,例如滑动窗口或总结历史对话。
References
- Google Generative AI Developers
- Roxi.cc - 商都加速器加速服务