Добавил реализацию
This commit is contained in:
+24
-14
@@ -22,6 +22,7 @@ import (
|
||||
"git.vakhrushev.me/av/jellybit/internal/llm"
|
||||
"git.vakhrushev.me/av/jellybit/internal/logging"
|
||||
"git.vakhrushev.me/av/jellybit/internal/metadata"
|
||||
"git.vakhrushev.me/av/jellybit/internal/naming"
|
||||
"git.vakhrushev.me/av/jellybit/internal/qbt"
|
||||
"git.vakhrushev.me/av/jellybit/internal/recognize"
|
||||
"git.vakhrushev.me/av/jellybit/internal/store"
|
||||
@@ -62,7 +63,27 @@ func runServe(args []string) error {
|
||||
return err
|
||||
}
|
||||
|
||||
ingestor := ingest.New(st, qb, ingest.Config{
|
||||
// LLM-провайдер (опц.) — общий для вывода имени и распознавания.
|
||||
var llmProvider llm.Provider
|
||||
if cfg.LLM.Type != "" && cfg.LLM.BaseURL != "" {
|
||||
llmProvider, err = 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(),
|
||||
}, logger)
|
||||
if err != nil {
|
||||
return fmt.Errorf("llm provider: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
// Вывод отображаемого имени торрента из контекста (best-effort). Без LLM
|
||||
// работает только алгоритмический фолбек.
|
||||
namer := naming.New(llmProvider, cfg.LLM.MaxRetries, logger)
|
||||
|
||||
ingestor := ingest.New(st, qb, namer, ingest.Config{
|
||||
Category: cfg.QBittorrent.Category,
|
||||
SavePath: cfg.QBittorrent.SavePath,
|
||||
}, logger)
|
||||
@@ -79,19 +100,8 @@ func runServe(args []string) error {
|
||||
// Ф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(),
|
||||
}, logger)
|
||||
if perr != nil {
|
||||
return fmt.Errorf("llm provider: %w", perr)
|
||||
}
|
||||
recognizer = recognize.New(provider, providers, recognize.Config{
|
||||
if llmProvider != nil {
|
||||
recognizer = recognize.New(llmProvider, providers, recognize.Config{
|
||||
MaxRetries: cfg.LLM.MaxRetries,
|
||||
AutoThreshold: cfg.Recognition.AutoConfidenceThreshold,
|
||||
}, logger)
|
||||
|
||||
Reference in New Issue
Block a user