forked from langchain-ai/langchainjs
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* bump version * cr
- Loading branch information
Showing
2 changed files
with
51 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
# VectorStore Agent Toolkit | ||
|
||
This example shows how to load and use an agent with a vectorstore toolkit. | ||
|
||
```typescript | ||
import { OpenAI } from "langchain"; | ||
import { HNSWLib } from "langchain/vectorstores"; | ||
import { OpenAIEmbeddings } from "langchain/embeddings"; | ||
import { RecursiveCharacterTextSplitter } from "langchain/text_splitter"; | ||
import * as fs from "fs"; | ||
import { | ||
VectorStoreToolkit, | ||
createVectorStoreAgent, | ||
VectorStoreInfo, | ||
} from "langchain/agents"; | ||
|
||
export const run = async () => { | ||
const model = new OpenAI({ temperature: 0 }); | ||
/* Load in the file we want to do question answering over */ | ||
const text = fs.readFileSync("state_of_the_union.txt", "utf8"); | ||
/* Split the text into chunks */ | ||
const textSplitter = new RecursiveCharacterTextSplitter({ chunkSize: 1000 }); | ||
const docs = await textSplitter.createDocuments([text]); | ||
/* Create the vectorstore */ | ||
const vectorStore = await HNSWLib.fromDocuments(docs, new OpenAIEmbeddings()); | ||
|
||
/* Create the agent */ | ||
const vectorStoreInfo: VectorStoreInfo = { | ||
name: "state_of_union_address", | ||
description: "the most recent state of the Union address", | ||
vectorStore, | ||
}; | ||
|
||
const toolkit = new VectorStoreToolkit(vectorStoreInfo, model); | ||
const agent = createVectorStoreAgent(model, toolkit); | ||
|
||
const input = | ||
"What did biden say about Ketanji Brown Jackson is the state of the union address?"; | ||
console.log(`Executing: ${input}`); | ||
const result = await agent.call({ input }); | ||
console.log(`Got output ${result.output}`); | ||
console.log( | ||
`Got intermediate steps ${JSON.stringify( | ||
result.intermediateSteps, | ||
null, | ||
2 | ||
)}` | ||
); | ||
}; | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters