ChatVertexAI
Google Vertex 是一项服务,它公开 Google Cloud 中提供的所有基础模型,例如 gemini-1.5-pro
、gemini-1.5-flash
等。
这将帮助您开始使用 ChatVertexAI
聊天模型。有关所有 ChatVertexAI
功能和配置的详细文档,请查看 API 参考。
概述
集成详细信息
类 | 包 | 本地 | 可序列化 | PY 支持 | 包下载 | 包最新 |
---|---|---|---|---|---|---|
ChatVertexAI | @langchain/google-vertexai | ❌ | ✅ | ✅ |
模型功能
有关如何使用特定功能的指南,请查看下表标题中的链接。
工具调用 | 结构化输出 | JSON 模式 | 图像输入 | 音频输入 | 视频输入 | 令牌级流式传输 | 令牌使用情况 | Logprobs |
---|---|---|---|---|---|---|---|---|
✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
设置
LangChain.js 支持两种不同的身份验证方法,具体取决于您是在 Node.js 环境中运行还是在 Web 环境中运行。
要访问 ChatVertexAI
模型,您需要在 Google Cloud Platform (GCP) 帐户中设置 Google VertexAI,保存凭据文件,并安装 @langchain/google-vertexai
集成包。
凭据
转到您的 GCP 帐户 并生成凭据文件。完成此操作后,设置 GOOGLE_APPLICATION_CREDENTIALS
环境变量
export GOOGLE_APPLICATION_CREDENTIALS="path/to/your/credentials.json"
如果在 Web 环境中运行,您应该将 GOOGLE_VERTEX_AI_WEB_CREDENTIALS
环境变量设置为 JSON 字符串化的对象,并安装 @langchain/google-vertexai-web
包
GOOGLE_VERTEX_AI_WEB_CREDENTIALS={"type":"service_account","project_id":"YOUR_PROJECT-12345",...}
如果您希望自动跟踪模型调用,您还可以通过取消以下注释来设置您的 LangSmith API 密钥
# export LANGCHAIN_TRACING_V2="true"
# export LANGCHAIN_API_KEY="your-api-key"
安装
LangChain ChatVertexAI
集成位于 @langchain/google-vertexai
包中
有关安装集成包的一般说明,请参阅 此部分。
- npm
- yarn
- pnpm
npm i @langchain/google-vertexai @langchain/core
yarn add @langchain/google-vertexai @langchain/core
pnpm add @langchain/google-vertexai @langchain/core
或者,如果您在 Web 环境中使用,例如 Vercel Edge 函数
- npm
- yarn
- pnpm
npm i @langchain/google-vertexai-web @langchain/core
yarn add @langchain/google-vertexai-web @langchain/core
pnpm add @langchain/google-vertexai-web @langchain/core
实例化
现在我们可以实例化我们的模型对象并生成聊天补全
import { ChatVertexAI } from "@langchain/google-vertexai";
// Uncomment the following line if you're running in a web environment:
// import { ChatVertexAI } from "@langchain/google-vertexai-web"
const llm = new ChatVertexAI({
model: "gemini-1.5-pro",
temperature: 0,
maxRetries: 2,
// For web, authOptions.credentials
// authOptions: { ... }
// other params...
});
调用
const aiMsg = await llm.invoke([
[
"system",
"You are a helpful assistant that translates English to French. Translate the user sentence.",
],
["human", "I love programming."],
]);
aiMsg;
AIMessageChunk {
"content": "J'adore programmer. \n",
"additional_kwargs": {},
"response_metadata": {},
"tool_calls": [],
"tool_call_chunks": [],
"invalid_tool_calls": [],
"usage_metadata": {
"input_tokens": 20,
"output_tokens": 7,
"total_tokens": 27
}
}
console.log(aiMsg.content);
J'adore programmer.
链式操作
我们可以像这样 将我们的模型与提示模板链接
import { ChatPromptTemplate } from "@langchain/core/prompts";
const prompt = ChatPromptTemplate.fromMessages([
[
"system",
"You are a helpful assistant that translates {input_language} to {output_language}.",
],
["human", "{input}"],
]);
const chain = prompt.pipe(llm);
await chain.invoke({
input_language: "English",
output_language: "German",
input: "I love programming.",
});
AIMessageChunk {
"content": "Ich liebe das Programmieren. \n",
"additional_kwargs": {},
"response_metadata": {},
"tool_calls": [],
"tool_call_chunks": [],
"invalid_tool_calls": [],
"usage_metadata": {
"input_tokens": 15,
"output_tokens": 9,
"total_tokens": 24
}
}
API 参考
有关所有 ChatVertexAI 功能和配置的详细文档,请参阅 API 参考: https://api.js.langchain.com/classes/langchain_google_vertexai.ChatVertexAI.html