Documentation
¶
Index ¶
- Constants
- type BGEEmbedder
- func (e *BGEEmbedder) Bulk(chunks []*core.Chunk) ([]*core.Vector, error)
- func (e *BGEEmbedder) Calc(chunk *core.Chunk) (*core.Vector, error)
- func (e *BGEEmbedder) CalcImage(data []byte) (*core.Vector, error)
- func (e *BGEEmbedder) CalcImages(data [][]byte) ([][]float32, error)
- func (e *BGEEmbedder) CalcText(text string) (*core.Vector, error)
- func (e *BGEEmbedder) Close() error
- func (e *BGEEmbedder) Dim() int
- func (e *BGEEmbedder) Multimoding() bool
- type BGEOption
- type ChineseClipEmbedder
- func (e *ChineseClipEmbedder) Bulk(chunks []*core.Chunk) ([]*core.Vector, error)
- func (e *ChineseClipEmbedder) Calc(chunk *core.Chunk) (*core.Vector, error)
- func (e *ChineseClipEmbedder) CalcImage(data []byte) (*core.Vector, error)
- func (e *ChineseClipEmbedder) CalcImages(data [][]byte) ([][]float32, error)
- func (e *ChineseClipEmbedder) CalcText(text string) (*core.Vector, error)
- func (e *ChineseClipEmbedder) Close() error
- func (e *ChineseClipEmbedder) Dim() int
- func (e *ChineseClipEmbedder) Multimoding() bool
- type ChineseClipOption
- type ImageEncoder
- type ImageEncoderConfig
- type ImageProcessor
- type TextEncoder
- type TextEncoderConfig
- type VocabTokenizer
Constants ¶
const ( // ViT 标准输入尺寸 ViTImageSize = 224 // ImageNet 归一化参数 (CLIP 使用的) ImageNetMeanR = 0.48145466 ImageNetMeanG = 0.45782750 ImageNetMeanB = 0.40821073 ImageNetStdR = 0.26862954 ImageNetStdG = 0.26130258 ImageNetStdB = 0.27577711 )
const ( DefaultMaxLength = 52 // Chinese-CLIP 默认序列长度 BGEDefaultMaxLength = 512 // BGE 默认序列长度 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BGEEmbedder ¶
type BGEEmbedder struct {
// contains filtered or unexported fields
}
BGEEmbedder 使用 onnxruntime-go 进行 BGE ONNX 模型推理
func NewBGEEmbedder ¶
func NewBGEEmbedder(opts ...BGEOption) (*BGEEmbedder, error)
NewBGEEmbedder 创建 BGE 向量化器 默认从 ./models/bge-base-zh-v1.5/onnx/model.onnx 加载模型
func (*BGEEmbedder) Bulk ¶
Bulk 批量计算 chunks 的向量(只处理非图片 chunk) 图片 chunk 会被忽略(由多模态 embedder 如 ChineseClip 处理)
func (*BGEEmbedder) CalcImage ¶
func (e *BGEEmbedder) CalcImage(data []byte) (*core.Vector, error)
CalcImage BGE 不支持图像向量化
func (*BGEEmbedder) CalcImages ¶
func (e *BGEEmbedder) CalcImages(data [][]byte) ([][]float32, error)
CalcImages BGE 不支持图像向量化
func (*BGEEmbedder) CalcText ¶
func (e *BGEEmbedder) CalcText(text string) (*core.Vector, error)
CalcText 计算文本的向量
func (*BGEEmbedder) Dim ¶
func (e *BGEEmbedder) Dim() int
func (*BGEEmbedder) Multimoding ¶
func (e *BGEEmbedder) Multimoding() bool
type BGEOption ¶
type BGEOption func(*bgeConfig)
BGEOption 是 BGEEmbedder 的配置选项
func WithBGAVocab ¶
WithBGAVocab 设置外部 vocab 文件路径(支持 vocab.txt 或 tokenizer.json)
func WithBGEDimension ¶
WithBGEDimension 设置输出向量维度 (base=768, small=384)
type ChineseClipEmbedder ¶
type ChineseClipEmbedder struct {
// contains filtered or unexported fields
}
ChineseClipEmbedder 使用 onnxruntime-go 进行 Chinese-CLIP ONNX 模型推理
func NewChineseClipEmbedder ¶
func NewChineseClipEmbedder(opts ...ChineseClipOption) (*ChineseClipEmbedder, error)
NewChineseClipEmbedder 创建 Chinese-CLIP 向量化器 默认从 ./models/model.onnx 加载模型,可通过 WithModel/WithModelDir 自定义
func (*ChineseClipEmbedder) Bulk ¶
Bulk 批量计算 chunks 的向量 根据 MIMEType 判断类型:图片使用 imageEncoder,文本使用 textEncoder
func (*ChineseClipEmbedder) CalcImage ¶
func (e *ChineseClipEmbedder) CalcImage(data []byte) (*core.Vector, error)
CalcImage 计算图片的向量
func (*ChineseClipEmbedder) CalcImages ¶
func (e *ChineseClipEmbedder) CalcImages(data [][]byte) ([][]float32, error)
CalcImages 批量计算图片的向量
func (*ChineseClipEmbedder) CalcText ¶
func (e *ChineseClipEmbedder) CalcText(text string) (*core.Vector, error)
CalcText 计算文本的向量
func (*ChineseClipEmbedder) Dim ¶
func (e *ChineseClipEmbedder) Dim() int
func (*ChineseClipEmbedder) Multimoding ¶
func (e *ChineseClipEmbedder) Multimoding() bool
type ChineseClipOption ¶
type ChineseClipOption func(*chineseClipConfig)
ChineseClipOption 是 ChineseClipEmbedder 的配置选项
func WithVocab ¶
func WithVocab(path string) ChineseClipOption
WithVocab 设置外部 vocab 文件路径(覆盖内嵌 vocab)
type ImageEncoder ¶
type ImageEncoder struct {
// contains filtered or unexported fields
}
ImageEncoder 通用图像编码器
func NewImageEncoder ¶
func NewImageEncoder(config ImageEncoderConfig) (*ImageEncoder, error)
NewImageEncoder 创建图像编码器
type ImageEncoderConfig ¶
type ImageEncoderConfig struct {
ModelPath string // ONNX 模型路径
InputNames []string // 输入节点名称
OutputNames []string // 输出节点名称
ImageSize int // 图像尺寸 (224)
SeqLength int // 文本序列长度 (用于占位符)
Dimension int // 输出向量维度 (512)
}
ImageEncoderConfig 图像编码器配置
type ImageProcessor ¶
type ImageProcessor struct {
// contains filtered or unexported fields
}
ImageProcessor 图像预处理器,用于 ViT/CLIP 图像编码
func NewImageProcessor ¶
func NewImageProcessor(imageSize int) *ImageProcessor
NewImageProcessor 创建图像预处理器
func (*ImageProcessor) Preprocess ¶
func (p *ImageProcessor) Preprocess(data []byte) ([]float32, error)
Preprocess 预处理图像:decode + resize + 归一化 输入: 原始图像数据 (JPEG/PNG等) 输出: [3, H, W] 的 float32 数组 (CHW 格式,符合 ViT 输入)
func (*ImageProcessor) PreprocessFromImage ¶
func (p *ImageProcessor) PreprocessFromImage(img image.Image) ([]float32, error)
PreprocessFromImage 直接从 image.Image 预处理
type TextEncoder ¶
type TextEncoder struct {
// contains filtered or unexported fields
}
TextEncoder 通用文本编码器
func NewTextEncoder ¶
func NewTextEncoder(config TextEncoderConfig, tokenizer *VocabTokenizer) (*TextEncoder, error)
NewTextEncoder 创建文本编码器
type TextEncoderConfig ¶
type TextEncoderConfig struct {
ModelPath string // ONNX 模型路径
InputNames []string // 输入节点名称
OutputNames []string // 输出节点名称
SeqLength int // 序列长度
Dimension int // 输出向量维度
ImageSize int // 图像尺寸 (0 表示不需要 pixel_values)
UseCLSPooling bool // true: 从 [batch, seq, hidden] 提取 CLS; false: 直接使用 [batch, dim]
}
TextEncoderConfig 文本编码器配置
type VocabTokenizer ¶
type VocabTokenizer struct {
// contains filtered or unexported fields
}
VocabTokenizer 基于 vocab 的 BERT 分词器 支持两种 vocab 格式:
- vocab.txt: 每行一个 token
- tokenizer.json: HuggingFace 标准格式
func NewBGEVocabTokenizer ¶
func NewBGEVocabTokenizer(maxLength int) (*VocabTokenizer, error)
NewBGEVocabTokenizer 创建基于内嵌 BGE vocab 的分词器
func NewVocabTokenizer ¶
func NewVocabTokenizer(maxLength int) (*VocabTokenizer, error)
NewVocabTokenizer 创建基于内嵌 Chinese-CLIP vocab 的分词器
func NewVocabTokenizerFromFile ¶
func NewVocabTokenizerFromFile(vocabPath string, maxLength int) (*VocabTokenizer, error)
NewVocabTokenizerFromFile 从外部文件加载 vocab 支持 vocab.txt (每行一个token) 和 HuggingFace tokenizer.json