summaryrefslogtreecommitdiff
path: root/storage/storage.go
diff options
context:
space:
mode:
authorGrail Finder <wohilas@gmail.com>2024-12-31 13:25:13 +0300
committerGrail Finder <wohilas@gmail.com>2024-12-31 13:25:13 +0300
commit461d19aa2512fea7ac07e50c3178609850ef07c3 (patch)
tree1e317b813686ca7696e96bba766cdbd3aeb35138 /storage/storage.go
parent4db8aea43dded3f2c1d0d41b5a3fb322a38d4730 (diff)
Feat: add rag [wip; skip-ci]
Diffstat (limited to 'storage/storage.go')
-rw-r--r--storage/storage.go9
1 files changed, 9 insertions, 0 deletions
diff --git a/storage/storage.go b/storage/storage.go
index 0853328..cfaaf0a 100644
--- a/storage/storage.go
+++ b/storage/storage.go
@@ -6,11 +6,13 @@ import (
_ "github.com/glebarez/go-sqlite"
"github.com/jmoiron/sqlx"
+ "github.com/ncruces/go-sqlite3"
)
type FullRepo interface {
ChatHistory
Memories
+ VectorRepo
}
type ChatHistory interface {
@@ -25,6 +27,7 @@ type ChatHistory interface {
type ProviderSQL struct {
db *sqlx.DB
+ s3Conn *sqlite3.Conn
logger *slog.Logger
}
@@ -87,6 +90,7 @@ func (p ProviderSQL) ChatGetMaxID() (uint32, error) {
return id, err
}
+// opens two connections
func NewProviderSQL(dbPath string, logger *slog.Logger) FullRepo {
db, err := sqlx.Open("sqlite", dbPath)
if err != nil {
@@ -94,6 +98,11 @@ func NewProviderSQL(dbPath string, logger *slog.Logger) FullRepo {
return nil
}
p := ProviderSQL{db: db, logger: logger}
+ p.s3Conn, err = sqlite3.Open(dbPath)
+ if err != nil {
+ logger.Error("failed to open vecdb connection", "error", err)
+ return nil
+ }
p.Migrate()
return p
}