ChatGoogleGenerativeAI
本文档将帮助您开始使用 Google AI 的 聊天模型。有关所有 ChatGoogleGenerativeAI 功能和配置的详细文档,请访问 API 参考。
Google AI 提供了许多不同的聊天模型。有关最新模型、其功能、上下文窗口等的信息,请访问 Google AI 文档。
Google 的 Gemini 模型可以通过 Google AI 和 Google Cloud Vertex AI 访问。使用 Google AI 只需一个 Google 帐户和一个 API 密钥。使用 Google Cloud Vertex AI 需要一个 Google Cloud 帐户(包含服务条款和计费),但提供企业功能,例如客户加密密钥、虚拟专用云等。
要了解有关这两个 API 的主要功能的更多信息,请查看 Google 文档。
概述
集成详细信息
类 | 包 | 本地 | 可序列化 | JS 支持 | 包下载 | 包最新 |
---|---|---|---|---|---|---|
ChatGoogleGenerativeAI | langchain-google-genai | ❌ | beta | ✅ |
模型功能
工具调用 | 结构化输出 | JSON 模式 | 图像输入 | 音频输入 | 视频输入 | 令牌级流式传输 | 原生异步 | 令牌使用 | Logprobs |
---|---|---|---|---|---|---|---|---|---|
✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
设置
要访问 Google AI 模型,您需要创建一个 Google Acount 帐户,获取 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.",
}
)
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.ac.cn/api_reference/google_genai/chat_models/langchain_google_genai.chat_models.ChatGoogleGenerativeAI.html