Documentation
¶
Overview ¶
Package knowledge 實作知識庫管理插件
Package knowledge 提供知識庫管理能力
Index ¶
- type ActionItem
- type CacheConfig
- type Config
- type DatabaseConfig
- type KnowledgeCategory
- type KnowledgeDeleteRequest
- type KnowledgeDeleteResponse
- type KnowledgeGenericRequest
- type KnowledgeItem
- type KnowledgeRetrieveRequest
- type KnowledgeRetrieveResponse
- type KnowledgeSearchRequest
- type KnowledgeSearchResponse
- type KnowledgeSimilaritySearchRequest
- type KnowledgeSimilaritySearchResponse
- type KnowledgeStoreRequest
- type KnowledgeStoreResponse
- type MemoryProvider
- func (m *MemoryProvider) Close() error
- func (m *MemoryProvider) Delete(ctx context.Context, id string) error
- func (m *MemoryProvider) Retrieve(ctx context.Context, id string) (*KnowledgeItem, error)
- func (m *MemoryProvider) Search(ctx context.Context, query *SearchQuery) (*SearchResult, error)
- func (m *MemoryProvider) SimilaritySearch(ctx context.Context, content string, limit int) (*SearchResult, error)
- func (m *MemoryProvider) Store(ctx context.Context, item *KnowledgeItem) error
- type Plugin
- func (p *Plugin) Close() error
- func (p *Plugin) CloseWithContext(ctx context.Context) error
- func (p *Plugin) ConfigureProvider(config *Config) error
- func (p *Plugin) HealthCheck() error
- func (p *Plugin) Initialize(logger *zap.Logger)
- func (p *Plugin) Invoke(ctx context.Context, req *pb.InvokeRequest) (*pb.InvokeResponse, error)
- type PostgreSQLProvider
- func (p *PostgreSQLProvider) Close() error
- func (p *PostgreSQLProvider) Delete(ctx context.Context, id string) error
- func (p *PostgreSQLProvider) Retrieve(ctx context.Context, id string) (*KnowledgeItem, error)
- func (p *PostgreSQLProvider) Search(ctx context.Context, query *SearchQuery) (*SearchResult, error)
- func (p *PostgreSQLProvider) SimilaritySearch(ctx context.Context, content string, limit int) (*SearchResult, error)
- func (p *PostgreSQLProvider) Store(ctx context.Context, item *KnowledgeItem) error
- type Provider
- type ProviderFactory
- func (f *ProviderFactory) CreateDefaultConfig() *Config
- func (f *ProviderFactory) CreatePostgreSQLConfig(host string, port int, database, username, password string) *Config
- func (f *ProviderFactory) CreateProvider(config *Config) (Provider, error)
- func (f *ProviderFactory) ValidateConfig(config *Config) error
- type ProviderType
- type SearchQuery
- type SearchResult
- type SeverityLevel
- type SimilarityConfig
- type SimilarityScore
- type StatusType
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ActionItem ¶
type ActionItem struct { ID string `json:"id"` Description string `json:"description"` Assignee string `json:"assignee"` Status string `json:"status"` Priority string `json:"priority"` DueDate *time.Time `json:"due_date,omitempty"` CompletedAt *time.Time `json:"completed_at,omitempty"` }
ActionItem 表示行動項目
type CacheConfig ¶
type CacheConfig struct { Enabled bool `yaml:"enabled" json:"enabled"` TTL time.Duration `yaml:"ttl" json:"ttl"` MaxEntries int `yaml:"max_entries" json:"max_entries"` }
CacheConfig 快取配置
type Config ¶
type Config struct { // Provider 類型 (memory, postgresql, etc.) Provider string `yaml:"provider" json:"provider"` // 資料庫連接配置 Database *DatabaseConfig `yaml:"database,omitempty" json:"database,omitempty"` // 相似性搜索配置 Similarity *SimilarityConfig `yaml:"similarity,omitempty" json:"similarity,omitempty"` // 快取配置 Cache *CacheConfig `yaml:"cache,omitempty" json:"cache,omitempty"` }
Config 表示知識庫配置
type DatabaseConfig ¶
type DatabaseConfig struct { Host string `yaml:"host" json:"host"` Port int `yaml:"port" json:"port"` Database string `yaml:"database" json:"database"` Username string `yaml:"username" json:"username"` Password string `yaml:"password" json:"password"` SSLMode string `yaml:"ssl_mode" json:"ssl_mode"` // 連接池配置 MaxOpenConns int `yaml:"max_open_conns" json:"max_open_conns"` MaxIdleConns int `yaml:"max_idle_conns" json:"max_idle_conns"` ConnMaxLifetime time.Duration `yaml:"conn_max_lifetime" json:"conn_max_lifetime"` }
DatabaseConfig 資料庫配置
type KnowledgeCategory ¶
type KnowledgeCategory string
KnowledgeCategory 知識類別
const ( CategoryPostmortem KnowledgeCategory = "postmortem" CategoryRunbook KnowledgeCategory = "runbook" CategoryTroubleshooting KnowledgeCategory = "troubleshooting" CategoryBestPractice KnowledgeCategory = "best_practice" )
type KnowledgeDeleteRequest ¶
type KnowledgeDeleteRequest struct {
ItemID string `json:"item_id"`
}
KnowledgeDeleteRequest 知識刪除請求
type KnowledgeDeleteResponse ¶
type KnowledgeDeleteResponse struct { Success bool `json:"success"` ItemID string `json:"item_id"` Message string `json:"message,omitempty"` Timestamp time.Time `json:"timestamp"` }
KnowledgeDeleteResponse 知識刪除回應
type KnowledgeGenericRequest ¶
type KnowledgeGenericRequest struct { Method string `json:"method"` Data interface{} `json:"data"` }
KnowledgeGenericRequest 通用知識庫請求,包含方法和具體請求
type KnowledgeItem ¶
type KnowledgeItem struct { ID string `json:"id"` Title string `json:"title"` Content string `json:"content"` Category string `json:"category"` Tags []string `json:"tags"` Metadata map[string]string `json:"metadata"` CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` CreatedBy string `json:"created_by"` Severity string `json:"severity,omitempty"` Status string `json:"status,omitempty"` // 事後複盤特有欄位 IncidentID string `json:"incident_id,omitempty"` RootCause string `json:"root_cause,omitempty"` Resolution string `json:"resolution,omitempty"` LessonsLearned []string `json:"lessons_learned,omitempty"` ActionItems []ActionItem `json:"action_items,omitempty"` }
KnowledgeItem 表示一個知識項目
type KnowledgeRetrieveRequest ¶
type KnowledgeRetrieveRequest struct {
ItemID string `json:"item_id"`
}
KnowledgeRetrieveRequest 知識檢索請求
type KnowledgeRetrieveResponse ¶
type KnowledgeRetrieveResponse struct { Success bool `json:"success"` Item *KnowledgeItem `json:"item,omitempty"` Message string `json:"message,omitempty"` Timestamp time.Time `json:"timestamp"` }
KnowledgeRetrieveResponse 知識檢索回應
type KnowledgeSearchRequest ¶
type KnowledgeSearchRequest struct {
Query *SearchQuery `json:"query"`
}
KnowledgeSearchRequest 知識搜索請求
type KnowledgeSearchResponse ¶
type KnowledgeSearchResponse struct { Success bool `json:"success"` Result *SearchResult `json:"result,omitempty"` Message string `json:"message,omitempty"` Timestamp time.Time `json:"timestamp"` }
KnowledgeSearchResponse 知識搜索回應
type KnowledgeSimilaritySearchRequest ¶
type KnowledgeSimilaritySearchRequest struct { Content string `json:"content"` Limit int `json:"limit,omitempty"` }
KnowledgeSimilaritySearchRequest 相似性搜索請求
type KnowledgeSimilaritySearchResponse ¶
type KnowledgeSimilaritySearchResponse struct { Success bool `json:"success"` Result *SearchResult `json:"result,omitempty"` Message string `json:"message,omitempty"` Timestamp time.Time `json:"timestamp"` }
KnowledgeSimilaritySearchResponse 相似性搜索回應
type KnowledgeStoreRequest ¶
type KnowledgeStoreRequest struct {
Item *KnowledgeItem `json:"item"`
}
KnowledgeStoreRequest 知識儲存請求
type KnowledgeStoreResponse ¶
type KnowledgeStoreResponse struct { Success bool `json:"success"` ItemID string `json:"item_id"` Message string `json:"message,omitempty"` Timestamp time.Time `json:"timestamp"` }
KnowledgeStoreResponse 知識儲存回應
type MemoryProvider ¶
type MemoryProvider struct {
// contains filtered or unexported fields
}
MemoryProvider 實作基於記憶體的知識庫提供者(用於測試)
func NewMemoryProvider ¶
func NewMemoryProvider(logger *zap.Logger) *MemoryProvider
NewMemoryProvider 創建新的記憶體知識庫提供者
func (*MemoryProvider) Delete ¶
func (m *MemoryProvider) Delete(ctx context.Context, id string) error
Delete 刪除知識項目
func (*MemoryProvider) Retrieve ¶
func (m *MemoryProvider) Retrieve(ctx context.Context, id string) (*KnowledgeItem, error)
Retrieve 根據 ID 檢索知識項目
func (*MemoryProvider) Search ¶
func (m *MemoryProvider) Search(ctx context.Context, query *SearchQuery) (*SearchResult, error)
Search 根據查詢條件搜索知識項目
func (*MemoryProvider) SimilaritySearch ¶
func (m *MemoryProvider) SimilaritySearch(ctx context.Context, content string, limit int) (*SearchResult, error)
SimilaritySearch 根據內容相似性搜索
func (*MemoryProvider) Store ¶
func (m *MemoryProvider) Store(ctx context.Context, item *KnowledgeItem) error
Store 儲存知識項目
type Plugin ¶
type Plugin struct {
// contains filtered or unexported fields
}
Plugin 實作知識庫管理插件,符合 Handler 介面
func (*Plugin) CloseWithContext ¶
CloseWithContext 帶超時控制的關閉方法
func (*Plugin) ConfigureProvider ¶
ConfigureProvider 配置知識庫提供者
func (*Plugin) HealthCheck ¶
HealthCheck 實作 HealthAwareHandler 介面 - 健康檢查
func (*Plugin) Invoke ¶
func (p *Plugin) Invoke(ctx context.Context, req *pb.InvokeRequest) (*pb.InvokeResponse, error)
Invoke 實作 Handler 介面 - 處理插件調用
type PostgreSQLProvider ¶
type PostgreSQLProvider struct {
// contains filtered or unexported fields
}
PostgreSQLProvider 實作基於 PostgreSQL 的知識庫提供者
func NewPostgreSQLProvider ¶
func NewPostgreSQLProvider(config *DatabaseConfig, logger *zap.Logger) (*PostgreSQLProvider, error)
NewPostgreSQLProvider 創建新的 PostgreSQL 知識庫提供者
func (*PostgreSQLProvider) Delete ¶
func (p *PostgreSQLProvider) Delete(ctx context.Context, id string) error
Delete 刪除知識項目
func (*PostgreSQLProvider) Retrieve ¶
func (p *PostgreSQLProvider) Retrieve(ctx context.Context, id string) (*KnowledgeItem, error)
Retrieve 根據 ID 檢索知識項目
func (*PostgreSQLProvider) Search ¶
func (p *PostgreSQLProvider) Search(ctx context.Context, query *SearchQuery) (*SearchResult, error)
Search 根據查詢條件搜索知識項目
func (*PostgreSQLProvider) SimilaritySearch ¶
func (p *PostgreSQLProvider) SimilaritySearch(ctx context.Context, content string, limit int) (*SearchResult, error)
SimilaritySearch 根據內容相似性搜索
func (*PostgreSQLProvider) Store ¶
func (p *PostgreSQLProvider) Store(ctx context.Context, item *KnowledgeItem) error
Store 儲存知識項目
type Provider ¶
type Provider interface { // Store 儲存知識項目 Store(ctx context.Context, item *KnowledgeItem) error // Retrieve 根據 ID 檢索知識項目 Retrieve(ctx context.Context, id string) (*KnowledgeItem, error) // Search 根據查詢條件搜索知識項目 Search(ctx context.Context, query *SearchQuery) (*SearchResult, error) // SimilaritySearch 根據內容相似性搜索 SimilaritySearch(ctx context.Context, content string, limit int) (*SearchResult, error) // Delete 刪除知識項目 Delete(ctx context.Context, id string) error // Close 關閉提供者連接 Close() error }
Provider 定義知識庫提供者接口
type ProviderFactory ¶
type ProviderFactory struct {
// contains filtered or unexported fields
}
ProviderFactory 知識庫提供者工廠
func NewProviderFactory ¶
func NewProviderFactory(logger *zap.Logger) *ProviderFactory
NewProviderFactory 創建新的提供者工廠
func (*ProviderFactory) CreateDefaultConfig ¶
func (f *ProviderFactory) CreateDefaultConfig() *Config
CreateDefaultConfig 創建默認配置
func (*ProviderFactory) CreatePostgreSQLConfig ¶
func (f *ProviderFactory) CreatePostgreSQLConfig(host string, port int, database, username, password string) *Config
CreatePostgreSQLConfig 創建 PostgreSQL 配置
func (*ProviderFactory) CreateProvider ¶
func (f *ProviderFactory) CreateProvider(config *Config) (Provider, error)
CreateProvider 根據配置創建知識庫提供者
func (*ProviderFactory) ValidateConfig ¶
func (f *ProviderFactory) ValidateConfig(config *Config) error
ValidateConfig 驗證配置
type ProviderType ¶
type ProviderType string
ProviderType 知識庫提供者類型
const ( ProviderTypeMemory ProviderType = "memory" ProviderTypePostgreSQL ProviderType = "postgresql" )
type SearchQuery ¶
type SearchQuery struct { Query string `json:"query"` Category string `json:"category,omitempty"` Tags []string `json:"tags,omitempty"` Filters map[string]string `json:"filters,omitempty"` SortBy string `json:"sort_by,omitempty"` SortOrder string `json:"sort_order,omitempty"` Limit int `json:"limit,omitempty"` Offset int `json:"offset,omitempty"` }
SearchQuery 表示搜索查詢
type SearchResult ¶
type SearchResult struct { Items []*KnowledgeItem `json:"items"` Total int64 `json:"total"` Page int `json:"page"` PageSize int `json:"page_size"` HasMore bool `json:"has_more"` Query string `json:"query"` SearchTime time.Duration `json:"search_time"` }
SearchResult 表示搜索結果
type SeverityLevel ¶
type SeverityLevel string
SeverityLevel 嚴重程度
const ( SeverityLow SeverityLevel = "low" SeverityMedium SeverityLevel = "medium" SeverityHigh SeverityLevel = "high" SeverityCritical SeverityLevel = "critical" )
type SimilarityConfig ¶
type SimilarityConfig struct { Algorithm string `yaml:"algorithm" json:"algorithm"` // cosine, jaccard, levenshtein Threshold float64 `yaml:"threshold" json:"threshold"` // 相似度閾值 MaxResults int `yaml:"max_results" json:"max_results"` }
SimilarityConfig 相似性配置
type SimilarityScore ¶
type SimilarityScore struct { Item *KnowledgeItem `json:"item"` Score float64 `json:"score"` }
SimilarityScore 表示相似度評分結果
type StatusType ¶
type StatusType string
StatusType 狀態類型
const ( StatusDraft StatusType = "draft" StatusReview StatusType = "review" StatusPublished StatusType = "published" StatusArchived StatusType = "archived" )