跳到主要内容

TypeORM

为了在通用的 PostgreSQL 数据库中启用向量搜索,LangChain.js 支持使用 TypeORMpgvector Postgres 扩展。

设置

要使用 TypeORM,您需要安装 typeormpg

npm install typeorm
npm install pg
npm install @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 参考

    然后在同一目录中运行 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.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);
    };

    API 参考


    本页内容对您有帮助吗?


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