Раскладка файлов после распознавния
This commit is contained in:
+34
-1
@@ -13,8 +13,11 @@ import (
|
||||
"git.vakhrushev.me/av/jellybit/internal/config"
|
||||
"git.vakhrushev.me/av/jellybit/internal/httpapi"
|
||||
"git.vakhrushev.me/av/jellybit/internal/ingest"
|
||||
"git.vakhrushev.me/av/jellybit/internal/layout"
|
||||
"git.vakhrushev.me/av/jellybit/internal/llm"
|
||||
"git.vakhrushev.me/av/jellybit/internal/logging"
|
||||
"git.vakhrushev.me/av/jellybit/internal/qbt"
|
||||
"git.vakhrushev.me/av/jellybit/internal/recognize"
|
||||
"git.vakhrushev.me/av/jellybit/internal/store"
|
||||
"git.vakhrushev.me/av/jellybit/internal/worker"
|
||||
)
|
||||
@@ -57,7 +60,36 @@ func runServe(args []string) error {
|
||||
SavePath: cfg.QBittorrent.SavePath,
|
||||
}, logger)
|
||||
|
||||
wrk := worker.New(st, qb, worker.Config{
|
||||
// Ф2/Ф3: распознаватель и раскладчик. Если LLM не сконфигурирован,
|
||||
// сервис работает как в Ф1 (completed-задачи дальше не двигаются).
|
||||
var recognizer worker.Recognizer
|
||||
if cfg.LLM.Type != "" && cfg.LLM.BaseURL != "" {
|
||||
provider, perr := llm.New(llm.Config{
|
||||
Type: cfg.LLM.Type,
|
||||
BaseURL: cfg.LLM.BaseURL,
|
||||
APIKey: cfg.LLM.APIKey,
|
||||
Model: cfg.LLM.Model,
|
||||
Proxy: cfg.LLM.Proxy,
|
||||
Timeout: cfg.LLM.Timeout.Std(),
|
||||
})
|
||||
if perr != nil {
|
||||
return fmt.Errorf("llm provider: %w", perr)
|
||||
}
|
||||
recognizer = recognize.New(provider, recognize.Config{MaxRetries: cfg.LLM.MaxRetries}, logger)
|
||||
logger.Info("recognizer ready", "model", cfg.LLM.Model)
|
||||
} else {
|
||||
logger.Warn("llm not configured, recognition disabled")
|
||||
}
|
||||
|
||||
layouter, err := layout.New(layout.Config{
|
||||
MoviesDir: cfg.Paths.Movies,
|
||||
SeriesDir: cfg.Paths.Series,
|
||||
})
|
||||
if err != nil {
|
||||
return fmt.Errorf("layouter: %w", err)
|
||||
}
|
||||
|
||||
wrk := worker.New(st, qb, recognizer, layouter, worker.Config{
|
||||
Category: cfg.QBittorrent.Category,
|
||||
SavePath: cfg.QBittorrent.SavePath,
|
||||
PollInterval: cfg.Worker.PollInterval.Std(),
|
||||
@@ -70,6 +102,7 @@ func runServe(args []string) error {
|
||||
Ingestor: ingestor,
|
||||
Commander: wrk,
|
||||
Reader: st,
|
||||
Reviewer: wrk,
|
||||
})
|
||||
if err != nil {
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user