From 60ccaed2009c535c9c92c163995577fcde7aadb6 Mon Sep 17 00:00:00 2001 From: Grail Finder Date: Sun, 19 Oct 2025 13:14:56 +0300 Subject: Chore: remove old rag --- storage/migrate.go | 6 ++---- storage/storage.go | 10 ++------- storage/vector.go | 62 ++++++++++++++++++------------------------------------ 3 files changed, 24 insertions(+), 54 deletions(-) (limited to 'storage') diff --git a/storage/migrate.go b/storage/migrate.go index b05dddc..decfe9c 100644 --- a/storage/migrate.go +++ b/storage/migrate.go @@ -5,8 +5,6 @@ import ( "fmt" "io/fs" "strings" - - _ "github.com/asg017/sqlite-vec-go-bindings/ncruces" ) //go:embed migrations/* @@ -53,8 +51,8 @@ func (p *ProviderSQL) executeMigration(migrationsDir fs.FS, fileName string) err } func (p *ProviderSQL) executeSQL(sqlContent []byte) error { - // Connect to the database (example using a simple connection) - err := p.s3Conn.Exec(string(sqlContent)) + // Execute the migration content using standard database connection + _, err := p.db.Exec(string(sqlContent)) if err != nil { return fmt.Errorf("failed to execute SQL: %w", err) } diff --git a/storage/storage.go b/storage/storage.go index 0416884..a092f8d 100644 --- a/storage/storage.go +++ b/storage/storage.go @@ -6,7 +6,6 @@ import ( _ "github.com/glebarez/go-sqlite" "github.com/jmoiron/sqlx" - "github.com/ncruces/go-sqlite3" ) type FullRepo interface { @@ -28,7 +27,6 @@ type ChatHistory interface { type ProviderSQL struct { db *sqlx.DB - s3Conn *sqlite3.Conn logger *slog.Logger } @@ -97,7 +95,7 @@ func (p ProviderSQL) ChatGetMaxID() (uint32, error) { return id, err } -// opens two connections +// opens database connection func NewProviderSQL(dbPath string, logger *slog.Logger) FullRepo { db, err := sqlx.Open("sqlite", dbPath) if err != nil { @@ -105,11 +103,7 @@ 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 } diff --git a/storage/vector.go b/storage/vector.go index b3e5654..6958634 100644 --- a/storage/vector.go +++ b/storage/vector.go @@ -66,35 +66,13 @@ func (p ProviderSQL) WriteVector(row *models.VectorRow) error { if err != nil { return err } - stmt, _, err := p.s3Conn.Prepare( - fmt.Sprintf("INSERT INTO %s(embedding, slug, raw_text, filename) VALUES (?, ?, ?, ?)", tableName)) - if err != nil { - p.logger.Error("failed to prep a stmt", "error", err) - return err - } - defer stmt.Close() + serializedEmbeddings := SerializeVector(row.Embeddings) - if err := stmt.BindBlob(1, serializedEmbeddings); err != nil { - p.logger.Error("failed to bind", "error", err) - return err - } - if err := stmt.BindText(2, row.Slug); err != nil { - p.logger.Error("failed to bind", "error", err) - return err - } - if err := stmt.BindText(3, row.RawText); err != nil { - p.logger.Error("failed to bind", "error", err) - return err - } - if err := stmt.BindText(4, row.FileName); err != nil { - p.logger.Error("failed to bind", "error", err) - return err - } - err = stmt.Exec() - if err != nil { - return err - } - return nil + + query := fmt.Sprintf("INSERT INTO %s(embedding, slug, raw_text, filename) VALUES (?, ?, ?, ?)", tableName) + _, err = p.db.Exec(query, serializedEmbeddings, row.Slug, row.RawText, row.FileName) + + return err } func decodeUnsafe(bs []byte) []float32 { @@ -110,30 +88,30 @@ func (p ProviderSQL) SearchClosest(q []float32) ([]models.VectorRow, error) { func (p ProviderSQL) ListFiles() ([]string, error) { q := fmt.Sprintf("SELECT filename FROM %s GROUP BY filename", vecTableName384) - stmt, _, err := p.s3Conn.Prepare(q) + rows, err := p.db.Query(q) if err != nil { return nil, err } - defer stmt.Close() + defer rows.Close() + resp := []string{} - for stmt.Step() { - resp = append(resp, stmt.ColumnText(0)) + for rows.Next() { + var filename string + if err := rows.Scan(&filename); err != nil { + return nil, err + } + resp = append(resp, filename) } - if err := stmt.Err(); err != nil { + + if err := rows.Err(); err != nil { return nil, err } + return resp, nil } func (p ProviderSQL) RemoveEmbByFileName(filename string) error { q := fmt.Sprintf("DELETE FROM %s WHERE filename = ?", vecTableName384) - stmt, _, err := p.s3Conn.Prepare(q) - if err != nil { - return err - } - defer stmt.Close() - if err := stmt.BindText(1, filename); err != nil { - return err - } - return stmt.Exec() + _, err := p.db.Exec(q, filename) + return err } -- cgit v1.2.3