先做个广告:需要购买Gemini帐号或代充值Gemini会员,请加微信:gptchongzhi
本文全面解析了Google Gemini API,涵盖了可用的主要模型家族(如Gemini 2.5 Pro/Flash、2.0 Flash及轻量版),并指导开发者如何通过API密钥或OAuth进行身份验证,内容详述了多种调用方式,包括使用官方及第三方SDK、REST API和用于移动端的Google AI Edge SDK,指南深入介绍了文本生成、文件分析与音频处理等核心功能,提供了参数调优及处理速率限制的实用技巧,是构建及优化生成式AI应用的系统教程。
本文目录导读:
推荐使用Gemini中文版,国内可直接访问:https://ai.gpt86.top
什么是 Gemini API?
Gemini 是 Google 开发的多模态大模型,API 支持文本、图像、音频、视频等多种输入形式。
快速开始
获取 API Key
访问 Google AI Studio 获取免费 API Key
安装 SDK
pip install google-generativeai
基础调用示例
import google.generativeai as genai
# 配置 API Key
genai.configure(api_key="YOUR_API_KEY")
# 选择模型
model = genai.GenerativeModel('gemini-1.5-pro')
response = model.generate_content("用一句话解释量子计算")
print(response.text)
核心功能
📝 文本生成
# 多轮对话
chat = model.start_chat(history=[])
response = chat.send_message("你好,我想学习Python")
response = chat.send_message("推荐一些学习资源")
🖼️ 图像理解
import PIL.Image
img = PIL.Image.open('photo.jpg')
model = genai.GenerativeModel('gemini-1.5-pro')
response = model.generate_content(["描述这张图片", img])
🎯 流式输出
response = model.generate_content("写一首诗", stream=True)
for chunk in response:
print(chunk.text, end="")
常用模型
| 模型 | 特点 | 适用场景 |
|---|---|---|
gemini-1.5-pro |
最强性能,200万上下文 | 复杂推理、长文档 |
gemini-1.5-flash |
快速轻量,100万上下文 | 高并发、实时应用 |
gemini-2.0-flash-exp |
最新实验版 | 前沿功能体验 |
高级配置
generation_config = {
"temperature": 0.7, # 创造性 (0-1)
"top_p": 0.95, # 核采样
"top_k": 40, # Top-K 采样
"max_output_tokens": 2048,
}
model = genai.GenerativeModel(
'gemini-1.5-pro',
generation_config=generation_config
)
实用技巧
安全设置
safety_settings = [
{"category": "HARM_CATEGORY_HARASSMENT", "threshold": "BLOCK_NONE"},
{"category": "HARM_CATEGORY_HATE_SPEECH", "threshold": "BLOCK_NONE"},
]
model = genai.GenerativeModel(
'gemini-1.5-pro',
safety_settings=safety_settings
)
系统指令
model = genai.GenerativeModel(
'gemini-1.5-pro',
system_instruction="你是一位专业的Python导师,用中文回答"
)
费用说明
- 免费版:速率限制,适合学习和测试
- 付费版:按使用量计费,更高配额
- Gemini 1.5 Flash 更经济实惠
- Gemini 1.5 Pro 功能更强但更贵
常见问题解决
# 错误处理
try:
response = model.generate_content("你好")
except Exception as e:
print(f"错误: {e}")
需要更详细的某个方面说明吗?比如函数调用、文件处理、或特定应用场景?


