TypeORM
为了在通用的 PostgreSQL 数据库中启用向量搜索,LangChain.js 支持使用 TypeORM 和 pgvector Postgres 扩展。
安装设置
要使用 TypeORM,你需要安装 typeorm 和 pg 包:
- npm
- Yarn
- pnpm
npm install typeorm
yarn add typeorm
pnpm add typeorm
- npm
- Yarn
- pnpm
npm install pg
yarn add pg
pnpm add pg
:::提示 请参阅安装集成包的一般说明部分。 :::
- npm
- Yarn
- pnpm
npm install @langchain/openai @langchain/community @langchain/core
yarn add @langchain/openai @langchain/community @langchain/core
pnpm add @langchain/openai @langchain/community @langchain/core
使用 docker-compose 设置 pgvector 自托管实例
pgvector 提供了一个预构建的 Docker 镜像,可以用来快速搭建自托管的 Postgres 实例。
在下方创建一个名为 docker-compose.yml 的文件:
export default {services:{db:{image:'ankane/pgvector',ports:['5432:5432'],volumes:['./data:/var/lib/postgresql/data'],environment:['POSTGRES_PASSWORD=ChangeMe','POSTGRES_USER=myuser','POSTGRES_DB=api']}}};
API Reference:
然后在相同的目录中运行 docker compose up 启动容器。
你可以在 官方仓库 中找到更多关于如何设置 pgvector 的信息。
使用方法
以下是一个使用 TypeORMVectorStore 的完整示例:
import { DataSourceOptions } from "typeorm";
import { OpenAIEmbeddings } from "@langchain/openai";
import { TypeORMVectorStore } from "@langchain/community/vectorstores/typeorm";
// First, follow set-up instructions at
// https://js.langchain.com/docs/modules/indexes/vector_stores/integrations/typeorm
export const run = async () => {
const args = {
postgresConnectionOptions: {
type: "postgres",
host: "localhost",
port: 5432,
username: "myuser",
password: "ChangeMe",
database: "api",
} as DataSourceOptions,
};
const typeormVectorStore = await TypeORMVectorStore.fromDataSource(
new OpenAIEmbeddings(),
args
);
await typeormVectorStore.ensureTableInDatabase();
await typeormVectorStore.addDocuments([
{ pageContent: "what's this", metadata: { a: 2 } },
{ pageContent: "Cat drinks milk", metadata: { a: 1 } },
]);
const results = await typeormVectorStore.similaritySearch("hello", 2);
console.log(results);
};
API Reference:
- OpenAIEmbeddings from
@langchain/openai - TypeORMVectorStore from
@langchain/community/vectorstores/typeorm
相关内容
Related
- Vector store conceptual guide
- Vector store how-to guides