Page:
Configuration
Clone
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Конфигурация (.env)
Все параметры хранятся в файле .env в корне проекта.
Копируется из .env.example при первой настройке. Файл .env не коммитится в Git.
Параметры командной строки (где применимо) переопределяют значения из .env.
Пути
DIR_IN=D:\Audiobooks
DIR_OUT=D:\Audiobooks\result
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
DIR_IN |
string | — | Корневой каталог для сканирования. Можно переопределить аргументом CLI. |
DIR_OUT |
string | <DIR_IN>/result |
Куда складывать обработанные книги. Можно переопределить флагом -result. |
TorrAPI сервер
TORRAPI_URL=http://localhost:9200
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
TORRAPI_URL |
string | http://localhost:9200 |
URL TorrAPI-совместимого сервера. Переопределяется флагом -api. |
Параметры конвейера
PROCESSING_WORKERS=2
PROCESSING_TIMEOUT=5m
PROCESSING_SEARCH_RETRIES=3
PROCESSING_SEARCH_RETRY_DELAY=3s
PROCESSING_SEARCH_CONCURRENCY=2
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
PROCESSING_WORKERS |
int | 2 |
Число параллельных горутин-воркеров (Fan-Out). Переопределяется -workers. |
PROCESSING_TIMEOUT |
duration | 5m |
Дедлайн для всей сессии обработки. Переопределяется -timeout. |
PROCESSING_SEARCH_RETRIES |
int | 3 |
Сколько попыток найти книгу на трекерах перед перемещением в ERROR/. |
PROCESSING_SEARCH_RETRY_DELAY |
duration | 3s |
Задержка между повторными попытками поиска. |
PROCESSING_SEARCH_CONCURRENCY |
int | 2 |
Ограничение числа одновременных HTTP-запросов к TorrAPI (семафор). |
Приоритет параметров
CLI-флаг (-workers/-timeout) > .env > встроенные defaults
Флаги -workers и -timeout со значением 0 (умолчание) не перетирают значение из .env.
OpenRouter LLM (опционально)
OPENROUTER_API_KEY=sk-or-v1-your-key
OPENROUTER_BASE_URL=https://openrouter.ai/api/v1
OPENROUTER_TIMEOUT=120s
OPENROUTER_MODEL=openai/gpt-4o-mini
OPENROUTER_MAX_RETRIES=3
OPENROUTER_RETRY_BACKOFF=1s
OPENROUTER_RETRY_BACKOFF_MAX=8s
# OPENROUTER_PROMPT= # опционально, переопределяет встроенный промпт
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
OPENROUTER_API_KEY |
string | "" |
API ключ. Если пуст — LLM выключен. Можно передать через переменную окружения ОС. |
OPENROUTER_BASE_URL |
string | https://openrouter.ai/api/v1 |
Базовый URL API. |
OPENROUTER_TIMEOUT |
duration | 120s |
Таймаут одного запроса к API. |
OPENROUTER_MODEL |
string | openai/gpt-3.5-turbo |
Идентификатор модели в формате provider/model. |
OPENROUTER_MAX_RETRIES |
int | 3 |
Количество ретраев при ошибках API. |
OPENROUTER_RETRY_BACKOFF |
duration | 1s |
Начальная задержка между ретраями (экспоненциальный backoff). |
OPENROUTER_RETRY_BACKOFF_MAX |
duration | 8s |
Максимальная задержка backoff. |
OPENROUTER_PROMPT |
string | (встроенный) | Системный промпт. Если не задан — используется дефолтный из кода. |
Ключ через переменную окружения ОС
OPENROUTER_API_KEY можно не писать в .env — достаточно задать в окружении ОС. Переменные ОС имеют приоритет над .env:
export OPENROUTER_API_KEY=sk-or-...
./genaudiobookinfo
Форматы продолжительностей
Go-синтаксис: 300ms, 1.5s, 2m30s, 1h.
Примеры для *_TIMEOUT: 5m, 10m, 1h30m.
Полный пример .env
# Пути
DIR_IN=D:\Audiobooks
DIR_OUT=D:\Audiobooks\result
# TorrAPI
TORRAPI_URL=http://localhost:9200
# Конвейер
PROCESSING_WORKERS=4
PROCESSING_TIMEOUT=15m
PROCESSING_SEARCH_RETRIES=3
PROCESSING_SEARCH_RETRY_DELAY=3s
PROCESSING_SEARCH_CONCURRENCY=2
# OpenRouter
OPENROUTER_API_KEY=sk-or-v1-xxxxxxxxxxxxxxxxxxxx
OPENROUTER_BASE_URL=https://openrouter.ai/api/v1
OPENROUTER_TIMEOUT=120s
OPENROUTER_MODEL=openai/gpt-4o-mini
OPENROUTER_MAX_RETRIES=3
OPENROUTER_RETRY_BACKOFF=1s
OPENROUTER_RETRY_BACKOFF_MAX=8s