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