做了一段時間的0codePM,終於有時間回到技術工作,即使AI世界已經因為Deepseek推出而改變,但AI本質係沒有變的---繼續搞SQLite-vec。由於年代久遠,Opensource界幾個月可以好大變化,而且文檔永遠不齊全,對於功力有限的0codePM唯有亂試。
首先係,要在SQLite的CMDLine環境操作SQLite-vec,是需要載入vec0的extension,搵左輪同用Deepseek和GPT 9up完點樣apt-get都解決唔到。
https://github.com/asg017/sqlite-vec
咁.... 唯有自己 Compile。
作為0codePM 只識用 git clone,git左件野落來,點搞,無./configure
嘩.... 有個Makefile 呀,嘩嘩嘩,除左讀書真係唔會用Makefile,打開睇下,好長,唔知佢寫乜,見到
clean:
嘩,前世記憶呀,好似有個指令叫make all,唔理啦,打落去試下:
(venv) root@Ollama:~/sqlite-vec# make all
VERSION=0.1.7-alpha.2 \
DATE=2025-02-24T08:57:50Z+0000 \
SOURCE=bdc336d1cf2a2222b6227784bd30c6631603279b \
VERSION_MAJOR=$(echo $VERSION | cut -d. -f1) \
VERSION_MINOR=$(echo $VERSION | cut -d. -f2) \
VERSION_PATCH=$(echo $VERSION | cut -d. -f3 | cut -d- -f1) \
envsubst < sqlite-vec.h.tmpl > sqlite-vec.h
mkdir -p dist
cc \
-fPIC -shared \
-Wall -Wextra \
-Ivendor/ \
-O3 \
-lm \
sqlite-vec.c -o dist/vec0.so
In file included from sqlite-vec.c:1:
sqlite-vec.h:5:10: fatal error: sqlite3ext.h: No such file or directory
5 | #include "sqlite3ext.h"
| ^~~~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:96: dist/vec0.so] Error 1
當然無咁順利,我都預左架啦,
sqlite3ext.h 估計係sqlite3 Extension的lib,要裝返dev版,
Google 下:
apt-get install libsqlite3-dev
裝到喎,再行多次make all,嘩,又好多Warning,Warning啫,唔駛死既,不過到最後都係死左停向度:
不過咁,雖然停左,但個Target vec0.so 係出到喎。
咁唔理其他先,攞來試下,打sqlite3 入去cmdline 現境,relative path向.load唔得既,要打返 absolute path,向返呀大神個網搵返個example抄來試:
雖然最後select出唔返個如其result,可能因為0.16已經把table改左,唔係以前咁embedded 的col 用Virtualtable 放另一張表,呢樣係開發問題,之後再研究。咁,之後把vec0.so 放返入個path,等sqlite3 cmdline呢件工具可以用到先~
~全文完~