knowledgebase

package
v1.4.4-alpha1202-diff-... Latest Latest
Warning

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

Go to latest
Published: Dec 2, 2025 License: AGPL-3.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SearchResultTypeMessage   = vectorstore.RAGResultTypeMessage
	SearchResultTypeMidResult = vectorstore.RAGResultTypeMidResult
	SearchResultTypeResult    = vectorstore.RAGResultTypeResult
	SearchResultTypeError     = vectorstore.RAGResultTypeError
	SearchResultTypeAISummary = "ai_summary"
)

SearchKnowledgebaseResult 消息类型常量

Variables

View Source
var Simpleliteforge contracts.LiteForge

Functions

func AutoMigrate

func AutoMigrate(db *gorm.DB) error

func DeleteKnowledgeBase

func DeleteKnowledgeBase(db *gorm.DB, name string) error

func DeleteKnowledgeBaseByID

func DeleteKnowledgeBaseByID(db *gorm.DB, id int64) error

func ExportKnowledgeBase

func ExportKnowledgeBase(ctx context.Context, db *gorm.DB, opts *ExportKnowledgeBaseOptions) (io.Reader, error)

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) Drop

func (kb *KnowledgeBase) Drop() error

Drop 删除当前知识库

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) GetName

func (kb *KnowledgeBase) GetName() string

GetName 获取知识库名称

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 SearchKnowledgebaseResult

type SearchKnowledgebaseResult struct {
	Message string
	Data    any
	Type    string
}

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 同步状态信息

Jump to

Keyboard shortcuts

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