Documentation
¶
Index ¶
- type Embedding
- type GeminiConfig
- type GeminiEmbedding
- func (e *GeminiEmbedding) Dimension() int
- func (e *GeminiEmbedding) Embed(ctx context.Context, text string) ([]float32, error)
- func (e *GeminiEmbedding) EmbedBatch(ctx context.Context, texts []string) ([][]float32, error)
- func (e *GeminiEmbedding) EmbedTyped(ctx context.Context, texts []string, task TaskType) ([][]float32, error)
- func (e *GeminiEmbedding) Name() string
- type OllamaConfig
- type OllamaEmbedding
- func (e *OllamaEmbedding) Dimension() int
- func (e *OllamaEmbedding) Embed(ctx context.Context, text string) ([]float32, error)
- func (e *OllamaEmbedding) EmbedBatch(ctx context.Context, texts []string) ([][]float32, error)
- func (e *OllamaEmbedding) EmbedTyped(ctx context.Context, texts []string, _ TaskType) ([][]float32, error)
- func (e *OllamaEmbedding) Name() string
- type OpenAIConfig
- type OpenAIEmbedding
- func (e *OpenAIEmbedding) Dimension() int
- func (e *OpenAIEmbedding) Embed(ctx context.Context, text string) ([]float32, error)
- func (e *OpenAIEmbedding) EmbedBatch(ctx context.Context, texts []string) ([][]float32, error)
- func (e *OpenAIEmbedding) EmbedTyped(ctx context.Context, texts []string, _ TaskType) ([][]float32, error)
- func (e *OpenAIEmbedding) Name() string
- type TaskType
- type VoyageAIConfig
- type VoyageAIEmbedding
- func (e *VoyageAIEmbedding) Dimension() int
- func (e *VoyageAIEmbedding) Embed(ctx context.Context, text string) ([]float32, error)
- func (e *VoyageAIEmbedding) EmbedBatch(ctx context.Context, texts []string) ([][]float32, error)
- func (e *VoyageAIEmbedding) EmbedTyped(ctx context.Context, texts []string, task TaskType) ([][]float32, error)
- func (e *VoyageAIEmbedding) Name() string
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Embedding ¶
type Embedding interface {
// Embed 把单段查询文本转成向量(语义视为 query)
Embed(ctx context.Context, text string) ([]float32, error)
// EmbedBatch 批量向量化(语义视为 document,索引时用)
EmbedBatch(ctx context.Context, texts []string) ([][]float32, error)
// EmbedTyped 显式指定 task type 的批量调用。supplier 不支持 task type
// 时退化为普通 EmbedBatch;支持的供应商(Gemini/Voyage)会按 task 优化。
EmbedTyped(ctx context.Context, texts []string, task TaskType) ([][]float32, error)
Dimension() int
Name() string
}
Embedding 向量化接口,抽象不同 Embedding 供应商
type GeminiConfig ¶
type GeminiConfig struct {
APIKey string
Model string // 默认 text-embedding-004
// 限额覆盖(0 = 用 paid tier 默认;用 free tier 时调小,如 RPM=100 TPM=30000)
RPM int
TPM int
}
GeminiConfig Gemini 配置
type GeminiEmbedding ¶
type GeminiEmbedding struct {
// contains filtered or unexported fields
}
GeminiEmbedding Google Gemini Embedding 实现
func NewGeminiEmbedding ¶
func NewGeminiEmbedding(cfg GeminiConfig) *GeminiEmbedding
NewGeminiEmbedding 创建 Gemini Embedding 实例
func (*GeminiEmbedding) Dimension ¶
func (e *GeminiEmbedding) Dimension() int
func (*GeminiEmbedding) EmbedBatch ¶
func (*GeminiEmbedding) EmbedTyped ¶
func (e *GeminiEmbedding) EmbedTyped(ctx context.Context, texts []string, task TaskType) ([][]float32, error)
EmbedTyped 带 task_type 的批量调用,Gemini 据此选择最合适的向量空间。
func (*GeminiEmbedding) Name ¶
func (e *GeminiEmbedding) Name() string
type OllamaConfig ¶
type OllamaConfig struct {
Model string // 默认 nomic-embed-text
BaseURL string // 默认 http://localhost:11434
Dim int // 向量维度(不同模型不同)
}
OllamaConfig Ollama 配置
type OllamaEmbedding ¶
type OllamaEmbedding struct {
// contains filtered or unexported fields
}
OllamaEmbedding Ollama 本地 Embedding 实现
func NewOllamaEmbedding ¶
func NewOllamaEmbedding(cfg OllamaConfig) *OllamaEmbedding
NewOllamaEmbedding 创建 Ollama Embedding 实例
func (*OllamaEmbedding) Dimension ¶
func (e *OllamaEmbedding) Dimension() int
func (*OllamaEmbedding) EmbedBatch ¶
func (*OllamaEmbedding) EmbedTyped ¶
func (e *OllamaEmbedding) EmbedTyped(ctx context.Context, texts []string, _ TaskType) ([][]float32, error)
EmbedTyped Ollama 没有 task type 概念,退化为 EmbedBatch
func (*OllamaEmbedding) Name ¶
func (e *OllamaEmbedding) Name() string
type OpenAIConfig ¶
type OpenAIConfig struct {
APIKey string
Model string // OpenAI 默认 text-embedding-3-small;自托管按服务实际 model id 填
BaseURL string // 默认 https://api.openai.com/v1;LM Studio 一般是 http://host:1234/v1
Dim int // 当未知模型或自托管时手动指定;0 = 用内置映射(仅 OpenAI 已知模型)
}
OpenAIConfig OpenAI(及兼容服务,如 LM Studio / vLLM / TEI)配置
type OpenAIEmbedding ¶
type OpenAIEmbedding struct {
// contains filtered or unexported fields
}
OpenAIEmbedding OpenAI Embedding 实现
func NewOpenAIEmbedding ¶
func NewOpenAIEmbedding(cfg OpenAIConfig) *OpenAIEmbedding
NewOpenAIEmbedding 创建 OpenAI 兼容 Embedding 实例
func (*OpenAIEmbedding) Dimension ¶
func (e *OpenAIEmbedding) Dimension() int
func (*OpenAIEmbedding) EmbedBatch ¶
func (*OpenAIEmbedding) EmbedTyped ¶
func (e *OpenAIEmbedding) EmbedTyped(ctx context.Context, texts []string, _ TaskType) ([][]float32, error)
EmbedTyped OpenAI 兼容协议没有 task type 概念,退化为 EmbedBatch
func (*OpenAIEmbedding) Name ¶
func (e *OpenAIEmbedding) Name() string
type TaskType ¶
type TaskType int
TaskType 标识 embedding 调用的语义场景,让支持非对称编码的供应商 (如 Gemini 的 RETRIEVAL_DOCUMENT/CODE_RETRIEVAL_QUERY、VoyageAI 的 input_type) 能用更优的向量空间。
type VoyageAIConfig ¶
VoyageAIConfig VoyageAI 配置
type VoyageAIEmbedding ¶
type VoyageAIEmbedding struct {
// contains filtered or unexported fields
}
VoyageAIEmbedding VoyageAI Embedding 实现
func NewVoyageAIEmbedding ¶
func NewVoyageAIEmbedding(cfg VoyageAIConfig) *VoyageAIEmbedding
NewVoyageAIEmbedding 创建 VoyageAI Embedding 实例
func (*VoyageAIEmbedding) Dimension ¶
func (e *VoyageAIEmbedding) Dimension() int
func (*VoyageAIEmbedding) EmbedBatch ¶
func (*VoyageAIEmbedding) EmbedTyped ¶
func (e *VoyageAIEmbedding) EmbedTyped(ctx context.Context, texts []string, task TaskType) ([][]float32, error)
EmbedTyped 把 hce TaskType 映射到 VoyageAI 的 input_type
func (*VoyageAIEmbedding) Name ¶
func (e *VoyageAIEmbedding) Name() string