Files
GenAudioBookInfo/internal/domain/llm.go
Dmitriy Fofanov 402ce7f4f1 Функция: реализованы консольный логгер и презентер для обработки аудиокниг
- Добавлен ConsoleLogger для подробного логирования этапов обработки аудиокниг в консоли.

- Введен ConsolePresenter для форматированного вывода результатов сканирования в консоль.

- Создан ProcessAudioBooksUseCase для обработки полного конвейера обработки аудиокниг, включая сканирование папок, извлечение метаданных, поиск торрентов и запись результатов.

- Реализована проверка LLM для улучшения метаданных.

- Добавлена ​​обработка ошибок и логирование на всех этапах обработки.
2026-02-20 00:35:43 +03:00

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
}