php+PostgreSQL使用向量插入与查询再结合openai embedding实现知识库文档问答
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;
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%
网友评论