Documentation
¶
Index ¶
- Variables
- func List() []string
- func Register(factory EmbedderFactory) error
- func Supports(provider string) bool
- type BatchEmbedResult
- type Config
- type DashScopeEmbedder
- func (e *DashScopeEmbedder) Close() error
- func (e *DashScopeEmbedder) Dimension() int
- func (e *DashScopeEmbedder) Embed(ctx context.Context, texts []string) ([][]float32, error)
- func (e *DashScopeEmbedder) EmbedSingle(ctx context.Context, text string) ([]float32, error)
- func (e *DashScopeEmbedder) Name() string
- func (e *DashScopeEmbedder) Provider() string
- type DashScopeFactory
- type DefaultFactory
- type EmbedResult
- type Embedder
- type EmbedderFactory
- type EmbedderOptions
- type HealthCheckResult
- type LocalEmbedder
- func (e *LocalEmbedder) Close() error
- func (e *LocalEmbedder) Dimension() int
- func (e *LocalEmbedder) Embed(ctx context.Context, texts []string) ([][]float32, error)
- func (e *LocalEmbedder) EmbedSingle(ctx context.Context, text string) ([]float32, error)
- func (e *LocalEmbedder) Name() string
- func (e *LocalEmbedder) Provider() string
- type LocalFactory
- type NvidiaEmbedder
- func (e *NvidiaEmbedder) Close() error
- func (e *NvidiaEmbedder) Dimension() int
- func (e *NvidiaEmbedder) Embed(ctx context.Context, texts []string) ([][]float32, error)
- func (e *NvidiaEmbedder) EmbedSingle(ctx context.Context, text string) ([]float32, error)
- func (e *NvidiaEmbedder) Name() string
- func (e *NvidiaEmbedder) Provider() string
- type NvidiaFactory
- type OllamaEmbedder
- func (e *OllamaEmbedder) Close() error
- func (e *OllamaEmbedder) Dimension() int
- func (e *OllamaEmbedder) Embed(ctx context.Context, texts []string) ([][]float32, error)
- func (e *OllamaEmbedder) EmbedSingle(ctx context.Context, text string) ([]float32, error)
- func (e *OllamaEmbedder) Name() string
- func (e *OllamaEmbedder) Provider() string
- type OllamaFactory
- type OpenAIEmbedder
- func (e *OpenAIEmbedder) Close() error
- func (e *OpenAIEmbedder) Dimension() int
- func (e *OpenAIEmbedder) Embed(ctx context.Context, texts []string) ([][]float32, error)
- func (e *OpenAIEmbedder) EmbedSingle(ctx context.Context, text string) ([]float32, error)
- func (e *OpenAIEmbedder) Name() string
- func (e *OpenAIEmbedder) Provider() string
- type OpenAIFactory
Constants ¶
This section is empty.
Variables ¶
var ( ErrEmptyInput = errors.New("input is empty") ErrInvalidDimension = errors.New("invalid vector dimension") ErrInvalidConfig = errors.New("invalid configuration") ErrProviderNotFound = errors.New("provider not found") ErrModelNotFound = errors.New("model not found") ErrAPIKeyRequired = errors.New("API key is required") ErrBaseURLRequired = errors.New("BaseURL is required") ErrEmbedFailed = errors.New("embedding failed") ErrConnectionFailed = errors.New("connection failed") ErrRateLimited = errors.New("rate limited") ErrInvalidResponse = errors.New("invalid response") )
Functions ¶
Types ¶
type BatchEmbedResult ¶
type BatchEmbedResult struct {
Results []EmbedResult
Dimension int
Duration int64 // 毫秒
}
BatchEmbedResult 批量向量化结果
type Config ¶
type Config struct {
// Provider 提供商名称 (openai, nvidia, ollama, local 等)
Provider string
// Model 模型名称
Model string
// BaseURL API 基础 URL
BaseURL string
// APIKey API 密钥
APIKey string
// Dimension 向量维度
Dimension int
// BatchSize 批处理大小
BatchSize int
// Timeout 超时时间(秒)
Timeout int
// MaxRetries 最大重试次数
MaxRetries int
// CustomConfig 自定义配置(用于特定提供商)
CustomConfig map[string]interface{}
}
Config 通用 embedder 配置
type DashScopeEmbedder ¶
type DashScopeEmbedder struct {
// contains filtered or unexported fields
}
DashScopeEmbedder 阿里 DashScope embedding 实现
func NewDashScopeEmbedder ¶
func NewDashScopeEmbedder(cfg *Config) *DashScopeEmbedder
NewDashScopeEmbedder 创建 DashScope embedder
func (*DashScopeEmbedder) Close ¶
func (e *DashScopeEmbedder) Close() error
func (*DashScopeEmbedder) Dimension ¶
func (e *DashScopeEmbedder) Dimension() int
func (*DashScopeEmbedder) EmbedSingle ¶
EmbedSingle 单个文本向量化
func (*DashScopeEmbedder) Name ¶
func (e *DashScopeEmbedder) Name() string
func (*DashScopeEmbedder) Provider ¶
func (e *DashScopeEmbedder) Provider() string
type DashScopeFactory ¶
type DashScopeFactory struct{}
DashScopeFactory DashScope embedder 工厂
func (*DashScopeFactory) Name ¶
func (f *DashScopeFactory) Name() string
func (*DashScopeFactory) Supports ¶
func (f *DashScopeFactory) Supports(provider string) bool
type DefaultFactory ¶
type DefaultFactory struct {
// contains filtered or unexported fields
}
DefaultFactory 默认工厂实现
func (*DefaultFactory) Register ¶
func (f *DefaultFactory) Register(factory EmbedderFactory) error
Register 注册工厂
func (*DefaultFactory) Supports ¶
func (f *DefaultFactory) Supports(provider string) bool
Supports 检查是否支持该提供商
type EmbedResult ¶
EmbedResult 向量化结果
type Embedder ¶
type Embedder interface {
// Embed 将文本列表转换为向量
Embed(ctx context.Context, texts []string) ([][]float32, error)
// EmbedSingle 将单个文本转换为向量
EmbedSingle(ctx context.Context, text string) ([]float32, error)
// Dimension 返回向量维度
Dimension() int
// Name 返回 embedder 名称
Name() string
// Provider 返回提供商名称
Provider() string
// Close 关闭连接
Close() error
}
Embedder 文本向量化接口
type EmbedderFactory ¶
type EmbedderFactory interface {
// Create 创建 embedder 实例
Create(ctx context.Context, cfg *Config) (Embedder, error)
// Name 返回工厂名称
Name() string
// Supports 检查是否支持该提供商
Supports(provider string) bool
}
EmbedderFactory 工厂接口
type EmbedderOptions ¶
type EmbedderOptions struct {
// BatchSize 批处理大小
BatchSize int
// Normalize 是否归一化向量
Normalize bool
// ReturnTokens 是否返回 token 数
ReturnTokens bool
// Timeout 超时时间(秒)
Timeout int
}
EmbedderOptions 向量化选项
type HealthCheckResult ¶
type HealthCheckResult struct {
Healthy bool
Message string
Latency int64 // 毫秒
LastErr error
Provider string
Model string
}
HealthCheckResult 健康检查结果
type LocalEmbedder ¶
type LocalEmbedder struct {
// contains filtered or unexported fields
}
LocalEmbedder 本地 embedding 实现
func NewLocalEmbedder ¶
func NewLocalEmbedder(cfg *Config) *LocalEmbedder
NewLocalEmbedder 创建本地 embedder
func (*LocalEmbedder) Close ¶
func (e *LocalEmbedder) Close() error
func (*LocalEmbedder) Dimension ¶
func (e *LocalEmbedder) Dimension() int
func (*LocalEmbedder) EmbedSingle ¶
EmbedSingle 单个文本向量化
func (*LocalEmbedder) Name ¶
func (e *LocalEmbedder) Name() string
func (*LocalEmbedder) Provider ¶
func (e *LocalEmbedder) Provider() string
type LocalFactory ¶
type LocalFactory struct{}
LocalFactory 本地 embedder 工厂
func (*LocalFactory) Name ¶
func (f *LocalFactory) Name() string
func (*LocalFactory) Supports ¶
func (f *LocalFactory) Supports(provider string) bool
type NvidiaEmbedder ¶
type NvidiaEmbedder struct {
// contains filtered or unexported fields
}
NvidiaEmbedder Nvidia embedding 实现
func NewNvidiaEmbedder ¶
func NewNvidiaEmbedder(cfg *Config) *NvidiaEmbedder
NewNvidiaEmbedder 创建 Nvidia embedder
func (*NvidiaEmbedder) Close ¶
func (e *NvidiaEmbedder) Close() error
func (*NvidiaEmbedder) Dimension ¶
func (e *NvidiaEmbedder) Dimension() int
func (*NvidiaEmbedder) EmbedSingle ¶
EmbedSingle 单个文本向量化
func (*NvidiaEmbedder) Name ¶
func (e *NvidiaEmbedder) Name() string
func (*NvidiaEmbedder) Provider ¶
func (e *NvidiaEmbedder) Provider() string
type NvidiaFactory ¶
type NvidiaFactory struct{}
NvidiaFactory Nvidia embedder 工厂
func (*NvidiaFactory) Name ¶
func (f *NvidiaFactory) Name() string
func (*NvidiaFactory) Supports ¶
func (f *NvidiaFactory) Supports(provider string) bool
type OllamaEmbedder ¶
type OllamaEmbedder struct {
// contains filtered or unexported fields
}
OllamaEmbedder Ollama embedding 实现
func NewOllamaEmbedder ¶
func NewOllamaEmbedder(cfg *Config) *OllamaEmbedder
NewOllamaEmbedder 创建 Ollama embedder
func (*OllamaEmbedder) Close ¶
func (e *OllamaEmbedder) Close() error
func (*OllamaEmbedder) Dimension ¶
func (e *OllamaEmbedder) Dimension() int
func (*OllamaEmbedder) EmbedSingle ¶
EmbedSingle 单个文本向量化
func (*OllamaEmbedder) Name ¶
func (e *OllamaEmbedder) Name() string
func (*OllamaEmbedder) Provider ¶
func (e *OllamaEmbedder) Provider() string
type OllamaFactory ¶
type OllamaFactory struct{}
OllamaFactory Ollama embedder 工厂
func (*OllamaFactory) Name ¶
func (f *OllamaFactory) Name() string
func (*OllamaFactory) Supports ¶
func (f *OllamaFactory) Supports(provider string) bool
type OpenAIEmbedder ¶
type OpenAIEmbedder struct {
// contains filtered or unexported fields
}
OpenAIEmbedder OpenAI embedding 实现
func NewOpenAIEmbedder ¶
func NewOpenAIEmbedder(cfg *Config) *OpenAIEmbedder
NewOpenAIEmbedder 创建 OpenAI embedder
func (*OpenAIEmbedder) Close ¶
func (e *OpenAIEmbedder) Close() error
func (*OpenAIEmbedder) Dimension ¶
func (e *OpenAIEmbedder) Dimension() int
func (*OpenAIEmbedder) EmbedSingle ¶
EmbedSingle 单个文本向量化
func (*OpenAIEmbedder) Name ¶
func (e *OpenAIEmbedder) Name() string
func (*OpenAIEmbedder) Provider ¶
func (e *OpenAIEmbedder) Provider() string
type OpenAIFactory ¶
type OpenAIFactory struct{}
OpenAIFactory OpenAI embedder 工厂
func (*OpenAIFactory) Name ¶
func (f *OpenAIFactory) Name() string
func (*OpenAIFactory) Supports ¶
func (f *OpenAIFactory) Supports(provider string) bool