Vertex AI 整合与兼容性自
langchain-google-genai 4.0.0 起,此包使用整合后的 google-genai SDK,而非旧版 google-ai-generativelanguage SDK。此迁移带来了对通过 Gemini Developer API 和 Vertex AI 中的 Gemini API 使用 Gemini 模型的支持,取代了 langchain-google-vertexai 中的某些类,例如 ChatVertexAI。阅读完整公告和迁移指南。概述
集成详情
模型功能
设置
要访问 Google AI 模型,您需要创建一个 Google 帐户,获取 Google AI API 密钥,并安装langchain-google-genai 集成包。
安装
凭证
此集成支持两种后端:Gemini Developer API 和 Vertex AI。后端根据您的配置自动选择。后端选择
后端确定如下:- 如果设置了
GOOGLE_GENAI_USE_VERTEXAI环境变量,则使用该值 - 如果提供了
credentials参数,则使用 Vertex AI - 如果提供了
project参数,则使用 Vertex AI - 否则,使用 Gemini Developer API
vertexai=True 或 vertexai=False 以覆盖自动检测。
- Gemini Developer API
- 使用 API 密钥的 Vertex AI
- 使用凭证的 Vertex AI
使用 API 密钥快速设置推荐用于个人开发者/新用户。前往 Google AI Studio 生成 API 密钥:集成首先检查
GOOGLE_API_KEY,然后回退到 GEMINI_API_KEY。环境变量
要启用模型调用的自动跟踪,请设置您的 LangSmith API 密钥:
实例化
现在我们可以实例化模型对象并生成响应:- Gemini Developer API
- Vertex AI
Gemini 3.0+ 模型的温度如果未显式设置
temperature 且模型是 Gemini 3.0 或更高版本,它将自动设置为 1.0,而不是默认的 0.7,这是根据 Google GenAI API 最佳实践。在 Gemini 3.0+ 上使用 0.7 可能导致无限循环、推理性能下降以及在复杂任务上失败。ChatGoogleGenerativeAI API 参考。
代理配置
如果需要使用代理,请在初始化前设置这些环境变量:client_args 参数:
调用
多模态用法
Gemini 模型接受多模态输入(文本、图像、音频、视频、PDF),某些模型可以生成多模态输出。支持的输入方法
*YouTube URL 在预览版中支持用于视频输入。
文件上传
您可以将文件上传到 Google 的服务器,并通过 URI 引用它们。这适用于 PDF、图像、视频和音频文件。file_id 模式引用该文件。
图像输入
使用HumanMessage 提供图像输入和文本,采用列表内容格式。
- Google Cloud Storage URI (
gs://...)。确保服务帐户有权访问。
PDF 输入
提供 PDF 文件输入和文本。音频输入
提供音频文件输入和文本。视频输入
提供视频文件输入和文本。YouTube 视频输入(预览版)
- 仅支持公开视频(不支持私有或未列出视频)
- 免费层:每天最多 8 小时的 YouTube 视频
图像生成
某些模型可以内联生成文本和图像。详情请参阅 Gemini API 文档。image_config 控制图像尺寸和质量(参见 genai.types.ImageConfig)。它可以在实例化时设置(适用于所有调用)或在调用时设置(每次调用覆盖):
response_modalities 参数来请求模型仅返回图像:
音频生成
某些模型可以生成音频文件。详情请参阅 Gemini API 文档。工具调用
您可以为模型配备要调用的工具。结构化输出
强制模型以特定结构响应。更多信息请参阅 Gemini API 文档。+=:
结构化输出方法
支持两种结构化输出方法:method="json_schema"(默认):使用 Gemini 的原生结构化输出。推荐用于更好的可靠性,因为它直接约束模型的生成过程,而不是依赖后处理工具调用。method="function_calling":使用工具调用来提取结构化数据。
将结构化输出与 Google 搜索结合
使用with_structured_output(method="function_calling") 时,不要在同一调用中传递其他工具(如 Google Search)。
要在单次调用中获取结构化输出和搜索基础,请使用 .bind() 配合 response_mime_type 和 response_schema,而不是 with_structured_output:
令牌使用情况跟踪
从响应元数据中访问令牌使用情况信息。思考支持
某些 Gemini 模型支持可配置的思考深度。该参数取决于模型版本:Gemini 2.5 模型:thinking_budget
对于 Gemini 2.5 模型,请改用 thinking_budget(整数令牌计数):
- 设置为
0以禁用思考(在支持的情况下) - 设置为
-1以进行动态思考(模型决定) - 设置为正整数以限制令牌使用量
查看模型思考
要查看思考模型的推理过程,请设置include_thoughts=True:
思考签名
思考签名是模型推理的加密表示。它们使 Gemini 能够在多轮对话中维持思考上下文,因为 API 是无状态的。如果思考签名未随工具调用响应一起传回,Gemini 3 可能会引发 4xx 错误。升级到
langchain-google-genai >= 3.1.0 以确保正确处理。AIMessage 响应中:
- 文本块:内容块中的
extras.signature - 工具调用:
additional_kwargs["__gemini_function_call_thought_signatures__"]
AIMessage 传回模型,以便保留签名。当您将 AIMessage 追加到消息列表时(如上面的工具调用示例所示),这会自动发生。
内置工具
Google Gemini 支持多种内置工具,可以以通常的方式绑定到模型。Google 搜索
详情请参阅 Gemini 文档。Google 地图
某些模型支持使用 Google 地图进行基础。地图基础将 Gemini 的生成能力与 Google 地图的当前、事实位置数据连接起来。这使得能够提供准确、特定地理位置响应的位置感知应用程序。详情请参阅 Gemini 文档。tool_config 和 lat_lng 提供特定的位置上下文。当您希望相对于特定地理点进行基础查询时,这很有用。
URL 上下文
URL 上下文工具使模型能够访问和分析您在提示中提供的 URL 内容。这对于总结网页、从多个来源提取数据或回答有关在线内容的问题等任务很有用。详情和限制请参阅 Gemini 文档。代码执行
详情请参阅 Gemini 文档。计算机使用
Gemini 2.5 Computer Use 模型 (gemini-2.5-computer-use-preview-10-2025) 可以与浏览器环境交互,以自动化 Web 任务,如单击、键入和滚动。
高级配置
click_at、type_text_at、scroll)的函数调用,并带有标准化坐标。您需要在浏览器自动化框架中实现这些操作的实际执行。
安全设置
Gemini 模型具有默认安全设置,可以覆盖。如果您从模型收到大量'Safety Warnings',可以尝试调整模型的 safety_settings 属性。例如,要关闭危险内容的安全阻止,您可以按如下方式构建您的 LLM:
上下文缓存
上下文缓存允许您存储和重用内容(例如 PDF、图像)以加快处理速度。cached_content 参数接受通过 Google Generative AI API 创建的缓存名称。
单个文件示例
单个文件示例
这会缓存单个文件并查询它。
多个文件示例
多个文件示例
这会使用
Part 缓存两个文件并一起查询它们。响应元数据
从模型响应中访问响应元数据。API 参考
有关所有功能和配置选项的详细文档,请访问ChatGoogleGenerativeAI API 参考。
将这些文档连接到 Claude、VSCode 等,通过 MCP 获取实时答案。

