設定
設定 ToriiDB 程序的儲存路徑與選用 OpenAI embedding 行為。
設定來源
ToriiDB 有兩個設定介面:
| 介面 | 設定方式 | 作用範圍 |
|---|---|---|
| 儲存目錄 | store.New 的選用參數 |
單一 Store instance |
| Embedding 設定 | 程序環境或 OS keychain | 共用 OpenAI client 初始化 |
核心鍵值、JSON、查詢、TTL 與持久化功能都不需要 OpenAI credential。
儲存目錄
使用預設目錄建立 store:
db, err := store.New()
預設值為 ./temp,並以程序工作目錄為基準解析。若要指定其他位置,可傳入一個路徑:
db, err := store.New("/var/lib/toriidb")
store.New 不接受超過一個路徑。它會視需要建立根目錄,而個別 db_0 到 db_15 目錄及 AOF 檔則採延遲初始化。
程序必須能在此位置建立目錄、寫入檔案、重新命名暫存檔,並同步 AOF。
環境變數
| 變數 | 必填 | 預設值 | 用途 |
|---|---|---|---|
OPENAI_API_KEY |
否 | — | 啟用 embedding 生成與語意向量搜尋 |
TORIIDB_EMBED_DIM |
否 | 256 |
要求指定正整數維度的 embedding |
Shell 設定範例:
export OPENAI_API_KEY="your-api-key"
export TORIIDB_EMBED_DIM="256"
若 TORIIDB_EMBED_DIM 未設定或不是正數,ToriiDB 會使用 256。
API Key 查找順序
OpenAI client 會依下列順序解析 OPENAI_API_KEY:
- 程序環境。
- 透過 service name
ToriiDB讀取 OS keychain。 - 兩者皆無資料時,停用向量操作。
Keychain 實作會在可用平台上使用系統 credential facility。請勿將 credential 提交到原始碼版本控制或文件中。
Embedding 模型
ToriiDB 目前固定使用 text-embedding-3-small,無法透過 public API 更換模型。TORIIDB_EMBED_DIM 控制要求的維度,也會納入內部 embedding cache key。
只有快取中紀錄的維度與目前 client 維度相符時,該向量才會被重用。
網路行為
Embedding request 使用以下設定:
| 設定 | 值 |
|---|---|
| Endpoint | https://api.openai.com/v1/embeddings |
| Request timeout | 30 秒 |
| Encoding | 浮點數陣列 |
| 背景附加 timeout | 35 秒 |
一般儲存操作不會發出網路 request。SET ... VECTOR 會先儲存文字,再非同步附加向量;若查詢尚未快取,VSEARCH 可能同步發出 embedding request。
營運建議
- Production 應使用專用可寫目錄,不要依賴目前工作目錄。
- Graceful shutdown 時呼叫
Close,讓待處理向量工作完成並壓縮 AOF。 - 備份完整儲存根目錄,包含所有
db_N目錄。 - 已部署資料集應維持固定 embedding dimension;不同長度的 entry 會被搜尋略過。
- 依 host environment 限制檔案權限與 credential 存取。