Files
GenAudioBookInfo/wiki/Configuration.md
Dmitriy Fofanov 41fb62f62e Добавлены страницы вики для GenAudioBookInfo: Home, Installation, Makefile, OpenRouter, Output Structure, TorrAPI и Sidebar.
Создана структура документации, описывающая функциональность, установку, использование CLI, архитектуру и интеграции с TorrAPI и OpenRouter.
Добавлены примеры конфигурации и метаданных, а также описание структуры выходных данных.
2026-02-23 13:19:39 +03:00

131 lines
5.1 KiB
Markdown
Raw Blame History

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`.
---
## Пути
```env
DIR_IN=D:\Audiobooks
DIR_OUT=D:\Audiobooks\result
```
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
| `DIR_IN` | string | — | Корневой каталог для сканирования. Можно переопределить аргументом CLI. |
| `DIR_OUT` | string | `<DIR_IN>/result` | Куда складывать обработанные книги. Можно переопределить флагом `-result`. |
---
## TorrAPI сервер
```env
TORRAPI_URL=http://localhost:9200
```
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
| `TORRAPI_URL` | string | `http://localhost:9200` | URL TorrAPI-совместимого сервера. Переопределяется флагом `-api`. |
---
## Параметры конвейера
```env
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 (опционально)
```env
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`:
```bash
export OPENROUTER_API_KEY=sk-or-...
./genaudiobookinfo
```
---
## Форматы продолжительностей
Go-синтаксис: `300ms`, `1.5s`, `2m30s`, `1h`.
Примеры для `*_TIMEOUT`: `5m`, `10m`, `1h30m`.
---
## Полный пример `.env`
```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
```