跳至主要内容

向量存储工具包

这将帮助您开始使用 向量存储工具包。有关所有向量存储工具包功能和配置的详细文档,请前往 API 参考

VectorStoreToolkit 是一个工具包,它接收一个向量存储,并将其转换为可以调用、传递给 LLM、代理等的工具。

设置

如果您想从单个工具运行中获取自动跟踪,您还可以通过取消以下注释来设置您的 LangSmith API 密钥

process.env.LANGCHAIN_TRACING_V2 = "true";
process.env.LANGCHAIN_API_KEY = "your-api-key";

安装

此工具包位于 langchain 包中

yarn add langchain @langchain/core

实例化

现在我们可以实例化我们的工具包。首先,我们需要定义我们将在工具包中使用的 LLM。

选择您的聊天模型

安装依赖项

yarn add @langchain/openai 

添加环境变量

OPENAI_API_KEY=your-api-key

实例化模型

import { ChatOpenAI } from "@langchain/openai";

const llm = new ChatOpenAI({
model: "gpt-4o-mini",
temperature: 0
});
import { VectorStoreToolkit, VectorStoreInfo } from "langchain/agents/toolkits";
import { OpenAIEmbeddings } from "@langchain/openai";
import { MemoryVectorStore } from "langchain/vectorstores/memory";
import { RecursiveCharacterTextSplitter } from "@langchain/textsplitters";
import fs from "fs";

// Load a text file to use as our data source.
const text = fs.readFileSync(
"../../../../../examples/state_of_the_union.txt",
"utf8"
);

// Split the text into chunks before inserting to our store
const textSplitter = new RecursiveCharacterTextSplitter({ chunkSize: 1000 });
const docs = await textSplitter.createDocuments([text]);

const vectorStore = await MemoryVectorStore.fromDocuments(
docs,
new OpenAIEmbeddings()
);

const vectorStoreInfo: VectorStoreInfo = {
name: "state_of_union_address",
description: "the most recent state of the Union address",
vectorStore,
};

const toolkit = new VectorStoreToolkit(vectorStoreInfo, llm);

工具

在这里,我们可以看到它将我们的向量存储转换为一个工具

const tools = toolkit.getTools();

console.log(
tools.map((tool) => ({
name: tool.name,
description: tool.description,
}))
);
[
{
name: 'state_of_union_address',
description: 'Useful for when you need to answer questions about state_of_union_address. Whenever you need information about the most recent state of the Union address you should ALWAYS use this. Input should be a fully formed question.'
}
]

在代理中使用

首先,确保您已安装 LangGraph

yarn add @langchain/langgraph

然后,实例化代理

import { createReactAgent } from "@langchain/langgraph/prebuilt";

const agentExecutor = createReactAgent({ llm, tools });
const exampleQuery =
"What did biden say about Ketanji Brown Jackson is the state of the union address?";

const events = await agentExecutor.stream(
{ messages: [["user", exampleQuery]] },
{ streamMode: "values" }
);

for await (const event of events) {
const lastMsg = event.messages[event.messages.length - 1];
if (lastMsg.tool_calls?.length) {
console.dir(lastMsg.tool_calls, { depth: null });
} else if (lastMsg.content) {
console.log(lastMsg.content);
}
}
[
{
name: 'state_of_union_address',
args: {
input: 'What did Biden say about Ketanji Brown Jackson in the State of the Union address?'
},
type: 'tool_call',
id: 'call_glJSWLNrftKHa92A6j8x4jhd'
}
]
In the State of the Union address, Biden mentioned that he nominated Circuit Court of Appeals Judge Ketanji Brown Jackson, describing her as one of the nation’s top legal minds who will continue Justice Breyer’s legacy of excellence. He highlighted her background as a former top litigator in private practice, a former federal public defender, and noted that she comes from a family of public school educators and police officers. He also pointed out that she has received a broad range of support since her nomination.
In the State of the Union address, President Biden spoke about Ketanji Brown Jackson, stating that he nominated her as one of the nation’s top legal minds who will continue Justice Breyer’s legacy of excellence. He highlighted her experience as a former top litigator in private practice and a federal public defender, as well as her background coming from a family of public school educators and police officers. Biden also noted that she has received a broad range of support since her nomination.

API 参考

有关所有向量存储工具包功能和配置的详细文档,请前往 API 参考


此页面是否有帮助?


您也可以留下详细的反馈 在 GitHub 上.