關於Compile SQLite-vec

更新於 發佈於 閱讀時間約 3 分鐘

做了一段時間的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啫,唔駛死既,不過到最後都係死左停向度:

raw-image

不過咁,雖然停左,但個Target vec0.so 係出到喎。


raw-image

咁唔理其他先,攞來試下,打sqlite3 入去cmdline 現境,relative path向.load唔得既,要打返 absolute path,向返呀大神個網搵返個example抄來試:

raw-image


雖然最後select出唔返個如其result,可能因為0.16已經把table改左,唔係以前咁embedded 的col 用Virtualtable 放另一張表,呢樣係開發問題,之後再研究。咁,之後把vec0.so 放返入個path,等sqlite3 cmdline呢件工具可以用到先~


~全文完~

奮鬥過不過最終都係浮沉左大半世的IT老狗公,催Vendor買server裝硬碟SetRouter,垃圾code執手尾,教老細用Word同Excel,Windows撞錯密碼比人lock左,會議室支燈開唔到,同大陸佬用普話話開會都係我,不過我仲有時間畫畫同玩電子垃圾,咪寫向呢度囉。
留言
avatar-img
留言分享你的想法!

































































因為升左級User ID 同Workspace 冇晒,夾硬來,將舊既抄過去
繼續係自言自言的筆記,距離起左個Openwebui 都有段日子,節目氣氛濃厚,就停左一段時間,新一年都係要工既。 咁呢,要整合埋個VectorDB入去做RAG向返Openwebui比我地IT狗既尊貴的主人同米飯班主,抄功課都要搞得好好睇睇。於是呢度會用Pipeline接上一啲外部Program,上
SOL 日線圖偏弱,有條線返回趨勢線上。故此,ETH好倉減半。
雖然國內和香港經濟不會有太大起息已成為共識,但作為期貨炒作,不必要有升幅才可以賺錢,事實上,一年平均高達八千點波幅的恒生指數,其期貨操作比長升長有的美股/美期更容易賺到錢。 圖為恒指日線圖,由今年頭最低位一萬五樓下升到十月初兩萬三,剛好八千多點,符合統計上波幅水平。以整年圖表來看,今年上漲型成
因為早幾年炒幣輸剩幾百美刀向幣安,仲有啲TRX,一直放向度無用,聽左損友介紹又開始炒(連我呢啲盲毛都入局,好明顯係牛3)。 賣晒全部換晒USDT後,合共391美刀左右,全部轉晒入損友介紹既Pionex交易所。 這是12月2日既事,今日係12月10日。琴晚幣就大回調,呀~~仲未完,寫緊時以
搬屋忙左一段時間,仲跌(或者被偷)左部電話。所以無時間寫野。同學T送來部紅米Note 11玩住先。 而家慢慢返回正軌,將之前的稍稍整理一下再到下一步工作。 這個項目原意是處理公司三十年來的舊報告文字記錄,用作翻查或者生成可用的資源。早前試砲就用左SQLite Vec,唔知算得定唔得,不過都要
因為升左級User ID 同Workspace 冇晒,夾硬來,將舊既抄過去
繼續係自言自言的筆記,距離起左個Openwebui 都有段日子,節目氣氛濃厚,就停左一段時間,新一年都係要工既。 咁呢,要整合埋個VectorDB入去做RAG向返Openwebui比我地IT狗既尊貴的主人同米飯班主,抄功課都要搞得好好睇睇。於是呢度會用Pipeline接上一啲外部Program,上
SOL 日線圖偏弱,有條線返回趨勢線上。故此,ETH好倉減半。
雖然國內和香港經濟不會有太大起息已成為共識,但作為期貨炒作,不必要有升幅才可以賺錢,事實上,一年平均高達八千點波幅的恒生指數,其期貨操作比長升長有的美股/美期更容易賺到錢。 圖為恒指日線圖,由今年頭最低位一萬五樓下升到十月初兩萬三,剛好八千多點,符合統計上波幅水平。以整年圖表來看,今年上漲型成
因為早幾年炒幣輸剩幾百美刀向幣安,仲有啲TRX,一直放向度無用,聽左損友介紹又開始炒(連我呢啲盲毛都入局,好明顯係牛3)。 賣晒全部換晒USDT後,合共391美刀左右,全部轉晒入損友介紹既Pionex交易所。 這是12月2日既事,今日係12月10日。琴晚幣就大回調,呀~~仲未完,寫緊時以
搬屋忙左一段時間,仲跌(或者被偷)左部電話。所以無時間寫野。同學T送來部紅米Note 11玩住先。 而家慢慢返回正軌,將之前的稍稍整理一下再到下一步工作。 這個項目原意是處理公司三十年來的舊報告文字記錄,用作翻查或者生成可用的資源。早前試砲就用左SQLite Vec,唔知算得定唔得,不過都要
你可能也想看
Google News 追蹤
Thumbnail
※ 為什麼選擇SQLite? 安裝簡單:SQLite是一個零配置的資料庫,不需要複雜的設定和安裝過程。。 使用SQL語法。 設計選擇多元性(MySQL / SQLite):適合於小零件資料應用、嵌入式系統、物聯網設備。 ※ SQLite四大優點: 執行檔檔案很小:資料庫系統需要的磁碟空
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
“所有人寫的程式會變成指令 每一道指令是由CPU執行 而CPU所能理解的指令類型有限”
Thumbnail
成功加入Anytype之後就可以開始探索這一個開源的筆記軟體了^_^ 開始Anytype之前..... 1.刪除所有初始物件 2.思考自己的使用需求 3.不著急學會所有功能
Thumbnail
因為最近想嘗試編碼風格,於是就選了一套比較"不嚴格"的輔助工具來摸索。 編輯器 VS CODE 框架 VUE3 打包工具 VITE 編碼風格 Standard 環境 version { "nodejs":"v18.18.0", "npm":"9.8.1" }
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
在工作情境中手動執行SQL語法更新中文字時,有時會遇到中文字顯示問號(?)的情況。這篇文章將介紹如何解決手動執行SQL語法時造成中文顯示問號(?)的方法。
Thumbnail
第一份正職工作 在iot公司擔任後端工程師,一上工就使用先前沒用過的php/laravel,也馬上負責公司產品的架構規劃,先前資料庫只有簡單記載使用者跟使用者的一些設定,很多地方有資料不一致的問題,產品內容還有很多實體的關係沒有被定義進資料庫都是這次改版我要做的事情。 改版納入公司、機器
在實務情境上,常會有在單一專案程式庫中,存取多個不同資料庫的使用情境,在這種情況下,我們通常會設置多個資料庫連線(Database Connection)設定。 在平常開發使用設很方便,但要做測試時就會發現一些問題: 在測試程式碼或 Seeder 中調用 factory() 時,都是在預設連線資
Thumbnail
※ 為什麼選擇SQLite? 安裝簡單:SQLite是一個零配置的資料庫,不需要複雜的設定和安裝過程。。 使用SQL語法。 設計選擇多元性(MySQL / SQLite):適合於小零件資料應用、嵌入式系統、物聯網設備。 ※ SQLite四大優點: 執行檔檔案很小:資料庫系統需要的磁碟空
Thumbnail
打開 jupyter notebook 寫一段 python 程式,可以完成五花八門的工作,這是玩程式最簡便的方式,其中可以獲得很多快樂,在現今這種資訊發達的時代,幾乎沒有門檻,只要願意,人人可享用。 下一步,希望程式可以隨時待命聽我吩咐,不想每次都要開電腦,啟動開發環境,只為完成一個重複性高
“所有人寫的程式會變成指令 每一道指令是由CPU執行 而CPU所能理解的指令類型有限”
Thumbnail
成功加入Anytype之後就可以開始探索這一個開源的筆記軟體了^_^ 開始Anytype之前..... 1.刪除所有初始物件 2.思考自己的使用需求 3.不著急學會所有功能
Thumbnail
因為最近想嘗試編碼風格,於是就選了一套比較"不嚴格"的輔助工具來摸索。 編輯器 VS CODE 框架 VUE3 打包工具 VITE 編碼風格 Standard 環境 version { "nodejs":"v18.18.0", "npm":"9.8.1" }
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
在工作情境中手動執行SQL語法更新中文字時,有時會遇到中文字顯示問號(?)的情況。這篇文章將介紹如何解決手動執行SQL語法時造成中文顯示問號(?)的方法。
Thumbnail
第一份正職工作 在iot公司擔任後端工程師,一上工就使用先前沒用過的php/laravel,也馬上負責公司產品的架構規劃,先前資料庫只有簡單記載使用者跟使用者的一些設定,很多地方有資料不一致的問題,產品內容還有很多實體的關係沒有被定義進資料庫都是這次改版我要做的事情。 改版納入公司、機器
在實務情境上,常會有在單一專案程式庫中,存取多個不同資料庫的使用情境,在這種情況下,我們通常會設置多個資料庫連線(Database Connection)設定。 在平常開發使用設很方便,但要做測試時就會發現一些問題: 在測試程式碼或 Seeder 中調用 factory() 時,都是在預設連線資