Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CosineSimilarity ¶
CosineSimilarity calculates cosine similarity between two vectors
func SortByScore ¶
func SortByScore(results []SearchResult)
SortByScore sorts results by similarity in descending order
Types ¶
type Database ¶
type Database interface {
// Document operations
AddDocument(ctx context.Context, doc Document) error
DeleteDocumentsByPath(ctx context.Context, sourcePath string) error
SearchSimilar(ctx context.Context, queryEmbedding []float64, limit int) ([]SearchResult, error)
GetDocumentsByPath(ctx context.Context, sourcePath string) ([]Document, error)
// File metadata operations (for change detection and incremental indexing)
GetFileMetadata(ctx context.Context, sourcePath string) (*FileMetadata, error)
SetFileMetadata(ctx context.Context, metadata FileMetadata) error
GetAllFileMetadata(ctx context.Context) ([]FileMetadata, error)
DeleteFileMetadata(ctx context.Context, sourcePath string) error
// Resource management
Close() error
}
Database interface for RAG operations Implementations: SQLite (sqlite.go), PostgreSQL (future), Pinecone (future), etc.
type Document ¶
type Document struct {
ID string `json:"id"`
SourcePath string `json:"source_path"`
ChunkIndex int `json:"chunk_index"`
Content string `json:"content"`
Embedding []float64 `json:"-"`
FileHash string `json:"file_hash"`
CreatedAt string `json:"created_at"`
}
Document represents a chunk of text with its embedding
type FileMetadata ¶
FileMetadata represents metadata about an indexed file
type SearchResult ¶
type SearchResult struct {
Document Document `json:"document"`
Similarity float64 `json:"similarity"`
}
SearchResult represents a document with its similarity score
Click to show internal directories.
Click to hide internal directories.