PostgreSQL 支持向量功能

本文介绍了如何在Ubuntu22.0464位系统上通过PostgreSQL数据库和插件支持向量操作,包括安装过程、用户权限设置、pg_vector插件的编译与部署,以及数据库配置的调整。
摘要由CSDN通过智能技术生成

        基于 RAG(Retrieval-Augmented Generation)引擎的企业级 AI 业务,对向量的存储和检索是至关重要的,各种类型的数据(文本、图像、声音和视频)都可以转换为向量,从而为复杂的数据结构提供了一种强大的数据表示能力,使其在机器学习和人工智能领域有着广泛的适用性和重要性。目前支持向量操作的解决方案有很多,这里介绍的是通过 PostgreSQL 数据库加插件的方式来支持向量操作。

        操作系统为 Ubuntu os 22.04 64 位操作系统,首先安装数据库、附加组件包(包括一系列扩展模块、工具、插件和额外功能),以及数据库的软件开发包(包括开发工作所需要的头文件和各类函数)。

sudo apt-get install postgresql postgresql-contrib postgresql-server-dev-14

        如果整个安装过程正常结束的话,可以通过指令查看和操作数据库服务状态,也可以根据监听端口(默认端口 5432)查看服务状态。

# 查看
sudo systemctl status postgresql.service
# 停止
sudo systemctl stop postgresql.service
# 启动
sudo systemctl start postgresql.service
# 重启
sudo systemctl restart postgresql.service

        接下来执行 sudo -i -u postgres 命令,使用用户 postgres 登录数据库,执行 createuser --interactive 命令后并输入新的用户名,并根据情况赋予用户角色权限,更可以通过命令 alter role 用户名 with password '123456' 来设置新用户的密码。

(Enter name of role to add: sammy Shall the new role be a superuser? (y/n) y)

        然后可以准备安装插件了,经过下载、编译、部署,以及重启数据库服务,向量插件就算安装完成了。

# 临时安装路径
cd /tmp
# 下载插件源码
git clone --branch v0.5.1 https://github.com/pgvector/pgvector.git
# 进入安装路径
cd pgvector
# 编译插件源码
make
# 安装部署组件
sudo make install
# 重启数据服务
sudo systemctl restart postgresql.service

       另外还有二个地方的配置需要做个调整,/etc/postgresql/14/main/pg_hba.conf 文件的 98 行,以及 /etc/postgresql/14/main/postgresql.conf 文件的 60 行;

# /etc/postgresql/14/main/pg_hba.conf
# 原始配置
host    all             all             127.0.0.1/32            scram-sha-256
# 变更配置(允许所有地址以用户名密码方式登录数据库)
host    all             all             0.0.0.0/0               md5

# /etc/postgresql/14/main/postgresql.conf 
# 原始配置
listen_addresses = 'localhost'          # what IP address(es) to listen on;
# 变更配置
listen_addresses = '*'                  # what IP address(es) to listen on;

        最后再次登录数据库,执行命令 CREATE EXTENSION IF NOT EXISTS vector ,完成整个安装过程,下面是一个包含 vector 类型字段的建表 SQL 供参考。

CREATE TABLE "public"."my_table"
(
    "id" bigserial NOT NULL ,
    "doc_id" varchar(64) ,
    "embedding" vector(1024)
)
WITH (
    FILLFACTOR = 100,
    OIDS = FALSE
)
;
ALTER TABLE "public"."my_table" OWNER TO dev;
COMMENT ON COLUMN "public"."my_table"."doc_id" IS '文档 ID';
COMMENT ON COLUMN "public"."my_table"."embedding" IS '向量';

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

厉力文武

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值