类型“vector”在postgresql上不存在- langchain

von4xj4u  于 2023-05-17  发布在  PostgreSQL
关注(0)|答案(1)|浏览(1194)

我试图在pgvector扩展和langchain的帮助下在postgresql上嵌入一些文档。很不幸,我遇到了以下错误:

(psycopg2.errors.UndefinedObject) type "vector" does not exist
LINE 4:  embedding VECTOR(1536), 
                   ^

[SQL: 
CREATE TABLE langchain_pg_embedding (
    collection_id UUID, 
    embedding VECTOR(1536), 
    document VARCHAR, 
    cmetadata JSON, 
    custom_id VARCHAR, 
    uuid UUID NOT NULL, 
    PRIMARY KEY (uuid), 
    FOREIGN KEY(collection_id) REFERENCES langchain_pg_collection (uuid) ON DELETE CASCADE
)
]

我的环境信息:

  • pgvector docker镜像**ankane/pgvector:v0.4.1**
  • python**3.10.6,psycopg22.9.6pgvector0.1.6**

Postgres上已安装的扩展列表

Name   | Version |   Schema   |                Description                 
---------+---------+------------+--------------------------------------------
 plpgsql | 1.0     | pg_catalog | PL/pgSQL procedural language
 vector  | 0.4.1   | public     | vector data type and ivfflat access method

我尝试了以下方法来解决:
1.重新安装Postgres docker镜像,并启用pgvector扩展。
1.按照官方说明手动安装扩展。
1.在Postgres上手动安装扩展,如下所示:

CREATE EXTENSION IF NOT EXISTS vector
    SCHEMA public
    VERSION "0.4.1";

但没找到。

smtd7mpg

smtd7mpg1#

不幸的是,问题出在别的地方。我的extension installationsearch_path模式对于我应该使用的已定义数据库来说完全没有问题。但是我的环境变量负责使用哪个数据库,它被搞砸了,使用默认数据库postgres而不是我定义的数据库,它没有启用扩展。

相关问题