Windows搭建AI大模型应用开发环境 - 向量数据库pgvector

 大模型应用开发专栏

(一)手把手教学:LangChain4j实现Java与AI大模型深度对话
(二)Windows搭建AI大模型应用开发环境以及踩过的坑
(三)Windows搭建AI大模型应用开发环境 - 向量数据库pgvector
(四)手把手教学:SpringBoot+LangChain4j实战全攻略
(五)手把手教学:SpringBoot整合LangChain4j实现知识库RAG检索
(六)手把手教学:SpringBoot + MCP + Cherry Studio

一、docker中安装pgvector

pgvector仓库:https://github.com/pgvector/pgvector

1、方式一:从Docker Desktop中拉取镜像

搜索pgvector

在Tag 中选择需要安装版本操作“Pull”拉取镜像,完成后操作“RUN”运行。

2、 方式二:通过命令行安装,去hub.docker选择需要安装的pgvector版本,点击Copy

 如果访问不了 hub.docker 需要科学上网或参考第一种方式

3、拉取pgvector镜像

安装完Docker后,我们就可以开始拉取pgvector的Docker镜像了。在终端中运行以下命令:

docker pull pgvector/pgvector:pg15

4、运行pgvector容器

拉取完镜像后,我们就可以运行pgvector的容器了。在终端中运行以下命令:

 docker run --name pgvector  -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres   -p 5433:5432   -v  /home/coco/postgresql/data:/var/lib/postgresql/data   -d pgvector/pgvector:pg15

5、安装和使用扩展

当容器运行起来后,我们就可以连接到pgvector数据库

docker exec -it pgvector psql -U postgres

执行的命令的截图如下:

6、使用DBeaver工具连接到数据库:

如果客户端报密码错误或忘记密码可以上面第5步登陆postgres后重置密码

ALTER USER postgres WITH PASSWORD 'postgres';  -- 设置新密码  

二、使用扩展

1、在DBeaver的内置的数据库postgres中运行以下命令来安装vector扩展:

CREATE EXTENSION vector;

安装完扩展后,我们就可以在数据库中创建包含向量字段的表了。

# 创建一个带有向量类型的表
> CREATE TABLE items (id bigserial PRIMARY KEY, embedding vector(3));

# 写入一条数据
> INSERT INTO items (embedding) VALUES ('[1,2,3]'), ('[4,5,6]');

# 向量检索
> SELECT * FROM items ORDER BY embedding <-> '[3,1,2]' LIMIT 3;

三、创建用户、数据库、授权

上面表创建都在PG内置的数据库postgres中执行,也可以其它用户、数据库

 # 创建用户
> CREATE USER airoot WITH PASSWORD 'airoot';

# 创建数据库
> CREATE DATABASE aidb OWNER airoot;

# 赋权
> GRANT ALL PRIVILEGES ON DATABASE aidb TO airoot;

# 添加 superuser 权限,用于安装 pgvector 插件
alter user airoot with superuser;

命令执行的过程如下:

root@Coco:/home/coco#  docker exec -it pgvector psql -U postgres
psql (15.12 (Debian 15.12-1.pgdg120+1))
Type "help" for help.


postgres=# CREATE USER airoot WITH PASSWORD 'airoot';
CREATE ROLE
postgres=# CREATE DATABASE aidb OWNER airoot;
CREATE DATABASE
postgres=# GRANT ALL PRIVILEGES ON DATABASE aidb TO airoot;
GRANT
postgres=# alter user airoot with superuser;
ALTER ROLE
postgres=#

### 安装 pgvector 16 并在 Docker 中使用 #### 准备工作 为了确保能够顺利安装并运行 `pgvector` 版本 16,在开始之前需确认已正确设置好 Docker 环境。 #### 创建自定义 Dockerfile 来集成 pgvector 16 通过创建一个基于官方 PostgreSQL 镜像的 Dockerfile 文件来实现这一点。此文件将指导 Docker 构建一个新的镜像,其中包含了所需版本的 `pgvector` 扩展: ```dockerfile FROM postgres:16-alpine # 设置环境变量以便于后续命令执行 ENV PGVECTOR_VERSION=0.5.2 RUN apk add --no-cache \ build-base \ curl \ && mkdir -p /usr/src/pgvector \ && cd /usr/src/pgvector \ && curl -sSL https://github.com/pgvector/pgvector/archive/v${PGVECTOR_VERSION}.tar.gz | tar xz --strip-components=1 \ && make && make install \ && rm -rf /var/cache/apk/* /usr/src/pgvector COPY ./init-vector.sql /docker-entrypoint-initdb.d/ ``` 上述脚本下载指定版本 (这里假设为 v0.5.2) 的源码编译安装到 Postgres 实例里,并复制初始化 SQL 脚本来自动加载扩展[^1]。 #### 编写用于启动时启用 pgvector 的 init-vector.sql 文件 该文件应放置在同一目录下作为构建上下文的一部分: ```sql CREATE EXTENSION IF NOT EXISTS vector; ``` 这将在首次启动容器时自动应用必要的更改以激活 `pgvector` 功能。 #### 使用 Docker Compose 或者直接调用 docker run 启动服务 如果选择使用 Docker Compose,则可以编写如下 yml 文件简化操作过程: ```yaml version: '3' services: db: image: my-custom-postgres-with-pgvector:latest ports: - "5432:5432" environment: POSTGRES_USER: user POSTGRES_PASSWORD: password POSTGRES_DB: dbname ``` 对于那些更喜欢手动控制的人来说,也可以利用下面这条指令快速测试新建立好的镜像是否正常运作: ```bash docker run -d --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -p 5432:5432 my-custom-postgres-with-pgvector:latest ``` 以上步骤完成后就可以成功地在一个新的 Dockerized PostgreSQL 数据库实例上启用了最新版的 `pgvector` 插件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值