rerank

package
v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Feb 26, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CohereConfig

type CohereConfig 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"` // rerank-v3.5
	Timeout time.Duration `json:"timeout,omitempty" yaml:"timeout,omitempty"`
}

Cohere Config 配置 Cohere 重排提供者 。

func DefaultCohereConfig

func DefaultCohereConfig() CohereConfig

默认 Cohere Config 返回默认 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

使用 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 JinaConfig

type JinaConfig 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"` // jina-reranker-v2-base-multilingual
	Timeout time.Duration `json:"timeout,omitempty" yaml:"timeout,omitempty"`
}

JinaConfig配置了Jina AI重排提供者.

func DefaultJinaConfig

func DefaultJinaConfig() JinaConfig

默认 JinaConfig 返回默认 Jina 重排配置 。

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 定义统一的重排序提供者接口.

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 {
	APIKey  string        `json:"api_key" yaml:"api_key"`
	BaseURL string        `json:"base_url" yaml:"base_url"`
	Model   string        `json:"model,omitempty" yaml:"model,omitempty"` // rerank-2
	Timeout time.Duration `json:"timeout,omitempty" yaml:"timeout,omitempty"`
}

VoyageConfig 配置 Voyage AI 重排提供者 。

func DefaultVoyageConfig

func DefaultVoyageConfig() VoyageConfig

默认 VoyageConfig 返回默认 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

重新排序使用Voyage AI的文档重新排序.

func (*VoyageProvider) RerankSimple

func (p *VoyageProvider) RerankSimple(ctx context.Context, query string, documents []string, topN int) ([]RerankResult, error)

RerankSimple是简单的再排的一种方便方法.

Jump to

Keyboard shortcuts

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