Функция: реализованы консольный логгер и презентер для обработки аудиокниг
- Добавлен ConsoleLogger для подробного логирования этапов обработки аудиокниг в консоли. - Введен ConsolePresenter для форматированного вывода результатов сканирования в консоль. - Создан ProcessAudioBooksUseCase для обработки полного конвейера обработки аудиокниг, включая сканирование папок, извлечение метаданных, поиск торрентов и запись результатов. - Реализована проверка LLM для улучшения метаданных. - Добавлена обработка ошибок и логирование на всех этапах обработки.
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
// Package domain содержит бизнес-сущности и интерфейсы (порты) приложения.
|
||||
package domain
|
||||
|
||||
// LLMRequest содержит параметры запроса к Large Language Model.
|
||||
type LLMRequest struct {
|
||||
// Model идентифицирует конкретную модель LLM для использования.
|
||||
Model string
|
||||
// Messages содержит историю диалога (system, user, assistant).
|
||||
Messages []LLMMessage
|
||||
// Temperature контролирует случайность генерации (0.0 - 2.0).
|
||||
Temperature float64
|
||||
// MaxTokens ограничивает максимальное количество токенов в ответе.
|
||||
MaxTokens int
|
||||
// TopP используется для nucleus sampling.
|
||||
TopP float64
|
||||
// FrequencyPenalty штрафует повторяющиеся токены.
|
||||
FrequencyPenalty float64
|
||||
// PresencePenalty штрафует уже встречавшиеся токены.
|
||||
PresencePenalty float64
|
||||
}
|
||||
|
||||
// LLMMessage представляет одно сообщение в диалоге.
|
||||
type LLMMessage struct {
|
||||
// Role: "system", "user", или "assistant".
|
||||
Role string
|
||||
// Content текстовое содержимое сообщения.
|
||||
Content string
|
||||
}
|
||||
|
||||
// LLMResponse содержит результат от LLM сервиса.
|
||||
type LLMResponse struct {
|
||||
// ID уникальный идентификатор запроса.
|
||||
ID string
|
||||
// Model использованная модель.
|
||||
Model string
|
||||
// Choices варианты ответов от модели.
|
||||
Choices []LLMChoice
|
||||
// Usage статистика использования токенов.
|
||||
Usage LLMUsage
|
||||
}
|
||||
|
||||
// LLMChoice представляет один вариант ответа.
|
||||
type LLMChoice struct {
|
||||
// Index порядковый номер варианта.
|
||||
Index int
|
||||
// Message содержимое ответа.
|
||||
Message LLMMessage
|
||||
// FinishReason причина завершения: "stop", "length", "content_filter".
|
||||
FinishReason string
|
||||
}
|
||||
|
||||
// LLMUsage содержит статистику использования токенов.
|
||||
type LLMUsage struct {
|
||||
// PromptTokens количество токенов в запросе.
|
||||
PromptTokens int
|
||||
// CompletionTokens количество токенов в ответе.
|
||||
CompletionTokens int
|
||||
// TotalTokens общее количество токенов.
|
||||
TotalTokens int
|
||||
}
|
||||
Reference in New Issue
Block a user