summaryrefslogtreecommitdiff
path: root/rag
diff options
context:
space:
mode:
Diffstat (limited to 'rag')
-rw-r--r--rag/embedder.go5
-rw-r--r--rag/rag.go5
-rw-r--r--rag/storage.go8
3 files changed, 10 insertions, 8 deletions
diff --git a/rag/embedder.go b/rag/embedder.go
index 1804019..4849941 100644
--- a/rag/embedder.go
+++ b/rag/embedder.go
@@ -3,6 +3,7 @@ package rag
import (
"bytes"
"encoding/json"
+ "errors"
"fmt"
"gf-lt/config"
"log/slog"
@@ -69,7 +70,7 @@ func (a *APIEmbedder) Embed(text []string) ([][]float32, error) {
}
if len(emb) == 0 {
- err = fmt.Errorf("empty embedding response")
+ err = errors.New("empty embedding response")
a.logger.Error("empty embedding response")
return nil, err
}
@@ -83,7 +84,7 @@ func (a *APIEmbedder) EmbedSingle(text string) ([]float32, error) {
return nil, err
}
if len(result) == 0 {
- return nil, fmt.Errorf("no embeddings returned")
+ return nil, errors.New("no embeddings returned")
}
return result[0], nil
}
diff --git a/rag/rag.go b/rag/rag.go
index c05d38a..018cd9a 100644
--- a/rag/rag.go
+++ b/rag/rag.go
@@ -1,6 +1,7 @@
package rag
import (
+ "errors"
"fmt"
"gf-lt/config"
"gf-lt/models"
@@ -108,7 +109,7 @@ func (r *RAG) LoadRAG(fpath string) error {
}
if len(paragraphs) == 0 {
- return fmt.Errorf("no valid paragraphs found in file")
+ return errors.New("no valid paragraphs found in file")
}
var (
@@ -222,7 +223,7 @@ func (r *RAG) fetchEmb(lines []string, errCh chan error, vectorCh chan<- []model
}
if len(embeddings) == 0 {
- err := fmt.Errorf("no embeddings returned")
+ err := errors.New("no embeddings returned")
r.logger.Error("empty embeddings")
errCh <- err
return err
diff --git a/rag/storage.go b/rag/storage.go
index 26ca0e3..64d54f7 100644
--- a/rag/storage.go
+++ b/rag/storage.go
@@ -141,7 +141,7 @@ func (vs *VectorStorage) SearchClosest(query []float32) ([]models.VectorRow, err
// we'll implement batching and potentially add L2 distance-based pre-filtering
// since cosine similarity is related to L2 distance for normalized vectors
- querySQL := fmt.Sprintf("SELECT embeddings, slug, raw_text, filename FROM %s", tableName)
+ querySQL := "SELECT embeddings, slug, raw_text, filename FROM " + tableName
rows, err := vs.sqlxDB.Query(querySQL)
if err != nil {
return nil, err
@@ -198,7 +198,7 @@ func (vs *VectorStorage) SearchClosest(query []float32) ([]models.VectorRow, err
}
// Convert back to VectorRow slice
- var results []models.VectorRow
+ results := make([]models.VectorRow, 0, len(topResults))
for _, result := range topResults {
result.vector.Distance = result.distance
results = append(results, result.vector)
@@ -209,11 +209,11 @@ func (vs *VectorStorage) SearchClosest(query []float32) ([]models.VectorRow, err
// ListFiles returns a list of all loaded files
func (vs *VectorStorage) ListFiles() ([]string, error) {
- var fileLists [][]string
+ fileLists := make([][]string, 0)
// Query both tables and combine results
for _, table := range []string{"embeddings_384", "embeddings_5120"} {
- query := fmt.Sprintf("SELECT DISTINCT filename FROM %s", table)
+ query := "SELECT DISTINCT filename FROM " + table
rows, err := vs.sqlxDB.Query(query)
if err != nil {
// Continue if one table doesn't exist