Documentation
¶
Index ¶
- type Builder
- func (b *Builder) Build() (*QuickDB, error)
- func (b *Builder) WithAutoSave(enabled bool, interval time.Duration) *Builder
- func (b *Builder) WithBM25Embedding(documents []string, config *embedding.BM25Config) *Builder
- func (b *Builder) WithBatchEmbeddingFunc(fn embedding.BatchEmbeddingFunc) *Builder
- func (b *Builder) WithDimension(dim int) *Builder
- func (b *Builder) WithDistanceMetric(metric iface.DistanceMetric) *Builder
- func (b *Builder) WithEmbeddingField(field string) *Builder
- func (b *Builder) WithEmbeddingFunc(fn embedding.EmbeddingFunc) *Builder
- func (b *Builder) WithHNSWParams(m, efConstruction int, maxVectors int) *Builder
- func (b *Builder) WithIndexType(indexType iface.IndexType) *Builder
- func (b *Builder) WithOpenAIBatchEmbedding(baseURL, apiKey, model string) *Builder
- func (b *Builder) WithOpenAIEmbedding(baseURL, apiKey, model string) *Builder
- func (b *Builder) WithSavePath(path string) *Builder
- func (b *Builder) WithStoragePath(path string) *Builder
- func (b *Builder) WithStorageType(storageType iface.StorageType) *Builder
- func (b *Builder) WithTFIDFEmbedding(documents []string, config *embedding.TFIDFConfig) *Builder
- type QuickDB
- func (q *QuickDB) BatchGetByID(ids []string) ([]*types.Vector, error)
- func (q *QuickDB) Close() error
- func (q *QuickDB) Count() (int, error)
- func (q *QuickDB) Delete(id string) error
- func (q *QuickDB) Deletes(ids []string) error
- func (q *QuickDB) ForceSave(path string) error
- func (q *QuickDB) GenerateBatchEmbeddings(texts []string) ([][]float32, error)
- func (q *QuickDB) GenerateEmbedding(text string) ([]float32, error)
- func (q *QuickDB) GetBatchEmbeddingFunc() embedding.BatchEmbeddingFunc
- func (q *QuickDB) GetByID(id string) (*types.Vector, error)
- func (q *QuickDB) GetEmbeddingFunc() embedding.EmbeddingFunc
- func (q *QuickDB) Insert(vectors []types.Vector) error
- func (q *QuickDB) InsertOne(vector types.Vector) error
- func (q *QuickDB) InsertWithText(id, text string, payload map[string]interface{}) error
- func (q *QuickDB) IsDirty() bool
- func (q *QuickDB) Save(path string) error
- func (q *QuickDB) Search(query types.Vector, topK int) ([]iface.SearchResult, error)
- func (q *QuickDB) SearchByText(query string, topK int) ([]iface.SearchResult, error)
- func (q *QuickDB) SearchByTextWithFilter(query string, topK int, filter map[string]interface{}) ([]iface.SearchResult, error)
- func (q *QuickDB) SearchWithFilter(query types.Vector, topK int, filter map[string]interface{}) ([]iface.SearchResult, error)
- func (q *QuickDB) SearchWithOptions(query types.Vector, opts iface.SearchOptions) ([]iface.SearchResult, error)
- func (q *QuickDB) SetBatchEmbeddingFunc(fn embedding.BatchEmbeddingFunc)
- func (q *QuickDB) SetEmbeddingFunc(fn embedding.EmbeddingFunc)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
Builder 构建器模式
func (*Builder) WithAutoSave ¶
WithAutoSave 设置自动保存
func (*Builder) WithBM25Embedding ¶
func (b *Builder) WithBM25Embedding(documents []string, config *embedding.BM25Config) *Builder
WithBM25Embedding 设置BM25 Embedding(无需外部API,适合离线场景) documents: 训练文档列表,用于构建词汇表和IDF config: BM25配置,如果为nil则使用默认配置
func (*Builder) WithBatchEmbeddingFunc ¶
func (b *Builder) WithBatchEmbeddingFunc(fn embedding.BatchEmbeddingFunc) *Builder
WithBatchEmbeddingFunc 设置批量Embedding函数
func (*Builder) WithDimension ¶
WithDimension 设置向量维度
func (*Builder) WithDistanceMetric ¶
func (b *Builder) WithDistanceMetric(metric iface.DistanceMetric) *Builder
WithDistanceMetric 设置距离度量
func (*Builder) WithEmbeddingField ¶
WithEmbeddingField 设置从Payload中提取文本的字段名(默认"content")
func (*Builder) WithEmbeddingFunc ¶
func (b *Builder) WithEmbeddingFunc(fn embedding.EmbeddingFunc) *Builder
WithEmbeddingFunc 设置自定义Embedding函数
func (*Builder) WithHNSWParams ¶
WithHNSWParams 设置HNSW参数
func (*Builder) WithIndexType ¶
WithIndexType 设置索引类型
func (*Builder) WithOpenAIBatchEmbedding ¶
WithOpenAIBatchEmbedding 设置OpenAI批量Embedding(推荐使用,性能更好) baseURL: API基础URL,默认为 https://api.openai.com/v1 apiKey: OpenAI API密钥 model: 使用的模型,默认为 text-embedding-3-small
func (*Builder) WithOpenAIEmbedding ¶
WithOpenAIEmbedding 设置OpenAI Embedding(便捷方法) baseURL: API基础URL,默认为 https://api.openai.com/v1 apiKey: OpenAI API密钥 model: 使用的模型,默认为 text-embedding-3-small
func (*Builder) WithSavePath ¶
WithSavePath 设置保存路径
func (*Builder) WithStoragePath ¶
WithStoragePath 设置存储路径
func (*Builder) WithStorageType ¶
func (b *Builder) WithStorageType(storageType iface.StorageType) *Builder
WithStorageType 设置存储类型
func (*Builder) WithTFIDFEmbedding ¶
func (b *Builder) WithTFIDFEmbedding(documents []string, config *embedding.TFIDFConfig) *Builder
WithTFIDFEmbedding 设置TF-IDF Embedding(无需外部API,适合离线场景) documents: 训练文档列表,用于构建词汇表和IDF config: TF-IDF配置,如果为nil则使用默认配置
type QuickDB ¶
type QuickDB struct {
// contains filtered or unexported fields
}
QuickDB 简化的向量数据库接口
func NewQuickWithConfig ¶
NewQuickWithConfig 创建快速向量数据库(自定义自动保存间隔)
func NewQuickWithStoragePath ¶
NewQuickWithStoragePath 使用自定义存储路径创建数据库
func (*QuickDB) BatchGetByID ¶ added in v1.0.2
BatchGetByID 根据ID列表批量获取向量
func (*QuickDB) GenerateBatchEmbeddings ¶ added in v1.0.4
GenerateBatchEmbeddings 批量生成多个文本的embedding向量 texts: 需要转换的文本列表 返回: 对应的向量列表
func (*QuickDB) GenerateEmbedding ¶ added in v1.0.4
GenerateEmbedding 生成单个文本的embedding向量 text: 需要转换的文本 返回: 文本的向量表示
func (*QuickDB) GetBatchEmbeddingFunc ¶
func (q *QuickDB) GetBatchEmbeddingFunc() embedding.BatchEmbeddingFunc
GetBatchEmbeddingFunc 获取批量Embedding函数
func (*QuickDB) GetEmbeddingFunc ¶
func (q *QuickDB) GetEmbeddingFunc() embedding.EmbeddingFunc
GetEmbeddingFunc 获取Embedding函数
func (*QuickDB) InsertWithText ¶
InsertWithText 插入文本,自动生成向量 id: 向量唯一标识 text: 文本内容 payload: 元数据/负载数据(可选)
func (*QuickDB) SearchByText ¶
SearchByText 搜索文本,自动生成查询向量 query: 查询文本 topK: 返回结果数量
func (*QuickDB) SearchByTextWithFilter ¶
func (q *QuickDB) SearchByTextWithFilter(query string, topK int, filter map[string]interface{}) ([]iface.SearchResult, error)
SearchByTextWithFilter 使用文本搜索并应用Payload过滤
func (*QuickDB) SearchWithFilter ¶
func (q *QuickDB) SearchWithFilter(query types.Vector, topK int, filter map[string]interface{}) ([]iface.SearchResult, error)
SearchWithFilter 使用Payload过滤搜索向量
func (*QuickDB) SearchWithOptions ¶
func (q *QuickDB) SearchWithOptions(query types.Vector, opts iface.SearchOptions) ([]iface.SearchResult, error)
SearchWithOptions 使用自定义选项搜索向量
func (*QuickDB) SetBatchEmbeddingFunc ¶
func (q *QuickDB) SetBatchEmbeddingFunc(fn embedding.BatchEmbeddingFunc)
SetBatchEmbeddingFunc 设置批量Embedding函数
func (*QuickDB) SetEmbeddingFunc ¶
func (q *QuickDB) SetEmbeddingFunc(fn embedding.EmbeddingFunc)
SetEmbeddingFunc 设置Embedding函数