MLMs之Gemini :Gemini 2.5的简介、安装和使用方法、案例应用之详细攻略
目录
MLMs之Gemini:《Gemini 2.5: Our most intelligent AI model》翻译与解读
相关文章
MLMs之Gemini:《Gemini 2.5: Our most intelligent AI model》翻译与解读
MLMs之Gemini:《Gemini 2.5: Our most intelligent AI model》翻译与解读-CSDN博客
Gemini 2.5的简介
Gemini 2.5 Pro是Google目前最强劲的编码和世界知识模型。它属于Gemini 2.5系列,是混合推理模型,能够在任务中进行扩展思考,并使用工具来最大化响应准确性。 它在编码、推理和多模态能力方面都比之前的Gemini Pro-exp-02-05版本有了显著提升,在数学和STEM基准测试中表现出行业领先的推理能力,尤其擅长代码编写,特别是Web开发。在LMSys上排名第一,对于复杂提示也表现出色。
总而言之,该项目详细介绍了如何使用Google Gen AI SDK和Gemini 2.5 Pro模型,并提供了丰富的示例来演示其在不同任务中的应用。 它强调了Gemini 2.5 Pro的强大能力,以及其在复杂推理、代码生成和多模态处理方面的优势。
1、Gemini 2.5 特点
>> 混合推理模型:能够进行扩展思考,并利用工具提高准确性。
>> 强大的编码能力:尤其擅长Web开发,能够创建引人入胜的Web应用程序和代理代码应用程序,以及代码转换和编辑。
>> 领先的推理能力:在数学和STEM基准测试中表现出色。
>> 多模态能力:支持文本、代码、文档、图像、音频和视频等多种数据类型。
>> 处理复杂提示:能够有效处理复杂提示,并给出全面的回答。
>> 长上下文窗口:虽然教程中未明确说明token数量,但其能够处理长篇幅内容。
>> 可配置参数:允许用户通过调整参数(例如temperature, top_p)来控制模型的输出。
>> 系统指令设置:支持设置系统指令来引导模型的行为,提供更定制化的响应。
>> 安全过滤器:提供安全过滤器来限制或允许特定类型的内容,以适应不同的使用场景。
>> 自动和手动函数调用:支持自动和手动函数调用,允许用户自定义函数并集成到模型中。
>> 代码执行:允许模型生成和运行Python代码,并根据结果进行迭代学习。
>> 接地性(Grounding): 可以使用Google搜索结果作为工具,获取超出其训练数据范围的信息,从而产生更准确、更新和相关的响应。
Gemini 2.5 安装和使用方法
1、安装
安装Google Gen AI SDK for Python
使用pip命令:
%pip install --upgrade --quiet google-genai
2、使用方法
身份验证 (仅限Colab):如果在Google Colab上运行,需要运行from google.colab import auth; auth.authenticate_user()进行身份验证。
连接到生成式AI API服务:可以使用Gemini Developer API (用于小型项目) 或 Vertex AI (用于企业级项目)。Google Gen AI SDK 提供了统一的接口。
设置Google Cloud项目或API密钥 (Vertex AI):可以选择使用Google Cloud项目或Vertex AI API密钥 (Express模式)。前者需要在Google Cloud项目中启用Vertex AI API;后者需要获取API密钥。
加载Gemini 2.5 Pro模型:使用MODEL_ID = "gemini-2.5-pro-exp-03-25"指定模型ID。
使用client.models.generate_content()方法生成文本:将提示文本传递给该方法,并使用.text属性获取文本内容。 该方法支持多种参数配置,例如temperature, top_p, candidate_count, system_instruction, safety_settings等,以控制模型的输出。
使用client.models.generate_content_stream()方法生成文本流:以流式方式获取模型生成的文本。
使用client.chats.create()方法启动多轮对话:创建一个对话对象,并使用send_message()方法发送消息。
使用异步方法:client.aio 提供了异步方法,例如client.aio.models.generate_content。
处理多模态数据:支持通过Part.from_bytes()或Part.from_uri()上传本地文件或网络资源(图像、音频、视频等)。
使用函数调用:支持自动和手动函数调用,允许模型调用用户定义的函数。
代码执行:使用ToolCodeExecution工具,允许模型执行Python代码。
控制生成的输出:使用response_schema参数指定输出结构。
# 导入必要的库
from IPython.display import HTML, Image, Markdown, display # 用于在Jupyter Notebook中显示HTML、图像、Markdown和其它内容
from google import genai # Google Gen AI SDK的核心库
from google.genai.types import ( # Google Gen AI SDK中定义的数据类型
FunctionDeclaration, # 函数声明
GenerateContentConfig, # 生成内容配置
GoogleSearch, # Google搜索工具
HarmBlockThreshold, # 安全过滤阈值
HarmCategory, # 安全过滤类别
Part, # 多模态数据片段
SafetySetting, # 安全设置
Tool, # 工具
ToolCodeExecution, # 代码执行工具
)
import sys # 用于检查运行环境
import os # 用于获取环境变量
# 安装Google Gen AI SDK for Python (如果需要)
# %pip install --upgrade --quiet google-genai
# 身份验证 (仅限Google Colab)
if "google.colab" in sys.modules:
from google.colab import auth # Google Colab身份验证库
auth.authenticate_user() # 进行用户身份验证
# 连接到生成式AI API服务
# 选择使用Google Cloud项目或Vertex AI API密钥 (Express模式)
# 选项1:使用Google Cloud项目 (推荐)
PROJECT_ID = "[your-project-id]" # @param {type: "string", placeholder: "[your-project-id]", isTemplate: true}
# 获取GOOGLE_CLOUD_PROJECT环境变量,如果没有设置则使用用户提供的PROJECT_ID
if not PROJECT_ID or PROJECT_ID == "[your-project-id]":
PROJECT_ID = str(os.environ.get("GOOGLE_CLOUD_PROJECT"))
LOCATION = os.environ.get("GOOGLE_CLOUD_REGION", "us-central1") # 获取GOOGLE_CLOUD_REGION环境变量,如果没有设置则默认为us-central1
client = genai.Client(vertexai=True, project=PROJECT_ID, location=LOCATION) # 创建客户端对象,连接到Vertex AI
# 选项2:使用Vertex AI API密钥 (Express模式) (注释掉,选择一种方式即可)
# API_KEY = "[your-api-key]" # @param {type: "string", placeholder: "[your-api-key]", isTemplate: true}
# if not API_KEY or API_KEY == "[your-api-key]":
# raise Exception("您必须提供API密钥才能在Express模式下使用Vertex AI。")
# client = genai.Client(vertexai=True, api_key=API_KEY)
# 验证连接模式
if not client.vertexai:
print("正在使用Gemini Developer API。")
elif client._api_client.project:
print(f"正在使用Vertex AI,项目ID:{client._api_client.project},区域:{client._api_client.location}")
elif client._api_client.api_key:
print(f"正在使用Vertex AI (Express模式),API密钥:{client._api_client.api_key[:5]}...{client._api_client.api_key[-5:]}")
# 使用Gemini 2.5 Pro模型
MODEL_ID = "gemini-2.5-pro-exp-03-25" # 指定Gemini 2.5 Pro模型的ID
# 生成文本
response = client.models.generate_content( # 调用generate_content方法生成文本
model=MODEL_ID, # 指定模型ID
contents="太阳系中最大的行星是什么?" # 输入提示
)
display(Markdown(response.text)) # 显示生成的文本
# 其它功能的代码 (Generate content stream, Multi-turn chat, Asynchronous requests, ... ) 类似地添加中文注释即可. 以下是一些示例:
# 生成文本流
# for chunk in client.models.generate_content_stream(
# model=MODEL_ID,
# contents="给我讲一个关于孤独的机器人找到意想不到友谊的故事。",
# ):
# display(Markdown(chunk.text))
# display(Markdown("---"))
# 多轮对话
# chat = client.chats.create(model=MODEL_ID)
# response = chat.send_message("写一个检查年份是否为闰年的函数。")
# display(Markdown(response.text))
# response = chat.send_message("为生成的函数编写单元测试。")
# display(Markdown(response.text))
Gemini 2.5 案例应用
文本生成:回答问题、编写故事、翻译文本等。
代码生成:生成Web应用程序、游戏代码等。
多模态推理:根据图像解决几何问题等。
数学和问题解决:解决数学问题、脑筋急转弯等。
多轮对话:进行多轮对话,上下文信息得到保留。