database

package
v1.9.19 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 21, 2025 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CosineSimilarity

func CosineSimilarity(a, b []float64) float64

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

type FileMetadata struct {
	SourcePath  string
	FileHash    string
	LastIndexed string
	ChunkCount  int
}

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL