Documentation
¶
Index ¶
Constants ¶
const ( ProviderSiliconFlow = "siliconflow" ProviderJinaAI = "jinaai" ProviderCohereAI = "cohereai" ProviderLocal = "local" )
Provider constants
const DefaultTimeout = 30 * time.Second
DefaultTimeout is the default timeout for rerank requests
Variables ¶
var ( ErrNilClient = "client is nil" ErrEmptyBaseURL = "BaseURL is required" ErrEmptyAPIKey = "APIKey is required" ErrEmptyModel = "Model is required" ErrEmptyQuery = "query is empty" ErrEmptyDocuments = "documents is empty" ErrInvalidTopN = "topN must be greater than 0" )
Common errors
Functions ¶
This section is empty.
Types ¶
type CohereAIRerankClient ¶
type CohereAIRerankClient struct {
BaseURL string
APIKey string
Model string
HTTPClient *http.Client
}
CohereAIRerankClient is a reranker client for Cohere AI API
func NewCohereAIRerankClient ¶
func NewCohereAIRerankClient(cfg *RerankClientConfig) *CohereAIRerankClient
NewCohereAIRerankClient creates a new Cohere AI reranker client
func (*CohereAIRerankClient) Provider ¶
func (c *CohereAIRerankClient) Provider() string
Provider returns the provider name
func (*CohereAIRerankClient) Rerank ¶
func (c *CohereAIRerankClient) Rerank(ctx context.Context, query string, documents []string, topN int) ([]RerankResult, error)
Rerank reranks documents based on query relevance using Cohere AI API
type JinaAIRerankClient ¶
type JinaAIRerankClient struct {
BaseURL string
APIKey string
Model string
HTTPClient *http.Client
}
JinaAIRerankClient is a reranker client for Jina AI API
func NewJinaAIRerankClient ¶
func NewJinaAIRerankClient(cfg *RerankClientConfig) *JinaAIRerankClient
NewJinaAIRerankClient creates a new Jina AI reranker client
func (*JinaAIRerankClient) Provider ¶
func (c *JinaAIRerankClient) Provider() string
Provider returns the provider name
func (*JinaAIRerankClient) Rerank ¶
func (c *JinaAIRerankClient) Rerank(ctx context.Context, query string, documents []string, topN int) ([]RerankResult, error)
Rerank reranks documents based on query relevance using Jina AI API
type LocalRerankClient ¶
type LocalRerankClient struct {
Model string
}
LocalRerankClient is a simple local reranker based on string similarity
func NewLocalRerankClient ¶
func NewLocalRerankClient(cfg *RerankClientConfig) *LocalRerankClient
NewLocalRerankClient creates a new local reranker client
func (*LocalRerankClient) Provider ¶
func (c *LocalRerankClient) Provider() string
Provider returns the provider name
func (*LocalRerankClient) Rerank ¶
func (c *LocalRerankClient) Rerank(ctx context.Context, query string, documents []string, topN int) ([]RerankResult, error)
Rerank reranks documents based on query relevance using local similarity
type RerankClientConfig ¶
type RerankClientConfig struct {
BaseURL string
APIKey string
Model string
Timeout time.Duration
HTTPClient *http.Client
}
RerankClientConfig holds common configuration for rerank clients
type RerankConfig ¶
type RerankConfig struct {
Provider string
BaseURL string
APIKey string
Model string
Timeout int
HTTPClient *http.Client
}
RerankConfig is the configuration for creating a reranker
type RerankResult ¶
RerankResult represents a reranked document with its score
type Reranker ¶
type Reranker interface {
// Rerank reranks documents based on query relevance
Rerank(ctx context.Context, query string, documents []string, topN int) ([]RerankResult, error)
// Provider returns the provider name
Provider() string
}
Reranker is the interface for reranking documents
func Create ¶
func Create(cfg *RerankConfig) (Reranker, error)
Create creates a new reranker based on the provider
type SiliconFlowRerankClient ¶
type SiliconFlowRerankClient struct {
BaseURL string
APIKey string
Model string
HTTPClient *http.Client
}
SiliconFlowRerankClient is a reranker client for SiliconFlow API
func NewSiliconFlowRerankClient ¶
func NewSiliconFlowRerankClient(cfg *RerankClientConfig) *SiliconFlowRerankClient
NewSiliconFlowRerankClient creates a new SiliconFlow reranker client
func (*SiliconFlowRerankClient) Provider ¶
func (c *SiliconFlowRerankClient) Provider() string
Provider returns the provider name
func (*SiliconFlowRerankClient) Rerank ¶
func (c *SiliconFlowRerankClient) Rerank(ctx context.Context, query string, documents []string, topN int) ([]RerankResult, error)
Rerank reranks documents based on query relevance using SiliconFlow API