api

package
v1.0.4 Latest Latest
Warning

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

Go to latest
Published: Mar 12, 2026 License: MIT Imports: 5 Imported by: 0

Documentation

Index

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 NewBuilder

func NewBuilder() *Builder

NewBuilder 创建构建器

func (*Builder) Build

func (b *Builder) Build() (*QuickDB, error)

Build 构建数据库

func (*Builder) WithAutoSave

func (b *Builder) WithAutoSave(enabled bool, interval time.Duration) *Builder

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

func (b *Builder) WithDimension(dim int) *Builder

WithDimension 设置向量维度

func (*Builder) WithDistanceMetric

func (b *Builder) WithDistanceMetric(metric iface.DistanceMetric) *Builder

WithDistanceMetric 设置距离度量

func (*Builder) WithEmbeddingField

func (b *Builder) WithEmbeddingField(field string) *Builder

WithEmbeddingField 设置从Payload中提取文本的字段名(默认"content")

func (*Builder) WithEmbeddingFunc

func (b *Builder) WithEmbeddingFunc(fn embedding.EmbeddingFunc) *Builder

WithEmbeddingFunc 设置自定义Embedding函数

func (*Builder) WithHNSWParams

func (b *Builder) WithHNSWParams(m, efConstruction int, maxVectors int) *Builder

WithHNSWParams 设置HNSW参数

func (*Builder) WithIndexType

func (b *Builder) WithIndexType(indexType iface.IndexType) *Builder

WithIndexType 设置索引类型

func (*Builder) WithOpenAIBatchEmbedding

func (b *Builder) WithOpenAIBatchEmbedding(baseURL, apiKey, model string) *Builder

WithOpenAIBatchEmbedding 设置OpenAI批量Embedding(推荐使用,性能更好) baseURL: API基础URL,默认为 https://api.openai.com/v1 apiKey: OpenAI API密钥 model: 使用的模型,默认为 text-embedding-3-small

func (*Builder) WithOpenAIEmbedding

func (b *Builder) WithOpenAIEmbedding(baseURL, apiKey, model string) *Builder

WithOpenAIEmbedding 设置OpenAI Embedding(便捷方法) baseURL: API基础URL,默认为 https://api.openai.com/v1 apiKey: OpenAI API密钥 model: 使用的模型,默认为 text-embedding-3-small

func (*Builder) WithSavePath

func (b *Builder) WithSavePath(path string) *Builder

WithSavePath 设置保存路径

func (*Builder) WithStoragePath

func (b *Builder) WithStoragePath(path string) *Builder

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 NewQuick

func NewQuick(storagePath string) (*QuickDB, error)

NewQuick 创建快速向量数据库(使用默认配置) 自动启用自动保存,每30秒保存一次

func NewQuickWithConfig

func NewQuickWithConfig(storagePath string, autoSaveInterval time.Duration) (*QuickDB, error)

NewQuickWithConfig 创建快速向量数据库(自定义自动保存间隔)

func NewQuickWithStoragePath

func NewQuickWithStoragePath(storagePath string) (*QuickDB, error)

NewQuickWithStoragePath 使用自定义存储路径创建数据库

func (*QuickDB) BatchGetByID added in v1.0.2

func (q *QuickDB) BatchGetByID(ids []string) ([]*types.Vector, error)

BatchGetByID 根据ID列表批量获取向量

func (*QuickDB) Close

func (q *QuickDB) Close() error

Close 关闭数据库

func (*QuickDB) Count

func (q *QuickDB) Count() (int, error)

Count 获取向量数量

func (*QuickDB) Delete

func (q *QuickDB) Delete(id string) error

Delete 删除单个向量

func (*QuickDB) Deletes added in v1.0.4

func (q *QuickDB) Deletes(ids []string) error

Deletes 删除向量

func (*QuickDB) ForceSave

func (q *QuickDB) ForceSave(path string) error

ForceSave 强制立即保存

func (*QuickDB) GenerateBatchEmbeddings added in v1.0.4

func (q *QuickDB) GenerateBatchEmbeddings(texts []string) ([][]float32, error)

GenerateBatchEmbeddings 批量生成多个文本的embedding向量 texts: 需要转换的文本列表 返回: 对应的向量列表

func (*QuickDB) GenerateEmbedding added in v1.0.4

func (q *QuickDB) GenerateEmbedding(text string) ([]float32, error)

GenerateEmbedding 生成单个文本的embedding向量 text: 需要转换的文本 返回: 文本的向量表示

func (*QuickDB) GetBatchEmbeddingFunc

func (q *QuickDB) GetBatchEmbeddingFunc() embedding.BatchEmbeddingFunc

GetBatchEmbeddingFunc 获取批量Embedding函数

func (*QuickDB) GetByID added in v1.0.2

func (q *QuickDB) GetByID(id string) (*types.Vector, error)

GetByID 根据ID获取向量

func (*QuickDB) GetEmbeddingFunc

func (q *QuickDB) GetEmbeddingFunc() embedding.EmbeddingFunc

GetEmbeddingFunc 获取Embedding函数

func (*QuickDB) Insert

func (q *QuickDB) Insert(vectors []types.Vector) error

Insert 插入向量

func (*QuickDB) InsertOne

func (q *QuickDB) InsertOne(vector types.Vector) error

InsertOne 插入单个向量

func (*QuickDB) InsertWithText

func (q *QuickDB) InsertWithText(id, text string, payload map[string]interface{}) error

InsertWithText 插入文本,自动生成向量 id: 向量唯一标识 text: 文本内容 payload: 元数据/负载数据(可选)

func (*QuickDB) IsDirty

func (q *QuickDB) IsDirty() bool

IsDirty 检查是否有未保存的数据

func (*QuickDB) Save

func (q *QuickDB) Save(path string) error

Save 手动保存数据库

func (*QuickDB) Search

func (q *QuickDB) Search(query types.Vector, topK int) ([]iface.SearchResult, error)

Search 搜索向量(使用默认选项)

func (*QuickDB) SearchByText

func (q *QuickDB) SearchByText(query string, topK int) ([]iface.SearchResult, error)

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函数

Jump to

Keyboard shortcuts

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