Skip to main content
Open In ColabOpen on GitHub

ChatGoogleGenerativeAI

本文档将帮助您开始使用Google AI 聊天模型。有关ChatGoogleGenerativeAI所有功能和配置的详细文档,请访问API参考

Google AI 提供了多种不同的聊天模型。有关最新模型、其功能、上下文窗口等信息,请访问 Google AI 文档

Google AI vs Google Cloud Vertex AI

Google的Gemini模型可以通过Google AI和Google Cloud Vertex AI访问。使用Google AI只需要一个Google账户和一个API密钥。使用Google Cloud Vertex AI需要一个Google Cloud账户(包含条款协议和计费),但提供了企业功能,如客户加密密钥、虚拟私有云等。

要了解更多关于这两个API的关键特性,请参阅Google文档

概述

集成详情

本地可序列化JS支持包下载量包最新版本
ChatGoogleGenerativeAIlangchain-google-genai测试版PyPI - VersionPyPI - Version

模型特性

工具调用结构化输出JSON模式图像输入音频输入视频输入令牌级流式传输原生异步令牌使用Logprobs

设置

要访问Google AI模型,您需要创建一个Google账户,获取Google AI API密钥,并安装langchain-google-genai集成包。

凭证

前往 https://ai.google.dev/gemini-api/docs/api-key 生成一个 Google AI API 密钥。完成后,设置 GOOGLE_API_KEY 环境变量:

import getpass
import os

if "GOOGLE_API_KEY" not in os.environ:
os.environ["GOOGLE_API_KEY"] = getpass.getpass("Enter your Google AI API key: ")

如果你想获取模型调用的自动追踪,你也可以通过取消注释以下内容来设置你的LangSmith API密钥:

# os.environ["LANGSMITH_API_KEY"] = getpass.getpass("Enter your LangSmith API key: ")
# os.environ["LANGSMITH_TRACING"] = "true"

安装

LangChain 与 Google AI 的集成位于 langchain-google-genai 包中:

%pip install -qU langchain-google-genai

实例化

现在我们可以实例化我们的模型对象并生成聊天完成:

from langchain_google_genai import ChatGoogleGenerativeAI

llm = ChatGoogleGenerativeAI(
model="gemini-1.5-pro",
temperature=0,
max_tokens=None,
timeout=None,
max_retries=2,
# other params...
)

调用

messages = [
(
"system",
"You are a helpful assistant that translates English to French. Translate the user sentence.",
),
("human", "I love programming."),
]
ai_msg = llm.invoke(messages)
ai_msg
AIMessage(content="J'adore programmer. \n", response_metadata={'prompt_feedback': {'block_reason': 0, 'safety_ratings': []}, 'finish_reason': 'STOP', 'safety_ratings': [{'category': 'HARM_CATEGORY_SEXUALLY_EXPLICIT', 'probability': 'NEGLIGIBLE', 'blocked': False}, {'category': 'HARM_CATEGORY_HATE_SPEECH', 'probability': 'NEGLIGIBLE', 'blocked': False}, {'category': 'HARM_CATEGORY_HARASSMENT', 'probability': 'NEGLIGIBLE', 'blocked': False}, {'category': 'HARM_CATEGORY_DANGEROUS_CONTENT', 'probability': 'NEGLIGIBLE', 'blocked': False}]}, id='run-eef5b138-1da6-4226-9cfe-ab9073ddd77e-0', usage_metadata={'input_tokens': 21, 'output_tokens': 5, 'total_tokens': 26})
print(ai_msg.content)
J'adore programmer.

链式调用

我们可以链式我们的模型与一个提示模板,如下所示:

from langchain_core.prompts import ChatPromptTemplate

prompt = ChatPromptTemplate.from_messages(
[
(
"system",
"You are a helpful assistant that translates {input_language} to {output_language}.",
),
("human", "{input}"),
]
)

chain = prompt | llm
chain.invoke(
{
"input_language": "English",
"output_language": "German",
"input": "I love programming.",
}
)
API Reference:ChatPromptTemplate
AIMessage(content='Ich liebe das Programmieren. \n', response_metadata={'prompt_feedback': {'block_reason': 0, 'safety_ratings': []}, 'finish_reason': 'STOP', 'safety_ratings': [{'category': 'HARM_CATEGORY_SEXUALLY_EXPLICIT', 'probability': 'NEGLIGIBLE', 'blocked': False}, {'category': 'HARM_CATEGORY_HATE_SPEECH', 'probability': 'NEGLIGIBLE', 'blocked': False}, {'category': 'HARM_CATEGORY_HARASSMENT', 'probability': 'NEGLIGIBLE', 'blocked': False}, {'category': 'HARM_CATEGORY_DANGEROUS_CONTENT', 'probability': 'NEGLIGIBLE', 'blocked': False}]}, id='run-fbb35f30-4937-4a81-ae68-f7cb35721a0c-0', usage_metadata={'input_tokens': 16, 'output_tokens': 7, 'total_tokens': 23})

安全设置

Gemini 模型具有可以覆盖的默认安全设置。如果您从模型中收到大量“安全警告”,您可以尝试调整模型的 safety_settings 属性。例如,要关闭对危险内容的安全阻止,您可以按以下方式构建您的 LLM:

from langchain_google_genai import (
ChatGoogleGenerativeAI,
HarmBlockThreshold,
HarmCategory,
)

llm = ChatGoogleGenerativeAI(
model="gemini-1.5-pro",
safety_settings={
HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT: HarmBlockThreshold.BLOCK_NONE,
},
)

有关可用类别和阈值的枚举,请参阅Google的安全设置类型

API参考

有关所有ChatGoogleGenerativeAI功能和配置的详细文档,请访问API参考:https://python.langchain.com/api_reference/google_genai/chat_models/langchain_google_genai.chat_models.ChatGoogleGenerativeAI.html


这个页面有帮助吗?