Documentation
¶
Index ¶
- type CohereConfig
- type CohereProvider
- func (p *CohereProvider) MaxDocuments() int
- func (p *CohereProvider) Name() string
- func (p *CohereProvider) Rerank(ctx context.Context, req *RerankRequest) (*RerankResponse, error)
- func (p *CohereProvider) RerankSimple(ctx context.Context, query string, documents []string, topN int) ([]RerankResult, error)
- type Document
- type FactoryConfig
- type GLMConfig
- type GLMProvider
- type JinaConfig
- type JinaProvider
- type Provider
- type ProviderType
- type QwenConfig
- type QwenProvider
- type RerankRequest
- type RerankResponse
- type RerankResult
- type RerankUsage
- type VoyageConfig
- type VoyageProvider
- func (p *VoyageProvider) MaxDocuments() int
- func (p *VoyageProvider) Name() string
- func (p *VoyageProvider) Rerank(ctx context.Context, req *RerankRequest) (*RerankResponse, error)
- func (p *VoyageProvider) RerankSimple(ctx context.Context, query string, documents []string, topN int) ([]RerankResult, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CohereConfig ¶
type CohereConfig struct {
providers.BaseProviderConfig `yaml:",inline"`
}
CohereConfig 配置 Cohere 重排提供者.
func DefaultCohereConfig ¶
func DefaultCohereConfig() CohereConfig
DefaultCohereConfig 返回默认 Cohere 重排配置.
type CohereProvider ¶
type CohereProvider struct {
// contains filtered or unexported fields
}
func NewCohereProvider ¶
func NewCohereProvider(cfg CohereConfig) *CohereProvider
NewCohereProvider 创建新的 Cohere reranker 提供者.
func (*CohereProvider) MaxDocuments ¶
func (p *CohereProvider) MaxDocuments() int
func (*CohereProvider) Name ¶
func (p *CohereProvider) Name() string
func (*CohereProvider) Rerank ¶
func (p *CohereProvider) Rerank(ctx context.Context, req *RerankRequest) (*RerankResponse, error)
使用 Cohere 对文档进行重新排序 。
func (*CohereProvider) RerankSimple ¶
func (p *CohereProvider) RerankSimple(ctx context.Context, query string, documents []string, topN int) ([]RerankResult, error)
RerankSimple是简单的再排的一种方便方法.
type Document ¶
type Document struct {
Text string `json:"text"`
ID string `json:"id,omitempty"`
Title string `json:"title,omitempty"`
}
Document 表示待重排序的文档.
type FactoryConfig ¶
type FactoryConfig struct {
Type ProviderType
APIKey string
BaseURL string
Model string
Timeout time.Duration
}
FactoryConfig 是 rerank 统一工厂输入。
type GLMConfig ¶
type GLMConfig struct {
APIKey string `json:"api_key" yaml:"api_key"`
BaseURL string `json:"base_url" yaml:"base_url"`
Model string `json:"model,omitempty" yaml:"model,omitempty"`
Timeout time.Duration `json:"timeout,omitempty" yaml:"timeout,omitempty"`
}
GLMConfig 配置智谱 Rerank 提供者.
type GLMProvider ¶
type GLMProvider struct {
// contains filtered or unexported fields
}
GLMProvider 实现智谱 Rerank.
func NewGLMProvider ¶
func NewGLMProvider(cfg GLMConfig) *GLMProvider
NewGLMProvider 创建新的 GLM reranker 提供者.
func (*GLMProvider) MaxDocuments ¶
func (p *GLMProvider) MaxDocuments() int
func (*GLMProvider) Name ¶
func (p *GLMProvider) Name() string
func (*GLMProvider) Rerank ¶
func (p *GLMProvider) Rerank(ctx context.Context, req *RerankRequest) (*RerankResponse, error)
Rerank 使用智谱 Rerank API 重排序文档.
func (*GLMProvider) RerankSimple ¶
func (p *GLMProvider) RerankSimple(ctx context.Context, query string, documents []string, topN int) ([]RerankResult, error)
RerankSimple 是简单重排序的便捷方法.
type JinaConfig ¶
type JinaConfig struct {
providers.BaseProviderConfig `yaml:",inline"`
}
JinaConfig 配置 Jina AI 重排提供者.
type JinaProvider ¶
type JinaProvider struct {
// contains filtered or unexported fields
}
func NewJinaProvider ¶
func NewJinaProvider(cfg JinaConfig) *JinaProvider
NewJinaProvider 创建新的 Jina reranker 提供者.
func (*JinaProvider) MaxDocuments ¶
func (p *JinaProvider) MaxDocuments() int
func (*JinaProvider) Name ¶
func (p *JinaProvider) Name() string
func (*JinaProvider) Rerank ¶
func (p *JinaProvider) Rerank(ctx context.Context, req *RerankRequest) (*RerankResponse, error)
重新排序使用Jina AI的文件重新排序.
func (*JinaProvider) RerankSimple ¶
func (p *JinaProvider) RerankSimple(ctx context.Context, query string, documents []string, topN int) ([]RerankResult, error)
RerankSimple是简单的再排的一种方便方法.
type Provider ¶
type Provider interface {
// Rerank 根据查询的相关性重排序文档.
Rerank(ctx context.Context, req *RerankRequest) (*RerankResponse, error)
// RerankSimple 是简单重排序的便捷方法.
RerankSimple(ctx context.Context, query string, documents []string, topN int) ([]RerankResult, error)
// Name 返回提供者名称.
Name() string
// MaxDocuments 返回支持的最大文档数量.
MaxDocuments() int
}
Provider 定义统一的重排序提供者接口.
func NewProviderFromConfig ¶
func NewProviderFromConfig(cfg FactoryConfig) (Provider, error)
NewProviderFromConfig 是 rerank 包唯一构建入口。
type ProviderType ¶
type ProviderType string
ProviderType 标识 rerank provider 类型。
const ( ProviderCohere ProviderType = "cohere" ProviderVoyage ProviderType = "voyage" ProviderJina ProviderType = "jina" ProviderQwen ProviderType = "qwen" ProviderGLM ProviderType = "glm" )
type QwenConfig ¶
type QwenConfig struct {
APIKey string `json:"api_key" yaml:"api_key"`
BaseURL string `json:"base_url" yaml:"base_url"`
Model string `json:"model,omitempty" yaml:"model,omitempty"`
Timeout time.Duration `json:"timeout,omitempty" yaml:"timeout,omitempty"`
}
QwenConfig 配置阿里云百炼 Rerank 提供者.
type QwenProvider ¶
type QwenProvider struct {
// contains filtered or unexported fields
}
QwenProvider 实现阿里云百炼 Rerank.
func NewQwenProvider ¶
func NewQwenProvider(cfg QwenConfig) *QwenProvider
NewQwenProvider 创建新的 Qwen reranker 提供者.
func (*QwenProvider) MaxDocuments ¶
func (p *QwenProvider) MaxDocuments() int
func (*QwenProvider) Name ¶
func (p *QwenProvider) Name() string
func (*QwenProvider) Rerank ¶
func (p *QwenProvider) Rerank(ctx context.Context, req *RerankRequest) (*RerankResponse, error)
Rerank 使用阿里云百炼 Rerank API 重排序文档.
func (*QwenProvider) RerankSimple ¶
func (p *QwenProvider) RerankSimple(ctx context.Context, query string, documents []string, topN int) ([]RerankResult, error)
RerankSimple 是简单重排序的便捷方法.
type RerankRequest ¶
type RerankRequest struct {
Query string `json:"query"`
Documents []Document `json:"documents"`
Model string `json:"model,omitempty"`
TopN int `json:"top_n,omitempty"` // Return top N results
ReturnDocuments bool `json:"return_documents,omitempty"` // Include document text in response
MaxChunksPerDoc int `json:"max_chunks_per_doc,omitempty"` // For long documents
Metadata map[string]string `json:"metadata,omitempty"`
}
RerankRequest 表示重排序请求.
type RerankResponse ¶
type RerankResponse struct {
ID string `json:"id,omitempty"`
Provider string `json:"provider"`
Model string `json:"model"`
Results []RerankResult `json:"results"`
Usage RerankUsage `json:"usage"`
CreatedAt time.Time `json:"created_at,omitempty"`
}
RerankResponse 表示重排序响应.
type RerankResult ¶
type RerankResult struct {
Index int `json:"index"` // Original index in input
RelevanceScore float64 `json:"relevance_score"` // 0-1 normalized score
Document Document `json:"document,omitempty"`
}
RerankResult 表示单个重排序结果.
type RerankUsage ¶
type RerankUsage struct {
SearchUnits int `json:"search_units,omitempty"`
TotalTokens int `json:"total_tokens,omitempty"`
Cost float64 `json:"cost,omitempty"`
}
RerankUsage 表示使用统计.
type VoyageConfig ¶
type VoyageConfig struct {
providers.BaseProviderConfig `yaml:",inline"`
}
VoyageConfig 配置 Voyage AI 重排提供者.
func DefaultVoyageConfig ¶
func DefaultVoyageConfig() VoyageConfig
DefaultVoyageConfig 返回默认 Voyage 重排配置.
type VoyageProvider ¶
type VoyageProvider struct {
// contains filtered or unexported fields
}
func NewVoyageProvider ¶
func NewVoyageProvider(cfg VoyageConfig) *VoyageProvider
NewVoyageProvider 创建新的 Voyage reranker 提供者.
func (*VoyageProvider) MaxDocuments ¶
func (p *VoyageProvider) MaxDocuments() int
func (*VoyageProvider) Name ¶
func (p *VoyageProvider) Name() string
func (*VoyageProvider) Rerank ¶
func (p *VoyageProvider) Rerank(ctx context.Context, req *RerankRequest) (*RerankResponse, error)
重新排序使用Voyage AI的文档重新排序.
func (*VoyageProvider) RerankSimple ¶
func (p *VoyageProvider) RerankSimple(ctx context.Context, query string, documents []string, topN int) ([]RerankResult, error)
RerankSimple是简单的再排的一种方便方法.