TL;DR: 本文档旨在为SRE团队提供Gemini API的Python SDK集成与应用指南。内容涵盖API密钥获取、环境配置、文本生成、多模态输入处理及一个具体的代码生成应用案例。确保按照步骤操作以实现高效集成。
1. 前置条件与环境准备
在开始Gemini API开发前,需完成以下准备工作。本指南基于Python 3.9+。
1.1. 获取Google AI Studio API Key
访问 Google AI Studio 获取API Key。这是所有Gemini API调用的凭证。
Note: 请妥善保管您的API Key,切勿硬编码到公开仓库中。建议使用环境变量或密钥管理服务。
1.2. Python环境配置
安装必要的Python库。推荐使用虚拟环境进行管理。
python3 -m venv gemini_env
source gemini_env/bin/activate # macOS/Linux
# gemini_env\Scripts\activate.bat # Windows
pip install -q -U google-generativeai
Expected Output (部分):
... Successfully installed google-generativeai-0.6.0 ...
2. Gemini API基础操作
本节介绍如何初始化Gemini模型并执行基本的文本生成任务。
2.1. 模型初始化与文本生成
设置API Key并初始化Gemini模型。使用 gemini-pro 模型处理纯文本输入。
import google.generativeai as genai
import os
# 从环境变量加载API Key
genai.configure(api_key=os.environ.get("GEMINI_API_KEY"))
# 初始化Gemini Pro模型
model = genai.GenerativeModel('gemini-pro')
# 发送文本请求
response = model.generate_content("解释一下量子纠缠,用简单易懂的语言。")
# 打印生成内容
print(response.text)
Expected Output (示例):
量子纠缠是一种奇特的量子力学现象... (具体内容会根据模型生成而变化)
Warning: 在运行代码前,请确保已设置环境变量 GEMINI_API_KEY。例如在Linux/macOS上:export GEMINI_API_KEY="YOUR_API_KEY"。
2.2. 多模态输入处理 (Gemini Pro Vision)
Gemini支持多模态输入,例如图像和文本的组合。使用 gemini-pro-vision 模型。
import PIL.Image
import requests
# 下载一个示例图片 (如果本地没有)
# image_url = "https://upload.wikimedia.org/wikipedia/commons/thumb/3/36/Two_cats_on_fence_%28cropped%29.jpg/640px-Two_cats_on_fence_%28cropped%29.jpg"
# img_data = requests.get(image_url).content
# with open('cats.jpg', 'wb') as handler:
# handler.write(img_data)
img = PIL.Image.open('cats.jpg') # 假设 'cats.jpg' 已存在于当前目录
model_vision = genai.GenerativeModel('gemini-pro-vision')
response_vision = model_vision.generate_content(["描述这张图片中的内容,并猜测它们在做什么?", img])
print(response_vision.text)
Expected Output (示例):
图片中是两只猫坐在栅栏上。它们看起来像在晒太阳或者观察周围环境。一只猫是黑白相间的,另一只猫是橘色的。它们可能在休息或者等待捕食。 (具体内容会根据图片和模型生成而变化)
3. 应用案例:自动化代码生成与解释
本案例展示如何利用Gemini API实现一个简单的自动化代码生成和解释工具。这有助于SRE团队快速生成或理解脚本片段。
3.1. 编写代码生成函数
创建一个函数,接收用户需求并生成Python代码。
def generate_python_code(prompt: str) -> str:
"""
根据用户描述生成Python代码。
"""
model = genai.GenerativeModel('gemini-pro')
response = model.generate_content(f"请生成一个Python函数,实现以下功能:{prompt}。只返回代码,不要解释。")
return response.text.strip()
def explain_code(code_snippet: str) -> str:
"""
解释给定的Python代码片段。
"""
model = genai.GenerativeModel('gemini-pro')
response = model.generate_content(f"请详细解释以下Python代码的功能和用法:\n```python\n{code_snippet}\n```")
return response.text.strip()
# 示例:Gemini怎么用 来生成一个斐波那契数列函数
user_prompt = "计算斐波那契数列的第n个数字"
generated_code = generate_python_code(user_prompt)
print("\n--- 生成的代码 ---")
print(generated_code)
# 示例:解释生成的代码
explanation = explain_code(generated_code)
print("\n--- 代码解释 ---")
print(explanation)
Expected Output (示例):
--- 生成的代码 ---
def fibonacci(n):
if n <= 0:
return "输入必须是正整数"
elif n == 1:
return 0
elif n == 2:
return 1
else:
a, b = 0, 1
for _ in range(2, n):
a, b = b, a + b
return b
--- 代码解释 ---
这个Python函数 `fibonacci(n)` 用于计算斐波那契数列的第 `n` 个数字... (详细解释)
这个例子展示了 Gemini怎么用 于快速原型开发和文档生成。通过微调提示词,可以适配更复杂的SRE任务,例如生成特定工具的配置脚本或故障排查命令。