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
- Vertex AI (使用 API 密钥)
- Vertex AI (使用凭证)
使用 API 密钥快速设置推荐给个人开发者/新用户。前往 Google AI Studio 生成 API 密钥:集成首先检查
GOOGLE_API_KEY,然后将 GEMINI_API_KEY 作为后备。环境变量
要为您的模型调用启用自动追踪,请设置您的 LangSmith API 密钥:
实例化
现在我们可以实例化我们的模型对象并生成响应:- Gemini Developer API
- Vertex AI
Gemini 3.0+ 模型的 Temperature如果未显式设置
temperature 且模型为 Gemini 3.0 或更高版本,它将自动设置为 1.0,而不是 Google GenAI API 最佳实践中的默认值 0.7。在 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 搜索)。
要在单个调用中获得结构化输出 和 搜索 grounding,请使用 .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 地图进行 grounding。地图 grounding 将 Gemini 的生成能力与 Google 地图当前的、事实性的位置数据连接起来。这使得能够提供准确、地理位置特定响应的定位感知应用程序。详见 Gemini 文档。tool_config 配合 lat_lng 提供特定的位置上下文。当您希望相对于特定地理点 grounding 查询时,这很有用。
URL 上下文
URL 上下文工具使模型能够访问和分析您在提示中提供的 URL 的内容。这对于总结网页、从多个来源提取数据或回答关于在线内容的问题等任务非常有用。详见 Gemini 文档 了解细节和限制。代码执行
详见 Gemini 文档。计算机使用
Gemini 2.5 Computer Use 模型 (gemini-2.5-computer-use-preview-10-2025) 可以与浏览器环境交互以自动化 Web 任务,如点击、键入和滚动。
Advanced configuration
click_at, type_text_at, scroll),带有标准化坐标。您需要在浏览器自动化框架中实现这些实际操作的实际执行。
安全设置
Gemini 模型具有默认的安全设置,可以覆盖。如果您收到大量'Safety Warnings',可以尝试调整模型的安全设置属性。例如,要关闭危险内容的阻止,您可以按以下方式构建 LLM:
上下文缓存
上下文缓存允许您存储和重用内容(例如 PDF、图像)以加快处理速度。cached_content 参数接受通过 Google Generative AI API 创建的缓存名称。
单文件示例
单文件示例
此示例缓存单个文件并对其进行查询。
多文件示例
多文件示例
此示例使用
Part 缓存两个文件并一起查询它们。响应元数据
从模型响应中访问响应元数据。API 参考
有关所有功能和配置选项的详细文档,请前往ChatGoogleGenerativeAI API 参考。
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

