php+PostgreSQL使用向量插入与查询再结合openai embedding实现知识库文档问答

php+PostgreSQL使用向量插入与查询再结合openai embedding实现知识库文档问答

800_auto

PostgreSQL可以使用专门的扩展,如Pgvector来处理向量数据的插入和近似查询。

确保PostgreSQL扩展已安装:首先需要确保PostgreSQL的服务器上安装了适当的扩展,如Pgvector扩展。

Pgvector安装 :参考https://github.com/pgvector/pgvector

cd /tmp
git clone --branch v0.6.2 https://github.com/pgvector/pgvector.git
cd pgvector
make
make install # may need sudo

或者直接docker

docker pull pgvector/pgvector:pg16 
docker run --name pgvector --restart=always -e POSTGRES_USER=pgvector -e POSTGRES_PASSWORD=pgvector -v $(pwd)/data:/var/lib/postgresql/data -p 5432:5432 -d pgvector/pgvector:pg16

命令行输入

psql -U postgres

创建数据库

create database pgvectordb;

切换数据库

\c pgvectordb;

创建vector扩展。

CREATE EXTENSION IF NOT EXISTS 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 5;

800_auto

php连接openai api获取embedding插入PostgreSQL查询操作

php需要使用这个库来连接pgsql,地址:https://github.com/pgvector/pgvector-php

composer安装

composer require pgvector/pgvector

php连接pgsql结合openai的api获取embedding插入到PostgreSQL的数据库表中,示例代码如下:

<?php

<?php

require_once __DIR__ . '/../vendor/autoload.php';

use Pgvector\Vector;

$db = pg_connect('postgres://localhost/pgvector_example');

pg_query($db, 'CREATE EXTENSION IF NOT EXISTS vect...

点击查看剩余70%

{{collectdata}}

网友评论