Rockset
Rockset(已被 OpenAI 收购)是一个在云端运行的实时分析型 SQL 数据库。 Rockset 提供以 SQL 函数形式实现的向量搜索功能,用于支持依赖文本相似性的 AI 应用程序。
安装配置
安装 rockset 客户端。
yarn add @rockset/client
使用方法
:::提示 请参阅安装集成包的一般说明部分。 :::
- npm
- Yarn
- pnpm
npm install @langchain/openai @langchain/core @langchain/community
yarn add @langchain/openai @langchain/core @langchain/community
pnpm add @langchain/openai @langchain/core @langchain/community
以下是一个示例,展示如何使用 OpenAI 和 Rockset 来回答有关文本文件的问题:
import * as rockset from "@rockset/client";
import { ChatOpenAI, OpenAIEmbeddings } from "@langchain/openai";
import { RocksetStore } from "@langchain/community/vectorstores/rockset";
import { RecursiveCharacterTextSplitter } from "@langchain/textsplitters";
import { readFileSync } from "fs";
import { ChatPromptTemplate } from "@langchain/core/prompts";
import { createStuffDocumentsChain } from "langchain/chains/combine_documents";
import { createRetrievalChain } from "langchain/chains/retrieval";
const store = await RocksetStore.withNewCollection(new OpenAIEmbeddings(), {
client: rockset.default.default(
process.env.ROCKSET_API_KEY ?? "",
`https://api.${process.env.ROCKSET_API_REGION ?? "usw2a1"}.rockset.com`
),
collectionName: "langchain_demo",
});
const model = new ChatOpenAI({ model: "gpt-3.5-turbo-1106" });
const questionAnsweringPrompt = ChatPromptTemplate.fromMessages([
[
"system",
"Answer the user's questions based on the below context:\n\n{context}",
],
["human", "{input}"],
]);
const combineDocsChain = await createStuffDocumentsChain({
llm: model,
prompt: questionAnsweringPrompt,
});
const chain = await createRetrievalChain({
retriever: store.asRetriever(),
combineDocsChain,
});
const text = readFileSync("state_of_the_union.txt", "utf8");
const docs = await new RecursiveCharacterTextSplitter().createDocuments([text]);
await store.addDocuments(docs);
const response = await chain.invoke({
input: "When was America founded?",
});
console.log(response.answer);
await store.destroy();
API Reference:
- ChatOpenAI from
@langchain/openai - OpenAIEmbeddings from
@langchain/openai - RocksetStore from
@langchain/community/vectorstores/rockset - RecursiveCharacterTextSplitter from
@langchain/textsplitters - ChatPromptTemplate from
@langchain/core/prompts - createStuffDocumentsChain from
langchain/chains/combine_documents - createRetrievalChain from
langchain/chains/retrieval
相关内容
Related
- Vector store conceptual guide
- Vector store how-to guides