跳到主要內容

ChatGoogleGenerativeAI

此文件將協助您開始使用 Google AI 聊天模型。如需所有 ChatGoogleGenerativeAI 功能和設定的詳細文件,請前往 API 參考

Google AI 提供多種不同的聊天模型。如需最新模型、其功能、上下文視窗等的資訊,請前往 Google AI 文件

Google AI 與 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-genaibetaPyPI - DownloadsPyPI - Version

模型功能

工具呼叫結構化輸出JSON 模式影像輸入音訊輸入視訊輸入Token 等級串流原生非同步Token 使用量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 參考: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://langchain-python.dev.org.tw/api_reference/google_genai/chat_models/langchain_google_genai.chat_models.ChatGoogleGenerativeAI.html


此頁面是否對您有幫助?