Skip to content
This repository was archived by the owner on Jun 24, 2025. It is now read-only.

Commit 03e3863

Browse files
authored
Merge pull request #1325 from TriliumNext/ai-llm-integration
[WIP] AI/LLM integration
2 parents f6b5fb4 + 6c0a43f commit 03e3863

File tree

224 files changed

+35731
-51
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

224 files changed

+35731
-51
lines changed
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
-- Add tables for vector embeddings storage and management
2+
-- This migration adds embedding support to the main document.db database
3+
4+
-- Store embeddings for notes
5+
CREATE TABLE IF NOT EXISTS "note_embeddings" (
6+
"embedId" TEXT NOT NULL PRIMARY KEY,
7+
"noteId" TEXT NOT NULL,
8+
"providerId" TEXT NOT NULL,
9+
"modelId" TEXT NOT NULL,
10+
"dimension" INTEGER NOT NULL,
11+
"embedding" BLOB NOT NULL,
12+
"version" INTEGER NOT NULL DEFAULT 1,
13+
"dateCreated" TEXT NOT NULL,
14+
"utcDateCreated" TEXT NOT NULL,
15+
"dateModified" TEXT NOT NULL,
16+
"utcDateModified" TEXT NOT NULL
17+
);
18+
19+
CREATE INDEX "IDX_note_embeddings_noteId" ON "note_embeddings" ("noteId");
20+
CREATE INDEX "IDX_note_embeddings_providerId_modelId" ON "note_embeddings" ("providerId", "modelId");
21+
22+
-- Table to track which notes need embedding updates
23+
CREATE TABLE IF NOT EXISTS "embedding_queue" (
24+
"noteId" TEXT NOT NULL PRIMARY KEY,
25+
"operation" TEXT NOT NULL, -- CREATE, UPDATE, DELETE
26+
"dateQueued" TEXT NOT NULL,
27+
"utcDateQueued" TEXT NOT NULL,
28+
"priority" INTEGER NOT NULL DEFAULT 0,
29+
"attempts" INTEGER NOT NULL DEFAULT 0,
30+
"lastAttempt" TEXT NULL,
31+
"error" TEXT NULL,
32+
"failed" INTEGER NOT NULL DEFAULT 0,
33+
"isProcessing" INTEGER NOT NULL DEFAULT 0
34+
);
35+
36+
-- Table to store embedding provider configurations
37+
CREATE TABLE IF NOT EXISTS "embedding_providers" (
38+
"providerId" TEXT NOT NULL PRIMARY KEY,
39+
"name" TEXT NOT NULL,
40+
"priority" INTEGER NOT NULL DEFAULT 0,
41+
"config" TEXT NOT NULL, -- JSON config object
42+
"dateCreated" TEXT NOT NULL,
43+
"utcDateCreated" TEXT NOT NULL,
44+
"dateModified" TEXT NOT NULL,
45+
"utcDateModified" TEXT NOT NULL
46+
);

db/schema.sql

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,3 +145,45 @@ CREATE INDEX IDX_attachments_ownerId_role
145145
CREATE INDEX IDX_notes_blobId on notes (blobId);
146146
CREATE INDEX IDX_revisions_blobId on revisions (blobId);
147147
CREATE INDEX IDX_attachments_blobId on attachments (blobId);
148+
149+
CREATE TABLE IF NOT EXISTS "note_embeddings" (
150+
"embedId" TEXT NOT NULL PRIMARY KEY,
151+
"noteId" TEXT NOT NULL,
152+
"providerId" TEXT NOT NULL,
153+
"modelId" TEXT NOT NULL,
154+
"dimension" INTEGER NOT NULL,
155+
"embedding" BLOB NOT NULL,
156+
"version" INTEGER NOT NULL DEFAULT 1,
157+
"dateCreated" TEXT NOT NULL,
158+
"utcDateCreated" TEXT NOT NULL,
159+
"dateModified" TEXT NOT NULL,
160+
"utcDateModified" TEXT NOT NULL
161+
);
162+
163+
CREATE INDEX "IDX_note_embeddings_noteId" ON "note_embeddings" ("noteId");
164+
CREATE INDEX "IDX_note_embeddings_providerId_modelId" ON "note_embeddings" ("providerId", "modelId");
165+
166+
CREATE TABLE IF NOT EXISTS "embedding_queue" (
167+
"noteId" TEXT NOT NULL PRIMARY KEY,
168+
"operation" TEXT NOT NULL,
169+
"dateQueued" TEXT NOT NULL,
170+
"utcDateQueued" TEXT NOT NULL,
171+
"priority" INTEGER NOT NULL DEFAULT 0,
172+
"attempts" INTEGER NOT NULL DEFAULT 0,
173+
"lastAttempt" TEXT NULL,
174+
"error" TEXT NULL,
175+
"failed" INTEGER NOT NULL DEFAULT 0,
176+
"isProcessing" INTEGER NOT NULL DEFAULT 0
177+
);
178+
179+
CREATE TABLE IF NOT EXISTS "embedding_providers" (
180+
"providerId" TEXT NOT NULL PRIMARY KEY,
181+
"name" TEXT NOT NULL,
182+
"isEnabled" INTEGER NOT NULL DEFAULT 0,
183+
"priority" INTEGER NOT NULL DEFAULT 0,
184+
"config" TEXT NOT NULL,
185+
"dateCreated" TEXT NOT NULL,
186+
"utcDateCreated" TEXT NOT NULL,
187+
"dateModified" TEXT NOT NULL,
188+
"utcDateModified" TEXT NOT NULL
189+
);

docs/Developer Guide/!!!meta.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"formatVersion": 2,
3-
"appVersion": "0.92.7",
3+
"appVersion": "0.93.0",
44
"files": [
55
{
66
"isClone": false,

docs/Release Notes/!!!meta.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"formatVersion": 2,
3-
"appVersion": "0.92.7",
3+
"appVersion": "0.93.0",
44
"files": [
55
{
66
"isClone": false,

docs/Release Notes/Release Notes/v0.93.0.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
# v0.93.0
2-
32
## 🐞 Bugfixes
43

54
* Calendar does not hide when clicking on a note by @JYC333

0 commit comments

Comments
 (0)