Documentation
¶
Index ¶
- Constants
- Variables
- func AutoMigrate(db *gorm.DB) error
- func DeleteKnowledgeBase(db *gorm.DB, name string) error
- func DeleteKnowledgeBaseByID(db *gorm.DB, id int64) error
- func ExportKnowledgeBase(ctx context.Context, db *gorm.DB, opts *ExportKnowledgeBaseOptions) (io.Reader, error)
- func ImportKnowledgeBase(ctx context.Context, db *gorm.DB, reader io.Reader, ...) error
- func Query(db *gorm.DB, query string, opts ...QueryOption) (chan *SearchKnowledgebaseResult, error)
- type ExportKnowledgeBaseOptions
- type ImportKnowledgeBaseOptions
- type KnowledgeBase
- func CreateKnowledgeBase(db *gorm.DB, name, description, kbType string, ...) (*KnowledgeBase, error)
- func LoadKnowledgeBase(db *gorm.DB, name string, opts ...vectorstore.CollectionConfigFunc) (*KnowledgeBase, error)
- func LoadKnowledgeBaseByID(db *gorm.DB, id int64, opts ...vectorstore.CollectionConfigFunc) (*KnowledgeBase, error)
- func NewKnowledgeBase(db *gorm.DB, name, description, kbType string, ...) (*KnowledgeBase, error)
- func NewKnowledgeBaseWithVectorStore(db *gorm.DB, name, description, kbType string, ...) (*KnowledgeBase, error)
- func (kb *KnowledgeBase) AddKnowledgeEntry(entry *schema.KnowledgeBaseEntry, options ...vectorstore.DocumentOption) error
- func (kb *KnowledgeBase) AddKnowledgeEntryQuestion(entry *schema.KnowledgeBaseEntry, options ...vectorstore.DocumentOption) error
- func (kb *KnowledgeBase) BatchSyncEntries(entryIDs []string) (*SyncResult, error)
- func (kb *KnowledgeBase) BuildVectorIndex() error
- func (kb *KnowledgeBase) ClearDocuments() error
- func (kb *KnowledgeBase) CountDocuments() (int, error)
- func (kb *KnowledgeBase) DeleteKnowledgeEntry(entryID string) error
- func (kb *KnowledgeBase) Drop() error
- func (kb *KnowledgeBase) EmbedKnowledgeBase() error
- func (kb *KnowledgeBase) EmbedKnowledgeBaseEntry(id string) error
- func (kb *KnowledgeBase) GetID() int64
- func (kb *KnowledgeBase) GetInfo() (*schema.KnowledgeBaseInfo, error)
- func (kb *KnowledgeBase) GetKnowledgeBaseInfo() *schema.KnowledgeBaseInfo
- func (kb *KnowledgeBase) GetKnowledgeEntry(entryID string) (*schema.KnowledgeBaseEntry, error)
- func (kb *KnowledgeBase) GetName() string
- func (kb *KnowledgeBase) GetSyncStatus() (*SyncStatus, error)
- func (kb *KnowledgeBase) GetVectorStore() *vectorstore.SQLiteVectorStoreHNSW
- func (kb *KnowledgeBase) ListKnowledgeEntries(keyword string, page, limit int) ([]*schema.KnowledgeBaseEntry, error)
- func (kb *KnowledgeBase) Query(query string, opts ...QueryOption) (string, error)
- func (kb *KnowledgeBase) SearchKnowledgeEntries(query string, limit int) ([]*schema.KnowledgeBaseEntry, error)
- func (kb *KnowledgeBase) SearchKnowledgeEntriesWithEnhance(query string, opts ...QueryOption) (chan *SearchKnowledgebaseResult, error)
- func (kb *KnowledgeBase) SyncKnowledgeBaseWithRAG() (*SyncResult, error)
- func (kb *KnowledgeBase) UpdateKnowledgeBaseInfo(name, description, kbType string) error
- func (kb *KnowledgeBase) UpdateKnowledgeEntry(id string, entry *schema.KnowledgeBaseEntry) error
- type KnowledgeEntryWithScore
- type QueryConfig
- type QueryOption
- func WithCollectionLimit(collectionLimit int) QueryOption
- func WithCollectionName(collectionName string) QueryOption
- func WithCollectionScoreLimit(collectionScoreLimit int) QueryOption
- func WithCtx(ctx context.Context) QueryOption
- func WithEnableAISummary(enableAISummary bool) QueryOption
- func WithEnhancePlan(enhancePlan string) QueryOption
- func WithFilter(filter func(key string, docGetter func() *vectorstore.Document, ...) bool) QueryOption
- func WithLimit(limit int) QueryOption
- func WithMsgCallBack(msgCallBack func(*SearchKnowledgebaseResult)) QueryOption
- type SearchKnowledgebaseResult
- type SyncResult
- type SyncStatus
Constants ¶
const ( SearchResultTypeMessage = vectorstore.RAGResultTypeMessage SearchResultTypeMidResult = vectorstore.RAGResultTypeMidResult SearchResultTypeResult = vectorstore.RAGResultTypeResult SearchResultTypeError = vectorstore.RAGResultTypeError SearchResultTypeAISummary = "ai_summary" )
SearchKnowledgebaseResult 消息类型常量
Variables ¶
var Simpleliteforge contracts.LiteForge
Functions ¶
func AutoMigrate ¶
func ExportKnowledgeBase ¶
func ImportKnowledgeBase ¶
func ImportKnowledgeBase(ctx context.Context, db *gorm.DB, reader io.Reader, opts *ImportKnowledgeBaseOptions) error
ImportKnowledgeBase 从二进制数据导入知识库
func Query ¶
func Query(db *gorm.DB, query string, opts ...QueryOption) (chan *SearchKnowledgebaseResult, error)
Types ¶
type ExportKnowledgeBaseOptions ¶
type ExportKnowledgeBaseOptions struct {
KnowledgeBaseId int64
ExportKnowledgeBaseEntryHandler func(entry schema.KnowledgeBaseEntry) (schema.KnowledgeBaseEntry, error)
ExportRAGDocumentHandler func(doc schema.VectorStoreDocument) (schema.VectorStoreDocument, error)
OnProgressHandler func(percent float64, message string, messageType string)
ExtraDataReader io.Reader // 额外数据的 reader,会在导出时一起导出
VectorStoreName string
}
type ImportKnowledgeBaseOptions ¶
type ImportKnowledgeBaseOptions struct {
ImportKnowledgeBaseEntryHandler func(entry schema.KnowledgeBaseEntry) (schema.KnowledgeBaseEntry, error)
ImportRAGDocumentHandler func(doc schema.VectorStoreDocument) (schema.VectorStoreDocument, error)
OverwriteExisting bool
NewKnowledgeBaseName string
OnProgressHandler func(percent float64, message string, messageType string)
ExtraDataHandler func(extraData io.Reader) error // 额外数据处理回调函数
RAGID string
}
type KnowledgeBase ¶
type KnowledgeBase struct {
// contains filtered or unexported fields
}
KnowledgeBase 知识库结构体,提供对知识库的操作接口
func CreateKnowledgeBase ¶
func CreateKnowledgeBase(db *gorm.DB, name, description, kbType string, opts ...vectorstore.CollectionConfigFunc) (*KnowledgeBase, error)
CreateKnowledgeBase 创建全新的知识库(如果已存在会返回错误)
func LoadKnowledgeBase ¶
func LoadKnowledgeBase(db *gorm.DB, name string, opts ...vectorstore.CollectionConfigFunc) (*KnowledgeBase, error)
LoadKnowledgeBase 加载已存在的知识库
func LoadKnowledgeBaseByID ¶
func LoadKnowledgeBaseByID(db *gorm.DB, id int64, opts ...vectorstore.CollectionConfigFunc) (*KnowledgeBase, error)
func NewKnowledgeBase ¶
func NewKnowledgeBase(db *gorm.DB, name, description, kbType string, opts ...vectorstore.CollectionConfigFunc) (*KnowledgeBase, error)
NewKnowledgeBase 创建新的知识库实例(先获取,获取不到则创建)
func NewKnowledgeBaseWithVectorStore ¶
func NewKnowledgeBaseWithVectorStore(db *gorm.DB, name, description, kbType string, vectorStore *vectorstore.SQLiteVectorStoreHNSW) (*KnowledgeBase, error)
func (*KnowledgeBase) AddKnowledgeEntry ¶
func (kb *KnowledgeBase) AddKnowledgeEntry(entry *schema.KnowledgeBaseEntry, options ...vectorstore.DocumentOption) error
AddKnowledgeEntry 添加知识条目到知识库(使用事务)
func (*KnowledgeBase) AddKnowledgeEntryQuestion ¶
func (kb *KnowledgeBase) AddKnowledgeEntryQuestion(entry *schema.KnowledgeBaseEntry, options ...vectorstore.DocumentOption) error
func (*KnowledgeBase) BatchSyncEntries ¶
func (kb *KnowledgeBase) BatchSyncEntries(entryIDs []string) (*SyncResult, error)
BatchSyncEntries 批量同步指定的知识条目
func (*KnowledgeBase) BuildVectorIndex ¶
func (kb *KnowledgeBase) BuildVectorIndex() error
BuildVectorIndex 为知识库构建向量索引
func (*KnowledgeBase) ClearDocuments ¶
func (kb *KnowledgeBase) ClearDocuments() error
ClearDocuments 清空所有文档
func (*KnowledgeBase) CountDocuments ¶
func (kb *KnowledgeBase) CountDocuments() (int, error)
CountDocuments 获取文档总数
func (*KnowledgeBase) DeleteKnowledgeEntry ¶
func (kb *KnowledgeBase) DeleteKnowledgeEntry(entryID string) error
DeleteKnowledgeEntry 删除知识条目(使用事务)
func (*KnowledgeBase) EmbedKnowledgeBase ¶
func (kb *KnowledgeBase) EmbedKnowledgeBase() error
func (*KnowledgeBase) EmbedKnowledgeBaseEntry ¶
func (kb *KnowledgeBase) EmbedKnowledgeBaseEntry(id string) error
func (*KnowledgeBase) GetID ¶
func (kb *KnowledgeBase) GetID() int64
func (*KnowledgeBase) GetInfo ¶
func (kb *KnowledgeBase) GetInfo() (*schema.KnowledgeBaseInfo, error)
GetInfo 获取知识库信息
func (*KnowledgeBase) GetKnowledgeBaseInfo ¶
func (kb *KnowledgeBase) GetKnowledgeBaseInfo() *schema.KnowledgeBaseInfo
func (*KnowledgeBase) GetKnowledgeEntry ¶
func (kb *KnowledgeBase) GetKnowledgeEntry(entryID string) (*schema.KnowledgeBaseEntry, error)
GetKnowledgeEntry 根据ID获取知识条目
func (*KnowledgeBase) GetSyncStatus ¶
func (kb *KnowledgeBase) GetSyncStatus() (*SyncStatus, error)
GetSyncStatus 获取当前同步状态信息
func (*KnowledgeBase) GetVectorStore ¶
func (kb *KnowledgeBase) GetVectorStore() *vectorstore.SQLiteVectorStoreHNSW
GetVectorStore 获取底层的向量存储
func (*KnowledgeBase) ListKnowledgeEntries ¶
func (kb *KnowledgeBase) ListKnowledgeEntries(keyword string, page, limit int) ([]*schema.KnowledgeBaseEntry, error)
ListKnowledgeEntries 分页获取知识条目列表
func (*KnowledgeBase) Query ¶
func (kb *KnowledgeBase) Query(query string, opts ...QueryOption) (string, error)
func (*KnowledgeBase) SearchKnowledgeEntries ¶
func (kb *KnowledgeBase) SearchKnowledgeEntries(query string, limit int) ([]*schema.KnowledgeBaseEntry, error)
SearchKnowledgeEntries 搜索知识条目,返回知识库条目对象
func (*KnowledgeBase) SearchKnowledgeEntriesWithEnhance ¶
func (kb *KnowledgeBase) SearchKnowledgeEntriesWithEnhance(query string, opts ...QueryOption) (chan *SearchKnowledgebaseResult, error)
func (*KnowledgeBase) SyncKnowledgeBaseWithRAG ¶
func (kb *KnowledgeBase) SyncKnowledgeBaseWithRAG() (*SyncResult, error)
SyncKnowledgeBaseWithRAG 同步知识库和RAG,以知识库为准
func (*KnowledgeBase) UpdateKnowledgeBaseInfo ¶
func (kb *KnowledgeBase) UpdateKnowledgeBaseInfo(name, description, kbType string) error
func (*KnowledgeBase) UpdateKnowledgeEntry ¶
func (kb *KnowledgeBase) UpdateKnowledgeEntry(id string, entry *schema.KnowledgeBaseEntry) error
UpdateKnowledgeEntry 更新知识条目(使用事务)
type KnowledgeEntryWithScore ¶
type KnowledgeEntryWithScore struct {
Entry *schema.KnowledgeBaseEntry `json:"entry"`
Score float64 `json:"score"`
}
KnowledgeEntryWithScore 带相似度分数的知识库条目
type QueryConfig ¶
type QueryConfig struct {
Ctx context.Context
Limit int
CollectionName string
CollectionNumLimit int
CollectionScoreLimit int
EnableAISummary bool
Filter func(key string, docGetter func() *vectorstore.Document, knowledgeBaseEntryGetter func() (*schema.KnowledgeBaseEntry, error)) bool
EnhancePlan string
MsgCallBack func(*SearchKnowledgebaseResult)
}
func NewQueryConfig ¶
func NewQueryConfig(opts ...QueryOption) *QueryConfig
type QueryOption ¶
type QueryOption func(*QueryConfig)
func WithCollectionLimit ¶
func WithCollectionLimit(collectionLimit int) QueryOption
func WithCollectionName ¶
func WithCollectionName(collectionName string) QueryOption
func WithCollectionScoreLimit ¶
func WithCollectionScoreLimit(collectionScoreLimit int) QueryOption
func WithCtx ¶
func WithCtx(ctx context.Context) QueryOption
func WithEnableAISummary ¶
func WithEnableAISummary(enableAISummary bool) QueryOption
func WithEnhancePlan ¶
func WithEnhancePlan(enhancePlan string) QueryOption
func WithFilter ¶
func WithFilter(filter func(key string, docGetter func() *vectorstore.Document, knowledgeBaseEntryGetter func() (*schema.KnowledgeBaseEntry, error)) bool) QueryOption
func WithLimit ¶
func WithLimit(limit int) QueryOption
func WithMsgCallBack ¶
func WithMsgCallBack(msgCallBack func(*SearchKnowledgebaseResult)) QueryOption
type SyncResult ¶
type SyncResult struct {
TotalDBEntries int `json:"total_db_entries"` // 数据库中的总条目数
TotalRAGDocuments int `json:"total_rag_documents"` // RAG中的总文档数
AddedToRAG []string `json:"added_to_rag"` // 添加到RAG的条目ID列表
DeletedFromRAG []string `json:"deleted_from_rag"` // 从RAG删除的文档ID列表
SyncErrors []string `json:"sync_errors"` // 同步过程中的错误列表
}
SyncResult 同步操作的结果
type SyncStatus ¶
type SyncStatus struct {
DatabaseEntries int `json:"database_entries"` // 数据库中的条目数
RAGDocuments int `json:"rag_documents"` // RAG中的文档数
InSync bool `json:"in_sync"` // 是否同步
}
SyncStatus 同步状态信息