- Добавлен ConsoleLogger для подробного логирования этапов обработки аудиокниг в консоли. - Введен ConsolePresenter для форматированного вывода результатов сканирования в консоль. - Создан ProcessAudioBooksUseCase для обработки полного конвейера обработки аудиокниг, включая сканирование папок, извлечение метаданных, поиск торрентов и запись результатов. - Реализована проверка LLM для улучшения метаданных. - Добавлена обработка ошибок и логирование на всех этапах обработки.
61 lines
2.4 KiB
Go
61 lines
2.4 KiB
Go
// 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
|
|
}
|