feat: implement AI integration with backend configuration and rule-based enrichment actions
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
package actions
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"git.pengzhan.dev/haopengzhan/rsspipe/internal/actions/ai"
|
||||
"git.pengzhan.dev/haopengzhan/rsspipe/internal/actions/readability"
|
||||
"git.pengzhan.dev/haopengzhan/rsspipe/internal/actions/status"
|
||||
"git.pengzhan.dev/haopengzhan/rsspipe/internal/actions/variants"
|
||||
aiClientPkg "git.pengzhan.dev/haopengzhan/rsspipe/internal/ai"
|
||||
"git.pengzhan.dev/haopengzhan/rsspipe/internal/db"
|
||||
"git.pengzhan.dev/haopengzhan/rsspipe/internal/worker"
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
// RegisterDefaultHandlers registers all core action handlers with the worker pool.
|
||||
func RegisterDefaultHandlers(pool *worker.Pool, database *db.DB, log *zap.Logger) {
|
||||
// 1. Readability Full-Text Scraper
|
||||
scraper := readability.NewScraper(15 * time.Second)
|
||||
pool.RegisterHandler("readability_scrape", scraper.Handler())
|
||||
|
||||
// 2. Status Handlers (mark_read, mark_starred)
|
||||
pool.RegisterHandler("mark_read", status.NewMarkReadHandler())
|
||||
pool.RegisterHandler("mark_starred", status.NewMarkStarredHandler())
|
||||
|
||||
// 3. Variant Handlers (set_variant with tag merging)
|
||||
pool.RegisterHandler("set_variant", variants.NewSetVariantHandler(database))
|
||||
|
||||
// 4. AI Subsystem Handlers
|
||||
aiClient := aiClientPkg.NewClient(45 * time.Second)
|
||||
enrichHandler := ai.NewEnrichmentHandler(database, aiClient, log)
|
||||
pool.RegisterHandler("ai_enrich", enrichHandler)
|
||||
pool.RegisterHandler("ai_summary", enrichHandler) // Backward compatibility alias
|
||||
|
||||
pool.RegisterHandler("ai_agent_action", ai.NewTriageHandler(database, aiClient, pool, log))
|
||||
}
|
||||
Reference in New Issue
Block a user