Documentation
¶
Overview ¶
Package rag provides RAG (Retrieval Augmented Generation) functionality for storing and querying documentation in Qdrant vector database.
Index ¶
- func Category(path string) string
- func ChunkID(path string, index int, text string) string
- func FileExtensions() []string
- func FormatResultsContext(results []QueryResult) string
- func FormatResultsJSON(results []QueryResult) string
- func FormatResultsText(results []QueryResult) string
- func IngestFile(ctx context.Context, qdrant *QdrantClient, ollama *OllamaClient, ...) (int, error)
- func ShouldProcess(path string) bool
- type Chunk
- type ChunkConfig
- type IngestConfig
- type IngestProgress
- type IngestStats
- type OllamaClient
- func (o *OllamaClient) Embed(ctx context.Context, text string) ([]float32, error)
- func (o *OllamaClient) EmbedBatch(ctx context.Context, texts []string) ([][]float32, error)
- func (o *OllamaClient) EmbedDimension() uint64
- func (o *OllamaClient) Model() string
- func (o *OllamaClient) VerifyModel(ctx context.Context) error
- type OllamaConfig
- type Point
- type QdrantClient
- func (q *QdrantClient) Close() error
- func (q *QdrantClient) CollectionExists(ctx context.Context, name string) (bool, error)
- func (q *QdrantClient) CollectionInfo(ctx context.Context, name string) (*qdrant.CollectionInfo, error)
- func (q *QdrantClient) CreateCollection(ctx context.Context, name string, vectorSize uint64) error
- func (q *QdrantClient) DeleteCollection(ctx context.Context, name string) error
- func (q *QdrantClient) HealthCheck(ctx context.Context) error
- func (q *QdrantClient) ListCollections(ctx context.Context) ([]string, error)
- func (q *QdrantClient) Search(ctx context.Context, collection string, vector []float32, limit uint64, ...) ([]SearchResult, error)
- func (q *QdrantClient) UpsertPoints(ctx context.Context, collection string, points []Point) error
- type QdrantConfig
- type QueryConfig
- type QueryResult
- type SearchResult
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func FileExtensions ¶
func FileExtensions() []string
FileExtensions returns the file extensions to process.
func FormatResultsContext ¶
func FormatResultsContext(results []QueryResult) string
FormatResultsContext formats query results for LLM context injection.
func FormatResultsJSON ¶
func FormatResultsJSON(results []QueryResult) string
FormatResultsJSON formats query results as JSON-like output.
func FormatResultsText ¶
func FormatResultsText(results []QueryResult) string
FormatResultsText formats query results as plain text.
func IngestFile ¶
func IngestFile(ctx context.Context, qdrant *QdrantClient, ollama *OllamaClient, collection string, filePath string, chunkCfg ChunkConfig) (int, error)
IngestFile processes a single file and stores it in Qdrant.
func ShouldProcess ¶
ShouldProcess checks if a file should be processed based on extension.
Types ¶
type Chunk ¶
Chunk represents a text chunk with metadata.
func ChunkMarkdown ¶
func ChunkMarkdown(text string, cfg ChunkConfig) []Chunk
ChunkMarkdown splits markdown text into chunks by sections and paragraphs. Preserves context with configurable overlap.
type ChunkConfig ¶
ChunkConfig holds chunking configuration.
func DefaultChunkConfig ¶
func DefaultChunkConfig() ChunkConfig
DefaultChunkConfig returns default chunking configuration.
type IngestConfig ¶
type IngestConfig struct {
Directory string
Collection string
Recreate bool
Verbose bool
BatchSize int
Chunk ChunkConfig
}
IngestConfig holds ingestion configuration.
func DefaultIngestConfig ¶
func DefaultIngestConfig() IngestConfig
DefaultIngestConfig returns default ingestion configuration.
type IngestProgress ¶
IngestProgress is called during ingestion to report progress.
type IngestStats ¶
IngestStats holds statistics from ingestion.
func Ingest ¶
func Ingest(ctx context.Context, qdrant *QdrantClient, ollama *OllamaClient, cfg IngestConfig, progress IngestProgress) (*IngestStats, error)
Ingest processes a directory of documents and stores them in Qdrant.
type OllamaClient ¶
type OllamaClient struct {
// contains filtered or unexported fields
}
OllamaClient wraps the Ollama API client for embeddings.
func NewOllamaClient ¶
func NewOllamaClient(cfg OllamaConfig) (*OllamaClient, error)
NewOllamaClient creates a new Ollama client.
func (*OllamaClient) EmbedBatch ¶
EmbedBatch generates embeddings for multiple texts.
func (*OllamaClient) EmbedDimension ¶
func (o *OllamaClient) EmbedDimension() uint64
EmbedDimension returns the embedding dimension for the configured model. nomic-embed-text uses 768 dimensions.
func (*OllamaClient) Model ¶
func (o *OllamaClient) Model() string
Model returns the configured embedding model name.
func (*OllamaClient) VerifyModel ¶
func (o *OllamaClient) VerifyModel(ctx context.Context) error
VerifyModel checks if the embedding model is available.
type OllamaConfig ¶
OllamaConfig holds Ollama connection configuration.
func DefaultOllamaConfig ¶
func DefaultOllamaConfig() OllamaConfig
DefaultOllamaConfig returns default Ollama configuration. Host defaults to localhost for local development.
type QdrantClient ¶
type QdrantClient struct {
// contains filtered or unexported fields
}
QdrantClient wraps the Qdrant Go client with convenience methods.
func NewQdrantClient ¶
func NewQdrantClient(cfg QdrantConfig) (*QdrantClient, error)
NewQdrantClient creates a new Qdrant client.
func (*QdrantClient) Close ¶
func (q *QdrantClient) Close() error
Close closes the Qdrant client connection.
func (*QdrantClient) CollectionExists ¶
CollectionExists checks if a collection exists.
func (*QdrantClient) CollectionInfo ¶
func (q *QdrantClient) CollectionInfo(ctx context.Context, name string) (*qdrant.CollectionInfo, error)
CollectionInfo returns information about a collection.
func (*QdrantClient) CreateCollection ¶
CreateCollection creates a new collection with cosine distance.
func (*QdrantClient) DeleteCollection ¶
func (q *QdrantClient) DeleteCollection(ctx context.Context, name string) error
DeleteCollection deletes a collection.
func (*QdrantClient) HealthCheck ¶
func (q *QdrantClient) HealthCheck(ctx context.Context) error
HealthCheck verifies the connection to Qdrant.
func (*QdrantClient) ListCollections ¶
func (q *QdrantClient) ListCollections(ctx context.Context) ([]string, error)
ListCollections returns all collection names.
func (*QdrantClient) Search ¶
func (q *QdrantClient) Search(ctx context.Context, collection string, vector []float32, limit uint64, filter map[string]string) ([]SearchResult, error)
Search performs a vector similarity search.
func (*QdrantClient) UpsertPoints ¶
UpsertPoints inserts or updates points in a collection.
type QdrantConfig ¶
QdrantConfig holds Qdrant connection configuration.
func DefaultQdrantConfig ¶
func DefaultQdrantConfig() QdrantConfig
DefaultQdrantConfig returns default Qdrant configuration. Host defaults to localhost for local development.
type QueryConfig ¶
type QueryConfig struct {
Collection string
Limit uint64
Threshold float32 // Minimum similarity score (0-1)
Category string // Filter by category
}
QueryConfig holds query configuration.
func DefaultQueryConfig ¶
func DefaultQueryConfig() QueryConfig
DefaultQueryConfig returns default query configuration.
type QueryResult ¶
type QueryResult struct {
Text string
Source string
Section string
Category string
ChunkIndex int
Score float32
}
QueryResult represents a query result with metadata.
func Query ¶
func Query(ctx context.Context, qdrant *QdrantClient, ollama *OllamaClient, query string, cfg QueryConfig) ([]QueryResult, error)
Query searches for similar documents in Qdrant.