跳到主要内容
为了在通用 PostgreSQL 数据库中启用向量搜索,LangChain.js 支持使用 TypeORMpgvector Postgres 扩展。

设置

要使用 TypeORM,您需要安装 typeormpg
npm
npm install typeorm
npm
npm install pg
有关安装 LangChain 软件包的一般说明,请参阅此部分
npm
npm install @langchain/openai @langchain/community @langchain/core

使用 docker-compose 设置 pgvector 自托管实例

pgvector 提供了一个预构建的 Docker 镜像,可以用来快速设置一个自托管的 Postgres 实例。创建一个名为 docker-compose.yml 的文件,内容如下:
docker-compose.yml
services:
  db:
    image: ankane/pgvector
    ports:
      - 5432:5432
    volumes:
      - ./data:/var/lib/postgresql/data
    environment:
      - POSTGRES_PASSWORD=ChangeMe
      - POSTGRES_USER=myuser
      - POSTGRES_DB=api
然后在同一个目录中,运行 docker compose up 来启动容器。 您可以在 官方仓库 中找到有关如何设置 pgvector 的更多信息。

用法

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.ac.cn/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);
};

以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。
© . This site is unofficial and not affiliated with LangChain, Inc.