postgresql集成pgvector,postgresml,实现开源库内机器学习

  1. 请保证postgresql的python环境和pgml的python环境一致

1. pgvector

https://github.com/pgvector/pgvector.git

cd /tmp
git clone --branch v0.8.0 https://github.com/pgvector/pgvector.git
cd pgvector
make
make install # 可能需要加sudo 权限

问题记录:

src/bitutils.c:1:10: fatal error: postgres.h file not found
include "postgres.h"
1 error generated.
make: *** [/usr/lib/postgresql/17/lib/pgxs/src/makefiles/../../src/Makefile.global:1085: src/bitutils.bc] Error 1
解决:需要安装对应版本的postgresql开发包

sudo apt update
sudo apt install postgresql-server-dev-16

2. postgresqlml

安装rust:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

pgml安装指导:https://postgresml.org/docs/open-source/pgml/developers/self-hosting/building-from-source

出现问题:1. 添加linux的三方库环境,并安装缺失库文件

fn main() {
#[cfg(target_os = "macos")]
{
println!("cargo:rustc-link-search=/opt/homebrew/opt/openblas/lib");
println!("cargo:rustc-link-search=/opt/homebrew/opt/libomp/lib");
}
#[cfg(target_os = "linux")]
{
println!("cargo:rustc-link-search=/usr/lib/x86_64-linux-gnu");// Adjust this if needed
println!("cargo:rustc-link-search=/usr/lib/llvm-14/lib");
println!("cargo:rustc-link-lib=omp"); // Link OpenMP
println!("cargo:rustc-link-lib=openblas");
}
  1. pgrx版本
    在执行cargo install cargo-pgrx --version "0.10.0"的时候
    这里的version最好和Cargo.toml 中的pgrx版本更换为一致

打包发布成功后
从target的文件复制到对应的postgresql扩展目录下,保证以下这些存在:
/usr/share/postgresql/16/extension/pgml.control
/usr/lib/postgresql/16/lib/pgml.so
/usr/share/postgresql/16/extension/pgml--****.sql

posted @   代码世界faq  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
点击右上角即可分享
微信分享提示